diff --git a/pom.xml b/pom.xml
index d866230..feed1fd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,9 +7,9 @@
   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.
@@ -54,10 +54,10 @@
 		<mariadb.jdbc.version>2.1.0</mariadb.jdbc.version>
 		<hibernate.core.version>5.2.10.Final</hibernate.core.version>
 		<hibernate.commons.annotations.version>5.0.1.Final</hibernate.commons.annotations.version>
-		
+
 		<sonar.plugin.version>3.2</sonar.plugin.version>
 		<jacoco.plugin.version>0.7.9</jacoco.plugin.version>
-  
+
 		<sonar.language>java</sonar.language>
 		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
 		<sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
@@ -197,10 +197,10 @@
 			    <groupId>org.hibernate.common</groupId>
 			    <artifactId>hibernate-commons-annotations</artifactId>
 			    <version>${hibernate.commons.annotations.version}</version>
-			</dependency>			
+			</dependency>
 		</dependencies>
 	</dependencyManagement>
-	
+
 	<build>
 		<plugins>
 			<plugin>
@@ -240,56 +240,7 @@
 					<encoding>${project.encoding}</encoding>
 				</configuration>
 			</plugin>
-			<!-- 
-				license plugin
-			     Run 
-			     	mvn clean 
-			     before running from the command line
-			     	mvn license:update-file-header
-			-->
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>license-maven-plugin</artifactId>
-				<version>1.9</version>
-				<configuration>
-					<extraExtensions>
-						<!-- Used to add or change the header style <fileTypeYouAreMapping> 
-							fileTypeMappedInto </fileTypeYouAreMapping> -->
-						<drl>java</drl>
-						<ccf>properties</ccf>
 
-						<!-- Because the typical sql comment type confuses the update algorithm -->
-						<sql>java</sql>
-					</extraExtensions>
-					<licenseName>apache_v2</licenseName>
-
-					<inceptionYear>2017</inceptionYear>
-					<organizationName>AT&amp;T Intellectual Property. All rights reserved.</organizationName>
-
-					<!-- Once you have established the tags and delimiter, they cannot be 
-						changed -->
-					<processStartTag>============LICENSE_START=======================================================</processStartTag>
-					<processEndTag>============LICENSE_END=========================================================</processEndTag>
-					<sectionDelimiter>================================================================================</sectionDelimiter>
-					<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
-					<canUpdateCopyright>true</canUpdateCopyright>
-					<canUpdateDescription>true</canUpdateDescription>
-					<canUpdateLicense>true</canUpdateLicense>
-					<emptyLineAfterHeader>true</emptyLineAfterHeader>
-					<roots>
-						<!-- Default is src, target/generated-sources, target/processed-sources -->
-
-						<!-- Everything except the files in the excludes section -->
-						<root>/</root>
-					</roots>
-					<excludes>
-						<!-- Files which are to be excluded. The pom.xml is excluded because 
-							the start/end tags and the delimiters are in the body of the file. This confuses 
-							the algorithm. So, this file must be manually updated with a license header. -->
-						<exclude>pom.xml</exclude>
-					</excludes>
-				</configuration>
-			</plugin>
 			<plugin>
 			  <groupId>org.apache.maven.plugins</groupId>
 			  <artifactId>maven-site-plugin</artifactId>
