| <?xml version="1.0"?> |
| <!-- |
| ============LICENSE_START========================================== |
| org.onap.dmaap |
| =================================================================== |
| Copyright © 2018 AT&T Intellectual Property. All rights reserved. |
| =================================================================== |
| 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. |
| ============LICENSE_END============================================ |
| ECOMP is a trademark and service mark of AT&T Intellectual Property. |
| --> |
| <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/maven-v4_0_0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| <artifactId>dmaap-bc</artifactId> |
| <version>${revision}</version> |
| <name>dmaap-bc</name> |
| <packaging>jar</packaging> |
| <parent> |
| <groupId>org.onap.dmaap.buscontroller</groupId> |
| <artifactId>parent</artifactId> |
| <version>${revision}</version> |
| <relativePath>../pom.xml</relativePath> |
| </parent> |
| <description>Data Movement as a Platform (DMaaP) Bus Controller provides a REST API for other |
| DCAE infrastructure components to provision DMaaP resources. A DMaaP resource is a Data |
| Router Feed or a Message Router Topic, and their associated publishers and subscribers. |
| </description> |
| <properties> |
| <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version} |
| </sitePath> |
| <eelf.version>1.0.0</eelf.version> |
| <dmaapbc.image.name>${docker.image.root}${project.artifactId}</dmaapbc.image.name> |
| <swagger.version>1.5.19</swagger.version> |
| <jackson.version>2.9.5</jackson.version> |
| <jersey.version>2.29</jersey.version> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <jettyVersion>9.4.40.v20210413</jettyVersion> |
| <eelf.version>1.0.0</eelf.version> |
| <junit.version>4.12</junit.version> |
| <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions> |
| <docker-stage.target.path>/target/docker-stage/opt/app/dmaapbc/</docker-stage.target.path> |
| </properties> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>org.glassfish.jersey</groupId> |
| <artifactId>jersey-bom</artifactId> |
| <version>${jersey.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.glassfish.jersey.media</groupId> |
| <artifactId>jersey-media-json-jackson</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.containers</groupId> |
| <artifactId>jersey-container-servlet-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.media</groupId> |
| <artifactId>jersey-media-moxy</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.test-framework.providers</groupId> |
| <!-- use this if compatibility issues with jetty artifactId: |
| <artifactId>jersey-test-framework-provider-jetty</artifactId> |
| <version>${jersey.version}</version> |
| --> |
| <artifactId>jersey-test-framework-provider-jdk-http</artifactId> |
| <version>2.29.1</version> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.inject</groupId> |
| <artifactId>jersey-hk2</artifactId> |
| <version>2.29.1</version> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.aaf.authz</groupId> |
| <artifactId>aaf-cadi-aaf</artifactId> |
| <version>2.1.7</version> |
| <classifier>full</classifier> |
| <exclusions> |
| <exclusion> |
| <artifactId>log4j</artifactId> |
| <groupId>log4j</groupId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-annotations</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.dataformat</groupId> |
| <artifactId>jackson-dataformat-yaml</artifactId> |
| <version>${jackson.version}</version> |
| <exclusions> |
| <exclusion> |
| <artifactId>snakeyaml</artifactId> |
| <groupId>org.yaml</groupId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-core</artifactId> |
| <version>1.2.3</version> |
| </dependency> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-classic</artifactId> |
| <version>1.2.3</version> |
| </dependency> |
| <!-- DMAAP-656: |
| - override this dependency because it utilized a third party |
| - lib called com.google.guava:20.0 which had severe security threat identified. |
| --> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <version>24.1.1-jre</version> |
| </dependency> |
| <dependency> |
| <groupId>io.swagger</groupId> |
| <artifactId>swagger-core</artifactId> |
| <version>${swagger.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-databind</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>io.swagger</groupId> |
| <artifactId>swagger-jersey2-jaxrs</artifactId> |
| <version>${swagger.version}</version> |
| <exclusions> |
| <exclusion> |
| <artifactId>jersey-common</artifactId> |
| <groupId>org.glassfish.jersey.core</groupId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>io.swagger</groupId> |
| <artifactId>swagger-annotations</artifactId> |
| <version>${swagger.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-server</artifactId> |
| <version>${jettyVersion}</version> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-servlet</artifactId> |
| <version>${jettyVersion}</version> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-servlets</artifactId> |
| <version>9.4.41.v20210516</version> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-http</artifactId> |
| <version>9.4.43.v20210629</version> |
| <scope>compile</scope> |
| </dependency> |
| <!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple --> |
| <dependency> |
| <groupId>com.googlecode.json-simple</groupId> |
| <artifactId>json-simple</artifactId> |
| <version>1.1.1</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-codec</groupId> |
| <artifactId>commons-codec</artifactId> |
| <version>1.15</version> |
| </dependency> |
| <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql --> |
| <dependency> |
| <groupId>org.postgresql</groupId> |
| <artifactId>postgresql</artifactId> |
| <version>42.2.14</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>1.7.22</version> |
| </dependency> |
| <dependency> |
| <!-- use 2.3.1 to avoid this issue: https://github.com/eclipse-ee4j/jaxb-ri/issues/1222 --> |
| <groupId>javax.xml.bind</groupId> |
| <artifactId>jaxb-api</artifactId> |
| <version>2.3.1</version> |
| </dependency> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>${junit.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>pl.pragmatists</groupId> |
| <artifactId>JUnitParams</artifactId> |
| <version>1.1.0</version> |
| <scope>test</scope> |
| </dependency> |
| <!-- https://mvnrepository.com/artifact/org.mockito/mockito-core --> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <version>3.9.0</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>3.0.0-M3</version> |
| <exclusions> |
| <exclusion> |
| <artifactId>commons-io</artifactId> |
| <groupId>commons-io</groupId> |
| </exclusion> |
| <exclusion> |
| <artifactId>maven-compat</artifactId> |
| <groupId>org.apache.maven</groupId> |
| </exclusion> |
| <exclusion> |
| <artifactId>maven-settings</artifactId> |
| <groupId>org.apache.maven</groupId> |
| </exclusion> |
| <exclusion> |
| <artifactId>maven-shared-utils</artifactId> |
| <groupId>org.apache.maven.shared</groupId> |
| </exclusion> |
| <exclusion> |
| <artifactId>bsh</artifactId> |
| <groupId>org.beanshell</groupId> |
| </exclusion> |
| <exclusion> |
| <artifactId>maven-core</artifactId> |
| <groupId>org.apache.maven</groupId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>com.att.eelf</groupId> |
| <artifactId>eelf-core</artifactId> |
| <version>${eelf.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-module-junit4</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-api-mockito</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| </dependencies> |
| <build> |
| <finalName>dmaap-bc</finalName> |
| <!-- Copy files to docker-stage to be included in image --> |
| <resources> |
| <resource> |
| <targetPath>${basedir}/target/docker-stage</targetPath> |
| <directory>${basedir}/src/main/resources/docker</directory> |
| <includes> |
| <include>Dockerfile</include> |
| </includes> |
| </resource> |
| <resource> |
| <targetPath>${basedir}${docker-stage.target.path}etc</targetPath> |
| <directory>${basedir}/src/main/resources/misc</directory> |
| <includes> |
| <include>logback.xml</include> |
| <include>LocalKey</include> |
| </includes> |
| </resource> |
| <resource> |
| <targetPath>${basedir}${docker-stage.target.path}etc</targetPath> |
| <directory>${multiproject.basedir}</directory> |
| <includes> |
| <include>version.properties</include> |
| </includes> |
| </resource> |
| <resource> |
| <targetPath>${basedir}${docker-stage.target.path}misc</targetPath> |
| <directory>${basedir}/src/main/resources/misc</directory> |
| <includes> |
| <include>*.tmpl</include> |
| </includes> |
| </resource> |
| <resource> |
| <targetPath>${basedir}${docker-stage.target.path}bin</targetPath> |
| <directory>${basedir}/src/main/resources/misc</directory> |
| <includes> |
| <include>dmaapbc</include> |
| </includes> |
| </resource> |
| <resource> |
| <targetPath>${basedir}${docker-stage.target.path}misc</targetPath> |
| <directory>${basedir}/src/main/resources/misc</directory> |
| <includes> |
| <include>schema_all.sql</include> |
| </includes> |
| </resource> |
| </resources> |
| <plugins> |
| <plugin> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <version>2.4</version> |
| <configuration> |
| <descriptorRefs> |
| <descriptorRef>jar-with-dependencies</descriptorRef> |
| </descriptorRefs> |
| <outputDirectory>${basedir}/target/docker-stage/opt/app/dmaapbc/lib</outputDirectory> |
| <archive> |
| <manifest> |
| <addClasspath>true</addClasspath> |
| <mainClass>org.onap.dmaap.dbcapi.server.Main</mainClass> |
| </manifest> |
| </archive> |
| <finalName>dmaap-bc.jar</finalName> |
| <appendAssemblyId>false</appendAssemblyId> |
| </configuration> |
| <executions> |
| <execution> |
| <id>make-assembly</id> |
| <!-- this is used for inheritance merges --> |
| <phase>package</phase> |
| <!-- bind to the packaging phase --> |
| <goals> |
| <goal>single</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>onap-java-style</id> |
| <configuration> |
| <consoleOutput>false</consoleOutput> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- reference: https://tech.homeaway.com/development/2016/06/02/generating-swagger-spec.html --> |
| <plugin> |
| <groupId>com.github.kongchen</groupId> |
| <artifactId>swagger-maven-plugin</artifactId> |
| <version>3.1.5</version> |
| <configuration> |
| <apiSources> |
| <apiSource> |
| <springmvc>false</springmvc> |
| <locations> |
| <location>org.onap.dmaap.dbcapi.resources</location> |
| </locations> |
| <schemes> |
| <scheme>http</scheme> |
| <scheme>https</scheme> |
| </schemes> |
| <host>www.[host]:[port]</host> |
| <basePath>/webapi</basePath> |
| <info> |
| <title>DMaaP Bus Controller REST API</title> |
| <version>1.1.0</version> |
| <description> |
| provides an API for OpenDCAE components which need to provision |
| underlying DMaaP technologies (Data Router and Message Router). |
| Primary clients for this API are anticipated to be the OpenDCAE |
| Controller, OpenDCAE Orchestrator, OpenDCAE Inventory and the |
| ECOMP Portal. |
| |
| Objects managed by DMaaP are deployed in a dcaeLocation which is |
| a unique identifier for an OpenStack tenant for a dcaeLayer, |
| opendcae-central (aka ecomp) or opendcae-local-ntc (aka edge). |
| |
| A dcaeEnvironment (e.g. FTL or prod) has a single DMaaP. A |
| DMaaP is managed by a one or more stateless DMaaP Bus |
| Controller(s), though Bus Controller relies on PGaaS for |
| persistence. Each DMaaP has a single instance of Data Router, |
| which has 1 or more DR_Nodes deployed at each dcaeLocation. DR |
| Clients of type DR_Pub generally publish to a DR_Node that is |
| local to its dcaeLocation. Routing for a Feed is determined by |
| the dcaelocation of its DR_Sub clients. |
| |
| A DMaaP may have many Message Router instances. Each instance is |
| deployed as an MR_Cluster. One MR_Cluster is deployed at each |
| dcaeLocation. MR_Clients generally communicate to the |
| MR_Cluster at the same dcaeLocation. Replication of messages |
| between MR_Clusters is accomplished by MR Bridge, which is |
| provioned by DMaaP Bus Controller based on Topic attributes. |
| |
| Therefore, the role of DMaaP Bus Controller is to support other |
| DCAE infrastructure components to dynamically provision DMaaP |
| services on behalf of DMaaP clients, and to assist in any |
| management or discovery activity of its clients. |
| |
| A convention of this API is to return JSON responses per |
| OpenStack style. |
| </description> |
| <termsOfService> |
| http://www.apache.org/licenses/LICENSE-2.0 |
| </termsOfService> |
| <contact> |
| <url>http://www.onap.org</url> |
| </contact> |
| <license> |
| <url>http://www.apache.org/licenses/LICENSE-2.0</url> |
| <name>Licensed under the Apache License, Version 2.0</name> |
| </license> |
| </info> |
| <swaggerDirectory>target/generated-sources/</swaggerDirectory> |
| </apiSource> |
| </apiSources> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>compile</phase> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| <profiles> |
| <profile> |
| <id>docker</id> |
| <properties> |
| <skipDockerBuild>${skip.docker.build}</skipDockerBuild> |
| <skipTests>false</skipTests> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>gmaven-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>io.fabric8</groupId> |
| <artifactId>docker-maven-plugin</artifactId> |
| <configuration> |
| <images> |
| <image> |
| <name>${dmaapbc.image.name}</name> |
| <build> |
| <cleanup>try</cleanup> |
| <noCache>true</noCache> |
| <optimise>true</optimise> |
| <contextDir>${basedir}/target/docker-stage</contextDir> |
| <dockerFile>Dockerfile</dockerFile> |
| <tags> |
| <tag>${dockertag1}</tag> |
| <tag>${dockertag2}</tag> |
| </tags> |
| </build> |
| </image> |
| </images> |
| </configuration> |
| <executions> |
| <execution> |
| <id>generate-images</id> |
| <phase>install</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> |
| <reporting> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>2.10.4</version> |
| <configuration> |
| <failOnError>false</failOnError> |
| <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet> |
| <docletArtifact> |
| <groupId>org.umlgraph</groupId> |
| <artifactId>umlgraph</artifactId> |
| <version>5.6</version> |
| </docletArtifact> |
| <additionalparam>-views</additionalparam> |
| <useStandardDocletOptions>true</useStandardDocletOptions> |
| </configuration> |
| </plugin> |
| </plugins> |
| </reporting> |
| <distributionManagement> |
| <site> |
| <id>ecomp-site</id> |
| <url>dav:${nexusproxy}${sitePath}</url> |
| </site> |
| </distributionManagement> |
| </project> |