diff --git a/dbc-client/pom.xml b/dbc-client/pom.xml
new file mode 100644
index 0000000..945eeee
--- /dev/null
+++ b/dbc-client/pom.xml
@@ -0,0 +1,197 @@
+<?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>
+  <groupId>org.onap.dmaap.buscontroller</groupId>
+  <artifactId>dbc-client</artifactId>
+  <version>${artifact.version}</version>
+  <name>dbc-client</name>
+  <parent>
+    <groupId>org.onap.oparent</groupId>
+    <artifactId>oparent</artifactId>
+    <version>1.2.2</version>
+    <relativePath/>
+  </parent>
+  <build>
+    <finalName>dbc-client</finalName>
+
+    <plugins>
+
+
+      <plugin>
+        <groupId>org.sonatype.plugins</groupId>
+        <artifactId>nexus-staging-maven-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <serverId>ecomp-staging</serverId>
+          <nexusUrl>${nexusproxy}</nexusUrl>
+          <stagingProfileId>176c31dfe190a</stagingProfileId>
+        </configuration>
+      </plugin>
+
+      <!-- for Distribution management -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.maven.wagon</groupId>
+            <artifactId>wagon-webdav-jackrabbit</artifactId>
+            <version>2.10</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+
+    </plugins>
+    <pluginManagement>
+      <plugins>
+        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <versionRange>[2.10,)</versionRange>
+                    <phase>install</phase>
+                    <goals>
+                      <goal>copy-dependencies</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore/>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+  <profiles>
+    <profile>
+      <id>docker</id>
+           <properties>
+                <skipDockerBuild>false</skipDockerBuild>
+                <skipDockerTag>false</skipDockerTag>
+                <skipTests>true</skipTests>
+            </properties>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>com.spotify</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+	    <version>${docker.maven.plugin.version}</version>
+            <configuration>
+              <baseImage>alpine:3.8</baseImage>
+              <imageName>${onap.nexus.dockerregistry.daily}/${docker.image}</imageName>
+              <entryPoint>["./bin/dbc-client", "deploy"]</entryPoint>
+              <serverId>${onap.nexus.dockerregistry.daily}</serverId>
+	      <skipDockerBuild>false</skipDockerBuild>
+              <imageTags>
+                <imageTag>${artifact.version}</imageTag>
+                <imageTag>latest</imageTag>
+              </imageTags>
+              <volumes>
+                <volume>/opt/app/dbc-client/log</volume>
+              </volumes>
+              <forceTags>true</forceTags>
+              <user>root</user>
+              <resources>
+                <resource>
+                  <targetPath>/opt/app/dmaapbc/etc</targetPath>
+                  <directory>${multiproject.basedir}/dbc-client</directory>
+                  <include>version.properties</include>
+                </resource>
+                <resource>
+                  <targetPath>/opt/app/dbc-client/misc</targetPath>
+                  <directory>${multiproject.basedir}/misc</directory>
+                  <include>cert-client-init.sh</include>
+                </resource>
+                <resource>
+                  <targetPath>/opt/app/dbc-client/bin</targetPath>
+                  <directory>${multiproject.basedir}/dbc-client/misc</directory>
+                  <include>dbc-client</include>
+                </resource>
+              </resources>
+              <runs>
+                <run> apk add --no-cache curl </run>
+                <run>chmod +x /opt/app/dbc-client/misc/cert-client-init.sh</run>
+                <run>chmod +x /opt/app/dbc-client/bin/*</run>
+                <run>mkdir /opt/app/dbc-client/logs</run>
+              </runs>
+              <workdir>/opt/app/dbc-client</workdir>
+            </configuration>
+            <executions>
+             <execution>
+                 <id>default</id>
+                 <goals>
+                      <goal>build</goal>
+                      <goal>push</goal>
+                  </goals>
+             </execution>
+         </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+  <dependencyManagement>
+  </dependencyManagement>
+
+  <properties>
+    <multiproject.basedir>${basedir}/..</multiproject.basedir>
+    <docker.maven.plugin.version>1.0.0</docker.maven.plugin.version>
+    <jersey.version>2.16</jersey.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <jettyVersion>9.4.12.RC2</jettyVersion>
+    <eelf.version>1.0.0</eelf.version>
+    <swagger.version>1.5.19</swagger.version>
+    <artifact.version>1.0.2</artifact.version>
+    <!--  SONAR  -->
+    <jacoco.version>0.7.7.201606060606</jacoco.version>
+    <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
+    <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
+    <!-- Default Sonar configuration -->
+    <sonar.jacoco.reportPath>target/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
+    <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
+    <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>
+
+    <!-- docker image -->
+    <docker.image>onap/dmaap/dbc-client</docker.image>
+
+    <nexusproxy>https://nexus.onap.org</nexusproxy>
+    <docker.push.registry>nexus3.onap.org:10003</docker.push.registry>
+
+    <!-- for Distribution Management -->
+    <sitePath>/content/sites/site/org/onap/dmaap/dbc-client/${artifact.version}</sitePath>
+  </properties>
+  <description>Packaging Platform (DMaaP) HTTP Client for Bus Controller Provisioning.</description>
+</project>
