blob: 92f1478f3f563d287c482485cfdae148effde47d [file] [log] [blame]
<?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</groupId>
<artifactId>apache</artifactId>
<version>23</version>
<relativePath/>
</parent>
<groupId>org.apache.custos</groupId>
<artifactId>custos</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>custos-core-services</module>
<module>custos-integration-services</module>
<module>custos-core-services-client-stubs</module>
<module>custos-integration-core</module>
<module>custos-federated-services-clients</module>
<module>custos-client-sdks</module>
<module>custos-tests</module>
<module>custos-external-services-distributions</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.github.lognet</groupId>
<artifactId>grpc-spring-boot-starter</artifactId>
<version>${grpc.spring.boot.version}</version>
<exclusions>
<exclusion>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>${javax.annotation.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
<version>${spring.cloud.slueth.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
<version>${spring.cloud.slueth.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave-instrumentation-grpc</artifactId>
<version>${brave.version}</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>${io.micrometer.version}</version>
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-common-protos</artifactId>
<version>${google.common.protos}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.java}</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>${javax.persistance}</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>${keycloak.admin.version}</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-authz-client</artifactId>
<version>${keycloak.admin.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>${reasteasy.client.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>${reasteasy.client.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${reasteasy.client.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>${reasteasy.client.version}</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>${com.google.protobuf.util}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.swagger.version}</version>
</dependency>
<!--Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox.swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>${springfox.swagger.version}</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-common</artifactId>
<version>${springfox.swagger.version}</version>
</dependency>
<!-- SCIM-->
<dependency>
<groupId>org.wso2.charon</groupId>
<artifactId>org.wso2.charon3.core</artifactId>
<version>${org.wso2.charon}</version>
</dependency>
<!--Kube -->
<dependency>
<groupId>io.kubernetes</groupId>
<artifactId>client-java</artifactId>
<version>${kube.java.client.version}</version>
</dependency>
<!-- Integration tests dependencies -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${org.json.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${log.back.version}</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>${com.jcraft.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${io.commons.version}</version>
</dependency>
<!-- Secret handling dependencies -->
<dependency>
<groupId>com.codahale</groupId>
<artifactId>shamir</artifactId>
<version>${com.codahale.version}</version>
</dependency>
<!-- dozer -->
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>${dozer.version}</version>
</dependency>
<!--- kafka -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka-clients.version}</version>
</dependency>
<!--- email sending -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>${email.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin}</version>
<executions>
<execution>
<id>default</id>
</execution>
</executions>
<configuration>
<release>${java.version}</release>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>
/Users/isururanawaka/Documents/Airavata_Repository/airavata-custos/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos
</outputDirectory> <!-- output directory -->
<resources>
<resource>
<directory>${basedir}/src/main/proto
</directory> <!-- source directory -->
<includes>
<include>**/*.proto</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>${protobuf.maven.plugin}</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:3.0.2:exe:${os.detected.classifier}
</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier}
</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>container</id>
<properties>
<spring.profiles.active>staging</spring.profiles.active>
<vault.token>{{token}}</vault.token>
<vault.scheme>https</vault.scheme>
<vault.host>vault.custos.scigap.org</vault.host>
<vault.port>31190</vault.port>
<vault.uri>https://vault.custos.scigap.org:31190</vault.uri>
<iam.dev.username>{{token}}</iam.dev.username>
<iam.dev.password>{{token}}</iam.dev.password>
<iam.staging.username>{{token}}</iam.staging.username>
<iam.staging.password>{{token}}</iam.staging.password>
<cilogon.dev.id>{{token}}</cilogon.dev.id>
<cilogon.dev.sec>{{token}}</cilogon.dev.sec>
<cilogon.staging.id>{{token}}</cilogon.staging.id>
<cilogon.staging.sec>{{token}}</cilogon.staging.sec>
<custos.email.password>{{token}}</custos.email.password>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<!-- <excludes>-->
<!-- <exclude>vault-client-truststore.pkcs12</exclude>-->
<!-- <exclude>keycloak-client-truststore.pkcs12</exclude>-->
<!-- </excludes>-->
<includes>
<include>**/*.pcks12</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin}</version>
<executions>
<execution>
<id>container</id>
</execution>
</executions>
<configuration>
<release>${java.version}</release>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<id>container</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>${protobuf.maven.plugin}</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:3.0.2:exe:${os.detected.classifier}
</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier}
</pluginArtifact>
</configuration>
<executions>
<execution>
<id>container</id>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
<goal>compile-python</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.plugin.version}</version>
<executions>
<execution>
<id>container</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<noCache>true</noCache>
<serverId>docker.io</serverId>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<tag>${project.version}</tag>
<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>com.deviceinsight.helm</groupId>
<artifactId>helm-maven-plugin</artifactId>
<version>${helm.maven.plugin.version}</version>
<configuration>
<chartName>${project.artifactId}</chartName>
<chartFolder>src/main/helm</chartFolder>
<chartRepoUrl>https://charts.helm.sh/stable</chartRepoUrl>
<!-- <chartRepoUrl>https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts</chartRepoUrl>-->
<helmVersion>3.4.2</helmVersion>
<!-- <chartRepoUrl>null</chartRepoUrl>-->
<chartRepoUrl>https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts</chartRepoUrl>
<helmVersion>2.16.0</helmVersion>
<strictLint>true</strictLint>
<valuesFile>src/main/helm/values.yaml</valuesFile>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>container</id>
<goals>
<goal>package</goal>
<goal>lint</goal>
<goal>template</goal>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>scp-to-remote</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-commons-net</artifactId>
<version>1.6.5</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.10.9</version>
</dependency>
</dependencies>
<configuration>
<target>
<scp localFile="${project.basedir}/target/helm/${project.artifactId}-${project.version}.tgz"
remoteToFile="ubuntu@${host}:/home/ubuntu/custos/artifacts"
verbose="true"
keyfile="${ssh.privatekey}"
passphrase="${ssh.passphrase}" trust="true">
</scp>
<sshexec host="${host}"
username="ubuntu"
keyfile="${ssh.privatekey}"
passphrase="${ssh.passphrase}" trust="true"
command="helm delete ${project.artifactId} -n custos"/>
<sshexec host="${host}"
username="ubuntu"
keyfile="${ssh.privatekey}"
passphrase="${ssh.passphrase}" trust="true"
command="helm install ${project.artifactId} /home/ubuntu/custos/artifacts/${project.artifactId}-${project.version}.tgz -n custos"/>
<!-- SSH -->
<taskdef name="sshexec"
classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec"
classpathref="maven.plugin.classpath" />
</target>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>${apache.rat.plugin.version}</version>
<configuration>
<excludes>
<exclude>**/*.json</exclude>
</excludes>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>integration-tests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefile.plugin.version}</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>${os.maven.plugin}</version>
</extension>
</extensions>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<org.slf4j.version>1.7.25</org.slf4j.version>
<log4j.version>1.2.17</log4j.version>
<thrift.version>0.12.0</thrift.version>
<openjpa.version>2.4.3</openjpa.version>
<mysql.connector.version>5.1.34</mysql.connector.version>
<maven.assembly.plugin>3.3.0</maven.assembly.plugin>
<junit.version>4.8.1</junit.version>
<jmockit.version>1.8</jmockit.version>
<java.version>11</java.version>
<javax.annotation.version>1.3.2</javax.annotation.version>
<maven.compiler.plugin>3.8.1</maven.compiler.plugin>
<protobuf.maven.plugin>0.5.1</protobuf.maven.plugin>
<os.maven.plugin>1.5.0.Final</os.maven.plugin>
<!-- Spring dependencies -->
<spring.boot.version>2.2.0.RELEASE</spring.boot.version>
<spring.cloud.version>Greenwich.RELEASE</spring.cloud.version>
<grpc.spring.boot.version>2.4.4</grpc.spring.boot.version>
<spring.cloud.stream.version>2.0.0.RELEASE</spring.cloud.stream.version>
<spring.cloud.slueth.version>2.1.6.RELEASE</spring.cloud.slueth.version>
<io.grpc.version>1.25.0</io.grpc.version>
<google.common.protos>1.17.0</google.common.protos>
<io.micrometer.version>1.3.1</io.micrometer.version>
<brave.version>5.9.1</brave.version>
<docker.image.prefix>apachecustos</docker.image.prefix>
<docker.image.repo>custos</docker.image.repo>
<docker.plugin.version>1.4.13</docker.plugin.version>
<helm.maven.plugin.version>2.8.0</helm.maven.plugin.version>
<maven.assembly.plugin.version>3.2.0</maven.assembly.plugin.version>
<mysql.connector.java>8.0.18</mysql.connector.java>
<javax.persistance>1.0.2</javax.persistance>
<keycloak.admin.version>9.0.2</keycloak.admin.version>
<reasteasy.client.version>3.0.14.Final</reasteasy.client.version>
<com.google.protobuf.util>3.11.3</com.google.protobuf.util>
<springfox.swagger.version>2.9.2</springfox.swagger.version>
<org.wso2.charon>3.3.16</org.wso2.charon>
<jaxb.version>2.1</jaxb.version>
<kube.java.client.version>5.0.0</kube.java.client.version>
<testng.version>6.8</testng.version>
<org.json.version>20190722</org.json.version>
<apache.rat.plugin.version>0.13</apache.rat.plugin.version>
<maven.surefile.plugin.version>3.0.0-M4</maven.surefile.plugin.version>
<log.back.version>1.2.3</log.back.version>
<com.jcraft.version>0.1.55</com.jcraft.version>
<io.commons.version>2.7</io.commons.version>
<com.codahale.version>0.7.0</com.codahale.version>
<host>service.staging.usecustos.org</host>
<ssh.privatekey>/Users/isururanawaka/.ssh/custos/id_rsa</ssh.privatekey>
<ssh.passphrase>isjarana</ssh.passphrase>
<dozer.version>5.5.1</dozer.version>
<kafka-clients.version>1.0.0</kafka-clients.version>
<email.version>1.5.0-b01</email.version>
</properties>
</project>