| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| 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. See accompanying LICENSE file. |
| --> |
| <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| <parent> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>ozone</artifactId> |
| <version>2.1.0-SNAPSHOT</version> |
| </parent> |
| <artifactId>ozone-recon</artifactId> |
| <name>Apache Ozone Recon</name> |
| <properties> |
| <classpath.skip>false</classpath.skip> |
| <pnpm.version>8.15.7</pnpm.version> |
| </properties> |
| <dependencies> |
| <dependency> |
| <groupId>aopalliance</groupId> |
| <artifactId>aopalliance</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-annotations</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-databind</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.inject</groupId> |
| <artifactId>guice</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.inject.extensions</groupId> |
| <artifactId>guice-servlet</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.jolbox</groupId> |
| <artifactId>bonecp</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>info.picocli</groupId> |
| <artifactId>picocli</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.annotation</groupId> |
| <artifactId>jakarta.annotation-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.validation</groupId> |
| <artifactId>jakarta.validation-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.ws.rs</groupId> |
| <artifactId>jakarta.ws.rs-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.xml.bind</groupId> |
| <artifactId>jakarta.xml.bind-api</artifactId> |
| </dependency> |
| <dependency> |
| <!-- |
| 1. for compiling generated sources with Java 11+ |
| 2. at runtime for jersey-common |
| --> |
| <groupId>javax.annotation</groupId> |
| <artifactId>javax.annotation-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>javax.inject</groupId> |
| <artifactId>javax.inject</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>javax.servlet</groupId> |
| <artifactId>javax.servlet-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-collections4</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-compress</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.derby</groupId> |
| <artifactId>derby</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-auth</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-common</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-hdfs-client</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-common</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-config</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-container-service</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-interface-client</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-interface-server</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-managed-rocksdb</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-server-framework</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-server-scm</artifactId> |
| </dependency> |
| <!-- visible only for ContainerOperationClient --> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>ozone-cli-admin</artifactId> |
| <exclusions> |
| <exclusion> |
| <groupId>*</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>ozone-common</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>ozone-interface-client</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>ozone-interface-storage</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>ozone-manager</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>ozone-reconcodegen</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ratis</groupId> |
| <artifactId>ratis-common</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ratis</groupId> |
| <artifactId>ratis-proto</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-servlet</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.hk2</groupId> |
| <artifactId>guice-bridge</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.hk2</groupId> |
| <artifactId>hk2-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.containers</groupId> |
| <artifactId>jersey-container-servlet-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.core</groupId> |
| <artifactId>jersey-common</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.core</groupId> |
| <artifactId>jersey-server</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.jooq</groupId> |
| <artifactId>jooq</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.reflections</groupId> |
| <artifactId>reflections</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.rocksdb</groupId> |
| <artifactId>rocksdbjni</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-core</artifactId> |
| <!-- <scope>test</scope> but transitive via spring-jdbc --> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-jdbc</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-tx</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.xerial</groupId> |
| <artifactId>sqlite-jdbc</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.inject.extensions</groupId> |
| <artifactId>guice-assistedinject</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.hk2.external</groupId> |
| <artifactId>jakarta.inject</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.inject</groupId> |
| <artifactId>jersey-hk2</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.media</groupId> |
| <artifactId>jersey-media-jaxb</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.media</groupId> |
| <artifactId>jersey-media-json-jackson</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| |
| <!-- Test dependencies --> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-common</artifactId> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-test-utils</artifactId> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| <build> |
| <resources> |
| <resource> |
| <directory>src/main/resources</directory> |
| <excludes> |
| <exclude>**/node_modules/**</exclude> |
| </excludes> |
| </resource> |
| </resources> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <configuration> |
| <annotationProcessorPaths> |
| <path> |
| <groupId>org.apache.ozone</groupId> |
| <artifactId>hdds-config</artifactId> |
| <version>${hdds.version}</version> |
| </path> |
| </annotationProcessorPaths> |
| <annotationProcessors> |
| <annotationProcessor>org.apache.hadoop.hdds.conf.ConfigFileGenerator</annotationProcessor> |
| </annotationProcessors> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <configuration> |
| <ignoredUnusedDeclaredDependencies> |
| <ignoredUnusedDeclaredDependency>javax.annotation:javax.annotation-api:jar</ignoredUnusedDeclaredDependency> |
| </ignoredUnusedDeclaredDependencies> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>ban-annotations</id> |
| <!-- override default restriction from root POM --> |
| <configuration> |
| <rules> |
| <restrictImports> |
| <reason>Only selected annotation processors are enabled, see configuration of maven-compiler-plugin.</reason> |
| <bannedImports> |
| <bannedImport>org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator</bannedImport> |
| <bannedImport>org.apache.hadoop.hdds.scm.metadata.Replicate</bannedImport> |
| <bannedImport>org.kohsuke.MetaInfServices</bannedImport> |
| </bannedImports> |
| </restrictImports> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <configuration> |
| <executable>java</executable> |
| <classpathScope>compile</classpathScope> |
| <mainClass>org.apache.ozone.recon.codegen.JooqCodeGenerator</mainClass> |
| <cleanupDaemonThreads>false</cleanupDaemonThreads> |
| <arguments> |
| <argument>${project.build.directory}/generated-sources/java</argument> |
| </arguments> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>java</goal> |
| </goals> |
| <phase>generate-resources</phase> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>add-source</id> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <phase>generate-sources</phase> |
| <configuration> |
| <sources> |
| <source>${project.build.directory}/generated-sources/java</source> |
| </sources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>com.github.spotbugs</groupId> |
| <artifactId>spotbugs-maven-plugin</artifactId> |
| <configuration> |
| <excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml</excludeFilterFile> |
| </configuration> |
| </plugin> |
| <!-- |
| 1. used for local installation of node and yarn |
| 2. to install dependencies with yarn install |
| 3. building the frontend application |
| --> |
| <plugin> |
| <groupId>com.github.eirslett</groupId> |
| <artifactId>frontend-maven-plugin</artifactId> |
| <configuration> |
| <npmInheritsProxyConfigFromMaven>false</npmInheritsProxyConfigFromMaven> |
| <installDirectory>target</installDirectory> |
| <workingDirectory>${basedir}/src/main/resources/webapps/recon/ozone-recon-web</workingDirectory> |
| <nodeVersion>v${nodejs.version}</nodeVersion> |
| <pnpmVersion>${pnpm.version}</pnpmVersion> |
| </configuration> |
| <executions> |
| <execution> |
| <id>Install node and npm locally to the project</id> |
| <goals> |
| <goal>install-node-and-pnpm</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>set pnpm@${pnpm.version} store path</id> |
| <goals> |
| <goal>pnpm</goal> |
| </goals> |
| <configuration> |
| <arguments>config set store-dir ~/.pnpm-store</arguments> |
| </configuration> |
| </execution> |
| <execution> |
| <id>install frontend dependencies</id> |
| <goals> |
| <goal>pnpm</goal> |
| </goals> |
| <configuration> |
| <arguments>install --frozen-lockfile</arguments> |
| </configuration> |
| </execution> |
| <execution> |
| <id>Build frontend</id> |
| <goals> |
| <goal>pnpm</goal> |
| </goals> |
| <configuration> |
| <arguments>run build</arguments> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-clean-plugin</artifactId> |
| <configuration> |
| <filesets> |
| <fileset> |
| <directory>${basedir}/src/main/resources/webapps/recon/ozone-recon-web/build</directory> |
| <includes> |
| <include>**</include> |
| </includes> |
| <followSymlinks>false</followSymlinks> |
| </fileset> |
| <fileset> |
| <directory>${basedir}/src/main/resources/webapps/recon/ozone-recon-web/node_modules</directory> |
| <includes> |
| <include>**</include> |
| </includes> |
| <followSymlinks>false</followSymlinks> |
| </fileset> |
| </filesets> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>Copy frontend build to target</id> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <phase>process-resources</phase> |
| <configuration> |
| <outputDirectory>${project.build.outputDirectory}/webapps/recon</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${basedir}/src/main/resources/webapps/recon/ozone-recon-web/build</directory> |
| <excludes> |
| <exclude>static/**</exclude> |
| </excludes> |
| <filtering>true</filtering> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| <execution> |
| <id>Copy frontend static files to target</id> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <phase>process-resources</phase> |
| <configuration> |
| <outputDirectory>${project.build.outputDirectory}/webapps/static</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${basedir}/src/main/resources/webapps/recon/ozone-recon-web/build/static</directory> |
| <filtering>true</filtering> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |