410 lines
11 KiB
XML
410 lines
11 KiB
XML
<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>
|
|
|
|
<groupId>org.gcube.idm</groupId>
|
|
<artifactId>idm-service</artifactId>
|
|
<version>0.0.1-SNAPSHOT</version>
|
|
<name>Identity Manager (IDM) Service</name>
|
|
<description>Identity Manager (IDM) Service - Smartgears</description>
|
|
<packaging>war</packaging>
|
|
|
|
<parent>
|
|
<groupId>org.gcube.tools</groupId>
|
|
<artifactId>maven-parent</artifactId>
|
|
<version>1.2.0</version>
|
|
</parent>
|
|
|
|
<properties>
|
|
<java.version>11</java.version>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
|
|
|
<!-- OPTIONAL. for authorization-control-library -->
|
|
<aspectj-plugin.version>1.14.0</aspectj-plugin.version>
|
|
|
|
<!-- bind jackson version to avoid inconsistences with keycloak dependencies -->
|
|
<jackson.version>2.15.3</jackson.version>
|
|
|
|
<enunciate.version>2.16.1</enunciate.version>
|
|
<keycloak.client.version>21.1.2</keycloak.client.version>
|
|
|
|
</properties>
|
|
|
|
<scm>
|
|
<connection>
|
|
scm:git:https://code-repo.d4science.org/gCubeSystem/${project.artifactId}.git</connection>
|
|
<developerConnection>
|
|
scm:git:https://code-repo.d4science.org/gCubeSystem/${project.artifactId}.git</developerConnection>
|
|
<url>
|
|
https://code-repo.d4science.org/gCubeSystem/${project.artifactId}</url>
|
|
</scm>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.gcube.distribution</groupId>
|
|
<artifactId>gcube-smartgears-bom</artifactId>
|
|
<version>3.0.1-SNAPSHOT</version>
|
|
<type>pom</type>
|
|
<scope>import</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<dependencies>
|
|
|
|
<!--
|
|
Keycloak use a older version of jackson (2.12.3).
|
|
some jackson libraries are imported only by keyclock,
|
|
not by smartgears so it mixed different versions.
|
|
We explicity import its jackson dependency to ovverride the version
|
|
-->
|
|
|
|
<dependency>
|
|
<groupId>org.gcube.idm.client</groupId>
|
|
<artifactId>idm-common-library</artifactId>
|
|
<version>1.0.0-SNAPSHOT</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-core</artifactId>
|
|
<version>${jackson.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
|
<artifactId>jackson-jaxrs-base</artifactId>
|
|
<version>${jackson.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
|
<artifactId>jackson-jaxrs-json-provider</artifactId>
|
|
<version>${jackson.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.module</groupId>
|
|
<artifactId>jackson-module-jaxb-annotations</artifactId>
|
|
<version>${jackson.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>jakarta.activation</groupId>
|
|
<artifactId>jakarta.activation-api</artifactId>
|
|
<version>2.1.2</version>
|
|
</dependency>
|
|
|
|
<!-- https://mvnrepository.com/artifact/com.auth0/java-jwt -->
|
|
<dependency>
|
|
<groupId>com.auth0</groupId>
|
|
<artifactId>java-jwt</artifactId>
|
|
<version>4.4.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
|
<version>${jackson.version}</version>
|
|
</dependency>
|
|
|
|
|
|
<!--
|
|
usermanagement-core depends on older httpcommon and gives this error on keycloak client:
|
|
java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy
|
|
https://stackoverflow.com/questions/44750124/classnotfoundexception-on-org-apache-http-ssl-truststrategy
|
|
|
|
solution: bind version, or exclude them in usermanagement-core
|
|
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpclient</artifactId>
|
|
<version>4.5.13</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpcore</artifactId>
|
|
<version>4.4.13</version>
|
|
</dependency>
|
|
-->
|
|
|
|
<!-- https://mvnrepository.com/artifact/org.keycloak/keycloak-admin-client -->
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-admin-client</artifactId>
|
|
<version>${keycloak.client.version}</version>
|
|
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.jboss.spec.javax.ws.rs</groupId>
|
|
<artifactId>jboss-jaxrs-api_3.0_spec</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.aspectj</groupId>
|
|
<artifactId>aspectjrt</artifactId>
|
|
</dependency>
|
|
|
|
<!-- smartgears -->
|
|
<dependency>
|
|
<groupId>org.gcube.core</groupId>
|
|
<artifactId>common-smartgears</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.gcube.common</groupId>
|
|
<artifactId>common-security</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.gcube.common</groupId>
|
|
<artifactId>common-authorization</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.gcube.common</groupId>
|
|
<artifactId>authorization-utils</artifactId>
|
|
<version>2.2.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.gcube.common</groupId>
|
|
<artifactId>authorization-control-library</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.gcube.core</groupId>
|
|
<artifactId>common-smartgears-app</artifactId>
|
|
</dependency>
|
|
|
|
<!-- jersey -->
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.containers</groupId>
|
|
<artifactId>jersey-container-servlet</artifactId>
|
|
</dependency>
|
|
|
|
|
|
<!--
|
|
https://mvnrepository.com/artifact/org.glassfish.jersey.inject/jersey-cdi2-se -->
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.inject</groupId>
|
|
<artifactId>jersey-cdi2-se</artifactId>
|
|
</dependency>
|
|
|
|
<!-- add jackson as json provider -->
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.media</groupId>
|
|
<artifactId>jersey-media-json-jackson</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Required for Enunciate plugin -->
|
|
<!-- https://mvnrepository.com/artifact/com.webcohesion.enunciate/enunciate-core-annotations -->
|
|
<dependency>
|
|
<groupId>com.webcohesion.enunciate</groupId>
|
|
<artifactId>enunciate-core-annotations</artifactId>
|
|
<version>${enunciate.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.webcohesion.enunciate</groupId>
|
|
<artifactId>enunciate-rt-util</artifactId>
|
|
<version>${enunciate.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- END Required for Enunciate plugin -->
|
|
|
|
<!-- Test libraries -->
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<version>4.11</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.aspectj</groupId>
|
|
<artifactId>aspectjrt</artifactId>
|
|
<version>1.9.7</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.liferay.portal</groupId>
|
|
<artifactId>portal-service</artifactId>
|
|
<version>6.2.5</version>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
|
|
<!-- needed by com.liferay.portal -->
|
|
<dependency>
|
|
<groupId>com.googlecode.json-simple</groupId>
|
|
<artifactId>json-simple</artifactId>
|
|
<version>1.1.1</version>
|
|
</dependency>
|
|
|
|
<!--
|
|
usermanagement-core depends on older httpcommon and gives this error on keycloak client:
|
|
java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy
|
|
https://stackoverflow.com/questions/44750124/classnotfoundexception-on-org-apache-http-ssl-truststrategy
|
|
-->
|
|
<dependency>
|
|
<groupId>org.gcube.dvos</groupId>
|
|
<artifactId>usermanagement-core</artifactId>
|
|
<version>[2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
|
<scope>compile</scope>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpclient</artifactId>
|
|
</exclusion>
|
|
|
|
<exclusion>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpcore</artifactId>
|
|
</exclusion>
|
|
|
|
|
|
</exclusions>
|
|
</dependency>
|
|
<!--
|
|
<dependency>
|
|
<groupId>org.gcube.resources.discovery</groupId>
|
|
<artifactId>ic-client</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.gcube.core</groupId>
|
|
<artifactId>common-scope</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency> -->
|
|
</dependencies>
|
|
|
|
<build>
|
|
<finalName>${project.artifactId}</finalName>
|
|
<plugins>
|
|
|
|
<!-- OPTIONAL generate the war in a different folder, that will be
|
|
mounted on docker
|
|
container -->
|
|
<!--
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-war-plugin</artifactId>
|
|
<version>2.3</version>
|
|
<configuration>
|
|
<warName>idm-service</warName>
|
|
<outputDirectory>tomcat/webapps</outputDirectory>
|
|
</configuration>
|
|
</plugin>
|
|
-->
|
|
|
|
<!-- OPTIONAL. authorization-control-library: add this plugin if you
|
|
want to use gcube
|
|
authorization control funzionalities -->
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>aspectj-maven-plugin</artifactId>
|
|
<version>${aspectj-plugin.version}</version>
|
|
<configuration>
|
|
<complianceLevel>11</complianceLevel>
|
|
<source>11</source>
|
|
<target>11</target>
|
|
<aspectLibraries>
|
|
<aspectLibrary>
|
|
<groupId>org.gcube.common</groupId>
|
|
<artifactId>authorization-control-library</artifactId>
|
|
</aspectLibrary>
|
|
</aspectLibraries>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- Sphinx plugin'
|
|
<plugin>
|
|
<groupId>kr.motd.maven</groupId>
|
|
<artifactId>sphinx-maven-plugin</artifactId>
|
|
<version>2.10.0</version>
|
|
<configuration>
|
|
<outputDirectory>
|
|
${project.build.directory}/${project.artifactId}-${project.version}/docs</outputDirectory>
|
|
<builder>html</builder>
|
|
<configDirectory>${basedir}/docs</configDirectory>
|
|
<sourceDirectory>${basedir}/docs</sourceDirectory>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>generate</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin> -->
|
|
|
|
<!-- Enunciate Maven plugin -->
|
|
<plugin>
|
|
<groupId>com.webcohesion.enunciate</groupId>
|
|
<artifactId>enunciate-maven-plugin</artifactId>
|
|
<version>${enunciate.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>assemble</id>
|
|
<goals>
|
|
<goal>assemble</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- Copy Enunciate Documentation from your-application/api-docs
|
|
into your war -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>copy-enunciate-docs</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>target</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<targetPath>
|
|
${project.build.directory}/${project.artifactId}-${project.version}/api-docs</targetPath>
|
|
<directory>
|
|
${project.build.directory}/api-docs</directory>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
</plugins>
|
|
</build>
|
|
</project> |