<?xml version="1.0"?> <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> <!-- This is the Maven project object model (POM) file for the open-source SDK web app. This is NOT the Portal - but it is developed and supported by the Portal team. --> <parent> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-project</artifactId> <version>3.3.0-SNAPSHOT</version> </parent> <!-- GroupId is inherited from parent --> <artifactId>epsdk-app-os</artifactId> <!-- Version is inherited from parent --> <packaging>war</packaging> <name>ONAP Portal SDK Webapp for OpenSource</name> <description>ONAP Portal SDK Web Application for public release</description> <properties> <!-- This determines the EPSDK library versions, helpful for testing --> <epsdk.version>${project.version}</epsdk.version> <!-- Skip assembling the zip; assemble via mvn -Dskipassembly=false .. --> <skipassembly>true</skipassembly> <!-- Tests usually require some setup that maven cannot do, so skip. --> <skiptests>false</skiptests> <angularTestPhase>compile</angularTestPhase> <jacoco.version>0.7.9</jacoco.version> <!-- Version number gets stored only here --> <tomcat.download.path>http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.37/bin</tomcat.download.path> <tomcat.download.name>apache-tomcat-8.0.37</tomcat.download.name> <sonar.typescript.lcov.reportPaths>ngapp/coverage/lcov.info</sonar.typescript.lcov.reportPaths> <sonar.sources>ngapp/src</sonar.sources> <sonar.projectKey>portal-sdk</sonar.projectKey> <sonar.projectName>portal-sdk</sonar.projectName> <sonar.exclusions>**/node_modules/**,**/*.spec.ts,**/*.module.ts,**/environment.prod.ts,**/*.js,**/main.ts,**/header-interceptor.ts,**/dynamic-widget.component.ts</sonar.exclusions> <sonar.test.inclusions>**/*.spec.ts</sonar.test.inclusions> <sonar.tests>ngapp/src</sonar.tests> <sonar.sourceEncoding>UTF-8</sonar.sourceEncoding> <sonar.nodejs.executable>node</sonar.nodejs.executable> </properties> <!-- repositories are inherited from parent --> <!-- profiles are inherited from parent --> <build> <!-- The war file name carries no version number --> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.0.0</version> <configuration> <filesets> <fileset> <directory>${basedir}/ngapp/app/dist</directory> </fileset> </filesets> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <!-- parent specifies the <version>2.19.1</version> --> <configuration> <skipTests>${skiptests}</skipTests> <includes> <include>**/Test*.java</include> <include>**/*Test.java</include> <include>**/*TestCase.java</include> </includes> <additionalClasspathElements> <additionalClasspathElement>${basedir}/war</additionalClasspathElement> </additionalClasspathElements> <systemPropertyVariables> <container.classpath>classpath:</container.classpath> </systemPropertyVariables> </configuration> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <!-- version managed by oparent ${jacocoVersion}</version> --> <executions> <!-- disable jacoco executions from oparent --> <execution> <id>pre-unit-test</id> <phase>none</phase> </execution> <execution> <id>post-unit-test</id> <phase>none</phase> </execution> <execution> <id>pre-integration-test</id> <phase>none</phase> </execution> <execution> <id>post-integration-test</id> <phase>none</phase> </execution> <!-- Order matters --> <execution> <id>portal-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <destFile>${sonar.jacoco.reportPath}</destFile> </configuration> </execution> <!-- offline instrumentation for PowerMock --> <execution> <id>portal-offline-instrument</id> <goals> <goal>instrument</goal> </goals> </execution> <execution> <id>portal-restore-instrumented-classes</id> <phase>test</phase> <goals> <goal>restore-instrumented-classes</goal> </goals> </execution> <execution> <id>portal-post-unit-test</id> <phase>test</phase> <goals> <goal>report</goal> </goals> <configuration> <dataFile>${sonar.jacoco.reportPath}</dataFile> <outputDirectory>${project.basedir}/target/site/jacoco</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <version>1.6</version> <configuration> <nodeVersion>v10.13.0</nodeVersion> <workingDirectory>${basedir}/ngapp</workingDirectory> <installDirectory>${basedir}/ngapp</installDirectory> </configuration> <executions> <execution> <id>install node and npm</id> <phase>compile</phase> <goals> <goal>install-node-and-npm</goal> </goals> </execution> <execution> <id>npm install</id> <phase>compile</phase> <goals> <goal>npm</goal> </goals> </execution> <execution> <id>npm run test</id> <goals> <goal>npm</goal> </goals> <phase>${angularTestPhase}</phase> <configuration> <arguments>run-script test</arguments> </configuration> </execution> <execution> <id>npm run build</id> <phase>compile</phase> <goals> <goal>npm</goal> </goals> <configuration> <arguments>run build</arguments> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>unpack</id> <phase>process-resources</phase> <goals> <goal>unpack</goal> </goals> </execution> </executions> <configuration> <artifactItems> <artifactItem> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-app-overlay</artifactId> <version>${project.version}</version> <type>war</type> <overWrite>false</overWrite> </artifactItem> </artifactItems> <includes>ngapp/**</includes> <outputDirectory>${basedir}/ngappoverlay</outputDirectory> <overWriteReleases>true</overWriteReleases> <overWriteSnapshots>true</overWriteSnapshots> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <executions> <execution> <id>copy-angular-final-step1</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/ngapp</outputDirectory> <overwrite>true</overwrite> <resources> <resource> <directory>${basedir}/ngappoverlay/ngapp</directory> </resource> </resources> </configuration> </execution> <execution> <id>copy-angular-final-step2</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/ngapp</outputDirectory> <overwrite>true</overwrite> <resources> <resource> <directory>${basedir}/ngappsrc</directory> </resource> </resources> </configuration> </execution> <!-- This is for Deployment purposes --> <execution> <id>copy-angular-final-step3</id> <phase>prepare-package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/epsdk-app-os</outputDirectory> <resources> <resource> <directory>${basedir}/ngapp/dist</directory> </resource> </resources> </configuration> </execution> <!-- This is for Development purposes --> <execution> <id>copy-angular-final-step4</id> <phase>prepare-package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/src/main/webapp</outputDirectory> <resources> <resource> <directory>${basedir}/ngapp/dist</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- <plugin> <artifactId>maven-clean-plugin</artifactId> <version>2.5</version> <executions> <execution> <id>auto-clean-ng</id> <phase>prepare-package</phase> <goals> <goal>clean</goal> </goals> <configuration> <filesets> <fileset> <directory>${basedir}/target/epsdk-app-os/ngapp</directory> </fileset> </filesets> </configuration> </execution> </executions> </plugin> --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> <configuration> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> </manifest> <manifestEntries> <Build-Number>${project.version}</Build-Number> <Build-Time>${maven.build.timestamp}</Build-Time> </manifestEntries> </archive> <overlays> <overlay> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-app-overlay</artifactId> </overlay> </overlays> <packagingExcludes>**/ngapp</packagingExcludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.0.0</version> <configuration> <skipAssembly>${skipassembly}</skipAssembly> <descriptors> <descriptor>${basedir}/distribution.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <!-- parent specifies the<version>2.8</version> --> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.22.0</version> <configuration> <verbose>true</verbose> <images> <image> <name>onap/portal-sdk:${project.version}</name> <build> <from>frolvlad/alpine-oraclejdk8:slim</from> <assembly> <descriptorRef>artifact</descriptorRef> </assembly> <runCmds> <!-- must be all on one line; use CDATA to turn off the Eclipse formatter --> <run><![CDATA[wget -q ${tomcat.download.path}/${tomcat.download.name}.tar.gz]]></run> <run>tar -xzf ${tomcat.download.name}.tar.gz</run> <run>rm -f ${tomcat.download.name}.tar.gz</run> <run>rm -fr ${tomcat.download.name}/webapps/[a-z]*</run> <run>mkdir -p /opt</run> <run>mv ${tomcat.download.name} /opt</run> <run><![CDATA[mv /maven/*.war /opt/${tomcat.download.name}/webapps/ONAPPORTALSDK.war]]></run> </runCmds> <cmd> <shell>/opt/${tomcat.download.name}/bin/catalina.sh run</shell> </cmd> </build> </image> </images> </configuration> </plugin> </plugins> </build> <dependencies> <!-- SDK overlay war --> <dependency> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-app-overlay</artifactId> <version>${epsdk.version}</version> <type>war</type> </dependency> <dependency> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-app-common</artifactId> <version>${epsdk.version}</version> <type>jar</type> </dependency> <dependency> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-logger</artifactId> <version>${epsdk.version}</version> </dependency> <!-- SDK components --> <dependency> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-core</artifactId> <version>${epsdk.version}</version> </dependency> <dependency> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-analytics</artifactId> <version>${epsdk.version}</version> </dependency> <dependency> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-workflow</artifactId> <version>${epsdk.version}</version> </dependency> <dependency> <groupId>org.onap.portal.sdk</groupId> <artifactId>epsdk-music</artifactId> <version>${epsdk.version}</version> </dependency> <dependency> <groupId>com.att.eelf</groupId> <artifactId>eelf-core</artifactId> <version>1.0.0</version> </dependency> <!-- Mapper --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.4</version> </dependency> <dependency> <groupId>io.searchbox</groupId> <artifactId>jest</artifactId> <version>5.3.2</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- Elastic Search --> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.1.1</version> <exclusions> <exclusion> <groupId>org.apache.lucene</groupId> <artifactId>lucene-queryparser</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20160212</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> <exclusions> <!-- exclude 0.9.1.1 to avoid dupe of com.mchange:c3p0:0.9.2.1 --> <exclusion> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> </exclusion> </exclusions> </dependency> <!-- bridge to implement commons-logging using slf4j --> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${springframework.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${springframework.version}</version> </dependency> <!-- Jacoco for offline instrumentation --> <dependency> <groupId>org.jacoco</groupId> <artifactId>org.jacoco.agent</artifactId> <version>${jacoco.version}</version> <classifier>runtime</classifier> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>20.0</version> </dependency> </dependencies> </project>