| <?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.fluss</groupId> |
| <artifactId>fluss</artifactId> |
| <version>0.9-SNAPSHOT</version> |
| </parent> |
| |
| <artifactId>fluss-test-coverage</artifactId> |
| <packaging>jar</packaging> |
| <name>Fluss : Test Code Coverage</name> |
| <description>Module for aggregating code coverage across all modules.</description> |
| |
| <dependencies> |
| <!-- All Fluss modules which should report code coverage --> |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-client</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-common</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-rpc</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-server</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-flink-common</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-flink-2.1</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-flink-1.20</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-flink-1.19</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.fluss</groupId> |
| <artifactId>fluss-flink-1.18</artifactId> |
| <version>${project.version}</version> |
| <scope>compile</scope> |
| </dependency> |
| </dependencies> |
| |
| <profiles> |
| <profile> |
| <id>test-core</id> |
| <build> |
| <plugins> |
| <!-- required by jacoco for the goal: check to work --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-class-files</id> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <overwrite>false</overwrite> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/../</directory> |
| <includes> |
| <include>**/target/classes/**</include> |
| </includes> |
| <excludes> |
| <exclude>fluss-test-coverage/**</exclude> |
| <exclude>fluss-test-utils/**</exclude> |
| <exclude>fluss-flink/**</exclude> |
| <exclude>fluss-lake/**</exclude> |
| </excludes> |
| </resource> |
| </resources> |
| <outputDirectory>${project.build.directory}/classes</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>test-flink</id> |
| <build> |
| <plugins> |
| <!-- required by jacoco for the goal: check to work --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-class-files</id> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <overwrite>false</overwrite> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/../</directory> |
| <includes> |
| <include>fluss-flink/**/target/classes/**</include> |
| </includes> |
| <excludes> |
| <exclude>fluss-test-coverage/**</exclude> |
| <exclude>fluss-test-utils/**</exclude> |
| <!-- exclude adapter classes to avoid Jacoco error: "Can't add different class with same name" --> |
| <exclude>fluss-flink/**/target/classes/org/apache/fluss/flink/adapter/**</exclude> |
| </excludes> |
| </resource> |
| </resources> |
| <outputDirectory>${project.build.directory}/classes</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>test-lake</id> |
| <build> |
| <plugins> |
| <!-- required by jacoco for the goal: check to work --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-class-files</id> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <overwrite>false</overwrite> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/../</directory> |
| <includes> |
| <include>fluss-lake/**/target/classes/**</include> |
| <include>fluss-flink/fluss-flink-1.19/**/target/classes/**</include> |
| <include>fluss-flink/fluss-flink-1.18/**/target/classes/**</include> |
| </includes> |
| <excludes> |
| <exclude>fluss-test-coverage/**</exclude> |
| <exclude>fluss-test-utils/**</exclude> |
| <!-- exclude adapter classes to avoid Jacoco error: "Can't add different class with same name" --> |
| <exclude>fluss-flink/**/target/classes/org/apache/fluss/flink/adapter/**</exclude> |
| </excludes> |
| </resource> |
| </resources> |
| <outputDirectory>${project.build.directory}/classes</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| |
| <build> |
| |
| <plugins> |
| |
| |
| <!-- test code coverage aggregated from all modules --> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <configuration> |
| <excludes> |
| <exclude>**/META-INF/**</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>report-aggregate</goal> |
| </goals> |
| <configuration> |
| <dataFileIncludes> |
| <dataFileInclude>**/target/jacoco.exec</dataFileInclude> |
| </dataFileIncludes> |
| <outputDirectory>${project.reporting.outputDirectory}/jacoco-aggregate |
| </outputDirectory> |
| </configuration> |
| </execution> |
| |
| <execution> |
| <id>merge-results-data</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>merge</goal> |
| </goals> |
| <configuration> |
| <fileSets> |
| <fileSet> |
| <directory>${project.basedir}/../</directory> |
| <includes> |
| <include>**/target/jacoco.exec</include> |
| </includes> |
| </fileSet> |
| </fileSets> |
| <destFile>${project.basedir}/target/jacoco-aggregate.exec</destFile> |
| </configuration> |
| </execution> |
| |
| <execution> |
| <id>jacoco-check</id> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <configuration> |
| <dataFile>${project.basedir}/target/jacoco-aggregate.exec</dataFile> |
| <rules> |
| <rule> |
| <element>CLASS</element> |
| <limits> |
| <limit> |
| <counter>LINE</counter> |
| <value>COVEREDRATIO</value> |
| <minimum>70%</minimum> |
| </limit> |
| </limits> |
| <excludes> |
| <exclude>org.apache.fluss.protogen.*</exclude> |
| <exclude>org.apache.fluss.memory.*</exclude> |
| <exclude>org.apache.fluss.utils.*</exclude> |
| <exclude>org.apache.fluss.exception.*</exclude> |
| <exclude>org.apache.fluss.row.arrow.*</exclude> |
| <exclude> |
| org.apache.fluss.row.columnar.BytesColumnVector.Bytes |
| </exclude> |
| <exclude>org.apache.fluss.row.encode.RowEncoder</exclude> |
| <exclude>org.apache.fluss.row.encode.KeyEncoder</exclude> |
| <exclude>org.apache.fluss.table.*</exclude> |
| <exclude>org.apache.fluss.record.*</exclude> |
| <exclude>org.apache.fluss.kv.*</exclude> |
| <exclude>org.apache.fluss.io.*</exclude> |
| <exclude>org.apache.fluss.bucketing.BucketingFunction</exclude> |
| <exclude>org.apache.fluss.server.ServerBase</exclude> |
| <exclude>org.apache.fluss.server.utils.ShutdownHookUtil |
| </exclude> |
| <exclude>org.apache.fluss.fs.FSData*StreamWrapper |
| </exclude> |
| <exclude> |
| org.apache.fluss.server.tablet.TabletServerGateway |
| </exclude> |
| <exclude>org.apache.fluss.client.*</exclude> |
| <exclude>org.apache.fluss.server.*</exclude> |
| <exclude>org.apache.fluss.replica.*</exclude> |
| <exclude>org.apache.fluss.api.*</exclude> |
| <exclude>org.apache.fluss.rpc.*</exclude> |
| <exclude>org.apache.fluss.metadata.*</exclude> |
| <exclude>org.apache.fluss.cluster.*</exclude> |
| <exclude>org.apache.fluss.Bucket</exclude> |
| <exclude>org.apache.fluss.remote.*</exclude> |
| <exclude>org.apache.fluss.compression.*</exclude> |
| <exclude> |
| org.apache.fluss.security.auth.sasl.plain.PlainSaslServer.PlainSaslServerFactory |
| </exclude> |
| <exclude>org.apache.fluss.security.auth.ServerAuthenticator</exclude> |
| <exclude>org.apache.fluss.config.cluster.AlterConfig</exclude> |
| <!-- start exclude for flink-connector --> |
| <exclude>org.apache.fluss.flink.utils.*</exclude> |
| <exclude>org.apache.fluss.flink.source.* |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.source.FlinkTableSource.* |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.source.split.HybridSnapshotLogSplitState |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.source.split.LogSplitState |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.source.state.SourceEnumeratorState |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.source.event.PartitionBucketsUnsubscribedEvent |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.source.emitter.FlinkRecordEmitter |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.source.reader.FlinkSourceReader |
| </exclude> |
| <exclude>org.apache.fluss.flink.sink.*</exclude> |
| <exclude> |
| org.apache.fluss.flink.metrics.* |
| </exclude> |
| <!-- end exclude for flink-connector --> |
| <!-- exclude flink 1.18 compatibility class for sink --> |
| <exclude>org.apache.flink.streaming.api.functions.sink.v2.*</exclude> |
| <exclude>org.apache.fluss.fs.hdfs.HdfsPlugin |
| </exclude> |
| <exclude>org.apache.fluss.fs.hdfs.HdfsSecurityTokenReceiver</exclude> |
| <exclude>org.apache.fluss.fs.oss.*</exclude> |
| <exclude>org.apache.fluss.fs.s3.*</exclude> |
| <exclude>org.apache.fluss.fs.obs.*</exclude> |
| <exclude>com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser* |
| </exclude> |
| <exclude>org.apache.fluss.rocksdb.RocksIteratorWrapper |
| </exclude> |
| <exclude>org.apache.fluss.plugin.PluginUtils</exclude> |
| <!-- start exclude for metric --> |
| <exclude>org.apache.fluss.metrics.*</exclude> |
| <!-- end exclude for metric --> |
| <exclude>org.apache.fluss.flink.lake.*</exclude> |
| <exclude>org.apache.fluss.kafka.*</exclude> |
| <!-- exclude for fluss-ci-tools --> |
| <exclude>org.apache.fluss.tools.ci.*</exclude> |
| <!-- end exclude for predicate --> |
| <exclude>org.apache.fluss.predicate.*</exclude> |
| <!-- end exclude for lake source --> |
| <exclude>org.apache.fluss.lake.source.*</exclude> |
| <!-- exclude for dummy class --> |
| <exclude>org.apache.fluss.dist.DummyClass</exclude> |
| <exclude>org.apache.fluss.flink.DummyClass120</exclude> |
| <exclude>org.apache.fluss.lake.batch.ArrowRecordBatch</exclude> |
| <exclude>org.apache.fluss.lake.committer.CommittedLakeSnapshot</exclude> |
| <exclude>org.apache.fluss.lake.paimon.utils.FlussDataTypeToPaimonDataType</exclude> |
| <!-- start exclude for lake lance --> |
| <exclude>org.apache.fluss.lake.lance.*</exclude> |
| <!-- temporarily exclude iceberg --> |
| <exclude>org.apache.fluss.lake.iceberg.*</exclude> |
| <exclude>org.apache.fluss.row.encode.iceberg.*</exclude> |
| <exclude>org.apache.fluss.bucketing.IcebergBucketingFunction</exclude> |
| <!-- start exclude for flink tiering service --> |
| <exclude>org.apache.fluss.flink.tiering.source.TieringSourceOptions</exclude> |
| <exclude>org.apache.fluss.flink.tiering.source.TieringSource.Builder</exclude> |
| <exclude>org.apache.fluss.flink.tiering.source.TieringSource</exclude> |
| <exclude> |
| org.apache.fluss.flink.tiering.source.enumerator.TieringSourceEnumerator |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.tiering.source.enumerator.TieringSourceEnumerator.HeartBeatHelper |
| </exclude> |
| <exclude>org.apache.fluss.flink.tiering.source.TieringWriterInitContext |
| </exclude> |
| <exclude>org.apache.fluss.flink.tiering.source.TieringSourceReader</exclude> |
| <exclude>org.apache.fluss.flink.tiering.source.TableBucketWriteResultEmitter |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.tiering.source.TableBucketWriteResultTypeInfo* |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.tiering.committer.TieringCommitOperatorFactory |
| </exclude> |
| <exclude>org.apache.fluss.flink.tiering.committer.CommittableMessageTypeInfo* |
| </exclude> |
| <exclude> |
| org.apache.fluss.flink.tiering.LakeTieringJobBuilder |
| </exclude> |
| <exclude>org.apache.fluss.flink.tiering.FlussLakeTieringEntrypoint</exclude> |
| <!-- end exclude for flink tiering service --> |
| <!-- exclude flink compatibility class for catalogs --> |
| <exclude>org.apache.flink.table.catalog.*</exclude> |
| </excludes> |
| </rule> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-deploy-plugin</artifactId> |
| <configuration> |
| <skip>true</skip> |
| </configuration> |
| </plugin> |
| |
| </plugins> |
| </build> |
| |
| </project> |