This is an automated email from the ASF dual-hosted git repository. martijnvisser pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/flink-connector-kudu.git
commit 033554484423caa9ff1fbd830dc3b15b066b8463 Author: Ferenc Csaky <ferenc.cs...@pm.me> AuthorDate: Thu Mar 28 12:30:27 2024 +0100 [FLINK-34930] Adapt POM files to the new structure, remove flink-shaded Guava usage --- flink-connector-kudu/pom.xml | 237 ++++++--------- .../flink/connectors/kudu/table/KuduCatalog.java | 3 +- .../connectors/kudu/table/KuduTableSource.java | 5 +- .../function/lookup/KuduRowDataLookupFunction.java | 4 +- .../kudu/table/utils/KuduTableUtils.java | 3 +- pom.xml | 324 +++++++++++++++++++++ 6 files changed, 423 insertions(+), 153 deletions(-) diff --git a/flink-connector-kudu/pom.xml b/flink-connector-kudu/pom.xml index 8dc4f88..22817ff 100644 --- a/flink-connector-kudu/pom.xml +++ b/flink-connector-kudu/pom.xml @@ -1,148 +1,97 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - ~ Licensed to the Apache Software Foundation (ASF) under one or more - ~ contributor license agreements. See the NOTICE file distributed with - ~ this work for additional information regarding copyright ownership. - ~ The ASF licenses this file to You under the Apache License, Version 2.0 - ~ (the "License"); you may not use this file except in compliance with - ~ the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - --> -<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>org.apache.bahir</groupId> - <artifactId>bahir-flink-parent</artifactId> - <version>1.2-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> - </parent> - - <artifactId>flink-connector-kudu</artifactId> - <packaging>jar</packaging> - - <name>flink-connector-kudu</name> - - <properties> - <kudu.version>1.13.0</kudu.version> - </properties> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.apache.kudu</groupId> - <artifactId>kudu-client</artifactId> - <version>${kudu.version}</version> - </dependency> - <dependency> - <groupId>org.apache.kudu</groupId> - <artifactId>kudu-test-utils</artifactId> - <version>${kudu.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>${log4j.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>${log4j.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-slf4j-impl</artifactId> - <version>${log4j.version}</version> - <scope>test</scope> - </dependency> - <!-- this is added because test cluster use @Rule from junit4 --> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-migrationsupport</artifactId> - <version>${junit.jupiter.version}</version> - <scope>test</scope> - </dependency> - </dependencies> - </dependencyManagement> - - <dependencies> - <dependency> - <groupId>org.apache.flink</groupId> - <artifactId>flink-clients</artifactId> - </dependency> - <dependency> - <groupId>org.apache.flink</groupId> - <artifactId>flink-streaming-java</artifactId> - </dependency> - <dependency> - <groupId>org.apache.flink</groupId> - <artifactId>flink-table-api-java-bridge</artifactId> - </dependency> - <dependency> - <groupId>org.apache.flink</groupId> - <artifactId>flink-table-common</artifactId> - </dependency> - <dependency> - <groupId>org.apache.flink</groupId> - <artifactId>flink-table-planner-loader</artifactId> - </dependency> - <dependency> - <groupId>org.apache.flink</groupId> - <artifactId>flink-table-runtime</artifactId> - </dependency> - <dependency> - <groupId>org.apache.kudu</groupId> - <artifactId>kudu-client</artifactId> - </dependency> - <dependency> - <groupId>org.apache.kudu</groupId> - <artifactId>kudu-test-utils</artifactId> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-slf4j-impl</artifactId> - </dependency> - <!-- this is added because test cluster use @Rule from junit4 --> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-migrationsupport</artifactId> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-all</artifactId> - </dependency> - <dependency> - <groupId>org.testcontainers</groupId> - <artifactId>testcontainers</artifactId> - </dependency> - </dependencies> - - <build> - <extensions> - <extension> - <groupId>kr.motd.maven</groupId> - <artifactId>os-maven-plugin</artifactId> - <version>1.6.2</version> - </extension> - </extensions> - </build> +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<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/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.flink</groupId> + <artifactId>flink-connector-kudu-parent</artifactId> + <version>2.0-SNAPSHOT</version> + </parent> + + <artifactId>flink-connector-kudu</artifactId> + <name>Flink : Connectors : Kudu</name> + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-clients</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-streaming-java</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-table-api-java-bridge</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-table-common</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-table-planner-loader</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-table-runtime</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.kudu</groupId> + <artifactId>kudu-client</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.kudu</groupId> + <artifactId>kudu-test-utils</artifactId> + <scope>test</scope> + </dependency> + + <!-- this is added because test cluster use @Rule from junit4 --> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-migrationsupport</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.testcontainers</groupId> + <artifactId>testcontainers</artifactId> + <scope>test</scope> + </dependency> + </dependencies> </project> diff --git a/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/KuduCatalog.java b/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/KuduCatalog.java index 20ec341..50e45b1 100644 --- a/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/KuduCatalog.java +++ b/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/KuduCatalog.java @@ -21,7 +21,6 @@ package org.apache.flink.connectors.kudu.table; import org.apache.flink.annotation.PublicEvolving; import org.apache.flink.connectors.kudu.connector.KuduTableInfo; import org.apache.flink.connectors.kudu.table.utils.KuduTableUtils; -import org.apache.flink.shaded.guava30.com.google.common.collect.Lists; import org.apache.flink.table.api.TableSchema; import org.apache.flink.table.catalog.*; import org.apache.flink.table.catalog.exceptions.*; @@ -269,7 +268,7 @@ public class KuduCatalog extends AbstractReadOnlyCatalog { @Override public List<String> listDatabases() throws CatalogException { - return Lists.newArrayList(getDefaultDatabase()); + return Collections.singletonList(getDefaultDatabase()); } @Override diff --git a/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/KuduTableSource.java b/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/KuduTableSource.java index 74daa89..287dfb4 100644 --- a/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/KuduTableSource.java +++ b/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/KuduTableSource.java @@ -23,7 +23,6 @@ import org.apache.flink.connectors.kudu.connector.KuduTableInfo; import org.apache.flink.connectors.kudu.connector.convertor.RowResultRowConvertor; import org.apache.flink.connectors.kudu.connector.reader.KuduReaderConfig; import org.apache.flink.connectors.kudu.format.KuduRowInputFormat; -import org.apache.flink.shaded.guava30.com.google.common.collect.Lists; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.DataTypes; @@ -71,7 +70,7 @@ public class KuduTableSource implements StreamTableSource<Row>, } this.kuduRowInputFormat = new KuduRowInputFormat(configBuilder.build(), new RowResultRowConvertor(), tableInfo, predicates == null ? Collections.emptyList() : predicates, - projectedFields == null ? null : Lists.newArrayList(projectedFields)); + projectedFields == null ? null : Arrays.asList(projectedFields)); } @Override @@ -84,7 +83,7 @@ public class KuduTableSource implements StreamTableSource<Row>, KuduRowInputFormat inputFormat = new KuduRowInputFormat(configBuilder.build(), new RowResultRowConvertor(), tableInfo, predicates == null ? Collections.emptyList() : predicates, - projectedFields == null ? null : Lists.newArrayList(projectedFields)); + projectedFields == null ? null : Arrays.asList(projectedFields)); return env.createInput(inputFormat, (TypeInformation<Row>) TypeConversions.fromDataTypeToLegacyInfo(getProducedDataType())) .name(explainSource()); diff --git a/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/function/lookup/KuduRowDataLookupFunction.java b/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/function/lookup/KuduRowDataLookupFunction.java index d29588f..e26c080 100644 --- a/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/function/lookup/KuduRowDataLookupFunction.java +++ b/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/function/lookup/KuduRowDataLookupFunction.java @@ -28,12 +28,12 @@ import org.apache.flink.connectors.kudu.connector.reader.KuduInputSplit; import org.apache.flink.connectors.kudu.connector.reader.KuduReader; import org.apache.flink.connectors.kudu.connector.reader.KuduReaderConfig; import org.apache.flink.connectors.kudu.connector.reader.KuduReaderIterator; -import org.apache.flink.shaded.guava30.com.google.common.cache.Cache; -import org.apache.flink.shaded.guava30.com.google.common.cache.CacheBuilder; import org.apache.flink.table.data.GenericRowData; import org.apache.flink.table.data.RowData; import org.apache.flink.table.functions.FunctionContext; import org.apache.flink.table.functions.TableFunction; +import org.apache.kudu.shaded.com.google.common.cache.Cache; +import org.apache.kudu.shaded.com.google.common.cache.CacheBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/utils/KuduTableUtils.java b/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/utils/KuduTableUtils.java index f5d7ca7..cae36a3 100644 --- a/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/utils/KuduTableUtils.java +++ b/flink-connector-kudu/src/main/java/org/apache/flink/connectors/kudu/table/utils/KuduTableUtils.java @@ -21,7 +21,6 @@ import org.apache.flink.connectors.kudu.connector.ColumnSchemasFactory; import org.apache.flink.connectors.kudu.connector.CreateTableOptionsFactory; import org.apache.flink.connectors.kudu.connector.KuduFilterInfo; import org.apache.flink.connectors.kudu.connector.KuduTableInfo; -import org.apache.flink.shaded.guava30.com.google.common.collect.Lists; import org.apache.flink.table.api.TableSchema; import org.apache.flink.table.expressions.CallExpression; import org.apache.flink.table.expressions.Expression; @@ -120,7 +119,7 @@ public class KuduTableUtils { } public static List<String> getHashColumns(Map<String, String> tableProperties) { - return Lists.newArrayList(tableProperties.get(KUDU_HASH_COLS.key()).split(",")); + return Arrays.asList(tableProperties.get(KUDU_HASH_COLS.key()).split(",")); } diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..6d8617a --- /dev/null +++ b/pom.xml @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<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/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.flink</groupId> + <artifactId>flink-connector-parent</artifactId> + <version>1.1.0</version> + </parent> + + <artifactId>flink-connector-kudu-parent</artifactId> + <version>2.0-SNAPSHOT</version> + + <name>Flink : Connectors : Kudu Parent</name> + <packaging>pom</packaging> + <url>https://flink.apache.org</url> + <inceptionYear>2024</inceptionYear> + + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + + <scm> + <url>https://github.com/apache/flink-connector-kudu</url> + <connection>g...@github.com:apache/flink-connector-kudu.git</connection> + <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/flink-connector-kudu.git</developerConnection> + </scm> + + <properties> + <flink.version>1.17.2</flink.version> + <kudu.version>1.13.0</kudu.version> + <scala.binary.version>2.12</scala.binary.version> + + <assertj.version>3.25.3</assertj.version> + <junit5.version>5.10.2</junit5.version> + <mockito.version>1.10.19</mockito.version> + <testcontainers.version>1.17.6</testcontainers.version> + + <log4j.version>2.23.1</log4j.version> + <slf4j.version>1.7.36</slf4j.version> + + <!-- For directory plugin --> + <flink.parent.artifactId>flink-connector-kudu-parent</flink.parent.artifactId> + </properties> + + <modules> + <module>flink-connector-kudu</module> + </modules> + + <dependencies> + <!-- Root dependencies for all projects --> + + <!-- Test dependencies --> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <scope>test</scope> + </dependency> + + <!-- Tests will have log4j as the default logging framework available --> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-slf4j-impl</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <!-- API bridge between log4j 1 and 2 --> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-1.2-api</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <!-- This section defines the module versions that are used if nothing else is specified. --> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-clients</artifactId> + <version>${flink.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-streaming-java</artifactId> + <version>${flink.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-table-api-java-bridge</artifactId> + <version>${flink.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-table-common</artifactId> + <version>${flink.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-table-planner-loader</artifactId> + <version>${flink.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-table-runtime</artifactId> + <version>${flink.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-test-utils</artifactId> + <version>${flink.version}</version> + </dependency> + + <!-- Flink ArchUnit --> + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-architecture-tests-test</artifactId> + <version>${flink.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.kudu</groupId> + <artifactId>kudu-client</artifactId> + <version>${kudu.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.kudu</groupId> + <artifactId>kudu-test-utils</artifactId> + <version>${kudu.version}</version> + <exclusions> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4j.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-slf4j-impl</artifactId> + <version>${log4j.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>${log4j.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>${log4j.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-1.2-api</artifactId> + <version>${log4j.version}</version> + </dependency> + + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>${assertj.version}</version> + </dependency> + + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <version>${mockito.version}</version> + </dependency> + + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-migrationsupport</artifactId> + <version>${junit5.version}</version> + </dependency> + + <dependency> + <groupId>org.junit</groupId> + <artifactId>junit-bom</artifactId> + <version>${junit5.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + + <dependency> + <groupId>org.testcontainers</groupId> + <artifactId>testcontainers-bom</artifactId> + <version>${testcontainers.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + + <!-- Start of dependencies for dependency convergence --> + <dependency> + <groupId>com.esotericsoftware.kryo</groupId> + <artifactId>kryo</artifactId> + <version>2.24.0</version> + </dependency> + + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.12.0</version> + </dependency> + <!-- End of dependencies for dependency convergence --> + </dependencies> + </dependencyManagement> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <inherited>false</inherited> + <dependencies> + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-ci-tools</artifactId> + <version>${flink.version}</version> + </dependency> + </dependencies> + </plugin> + + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <inherited>false</inherited> + </plugin> + + <plugin> + <groupId>com.diffplug.spotless</groupId> + <artifactId>spotless-maven-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.commonjava.maven.plugins</groupId> + <artifactId>directory-maven-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + </plugin> + </plugins> + </build> +</project>