All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.maven.io.kroxylicious.kroxylicious-runtime.pom.xml Maven / Gradle / Ivy

The newest version!
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright Kroxylicious Authors.

    Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0

-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>io.kroxylicious</groupId>
        <artifactId>kroxylicious-parent</artifactId>
        <version>0.9.0</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>kroxylicious-runtime</artifactId>
    <packaging>jar</packaging>

    <properties>
        <libs.dir>libs</libs.dir>
    </properties>

    <name>Proxy runtime</name>
    <description>The proxy code which provides the runtime environment in which filters execute</description>

    <dependencies>
        <!-- project dependencies - runtime and compile -->
        <dependency>
            <groupId>io.kroxylicious</groupId>
            <artifactId>kroxylicious-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>io.kroxylicious</groupId>
            <artifactId>kroxylicious-api</artifactId>
        </dependency>

        <!-- project dependencies - test -->
        <dependency>
            <groupId>io.kroxylicious</groupId>
            <artifactId>kroxylicious-filter-test-support</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- third party dependencies - runtime and compile -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-parameter-names</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jdk8</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <!-- We depend on the specific Netty dependencies not netty-all to reduce the size of fatjars -->
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-buffer</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-haproxy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-classes-epoll</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-epoll</artifactId>
            <classifier>${netty.epoll.classifier}</classifier>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-classes-kqueue</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-kqueue</artifactId>
            <classifier>${netty.kqueue.classifier}</classifier>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-unix-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty.incubator</groupId>
            <artifactId>netty-incubator-transport-classes-io_uring</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty.incubator</groupId>
            <artifactId>netty-incubator-transport-native-io_uring</artifactId>
            <classifier>${netty.io_uring.classifier}</classifier>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>

        <!-- third party dependencies - test -->

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.flipkart.zjsonpatch</groupId>
            <artifactId>zjsonpatch</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.awaitility</groupId>
            <artifactId>awaitility</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <environmentVariables>
                        <!-- required for testcontainers/podman support -->
                        <TESTCONTAINERS_RYUK_DISABLED>true</TESTCONTAINERS_RYUK_DISABLED>
                    </environmentVariables>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack-message-specs</id>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <phase>generate-sources</phase>
                        <configuration>
                            <artifact>org.apache.kafka:kafka-clients:${kafka.version}</artifact>
                            <includes>common/message/*.json</includes>
                            <outputDirectory>${project.build.directory}/message-specs</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- This actually shouldn't be needed, as the plug-in itself adds that directory as a source directory;
                 Unfortunately, Eclipse/M2E doesn't reliably pick it up without this helper plug-in -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${project.build.directory}/generated-sources/krpc</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>net.revelc.code.formatter</groupId>
                <artifactId>formatter-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>format-generated</id>
                        <goals>
                            <goal>format</goal>
                        </goals>
                        <phase>process-sources</phase>
                        <configuration>
                        <directories>
                            <directory>${project.build.directory}/generated-sources/krpc</directory>
                        </directories>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>io.kroxylicious</groupId>
                <artifactId>kroxylicious-krpc-plugin</artifactId>
                <executions>
                    <execution>
                        <id>generate-request-decoder</id>
                        <goals>
                            <goal>generate-multi</goal>
                        </goals>
                        <phase>process-sources</phase>
                        <configuration>
                            <messageSpecDirectory>${project.build.directory}/message-specs/common/message</messageSpecDirectory>
                            <messageSpecFilter>*{Request,Response}.json</messageSpecFilter>
                            <templateDirectory>${project.basedir}/src/main/templates</templateDirectory>
                            <templateNames>BodyDecoder.ftl</templateNames>
                            <!--suppress UnresolvedMavenProperty -->
                            <outputFilePattern>${templateName}.java</outputFilePattern>
                            <outputPackage>io.kroxylicious.proxy.internal.codec</outputPackage>
                            <outputDirectory>${project.build.directory}/generated-sources/krpc</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>generate-per-message-filter-invokers</id>
                        <goals>
                            <goal>generate-single</goal>
                        </goals>
                        <phase>generate-sources</phase>
                        <configuration>
                            <messageSpecDirectory>${project.build.directory}/message-specs/common/message</messageSpecDirectory>
                            <messageSpecFilter>*{Request,Response}.json</messageSpecFilter>
                            <templateDirectory>${project.basedir}/src/main/templates</templateDirectory>
                            <templateNames>FilterInvoker.ftl</templateNames>
                            <!--suppress UnresolvedMavenProperty -->
                            <outputFilePattern>${messageSpecName}FilterInvoker.java</outputFilePattern>
                            <outputPackage>io.kroxylicious.proxy.filter</outputPackage>
                            <outputDirectory>${project.build.directory}/generated-sources/krpc</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>generate-array-filter-invoker</id>
                        <goals>
                            <goal>generate-multi</goal>
                        </goals>
                        <phase>process-sources</phase>
                        <configuration>
                            <messageSpecDirectory>${project.build.directory}/message-specs/common/message</messageSpecDirectory>
                            <messageSpecFilter>*{Request,Response}.json</messageSpecFilter>
                            <templateDirectory>${project.basedir}/src/main/templates</templateDirectory>
                            <templateNames>SpecificFilterArrayInvoker.ftl</templateNames>
                            <!--suppress UnresolvedMavenProperty -->
                            <outputFilePattern>${templateName}.java</outputFilePattern>
                            <outputPackage>io.kroxylicious.proxy.filter</outputPackage>
                            <outputDirectory>${project.build.directory}/generated-sources/krpc</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>debug</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-api</artifactId>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-core</artifactId>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-slf4j2-impl</artifactId>
                    <scope>runtime</scope>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
</project>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy