diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | pom.xml | 1033 | ||||
-rw-r--r-- | src/main/assembly/descriptor.xml | 36 | ||||
-rw-r--r-- | src/main/bin/start.sh | 10 | ||||
-rw-r--r-- | src/main/docker/Dockerfile | 31 | ||||
-rw-r--r-- | src/test/resources/config/schemaIngest.properties | 2 |
6 files changed, 604 insertions, 509 deletions
@@ -5,3 +5,4 @@ target/ logs/ debug-logs/ .idea/ +*.iml @@ -19,8 +19,8 @@ limitations under the License. ============LICENSE_END========================================================= --> <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> + 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.springframework.boot</groupId> @@ -33,48 +33,58 @@ limitations under the License. <version>1.5.1-SNAPSHOT</version> <name>aai-data-router</name> - <properties> - <java.version>1.8</java.version> - <camel-spring-boot.version>2.21.1</camel-spring-boot.version> - <docker.location>${basedir}/target</docker.location> - <absoluteDistFilesRoot>/appl/${project.artifactId}</absoluteDistFilesRoot> - <!-- For NO Versioning, REMOVE the /${project.version} from the <distFilesRoot> - property, below. PLEASE, NOTE: If your ${project.version} is a "-SNAPSHOT" - version, THIS will be used as your directory structure. If you do NOT want - this, simply remove the "-SNAPSHOT" from your <version> declaration at the - top of pom.xml --> - <distFilesRoot>/appl/${project.artifactId}/${project.version}</distFilesRoot> - <!-- For SOA Cloud Installation --> - <installOwnerUser>aaiadmin</installOwnerUser> - <installOwnerGroup>aaiadmin</installOwnerGroup> - <ownerManagementGroup>com.att.csid.lab</ownerManagementGroup> - <version.aai-schema>1.5.1</version.aai-schema> + <properties> + <java.version>1.8</java.version> + <camel-spring-boot.version>2.21.1</camel-spring-boot.version> + <absoluteDistFilesRoot>/appl/${project.artifactId}</absoluteDistFilesRoot> + <!-- For NO Versioning, REMOVE the /${project.version} from the <distFilesRoot> + property, below. PLEASE, NOTE: If your ${project.version} is a "-SNAPSHOT" + version, THIS will be used as your directory structure. If you do NOT want + this, simply remove the "-SNAPSHOT" from your <version> declaration at the + top of pom.xml --> + <distFilesRoot>/appl/${project.artifactId}/${project.version}</distFilesRoot> + <!-- For SOA Cloud Installation --> + <installOwnerUser>aaiadmin</installOwnerUser> + <installOwnerGroup>aaiadmin</installOwnerGroup> + <ownerManagementGroup>com.att.csid.lab</ownerManagementGroup> + <version.aai-schema>1.5.1</version.aai-schema> - <!-- Port Selection. A value of 0 will allow for dynamic port selection. - For local testing, you may choose to hardcode this value to something like - 8080 --> - <serverPort>0</serverPort> - <sslport>9502</sslport> + <!-- docker related properties --> + <docker.fabric.version>0.28.0</docker.fabric.version> + <aai.docker.version>1.0.0</aai.docker.version> + <aai.build.directory>${project.build.directory}/${project.artifactId}-build/ + </aai.build.directory> + <aai.docker.namespace>onap</aai.docker.namespace> + <aai.base.image>alpine</aai.base.image> + <aai.base.image.version>1.6.0</aai.base.image.version> - <testRouteOffer>workstation</testRouteOffer> - <testEnv>DEV</testEnv> - <checkstyle.config.location>google_checks.xml</checkstyle.config.location> - <nexusproxy>https://nexus.onap.org</nexusproxy> - <!-- Sonar Properties --> - <sonar.language>java</sonar.language> - <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> - <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath> - <sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPath> - <sonar.jacoco.reportMissing.force.zero>false</sonar.jacoco.reportMissing.force.zero> - <sonar.projectVersion>${project.version}</sonar.projectVersion> - <logback.version>1.2.3</logback.version> - <version.com.google.guava>16.0.1</version.com.google.guava> - <shemaUnpackVersion>onap</shemaUnpackVersion> - <jacoco.line.coverage.limit>0.58</jacoco.line.coverage.limit> - </properties> + <!-- Port Selection. A value of 0 will allow for dynamic port selection. + For local testing, you may choose to hardcode this value to something like + 8080 --> + <serverPort>0</serverPort> + <sslport>9502</sslport> - <dependencies> - <dependency> + <testRouteOffer>workstation</testRouteOffer> + <testEnv>DEV</testEnv> + <checkstyle.config.location>google_checks.xml</checkstyle.config.location> + <nexusproxy>https://nexus.onap.org</nexusproxy> + <!-- Sonar Properties --> + <sonar.language>java</sonar.language> + <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> + <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath> + <sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPath> + <sonar.jacoco.reportMissing.force.zero>false</sonar.jacoco.reportMissing.force.zero> + <sonar.projectVersion>${project.version}</sonar.projectVersion> + <logback.version>1.2.3</logback.version> + <version.com.google.guava>16.0.1</version.com.google.guava> + <shemaUnpackVersion>onap</shemaUnpackVersion> + <jacoco.line.coverage.limit>0.58</jacoco.line.coverage.limit> + <!-- This will be used for the docker images as the default format of maven build has issues --> + <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> + </properties> + + <dependencies> + <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> @@ -89,459 +99,528 @@ limitations under the License. <artifactId>logback-access</artifactId> <version>${logback.version}</version> </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-spring-boot-starter</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-core</artifactId> - <version>${camel-spring-boot.version}</version> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-servlet-starter</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-cxf</artifactId> - <version>${camel-spring-boot.version}</version> - </dependency> - <!-- Spring dependencies --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - <exclusions> - <exclusion> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-tomcat</artifactId> - </exclusion> - </exclusions> - </dependency> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-jetty</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-actuator</artifactId> - </dependency> - <dependency> - <groupId>javax.ws.rs</groupId> - <artifactId>javax.ws.rs-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - <version>1.6.2</version> - <scope>test</scope> - </dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-spring-boot-starter</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-core</artifactId> + <version>${camel-spring-boot.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-servlet-starter</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-cxf</artifactId> + <version>${camel-spring-boot.version}</version> + </dependency> + <!-- Spring dependencies --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + <exclusions> + <exclusion> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-tomcat</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jetty</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + </dependency> + <dependency> + <groupId>javax.ws.rs</groupId> + <artifactId>javax.ws.rs-api</artifactId> + <version>2.1</version> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + <version>1.6.2</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>3.10.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + <version>1.6.2</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-javaagent</artifactId> + <version>1.6.2</version> + <scope>test</scope> + </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - <version>3.10.0</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - <version>1.6.2</version> - <scope>test</scope> - </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4-rule-agent</artifactId> + <version>1.6.2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.dom4j</groupId> + <artifactId>dom4j</artifactId> + <scope>provided</scope> + <version>2.1.1</version> + </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-javaagent</artifactId> - <version>1.6.2</version> - <scope>test</scope> - </dependency> + <dependency> + <groupId>com.att.aft</groupId> + <artifactId>dme2</artifactId> + <version>3.1.200-oss</version> + <scope>provided</scope> + </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4-rule-agent</artifactId> - <version>1.6.2</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.dom4j</groupId> - <artifactId>dom4j</artifactId> - <scope>provided</scope> - <version>2.1.1</version> - </dependency> + <dependency> + <groupId>org.onap.aai.router-core</groupId> + <artifactId>router-core</artifactId> + <version>1.5.0</version> + </dependency> - <dependency> - <groupId>com.att.aft</groupId> - <artifactId>dme2</artifactId> - <version>3.1.200-oss</version> - <scope>provided</scope> - </dependency> + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + </dependency> - <dependency> - <groupId>org.onap.aai.router-core</groupId> - <artifactId>router-core</artifactId> - <version>1.5.0</version> - </dependency> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.6.2</version> + </dependency> - - <dependency> - <groupId>org.json</groupId> - <artifactId>json</artifactId> - </dependency> + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>eclipselink</artifactId> + <version>2.6.2</version> + </dependency> - <dependency> - <groupId>com.google.code.gson</groupId> - <artifactId>gson</artifactId> - <version>2.6.2</version> - </dependency> + <dependency> + <groupId>org.onap.aai.logging-service</groupId> + <artifactId>common-logging</artifactId> + <version>1.5.0</version> + </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>eclipselink</artifactId> - <version>2.6.2</version> - </dependency> + <dependency> + <groupId>org.onap.aai.logging-service</groupId> + <artifactId>logging-api</artifactId> + <version>1.5.0</version> + </dependency> - <dependency> - <groupId>org.onap.aai.logging-service</groupId> - <artifactId>common-logging</artifactId> - <version>1.5.0</version> - </dependency> + <dependency> + <groupId>org.onap.aai</groupId> + <artifactId>rest-client</artifactId> + <version>1.2.1</version> + </dependency> - <dependency> - <groupId>org.onap.aai.logging-service</groupId> - <artifactId>logging-api</artifactId> - <version>1.5.0</version> - </dependency> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>${version.com.google.guava}</version> + </dependency> - <dependency> - <groupId>org.onap.aai</groupId> - <artifactId>rest-client</artifactId> - <version>1.2.1</version> - </dependency> + </dependencies> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>${version.com.google.guava}</version> - </dependency> + <profiles> + <profile> + <id>docker</id> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>3.0.0</version> + <executions> + <execution> + <phase>pre-clean</phase> + <id>parse-version</id> + <goals> + <goal>parse-version</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.groovy.maven</groupId> + <artifactId>gmaven-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <phase>pre-clean</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source> + def userAaiBaseImage = session.userProperties['aai.base.image'] + def userAaiCommonVersion = session.userProperties['aai.base.image.version'] + if (userAaiCommonVersion != null) { + project.properties['aai.base.image.version'] = userAaiCommonVersion + } + if (userAaiBaseImage != null) { + project.properties['aai.base.image'] = userAaiBaseImage + } + log.info 'Base image flavour: ' + project.properties['aai.base.image'] + log.info 'Base image version: ' + project.properties['aai.base.image.version'] + </source> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>${docker.fabric.version}</version> + <configuration> + <verbose>true</verbose> + <apiVersion>1.23</apiVersion> + <images> + <image> + <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l + </name> + <build> + <filter>@</filter> + <tags> + <tag>latest</tag> + <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag> + <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-${maven.build.timestamp}</tag> + </tags> + <cleanup>try</cleanup> + <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir> + <assembly> + <inline> + <fileSets> + <fileSet> + <directory>${aai.build.directory}</directory> + <outputDirectory>/${project.artifactId}</outputDirectory> + </fileSet> + </fileSets> + </inline> + </assembly> + </build> + </image> + </images> + </configuration> + <executions> + <execution> + <id>clean-images</id> + <phase>pre-clean</phase> + <goals> + <goal>remove</goal> + </goals> + <configuration> + <removeAll>true</removeAll> + </configuration> + </execution> + <execution> + <id>generate-images</id> + <phase>package</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + <execution> + <id>push-images</id> + <phase>deploy</phase> + <goals> + <goal>push</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> - </dependencies> + <build> + <finalName>${project.artifactId}</finalName> + <plugins> + <!-- jacoco-maven-plugin provides the basic report creation during unit testing, such as code-coverage, sonar, etc. --> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <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>${sonar.jacoco.reportPath}</destFile> + <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>${sonar.jacoco.reportPath}</dataFile> + <!-- Sets the output directory for the code coverage report. --> + <outputDirectory>${jacoco.path}</outputDirectory> + </configuration> + </execution> + <!-- Prepares the property pointing to the JaCoCo runtime agent which + is passed as VM argument when Maven the Failsafe plugin is executed. --> + <execution> + <id>pre-integration-test</id> + <phase>pre-integration-test</phase> + <goals> + <goal>prepare-agent</goal> + </goals> + <configuration> + <!-- Sets the path to the file which contains the execution data. --> + <destFile>${sonar.jacoco.itReportPath}</destFile> + <!-- Sets the name of the property containing the settings for JaCoCo + runtime agent. --> + <propertyName>failsafeArgLine</propertyName> + </configuration> + </execution> + <!-- Ensures that the code coverage report for integration tests after + integration tests have been run. --> + <execution> + <id>post-integration-test</id> + <phase>post-integration-test</phase> + <goals> + <goal>report</goal> + </goals> + <configuration> + <!-- Sets the path to the file which contains the execution data. --> + <dataFile>${sonar.jacoco.itReportPath}/</dataFile> + <!-- Sets the output directory for the code coverage report. --> + <outputDirectory>${jacoco.itPath}</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + <!-- Checkstyle plugin - used to report on compliance with --> + <!-- the Google style guide. --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <version>3.3</version> + <configuration> + <reportPlugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>2.17</version> + <reportSets> + <reportSet> + <reports> + <report>checkstyle</report> + </reports> + </reportSet> + </reportSets> + </plugin> + </reportPlugins> + </configuration> + </plugin> - <build> - <finalName>${project.artifactId}</finalName> - <plugins> - <!-- jacoco-maven-plugin provides the basic report creation during unit testing, such as code-coverage, sonar, etc. --> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <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>${sonar.jacoco.reportPath}</destFile> - <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>${sonar.jacoco.reportPath}</dataFile> - <!-- Sets the output directory for the code coverage report. --> - <outputDirectory>${jacoco.path}</outputDirectory> - </configuration> - </execution> - <!-- Prepares the property pointing to the JaCoCo runtime agent which - is passed as VM argument when Maven the Failsafe plugin is executed. --> - <execution> - <id>pre-integration-test</id> - <phase>pre-integration-test</phase> - <goals> - <goal>prepare-agent</goal> - </goals> - <configuration> - <!-- Sets the path to the file which contains the execution data. --> - <destFile>${sonar.jacoco.itReportPath}</destFile> - <!-- Sets the name of the property containing the settings for JaCoCo - runtime agent. --> - <propertyName>failsafeArgLine</propertyName> - </configuration> - </execution> - <!-- Ensures that the code coverage report for integration tests after - integration tests have been run. --> - <execution> - <id>post-integration-test</id> - <phase>post-integration-test</phase> - <goals> - <goal>report</goal> - </goals> - <configuration> - <!-- Sets the path to the file which contains the execution data. --> - <dataFile>${sonar.jacoco.itReportPath}/</dataFile> - <!-- Sets the output directory for the code coverage report. --> - <outputDirectory>${jacoco.itPath}</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - <!-- Checkstyle plugin - used to report on compliance with --> - <!-- the Google style guide. --> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-site-plugin</artifactId> - <version>3.3</version> - <configuration> - <reportPlugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-checkstyle-plugin</artifactId> - <version>2.17</version> - <reportSets> - <reportSet> - <reports> - <report>checkstyle</report> - </reports> - </reportSet> - </reportSets> - </plugin> - </reportPlugins> - </configuration> - </plugin> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - <plugin> - <artifactId>maven-surefire-plugin</artifactId> - <version>2.21.0</version> - <configuration> - <systemPropertyVariables> - <APP_HOME>${project.basedir}</APP_HOME> - <CONFIG_HOME>${project.basedir}/src/test/resources/config</CONFIG_HOME> - <SERVICE_BEANS>${project.basedir}/src/test/resources/spring-beans</SERVICE_BEANS> - <testShemaUnpackVersion>${shemaUnpackVersion}</testShemaUnpackVersion> - </systemPropertyVariables> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <version>2.7</version> - <executions> - <execution> - <id>copy-docker-file</id> - <phase>package</phase> - <goals> - <goal>copy-resources</goal> - </goals> - <configuration> - <outputDirectory>target</outputDirectory> - <overwrite>true</overwrite> - <resources> - <resource> - <directory>${basedir}/src/main/docker</directory> - <filtering>true</filtering> - <includes> - <include>**/*</include> - </includes> - </resource> - <resource> - <directory>${basedir}</directory> - <filtering>true</filtering> - <includes> - <include>bundleconfig-local/**</include> - </includes> - </resource> - <resource> - <directory>${basedir}/src/main/bin/</directory> - <filtering>true</filtering> - <includes> - <include>**/*</include> - </includes> - </resource> - <resource> - <directory>${basedir}/config</directory> - <filtering>true</filtering> - <includes> - <include>schema/**</include> - </includes> - </resource> - </resources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>unpack</id> - <phase>initialize</phase> - <goals> - <goal>unpack</goal> - </goals> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + + <plugin> + <artifactId>maven-assembly-plugin</artifactId> <configuration> - <artifactItems> - <artifactItem> - <groupId>org.onap.aai.schema-service</groupId> - <artifactId>aai-schema</artifactId> - <version>${version.aai-schema}</version> - <type>jar</type> - <includes>/${shemaUnpackVersion}/oxm/</includes> - <outputDirectory>${project.build.directory}/oxm</outputDirectory> - </artifactItem> - </artifactItems> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>com.spotify</groupId> - <artifactId>docker-maven-plugin</artifactId> - <version>0.4.11</version> - <configuration> - <verbose>true</verbose> - <serverId>docker-hub</serverId> - <imageName>${docker.push.registry}/onap/${project.artifactId}</imageName> - <dockerDirectory>${docker.location}</dockerDirectory> - <imageTags> - <imageTag>latest</imageTag> - </imageTags> - <forceTags>true</forceTags> - </configuration> - </plugin> - <!-- license plugin --> - <!-- Uncomment this to add a license header to every source file - <plugin> - <groupId>com.mycila</groupId> - <artifactId>license-maven-plugin</artifactId> - <version>3.0</version> - <configuration> - <header>License.txt</header> - <includes> - <include>src/main/java/**</include> - <include>src/test/java/**</include> - </includes> - </configuration> - <executions> - <execution> - <goals> - <goal>format</goal> - </goals> - <phase>process-sources</phase> - </execution> - </executions> - </plugin> --> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>sonar-maven-plugin</artifactId> - <version>3.2</version> - </plugin> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.7.201606060606</version> - <configuration> - <dumpOnExit>true</dumpOnExit> - </configuration> - <executions> - <execution> - <id>jacoco-initialize-unit-tests</id> - <goals> - <goal>prepare-agent</goal> - </goals> - <configuration> - <destFile>${project.build.directory}/coverage-reports/jacoco.exec - </destFile> - </configuration> - </execution> - <execution> - <id>default-check</id> - <goals> - <goal>check</goal> - </goals> - <configuration> - <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile> - <rules> - <!-- implementation is needed only for Maven 2 --> - <rule implementation="org.jacoco.maven.RuleConfiguration"> - <element>BUNDLE</element> - <limits> - <limit implementation="org.jacoco.report.check.Limit"> - <counter>LINE</counter> - <value>COVEREDRATIO</value> - <minimum>${jacoco.line.coverage.limit}</minimum> - </limit> - </limits> - </rule> - </rules> - </configuration> - </execution> - </executions> - </plugin> + <descriptors> + <descriptor>src/main/assembly/descriptor.xml</descriptor> + </descriptors> + </configuration> + <executions> + <execution> + <id>make-assembly</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + </execution> + </executions> + </plugin> - </plugins> - </build> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.21.0</version> + <configuration> + <systemPropertyVariables> + <OXM_LOCATION>${aai.build.directory}</OXM_LOCATION> + <CONFIG_HOME>${project.basedir}/src/test/resources/config</CONFIG_HOME> + <SERVICE_BEANS>${project.basedir}/src/test/resources/spring-beans</SERVICE_BEANS> + <testShemaUnpackVersion>${shemaUnpackVersion}</testShemaUnpackVersion> + </systemPropertyVariables> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>unpack</id> + <phase>initialize</phase> + <goals> + <goal>unpack</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.onap.aai.schema-service</groupId> + <artifactId>aai-schema</artifactId> + <version>${version.aai-schema}</version> + <type>jar</type> + <includes>/${shemaUnpackVersion}/oxm/</includes> + <outputDirectory>${aai.build.directory}</outputDirectory> + </artifactItem> + </artifactItems> + </configuration> + </execution> + </executions> + </plugin> + <!-- license plugin --> + <!-- Uncomment this to add a license header to every source file + <plugin> + <groupId>com.mycila</groupId> + <artifactId>license-maven-plugin</artifactId> + <version>3.0</version> + <configuration> + <header>License.txt</header> + <includes> + <include>src/main/java/**</include> + <include>src/test/java/**</include> + </includes> + </configuration> + <executions> + <execution> + <goals> + <goal>format</goal> + </goals> + <phase>process-sources</phase> + </execution> + </executions> + </plugin> --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>sonar-maven-plugin</artifactId> + <version>3.2</version> + </plugin> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.7.201606060606</version> + <configuration> + <dumpOnExit>true</dumpOnExit> + </configuration> + <executions> + <execution> + <id>jacoco-initialize-unit-tests</id> + <goals> + <goal>prepare-agent</goal> + </goals> + <configuration> + <destFile>${project.build.directory}/coverage-reports/jacoco.exec + </destFile> + </configuration> + </execution> + <execution> + <id>default-check</id> + <goals> + <goal>check</goal> + </goals> + <configuration> + <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile> + <rules> + <!-- implementation is needed only for Maven 2 --> + <rule implementation="org.jacoco.maven.RuleConfiguration"> + <element>BUNDLE</element> + <limits> + <limit implementation="org.jacoco.report.check.Limit"> + <counter>LINE</counter> + <value>COVEREDRATIO</value> + <minimum>${jacoco.line.coverage.limit}</minimum> + </limit> + </limits> + </rule> + </rules> + </configuration> + </execution> + </executions> + </plugin> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-spring-boot-dependencies</artifactId> - <version>${camel-spring-boot.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpclient</artifactId> - <version>4.5.5</version> - </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpcore</artifactId> - <version>4.4.1</version> - </dependency> - <dependency> - <groupId>org.json</groupId> - <artifactId>json</artifactId> - <version>20131018</version> - </dependency> - </dependencies> - </dependencyManagement> - <distributionManagement> - <repository> - <id>ecomp-releases</id> - <name>ECOMP Release Repository</name> - <url>${nexusproxy}/content/repositories/releases/</url> - </repository> - <snapshotRepository> - <id>ecomp-snapshots</id> - <name>ECOMP Snapshot Repository</name> - <url>${nexusproxy}/content/repositories/snapshots/</url> - </snapshotRepository> - </distributionManagement> + </plugins> + </build> + + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-spring-boot-dependencies</artifactId> + <version>${camel-spring-boot.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + <version>4.5.5</version> + </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpcore</artifactId> + <version>4.4.1</version> + </dependency> + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20131018</version> + </dependency> + </dependencies> + </dependencyManagement> + <distributionManagement> + <repository> + <id>ecomp-releases</id> + <name>ECOMP Release Repository</name> + <url>${nexusproxy}/content/repositories/releases/</url> + </repository> + <snapshotRepository> + <id>ecomp-snapshots</id> + <name>ECOMP Snapshot Repository</name> + <url>${nexusproxy}/content/repositories/snapshots/</url> + </snapshotRepository> + </distributionManagement> </project> diff --git a/src/main/assembly/descriptor.xml b/src/main/assembly/descriptor.xml new file mode 100644 index 0000000..2a1a2e7 --- /dev/null +++ b/src/main/assembly/descriptor.xml @@ -0,0 +1,36 @@ +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+ <id>build</id>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <formats>
+ <format>dir</format>
+ </formats>
+ <fileSets>
+ <fileSet>
+ <directory>${project.basedir}/bundleconfig-local</directory>
+ <outputDirectory>/bundleconfig</outputDirectory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.basedir}/src/main/bin</directory>
+ <outputDirectory>/bin</outputDirectory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.build.directory}</directory>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ <excludes>
+ <exclude>Dockerfile</exclude>
+ <exclude>*.sh</exclude>
+ </excludes>
+ </fileSet>
+ </fileSets>
+</assembly>
diff --git a/src/main/bin/start.sh b/src/main/bin/start.sh index 76b5991..120f960 100644 --- a/src/main/bin/start.sh +++ b/src/main/bin/start.sh @@ -1,7 +1,7 @@ #!/bin/sh -BASEDIR="/opt/app/data-router/" -AJSC_HOME="$BASEDIR" +MICRO_HOME="/opt/app/data-router" + if [ -z "$CONFIG_HOME" ]; then @@ -14,8 +14,8 @@ if [ -z "$KEY_STORE_PASSWORD" ]; then exit 1 fi -PROPS="-DAJSC_HOME=$AJSC_HOME" -PROPS="$PROPS -Dlogging.config=$BASEDIR/bundleconfig/etc/logback.xml" +PROPS="-DAJSC_HOME=${MICRO_HOME}" +PROPS="$PROPS -Dlogging.config=${MICRO_HOME}/bundleconfig/etc/logback.xml" PROPS="$PROPS -DCONFIG_HOME=$CONFIG_HOME" PROPS="$PROPS -DKEY_STORE_PASSWORD=$KEY_STORE_PASSWORD" @@ -31,6 +31,6 @@ fi JVM_MAX_HEAP=${MAX_HEAP:-1024} cd ${MICRO_HOME} -jar uf0 $MICRO_HOME/data-router.jar BOOT-INF/lib/* +jar uf0 ${MICRO_HOME}/data-router.jar BOOT-INF/lib/* > /dev/null 2>&1 exec java -Xmx${JVM_MAX_HEAP}m $PROPS -jar ${MICRO_HOME}/data-router.jar
\ No newline at end of file diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile index 00827e3..7342a64 100644 --- a/src/main/docker/Dockerfile +++ b/src/main/docker/Dockerfile @@ -1,34 +1,13 @@ -FROM ubuntu:14.04 +FROM @aai.docker.namespace@/aai-common-@aai.base.image@:@aai.base.image.version@ ARG MICRO_HOME=/opt/app/data-router ARG BIN_HOME=$MICRO_HOME/bin -RUN apt-get update - -# Install and setup java8 -RUN apt-get update && apt-get install -y software-properties-common -## sudo -E is required to preserve the environment. If you remove that line, it will most like freeze at this step -RUN sudo -E add-apt-repository ppa:openjdk-r/ppa && apt-get update && apt-get install -y openjdk-8-jdk -## Setup JAVA_HOME, this is useful for docker commandline -ENV JAVA_HOME usr/lib/jvm/java-8-openjdk-amd64 -RUN export JAVA_HOME - -# Build up the deployment folder structure RUN mkdir -p $MICRO_HOME -RUN mkdir -p $BIN_HOME -RUN mkdir -p $MICRO_HOME/bundleconfig -RUN mkdir -p $MICRO_HOME/bundleconfig/etc -RUN mkdir -p $MICRO_HOME/BOOT-INF/lib -COPY start.sh $MICRO_HOME/bin/ -RUN chmod 755 $BIN_HOME/* -RUN ln -s /logs $MICRO_HOME/logs -ENV MICRO_HOME ${MICRO_HOME} -ENV CONFIG_HOME=${CONFIG_HOME} -COPY data-router.jar $MICRO_HOME/ -COPY bundleconfig-local $MICRO_HOME/bundleconfig -COPY bundleconfig-local/etc/logback.xml $MICRO_HOME/bundleconfig/etc -COPY oxm $MICRO_HOME/ - +WORKDIR $MICRO_HOME +COPY /maven/data-router/ . +RUN chmod 755 $BIN_HOME/* \ + && ln -snf /logs $MICRO_HOME/logs EXPOSE 9502 9502 diff --git a/src/test/resources/config/schemaIngest.properties b/src/test/resources/config/schemaIngest.properties index dc70df1..7b08122 100644 --- a/src/test/resources/config/schemaIngest.properties +++ b/src/test/resources/config/schemaIngest.properties @@ -1,7 +1,7 @@ # Properties for the SchemaLocationsBean # Properties required by the aai-common - aai-schema-ingest lib as of 1.3.0 schema.configuration.location=N/A -schema.nodes.location=${APP_HOME}/target/oxm/${testShemaUnpackVersion}/oxm +schema.nodes.location=${OXM_LOCATION}/${testShemaUnpackVersion}/oxm schema.edges.location= # These versions need to exist if they are included in the list schema.version.list=v10,v11,v12,v13,v14,v15 |