The following is the gist of changes done - All low-level operation of creating a commit code was in HoodieClient which made it hard to share code if there was a compaction commit. - HoodieTableMetadata contained a mix of metadata and filtering files. (Also few operations required FileSystem to be passed in because those were called from TaskExecutors and others had FileSystem as a global variable). Since merge-on-read requires a lot of that code, but will have to change slightly on how it operates on the metadata and how it filters the files. The two set of operation are split into HoodieTableMetaClient and TableFileSystemView. - Everything (active commits, archived commits, cleaner log, save point log and in future delta and compaction commits) in HoodieTableMetaClient is a HoodieTimeline. Timeline is a series of instants, which has an in-built concept of inflight and completed commit markers. - A timeline can be queries for ranges, contains and also use to create new datapoint (create a new commit etc). Commit (and all the above metadata) creation/deletion is streamlined in a timeline - Multiple timelines can be merged into a single timeline, giving us an audit timeline to whatever happened in a hoodie dataset. This also helps with #55. - Move to java 8 and introduce java 8 succinct syntax in refactored code
610 lines
24 KiB
XML
610 lines
24 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
~ Copyright (c) 2016 Uber Technologies, Inc. (hoodie-dev-group@uber.com)
|
|
~
|
|
~ Licensed 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>
|
|
|
|
<groupId>com.uber.hoodie</groupId>
|
|
<artifactId>hoodie</artifactId>
|
|
<packaging>pom</packaging>
|
|
<version>0.3.1-SNAPSHOT</version>
|
|
<description>Hoodie is a Apache Spark library that provides the ability to efficiently do incremental processing on datasets in HDFS</description>
|
|
<url>https://github.com/uber/hoodie</url>
|
|
<name>Hoodie</name>
|
|
|
|
<modules>
|
|
<module>hoodie-common</module>
|
|
<module>hoodie-client</module>
|
|
<module>hoodie-cli</module>
|
|
<module>hoodie-hadoop-mr</module>
|
|
<module>hoodie-hive</module>
|
|
<module>hoodie-utilities</module>
|
|
</modules>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>Apache License, Version 2.0</name>
|
|
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
|
<distribution>repo</distribution>
|
|
<comments>A business-friendly OSS license</comments>
|
|
</license>
|
|
</licenses>
|
|
|
|
<organization>
|
|
<name>Uber Technologies Inc.</name>
|
|
<url>http://www.uber.com/</url>
|
|
</organization>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>vinoth</id>
|
|
<name>Vinoth Chandar</name>
|
|
<organization>Uber</organization>
|
|
</developer>
|
|
<developer>
|
|
<id>prasanna</id>
|
|
<name>Prasanna Rajaperumal</name>
|
|
<organization>Uber</organization>
|
|
</developer>
|
|
</developers>
|
|
|
|
<contributors>
|
|
<contributor>
|
|
<name>Wei Yan</name>
|
|
<organization>Uber</organization>
|
|
</contributor>
|
|
</contributors>
|
|
|
|
<inceptionYear>2015-2016</inceptionYear>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.google.code.gson</groupId>
|
|
<artifactId>gson</artifactId>
|
|
<version>2.3.1</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<properties>
|
|
<maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
|
|
<maven-jar-plugin.version>2.6</maven-jar-plugin.version>
|
|
<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
|
|
<parquet.version>1.8.1</parquet.version>
|
|
<junit.version>4.11</junit.version>
|
|
<mockito.version>1.9.5</mockito.version>
|
|
<log4j.version>1.2.17</log4j.version>
|
|
<cdh.version>5.7.2</cdh.version>
|
|
<hadoop.version>2.6.0</hadoop.version>
|
|
<hive.version>1.1.0</hive.version>
|
|
<metrics.version>3.1.1</metrics.version>
|
|
<spark.version>2.1.0</spark.version>
|
|
</properties>
|
|
|
|
<scm>
|
|
<connection>scm:git:git@github.com:uber/hoodie.git</connection>
|
|
<developerConnection>scm:git:git@github.com:uber/hoodie.git</developerConnection>
|
|
<url>git@github.com:uber/hoodie.git</url>
|
|
<tag>HEAD</tag>
|
|
</scm>
|
|
|
|
<mailingLists>
|
|
<mailingList>
|
|
<name>User List</name>
|
|
<post>hoodie-user@googlegroups.com</post>
|
|
<archive>https://groups.google.com/d/forum/hoodie-user/</archive>
|
|
</mailingList>
|
|
<mailingList>
|
|
<name>Developer List</name>
|
|
<post>hoodie-dev@googlegroups.com</post>
|
|
<archive>https://groups.google.com/d/forum/hoodie-dev/</archive>
|
|
</mailingList>
|
|
</mailingLists>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<configuration>
|
|
<source>1.8</source>
|
|
<target>1.8</target>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-release-plugin</artifactId>
|
|
<version>2.5.3</version>
|
|
<configuration>
|
|
<autoVersionSubmodules>true</autoVersionSubmodules>
|
|
<useReleaseProfile>false</useReleaseProfile>
|
|
<releaseProfiles>release</releaseProfiles>
|
|
<goals>deploy</goals>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>${maven-surefire-plugin.version}</version>
|
|
<configuration>
|
|
<!-- Sets the VM argument line used when unit tests are run. -->
|
|
<argLine>${surefireArgLine}</argLine>
|
|
<systemPropertyVariables>
|
|
<log4j.configuration>file:${project.build.testOutputDirectory}/log4j-surefire.properties</log4j.configuration>
|
|
</systemPropertyVariables>
|
|
<!-- Excludes integration tests when unit tests are run. -->
|
|
<excludes>
|
|
<exclude>**/IT*.java</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>${maven-dependency-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>${maven-jar-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<version>0.7.8</version>
|
|
<executions>
|
|
<!--
|
|
Prepares the property pointing to the JaCoCo runtime agent which
|
|
is passed as VM argument when Maven the Surefire plugin is executed.
|
|
-->
|
|
<execution>
|
|
<id>pre-unit-test</id>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
<configuration>
|
|
<!-- Sets the path to the file which contains the execution data. -->
|
|
<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
|
|
<!--
|
|
Sets the name of the property containing the settings
|
|
for JaCoCo runtime agent.
|
|
-->
|
|
<propertyName>surefireArgLine</propertyName>
|
|
</configuration>
|
|
</execution>
|
|
<!--
|
|
Ensures that the code coverage report for unit tests is created after
|
|
unit tests have been run.
|
|
-->
|
|
<execution>
|
|
<id>post-unit-test</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
<configuration>
|
|
<!-- Sets the path to the file which contains the execution data. -->
|
|
<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
|
|
<!-- Sets the output directory for the code coverage report. -->
|
|
<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!--<plugin>-->
|
|
<!--<groupId>org.codehaus.mojo</groupId>-->
|
|
<!--<artifactId>cobertura-maven-plugin</artifactId>-->
|
|
<!--<version>2.7</version>-->
|
|
<!--<configuration>-->
|
|
<!--<formats>-->
|
|
<!--<format>html</format>-->
|
|
<!--<format>xml</format>-->
|
|
<!--</formats>-->
|
|
<!--</configuration>-->
|
|
<!--<executions>-->
|
|
<!--<execution>-->
|
|
<!--<phase>test</phase>-->
|
|
<!--<goals>-->
|
|
<!--<goal>cobertura</goal>-->
|
|
<!--</goals>-->
|
|
<!--</execution>-->
|
|
<!--</executions>-->
|
|
<!--<dependencies>-->
|
|
<!--<dependency>-->
|
|
<!--<groupId>org.ow2.asm</groupId>-->
|
|
<!--<artifactId>asm</artifactId>-->
|
|
<!--<version>5.0.3</version>-->
|
|
<!--</dependency>-->
|
|
<!--</dependencies>-->
|
|
<!--</plugin>-->
|
|
<plugin>
|
|
<!-- excludes are inherited -->
|
|
<groupId>org.apache.rat</groupId>
|
|
<artifactId>apache-rat-plugin</artifactId>
|
|
<version>0.11</version>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>**/.*</exclude>
|
|
<exclude>**/*.txt</exclude>
|
|
<exclude>**/*.sh</exclude>
|
|
<exclude>**/dependency-reduced-pom.xml</exclude>
|
|
<exclude>**/test/resources/*.avro</exclude>
|
|
<exclude>**/test/resources/*.schema</exclude>
|
|
<exclude>**/test/resources/*.csv</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
<groupId>com.beust</groupId>
|
|
<artifactId>jcommander</artifactId>
|
|
<version>1.48</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>log4j</groupId>
|
|
<artifactId>log4j</artifactId>
|
|
<version>${log4j.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-client</artifactId>
|
|
<version>${hadoop.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.parquet</groupId>
|
|
<artifactId>parquet-avro</artifactId>
|
|
<version>${parquet.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.parquet</groupId>
|
|
<artifactId>parquet-hadoop</artifactId>
|
|
<version>${parquet.version}</version>
|
|
</dependency>
|
|
|
|
<!-- we have to stay at <= 16.0, due to issues with HBase client -->
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
<version>15.0</version>
|
|
</dependency>
|
|
|
|
<!-- Hadoop Libraries -->
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-common</artifactId>
|
|
<version>${hadoop.version}-cdh${cdh.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-hdfs</artifactId>
|
|
<version>${hadoop.version}-cdh${cdh.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-auth</artifactId>
|
|
<version>${hadoop.version}-cdh${cdh.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hive</groupId>
|
|
<artifactId>hive-common</artifactId>
|
|
<version>${hive.version}-cdh${cdh.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-mapreduce-client-core</artifactId>
|
|
<version>${hadoop.version}-cdh${cdh.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-mapreduce-client-common</artifactId>
|
|
<version>2.6.0-cdh5.7.2</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hive</groupId>
|
|
<artifactId>hive-exec</artifactId>
|
|
<version>1.1.0-cdh5.7.2</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-logging</groupId>
|
|
<artifactId>commons-logging</artifactId>
|
|
<version>1.2</version>
|
|
</dependency>
|
|
|
|
|
|
<!-- Storage formats -->
|
|
<!-- Spark parquet version 1.7.0 does not play well with the hive 1.1.0 installed in cluster (which requires twitter parquet 1.5.0) -->
|
|
<dependency>
|
|
<groupId>com.twitter</groupId>
|
|
<artifactId>parquet-hadoop-bundle</artifactId>
|
|
<version>1.5.0-cdh5.7.2</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.twitter</groupId>
|
|
<artifactId>parquet-hive-bundle</artifactId>
|
|
<version>1.5.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.parquet</groupId>
|
|
<artifactId>parquet-hive-bundle</artifactId>
|
|
<version>1.8.1</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.spark</groupId>
|
|
<artifactId>spark-core_2.10</artifactId>
|
|
<version>${spark.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.hbase</groupId>
|
|
<artifactId>hbase-client</artifactId>
|
|
<version>1.0.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.avro</groupId>
|
|
<artifactId>avro</artifactId>
|
|
<version>1.7.6-cdh5.7.2</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
<!-- Metrics -->
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-graphite</artifactId>
|
|
<version>${metrics.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-core</artifactId>
|
|
<version>${metrics.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>xerces</groupId>
|
|
<artifactId>xercesImpl</artifactId>
|
|
<version>2.9.1</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>xalan</groupId>
|
|
<artifactId>xalan</artifactId>
|
|
<version>2.7.1</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>commons-dbcp</groupId>
|
|
<artifactId>commons-dbcp</artifactId>
|
|
<version>1.4</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpcore</artifactId>
|
|
<version>4.3.2</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>1.7.5</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-log4j12</artifactId>
|
|
<version>1.7.5</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-configuration2</artifactId>
|
|
<version>2.1</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-annotations</artifactId>
|
|
<version>2.6.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.codehaus.jackson</groupId>
|
|
<artifactId>jackson-mapper-asl</artifactId>
|
|
<version>1.9.13</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.hive</groupId>
|
|
<artifactId>hive-jdbc</artifactId>
|
|
<version>${hive.version}-cdh${cdh.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.hive</groupId>
|
|
<artifactId>hive-service</artifactId>
|
|
<version>${hive.version}-cdh${cdh.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hive</groupId>
|
|
<artifactId>hive-metastore</artifactId>
|
|
<version>${hive.version}-cdh${cdh.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-lang3</artifactId>
|
|
<version>3.4</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<version>4.12</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-hdfs</artifactId>
|
|
<classifier>tests</classifier>
|
|
<version>${hadoop.version}-cdh${cdh.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-common</artifactId>
|
|
<classifier>tests</classifier>
|
|
<version>${hadoop.version}-cdh${cdh.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-all</artifactId>
|
|
<scope>test</scope>
|
|
<version>1.10.19</version>
|
|
</dependency>
|
|
<dependency>
|
|
<!--Used to test execution in task executor after de-serializing-->
|
|
<groupId>com.esotericsoftware</groupId>
|
|
<artifactId>kryo</artifactId>
|
|
<version>4.0.0</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
</dependencyManagement>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>cloudera-repo-releases</id>
|
|
<url>https://repository.cloudera.com/artifactory/repo/</url>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<distributionManagement>
|
|
<snapshotRepository>
|
|
<id>ossrh</id>
|
|
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
|
</snapshotRepository>
|
|
<repository>
|
|
<id>ossrh</id>
|
|
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
|
</repository>
|
|
</distributionManagement>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>release</id>
|
|
<activation>
|
|
<property>
|
|
<name>deployArtifacts</name>
|
|
<value>true</value>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>2.2.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<goals>
|
|
<goal>jar-no-fork</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>2.9.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-javadocs</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<additionalparam>-Xdoclint:none</additionalparam>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-gpg-plugin</artifactId>
|
|
<version>1.5</version>
|
|
<executions>
|
|
<execution>
|
|
<id>sign-artifacts</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>sign</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.sonatype.plugins</groupId>
|
|
<artifactId>nexus-staging-maven-plugin</artifactId>
|
|
<version>1.6.2</version>
|
|
<extensions>true</extensions>
|
|
<configuration>
|
|
<serverId>ossrh</serverId>
|
|
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
|
|
<autoReleaseAfterClose>true</autoReleaseAfterClose>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|