Skip to content

Commit

Permalink
Add examples to the registry repository
Browse files Browse the repository at this point in the history
  • Loading branch information
carlesarnal committed May 14, 2024
1 parent 20a8756 commit 6c8a2ed
Show file tree
Hide file tree
Showing 172 changed files with 13,539 additions and 2 deletions.
2 changes: 0 additions & 2 deletions app/.gitignore

This file was deleted.

199 changes: 199 additions & 0 deletions app/script.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
-- H2 2.2.224;
;
CREATE USER IF NOT EXISTS "SA" SALT '2ff99bc3a0ae4f76' HASH '3398cf73b7242d893c56e3c7617e8e205bb00834cfe6ca71e9934d8890c77ca7' ADMIN;
CREATE MEMORY TABLE "PUBLIC"."APICURIO"(
"PROPNAME" CHARACTER VARYING(255) NOT NULL,
"PROPVALUE" CHARACTER VARYING(255)
);
ALTER TABLE "PUBLIC"."APICURIO" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_6" PRIMARY KEY("PROPNAME");
-- 1 +/- SELECT COUNT(*) FROM PUBLIC.APICURIO;
INSERT INTO "PUBLIC"."APICURIO" VALUES
('db_version', '100');
CREATE MEMORY TABLE "PUBLIC"."SEQUENCES"(
"SEQNAME" CHARACTER VARYING(32) NOT NULL,
"SEQVALUE" BIGINT NOT NULL
);
ALTER TABLE "PUBLIC"."SEQUENCES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_63" PRIMARY KEY("SEQNAME");
-- 3 +/- SELECT COUNT(*) FROM PUBLIC.SEQUENCES;
INSERT INTO "PUBLIC"."SEQUENCES" VALUES
('contentId', 265),
('globalId', 395),
('commentId', 3);
CREATE MEMORY TABLE "PUBLIC"."CONFIG"(
"PROPNAME" CHARACTER VARYING(255) NOT NULL,
"PROPVALUE" CHARACTER VARYING(1024) NOT NULL,
"MODIFIEDON" BIGINT NOT NULL
);
ALTER TABLE "PUBLIC"."CONFIG" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_7" PRIMARY KEY("PROPNAME");
-- 1 +/- SELECT COUNT(*) FROM PUBLIC.CONFIG;
INSERT INTO "PUBLIC"."CONFIG" VALUES
('apicurio.storage.read-only.enabled', 'false', 1715687568633);
CREATE INDEX "PUBLIC"."IDX_CONFIG_1" ON "PUBLIC"."CONFIG"("MODIFIEDON" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."ACLS"(
"PRINCIPALID" CHARACTER VARYING(256) NOT NULL,
"ROLE" CHARACTER VARYING(32) NOT NULL,
"PRINCIPALNAME" CHARACTER VARYING(256)
);
ALTER TABLE "PUBLIC"."ACLS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_1" PRIMARY KEY("PRINCIPALID");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ACLS;
CREATE MEMORY TABLE "PUBLIC"."DOWNLOADS"(
"DOWNLOADID" CHARACTER VARYING(128) NOT NULL,
"EXPIRES" BIGINT NOT NULL,
"CONTEXT" CHARACTER VARYING(1024)
);
ALTER TABLE "PUBLIC"."DOWNLOADS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_F" PRIMARY KEY("DOWNLOADID");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.DOWNLOADS;
CREATE HASH INDEX "PUBLIC"."IDX_DOWN_1" ON "PUBLIC"."DOWNLOADS"("EXPIRES" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."GLOBAL_RULES"(
"TYPE" CHARACTER VARYING(32) NOT NULL,
"CONFIGURATION" CHARACTER VARYING NOT NULL
);
ALTER TABLE "PUBLIC"."GLOBAL_RULES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_A" PRIMARY KEY("TYPE");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.GLOBAL_RULES;
CREATE MEMORY TABLE "PUBLIC"."CONTENT"(
"CONTENTID" BIGINT NOT NULL,
"CANONICALHASH" CHARACTER VARYING(64) NOT NULL,
"CONTENTHASH" CHARACTER VARYING(64) NOT NULL,
"CONTENT" BINARY VARYING NOT NULL,
"REFS" CHARACTER VARYING
);
ALTER TABLE "PUBLIC"."CONTENT" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_638" PRIMARY KEY("CONTENTID");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CONTENT;
CREATE HASH INDEX "PUBLIC"."IDX_CONTENT_1" ON "PUBLIC"."CONTENT"("CANONICALHASH" NULLS FIRST);
CREATE HASH INDEX "PUBLIC"."IDX_CONTENT_2" ON "PUBLIC"."CONTENT"("CONTENTHASH" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."CONTENT_REFERENCES"(
"CONTENTID" BIGINT NOT NULL,
"GROUPID" CHARACTER VARYING(512),
"ARTIFACTID" CHARACTER VARYING(512) NOT NULL,
"VERSION" CHARACTER VARYING(256),
"NAME" CHARACTER VARYING(512) NOT NULL
);
ALTER TABLE "PUBLIC"."CONTENT_REFERENCES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_5" PRIMARY KEY("CONTENTID", "NAME");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.CONTENT_REFERENCES;
CREATE MEMORY TABLE "PUBLIC"."GROUPS"(
"GROUPID" CHARACTER VARYING(512) NOT NULL,
"DESCRIPTION" CHARACTER VARYING(1024),
"ARTIFACTSTYPE" CHARACTER VARYING(32),
"OWNER" CHARACTER VARYING(256),
"CREATEDON" TIMESTAMP NOT NULL,
"MODIFIEDBY" CHARACTER VARYING(256),
"MODIFIEDON" TIMESTAMP,
"LABELS" CHARACTER VARYING
);
ALTER TABLE "PUBLIC"."GROUPS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_7D" PRIMARY KEY("GROUPID");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC."GROUPS";
CREATE MEMORY TABLE "PUBLIC"."GROUP_LABELS"(
"GROUPID" CHARACTER VARYING(512) NOT NULL,
"LABELKEY" CHARACTER VARYING(256) NOT NULL,
"LABELVALUE" CHARACTER VARYING(512)
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.GROUP_LABELS;
CREATE INDEX "PUBLIC"."IDX_GLABELS_1" ON "PUBLIC"."GROUP_LABELS"("LABELKEY" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_GLABELS_2" ON "PUBLIC"."GROUP_LABELS"("LABELVALUE" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."GROUP_RULES"(
"GROUPID" CHARACTER VARYING(512) NOT NULL,
"TYPE" CHARACTER VARYING(32) NOT NULL,
"CONFIGURATION" CHARACTER VARYING(1024) NOT NULL
);
ALTER TABLE "PUBLIC"."GROUP_RULES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_F8" PRIMARY KEY("GROUPID", "TYPE");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.GROUP_RULES;
CREATE MEMORY TABLE "PUBLIC"."ARTIFACTS"(
"GROUPID" CHARACTER VARYING(512) NOT NULL,
"ARTIFACTID" CHARACTER VARYING(512) NOT NULL,
"TYPE" CHARACTER VARYING(32) NOT NULL,
"OWNER" CHARACTER VARYING(256),
"CREATEDON" TIMESTAMP NOT NULL,
"MODIFIEDBY" CHARACTER VARYING(256),
"MODIFIEDON" TIMESTAMP,
"NAME" CHARACTER VARYING(512),
"DESCRIPTION" CHARACTER VARYING(1024),
"LABELS" CHARACTER VARYING
);
ALTER TABLE "PUBLIC"."ARTIFACTS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_C" PRIMARY KEY("GROUPID", "ARTIFACTID");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ARTIFACTS;
CREATE HASH INDEX "PUBLIC"."IDX_ARTIFACTS_0" ON "PUBLIC"."ARTIFACTS"("TYPE" NULLS FIRST);
CREATE HASH INDEX "PUBLIC"."IDX_ARTIFACTS_1" ON "PUBLIC"."ARTIFACTS"("OWNER" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_ARTIFACTS_2" ON "PUBLIC"."ARTIFACTS"("CREATEDON" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_ARTIFACTS_3" ON "PUBLIC"."ARTIFACTS"("NAME" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_ARTIFACTS_4" ON "PUBLIC"."ARTIFACTS"("DESCRIPTION" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."ARTIFACT_LABELS"(
"GROUPID" CHARACTER VARYING(512) NOT NULL,
"ARTIFACTID" CHARACTER VARYING(512) NOT NULL,
"LABELKEY" CHARACTER VARYING(256) NOT NULL,
"LABELVALUE" CHARACTER VARYING(512)
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ARTIFACT_LABELS;
CREATE INDEX "PUBLIC"."IDX_ALABELS_1" ON "PUBLIC"."ARTIFACT_LABELS"("LABELKEY" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_ALABELS_2" ON "PUBLIC"."ARTIFACT_LABELS"("LABELVALUE" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."ARTIFACT_RULES"(
"GROUPID" CHARACTER VARYING(512) NOT NULL,
"ARTIFACTID" CHARACTER VARYING(512) NOT NULL,
"TYPE" CHARACTER VARYING(32) NOT NULL,
"CONFIGURATION" CHARACTER VARYING(1024) NOT NULL
);
ALTER TABLE "PUBLIC"."ARTIFACT_RULES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_5E" PRIMARY KEY("GROUPID", "ARTIFACTID", "TYPE");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ARTIFACT_RULES;
CREATE MEMORY TABLE "PUBLIC"."VERSIONS"(
"GLOBALID" BIGINT NOT NULL,
"GROUPID" CHARACTER VARYING(512) NOT NULL,
"ARTIFACTID" CHARACTER VARYING(512) NOT NULL,
"VERSION" CHARACTER VARYING(256),
"VERSIONORDER" INTEGER NOT NULL,
"STATE" CHARACTER VARYING(64) NOT NULL,
"NAME" CHARACTER VARYING(512),
"DESCRIPTION" CHARACTER VARYING(1024),
"OWNER" CHARACTER VARYING(256),
"CREATEDON" TIMESTAMP NOT NULL,
"LABELS" CHARACTER VARYING,
"CONTENTID" BIGINT NOT NULL
);
ALTER TABLE "PUBLIC"."VERSIONS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_B" PRIMARY KEY("GLOBALID");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.VERSIONS;
CREATE INDEX "PUBLIC"."IDX_VERSIONS_1" ON "PUBLIC"."VERSIONS"("VERSION" NULLS FIRST);
CREATE HASH INDEX "PUBLIC"."IDX_VERSIONS_2" ON "PUBLIC"."VERSIONS"("STATE" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_VERSIONS_3" ON "PUBLIC"."VERSIONS"("NAME" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_VERSIONS_4" ON "PUBLIC"."VERSIONS"("DESCRIPTION" NULLS FIRST);
CREATE HASH INDEX "PUBLIC"."IDX_VERSIONS_5" ON "PUBLIC"."VERSIONS"("OWNER" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_VERSIONS_6" ON "PUBLIC"."VERSIONS"("CREATEDON" NULLS FIRST);
CREATE HASH INDEX "PUBLIC"."IDX_VERSIONS_7" ON "PUBLIC"."VERSIONS"("CONTENTID" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."VERSION_LABELS"(
"GLOBALID" BIGINT NOT NULL,
"LABELKEY" CHARACTER VARYING(256) NOT NULL,
"LABELVALUE" CHARACTER VARYING(512)
);
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.VERSION_LABELS;
CREATE INDEX "PUBLIC"."IDX_VLABELS_1" ON "PUBLIC"."VERSION_LABELS"("LABELKEY" NULLS FIRST);
CREATE INDEX "PUBLIC"."IDX_VLABELS_2" ON "PUBLIC"."VERSION_LABELS"("LABELVALUE" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."VERSION_COMMENTS"(
"COMMENTID" CHARACTER VARYING(128) NOT NULL,
"GLOBALID" BIGINT NOT NULL,
"OWNER" CHARACTER VARYING(256),
"CREATEDON" TIMESTAMP NOT NULL,
"CVALUE" CHARACTER VARYING(1024) NOT NULL
);
ALTER TABLE "PUBLIC"."VERSION_COMMENTS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_4" PRIMARY KEY("COMMENTID");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.VERSION_COMMENTS;
CREATE INDEX "PUBLIC"."IDX_VERSION_COMMENTS_1" ON "PUBLIC"."VERSION_COMMENTS"("OWNER" NULLS FIRST);
CREATE MEMORY TABLE "PUBLIC"."ARTIFACT_BRANCHES"(
"GROUPID" CHARACTER VARYING(512) NOT NULL,
"ARTIFACTID" CHARACTER VARYING(512) NOT NULL,
"BRANCHID" CHARACTER VARYING(256) NOT NULL,
"BRANCHORDER" INTEGER NOT NULL,
"VERSION" CHARACTER VARYING(256) NOT NULL
);
ALTER TABLE "PUBLIC"."ARTIFACT_BRANCHES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_1E" PRIMARY KEY("GROUPID", "ARTIFACTID", "BRANCHID", "BRANCHORDER");
-- 0 +/- SELECT COUNT(*) FROM PUBLIC.ARTIFACT_BRANCHES;
CREATE INDEX "PUBLIC"."IDX_ARTIFACT_BRANCHES_1" ON "PUBLIC"."ARTIFACT_BRANCHES"("GROUPID" NULLS FIRST, "ARTIFACTID" NULLS FIRST, "BRANCHID" NULLS FIRST, "BRANCHORDER" NULLS FIRST);
ALTER TABLE "PUBLIC"."CONTENT" ADD CONSTRAINT "PUBLIC"."UQ_CONTENT_1" UNIQUE("CONTENTHASH");
ALTER TABLE "PUBLIC"."VERSIONS" ADD CONSTRAINT "PUBLIC"."UQ_VERSIONS_1" UNIQUE("GROUPID", "ARTIFACTID", "VERSION");
ALTER TABLE "PUBLIC"."VERSIONS" ADD CONSTRAINT "PUBLIC"."UQ_VERSIONS_2" UNIQUE("GLOBALID", "VERSIONORDER");
ALTER TABLE "PUBLIC"."CONTENT_REFERENCES" ADD CONSTRAINT "PUBLIC"."FK_CONTENT_REFERENCES_1" FOREIGN KEY("CONTENTID") REFERENCES "PUBLIC"."CONTENT"("CONTENTID") ON DELETE CASCADE NOCHECK;
ALTER TABLE "PUBLIC"."ARTIFACT_BRANCHES" ADD CONSTRAINT "PUBLIC"."FK_ARTIFACT_BRANCHES_1" FOREIGN KEY("GROUPID", "ARTIFACTID") REFERENCES "PUBLIC"."ARTIFACTS"("GROUPID", "ARTIFACTID") ON DELETE CASCADE NOCHECK;
ALTER TABLE "PUBLIC"."VERSION_COMMENTS" ADD CONSTRAINT "PUBLIC"."FK_VERSION_COMMENTS_1" FOREIGN KEY("GLOBALID") REFERENCES "PUBLIC"."VERSIONS"("GLOBALID") ON DELETE CASCADE NOCHECK;
ALTER TABLE "PUBLIC"."ARTIFACT_BRANCHES" ADD CONSTRAINT "PUBLIC"."FK_ARTIFACT_BRANCHES_2" FOREIGN KEY("GROUPID", "ARTIFACTID", "VERSION") REFERENCES "PUBLIC"."VERSIONS"("GROUPID", "ARTIFACTID", "VERSION") ON DELETE CASCADE NOCHECK;
ALTER TABLE "PUBLIC"."GROUP_LABELS" ADD CONSTRAINT "PUBLIC"."FK_GLABELS_1" FOREIGN KEY("GROUPID") REFERENCES "PUBLIC"."GROUPS"("GROUPID") ON DELETE CASCADE NOCHECK;
ALTER TABLE "PUBLIC"."GROUP_RULES" ADD CONSTRAINT "PUBLIC"."FK_GRULES_1" FOREIGN KEY("GROUPID") REFERENCES "PUBLIC"."GROUPS"("GROUPID") ON DELETE CASCADE NOCHECK;
ALTER TABLE "PUBLIC"."ARTIFACT_LABELS" ADD CONSTRAINT "PUBLIC"."FK_ALABELS_1" FOREIGN KEY("GROUPID", "ARTIFACTID") REFERENCES "PUBLIC"."ARTIFACTS"("GROUPID", "ARTIFACTID") ON DELETE CASCADE NOCHECK;
ALTER TABLE "PUBLIC"."VERSIONS" ADD CONSTRAINT "PUBLIC"."FK_VERSIONS_1" FOREIGN KEY("GROUPID", "ARTIFACTID") REFERENCES "PUBLIC"."ARTIFACTS"("GROUPID", "ARTIFACTID") ON DELETE CASCADE NOCHECK;
ALTER TABLE "PUBLIC"."VERSIONS" ADD CONSTRAINT "PUBLIC"."FK_VERSIONS_2" FOREIGN KEY("CONTENTID") REFERENCES "PUBLIC"."CONTENT"("CONTENTID") NOCHECK;
ALTER TABLE "PUBLIC"."VERSION_LABELS" ADD CONSTRAINT "PUBLIC"."FK_VLABELS_1" FOREIGN KEY("GLOBALID") REFERENCES "PUBLIC"."VERSIONS"("GLOBALID") ON DELETE CASCADE NOCHECK;
71 changes: 71 additions & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
The examples on this repository have been moved to the [main Apicurio Registry Repository](https://github.com/Apicurio/apicurio-registry/examples).



# Apicurio Registry Example Applications
This repository contains a set of example applications (mostly Kafka applications) that use the
Apicurio Registry as part of their workflow. The registry is typically used to store schemas
used by Kafka serializer and deserializer classes. These serdes classes will fetch the schema
from the registry for use during producing or consuming operations (to serializer, deserializer,
or validate the Kafka message payload).

Each example in this repository attempts to demonstrate some specific use-case or configuration.
There are numerous options available when integrating with the registry, and therefore the set
of examples found here may not cover every configuration permutation.

# List of Examples
A list of examples is included below, with descriptions and explanations of each covered use-case.

## Simple Avro Example
This example application demonstrates the basics of using the registry in a very simple Kafka
publish/subscribe application using Apache Avro as the schema technology used to serialize
and deserialize message payloads.

## Simple JSON Schema Example
This example application demonstrates the basics of using the registry in a very simple Kafka
publish/subscribe application using JSON Schema to validate message payloads when both producing
and consuming them. JSON Schema is not a serialization technology, but rather is only used for
validation. Therefore it can be enabled or disabled in the serializer and deserializer.

## Confluent Serdes Integration
This example shows how Apicurio Registry serdes classes can be used along with Confluent serdes
classes in a mixed application environment. In other words, some applications can be using
Confluent classes while other applications can be using Apicurio Registry classes - and they
can all work together seamlessly with just a little bit of extra configuration. This example
is essentially the same as the Simple Avro Example, but using a Confluent serializer with an
Apicurio Registry deserializer.

## Avro Bean Example
This example demonstrates how to use Avro as the schema and serialization technology while
using a Java Bean as the Kafka message payload. This is essentially the same as the Simple
Avro Example, but using a java bean instead of a `GenericRecord` as the message payload.

## Custom ID Strategy Example
This example demonstrates how to use a custom Global ID strategy. The Global ID strategy is
used by a producer (serializer) application to lookup (or create) the Schema it is using for
serialization. Apicurio Registry comes with some useful implementations of the Global ID
strategy out of the box, but it is possible to create your own. This example is essentially
the same as the Simple Avro Example, except instead of using one of the default Apicurio
Registry Global ID strategies, it uses a custom one.

## Simple Avro Maven Example
This example application demonstrates how to use the Apicurio Registry maven plugin to
pre-register an Avro schema so that it does not need to be embedded within the producer
application. Note that this example will fail unless the maven plugin is executed before
the Java application. See the javadoc in the example for details.

## Rest Client example
This example application demonstrates how to use the Apicurio Registry rest client to create,
delete, or fetch schemas. This example contains two basic java application, one showing how to
improve the logs by logging all the request and response headers and a basic example on how to
use the client.

## Mix Avro Schemas Example
This example application showcases an scenario where Apache Avro messages are published to the same
Kafka topic using different Avro schemas. This example uses the Apicurio Registry serdes classes to serialize
and deserialize Apache Avro messages using different schemas, even if received in the same Kafka topic.

## Cloud Events PoC
This is an example application that implements a REST API that consumes and produces CloudEvents.
This example application showcases an experimental library from apicurio-registry project. This library is used to validate incoming and outgoing CloudEvents messages in the REST API.
The validation is performed against json schemas that are stored in Apicurio Registry. For a more detailed explanation go [here](../apicurio-registry/examples/cloudevents/README.md).
43 changes: 43 additions & 0 deletions examples/avro-bean/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.apicurio</groupId>
<artifactId>apicurio-registry-examples</artifactId>
<version>2.6.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>apicurio-registry-examples-avro-bean</artifactId>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>io.apicurio</groupId>
<artifactId>apicurio-registry-serdes-avro-serde</artifactId>
<version>${apicurio-registry.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka.version}</version>
</dependency>
<dependency>
<groupId>io.strimzi</groupId>
<artifactId>kafka-oauth-client</artifactId>
<version>0.8.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>

</project>
Loading

0 comments on commit 6c8a2ed

Please sign in to comment.