Add new BOM for odl-based projects

Refactor dependencyManagement section from odlparent poms into a new
BOM for ease of maintenance.

Change-Id: I4e31ccc2a3c5349b10777c14b9d5e7fd3e034c46
Issue-ID: CCSDK-1412
Signed-off-by: Timoney, Dan (dt5972) <dtimoney@att.com>
diff --git a/odlparent/mdsal-it-parent/pom.xml b/odlparent/mdsal-it-parent/pom.xml
index 7a4fe7f..0aaec6a 100644
--- a/odlparent/mdsal-it-parent/pom.xml
+++ b/odlparent/mdsal-it-parent/pom.xml
@@ -177,20 +177,29 @@
 		<equinox.osgi.version>3.8.1.v20120830-144521</equinox.osgi.version>
 		<jackson-annotations-version>${jackson.version}</jackson-annotations-version>
 		<jvnet.jaxb2.version>0.6.4</jvnet.jaxb2.version>
-		<apache.httpcomponents.core.version>4.4.4</apache.httpcomponents.core.version>
-		<apache.httpcomponents.client.version>4.5.2</apache.httpcomponents.client.version>
 		<antlr.version>4.7.1</antlr.version>
 		<mysql.connector.version>5.1.39</mysql.connector.version>
-		<mariadb.connector.version>2.1.1</mariadb.connector.version>
-		<h2database.version>1.4.196</h2database.version>
-		<derby.version>10.14.2.0</derby.version>
 
-		<eelf.version>1.0.0</eelf.version>
 		<eelf.maven.plugin.version>1.0.0</eelf.maven.plugin.version>
 
-		<tomcat-jdbc.version>8.5.14</tomcat-jdbc.version>
-
 		<glassfish.version>2.27</glassfish.version>
+
+		<!-- Managed dependency versions -->
+		<apache.httpcomponents.core.version>4.4.4</apache.httpcomponents.core.version>
+		<apache.httpcomponents.client.version>4.5.2</apache.httpcomponents.client.version>
+		<derby.version>10.14.2.0</derby.version>
+		<eelf.version>1.0.0</eelf.version>
+		<grpc.version>1.17.1</grpc.version>
+		<jackson.bom.version>2.8.11.20181123</jackson.bom.version>
+		<jersey.version>2.25.1</jersey.version>
+		<junit.version>4.12</junit.version>
+		<logback.version>1.2.3</logback.version>
+		<mariadb.connector.version>2.1.1</mariadb.connector.version>
+		<mariadb4j.version>2.2.3</mariadb4j.version>
+		<spring.version>4.3.18.RELEASE</spring.version>
+		<slf4j.version>1.7.25</slf4j.version>
+		<testng.version>6.11</testng.version>
+		<tomcat-jdbc.version>8.5.14</tomcat-jdbc.version>
 		<skip.karaf.featureTest>true</skip.karaf.featureTest>
 	</properties>
 
@@ -465,6 +474,7 @@
 			</build>
 		</profile>
 		<profile>
+			<id>yang-compile</id>
 			<activation>
 				<file>
 					<exists>src/main/yang</exists>
@@ -521,104 +531,30 @@
 
 	<dependencyManagement>
 		<dependencies>
+
+			<!-- Note: If value in BOM conflicts with value inherited from
+			parent pom, inherited value takes precedence.  This seems more like
+			a bug than a feature, but this is how maven 3.6 works -->
 			<dependency>
-				<groupId>org.opendaylight.controller</groupId>
-				<artifactId>mdsal-artifacts</artifactId>
-				<version>${odl.controller.mdsal.version}</version>
+				<groupId>org.onap.ccsdk.parent</groupId>
+				<artifactId>dependencies-odl-bom</artifactId>
+				<version>1.3.0-SNAPSHOT</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
-			<dependency>
-				<groupId>org.opendaylight.mdsal</groupId>
-				<artifactId>mdsal-artifacts</artifactId>
-				<version>${odl.mdsal.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-			<dependency>
-				<groupId>org.opendaylight.mdsal.model</groupId>
-				<artifactId>mdsal-model-artifacts</artifactId>
-				<version>${odl.mdsal.model.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-			<dependency>
-				<groupId>org.opendaylight.netconf</groupId>
-				<artifactId>netconf-artifacts</artifactId>
-				<version>${odl.netconf.netconf.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-			<dependency>
-				<groupId>org.opendaylight.netconf</groupId>
-				<artifactId>restconf-artifacts</artifactId>
-				<version>${odl.netconf.restconf.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-			<dependency>
-			    <groupId>com.fasterxml.jackson</groupId>
-			    <artifactId>jackson-bom</artifactId>
-			    <version>${jackson.bom.version}</version>
-			    <type>pom</type>
-			    <scope>import</scope>
-			</dependency>
 
-			<dependency>
-				<groupId>org.opendaylight.controller</groupId>
-				<artifactId>sal-test-model</artifactId>
-				<version>${odl.controller.mdsal.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.opendaylight.controller</groupId>
-				<artifactId>sal-binding-broker-impl</artifactId>
-				<version>${odl.controller.mdsal.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.opendaylight.controller</groupId>
-				<artifactId>sal-binding-broker-impl</artifactId>
-				<version>${odl.controller.mdsal.version}</version>
-				<type>test-jar</type>
-				<classifier>tests</classifier>
-				<scope>test</scope>
-			</dependency>
+			<!-- Override versions in ODL parent poms -->
 			<dependency>
 				<groupId>junit</groupId>
 				<artifactId>junit</artifactId>
-				<version>${junit.version}</version>
+				<version>4.12</version>
 				<scope>test</scope>
 			</dependency>
 
 			<dependency>
-				<groupId>org.testng</groupId>
-				<artifactId>testng</artifactId>
-				<version>6.11</version>
-			</dependency>
-			<dependency>
-				<groupId>org.springframework</groupId>
-				<artifactId>spring-test</artifactId>
-				<version>${spring.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.springframework</groupId>
-				<artifactId>spring-beans</artifactId>
-				<version>${spring.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.springframework</groupId>
-				<artifactId>spring-context</artifactId>
-				<version>${spring.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>com.att.eelf</groupId>
-				<artifactId>eelf-core</artifactId>
-				<version>${eelf.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.apache.derby</groupId>
-				<artifactId>derby</artifactId>
-				<version>${derby.version}</version>
-				<scope>test</scope>
+				<groupId>com.google.protobuf</groupId>
+				<artifactId>protobuf-java</artifactId>
+				<version>3.6.1</version>
 			</dependency>
 		</dependencies>
 
@@ -1050,7 +986,7 @@
 							<excludes>
 							</excludes>
 							<consoleOutput>true</consoleOutput>
-							<failsOnViolation>false</failsOnViolation>
+							<failOnViolation>false</failOnViolation>
 						</configuration>
 					</execution>
 					<execution>
@@ -1072,7 +1008,7 @@
 							<excludes>
 							</excludes>
 							<consoleOutput>true</consoleOutput>
-							<failsOnViolation>false</failsOnViolation>
+							<failOnViolation>false</failOnViolation>
 						</configuration>
 					</execution>
 				</executions>