diff --git a/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java b/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
index 4065c13..e07c65e 100644
--- a/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
+++ b/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
@@ -44,7 +44,7 @@
     protected void activate() {
         try {
             provider = new XmlDriverLoader(getClassLoaderInstance())
-                    .loadDrivers(loadXMLDriversStream(), driverAdminService);
+                    .loadDrivers(loadXmlDriversStream(), driverAdminService);
             driverAdminService.registerProvider(provider);
         } catch (Exception e) {
             log.error("Unable to load default drivers", e);
@@ -58,7 +58,7 @@
         log.info("Stopped");
     }
 
-    protected abstract InputStream loadXMLDriversStream();
+    protected abstract InputStream loadXmlDriversStream();
 
     protected abstract ClassLoader getClassLoaderInstance();
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
index 80c202d..5b2cfcc 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
@@ -247,7 +247,7 @@
         }
     }
 
-    enum TCPFlags {
+    enum TcpFlags {
 
         /** ECN-nonce concealment protection. */
         NS((short) (1 << 0)),
@@ -270,7 +270,7 @@
 
         private short value;
 
-        TCPFlags(short value) {
+        TcpFlags(short value) {
             this.value = value;
         }
 
diff --git a/core/api/src/test/java/org/onosproject/net/flow/criteria/CriteriaTest.java b/core/api/src/test/java/org/onosproject/net/flow/criteria/CriteriaTest.java
index d113fb9..8b18ae6 100644
--- a/core/api/src/test/java/org/onosproject/net/flow/criteria/CriteriaTest.java
+++ b/core/api/src/test/java/org/onosproject/net/flow/criteria/CriteriaTest.java
@@ -138,17 +138,17 @@
 
 
     int tcpFlags1 =
-        Criterion.TCPFlags.NS.getValue() |
-        Criterion.TCPFlags.CWR.getValue() |
-        Criterion.TCPFlags.ECE.getValue() |
-        Criterion.TCPFlags.URG.getValue() |
-        Criterion.TCPFlags.ACK.getValue() |
-        Criterion.TCPFlags.PSH.getValue() |
-        Criterion.TCPFlags.RST.getValue() |
-        Criterion.TCPFlags.SYN.getValue();
+        Criterion.TcpFlags.NS.getValue() |
+        Criterion.TcpFlags.CWR.getValue() |
+        Criterion.TcpFlags.ECE.getValue() |
+        Criterion.TcpFlags.URG.getValue() |
+        Criterion.TcpFlags.ACK.getValue() |
+        Criterion.TcpFlags.PSH.getValue() |
+        Criterion.TcpFlags.RST.getValue() |
+        Criterion.TcpFlags.SYN.getValue();
 
     int tcpFlags2 = tcpFlags1 |
-        Criterion.TCPFlags.FIN.getValue();
+        Criterion.TcpFlags.FIN.getValue();
 
     Criterion matchTcpFlags1 = Criteria.matchTcpFlags(tcpFlags1);
     Criterion sameAsmatchTcpFlags1 = Criteria.matchTcpFlags(tcpFlags1);
