diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/EncodeMappingActionCodecHelper.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/EncodeMappingActionCodecHelper.java
index 741df5a..ded1462 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/EncodeMappingActionCodecHelper.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/EncodeMappingActionCodecHelper.java
@@ -30,7 +30,7 @@
  * Encode portion of the mapping action codec.
  */
 public final class EncodeMappingActionCodecHelper {
-    protected static final Logger log = getLogger(EncodeMappingActionCodecHelper.class);
+    private static final Logger log = getLogger(EncodeMappingActionCodecHelper.class);
     private final MappingAction action;
     private final CodecContext context;
 
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/EncodeMappingInstructionCodecHelper.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/EncodeMappingInstructionCodecHelper.java
index fffa872..fa04df8 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/EncodeMappingInstructionCodecHelper.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/EncodeMappingInstructionCodecHelper.java
@@ -28,7 +28,7 @@
  * JSON encoding of MappingInstructions.
  */
 public final class EncodeMappingInstructionCodecHelper {
-    protected static final Logger log = getLogger(EncodeMappingInstructionCodecHelper.class);
+    private static final Logger log = getLogger(EncodeMappingInstructionCodecHelper.class);
     private final MappingInstruction instruction;
     private final CodecContext context;
 
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingActionCodec.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingActionCodec.java
index bf7adac..8a86977 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingActionCodec.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingActionCodec.java
@@ -27,11 +27,11 @@
  */
 public final class MappingActionCodec extends JsonCodec<MappingAction> {
 
-    protected static final Logger log =
+    private static final Logger log =
                             LoggerFactory.getLogger(MappingActionCodec.class);
 
-    protected static final String TYPE = "type";
-    protected static final String ERROR_MESSAGE =
+    static final String TYPE = "type";
+    static final String ERROR_MESSAGE =
                                     " not specified in MappingAction";
 
     @Override
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingAddressCodec.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingAddressCodec.java
index fe404b4..f04890f 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingAddressCodec.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingAddressCodec.java
@@ -27,15 +27,15 @@
  */
 public final class MappingAddressCodec extends JsonCodec<MappingAddress> {
 
-    protected static final Logger log =
+    private static final Logger log =
                             LoggerFactory.getLogger(MappingAddressCodec.class);
 
-    protected static final String TYPE = "type";
-    protected static final String IPV4 = "ipv4";
-    protected static final String IPV6 = "ipv6";
-    protected static final String MAC = "mac";
-    protected static final String DN = "dn";
-    protected static final String AS = "as";
+    static final String TYPE = "type";
+    static final String IPV4 = "ipv4";
+    static final String IPV6 = "ipv6";
+    static final String MAC = "mac";
+    static final String DN = "dn";
+    static final String AS = "as";
 
     @Override
     public ObjectNode encode(MappingAddress address, CodecContext context) {
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingEntryCodec.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingEntryCodec.java
index bd69ca8..e47fb75 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingEntryCodec.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingEntryCodec.java
@@ -29,11 +29,11 @@
  */
 public final class MappingEntryCodec extends JsonCodec<MappingEntry> {
 
-    protected static final String KEY = "key";
-    protected static final String VALUE = "value";
-    protected static final String ID = "id";
-    protected static final String DEVICE_ID = "deviceId";
-    protected static final String STATE = "state";
+    static final String KEY = "key";
+    static final String VALUE = "value";
+    static final String ID = "id";
+    static final String DEVICE_ID = "deviceId";
+    static final String STATE = "state";
 
     @Override
     public ObjectNode encode(MappingEntry mappingEntry, CodecContext context) {
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingInstructionCodec.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingInstructionCodec.java
index 57a5e48..316e329 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingInstructionCodec.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingInstructionCodec.java
@@ -29,18 +29,18 @@
  */
 public final class MappingInstructionCodec extends JsonCodec<MappingInstruction> {
 
-    protected static final Logger log = LoggerFactory.getLogger(MappingInstructionCodec.class);
+    private static final Logger log = LoggerFactory.getLogger(MappingInstructionCodec.class);
 
-    protected static final String TYPE = "type";
-    protected static final String SUBTYPE = "subtype";
-    protected static final String UNICAST_WEIGHT = "unicastWeight";
-    protected static final String UNICAST_PRIORITY = "unicastPriority";
-    protected static final String MULTICAST_WEIGHT = "multicastWeight";
-    protected static final String MULTICAST_PRIORITY = "multicastPriority";
+    static final String TYPE = "type";
+    static final String SUBTYPE = "subtype";
+    static final String UNICAST_WEIGHT = "unicastWeight";
+    static final String UNICAST_PRIORITY = "unicastPriority";
+    static final String MULTICAST_WEIGHT = "multicastWeight";
+    static final String MULTICAST_PRIORITY = "multicastPriority";
 
-    protected static final String MISSING_MEMBER_MESSAGE =
+    static final String MISSING_MEMBER_MESSAGE =
                                         " member is required in Instruction";
-    protected static final String ERROR_MESSAGE =
+    static final String ERROR_MESSAGE =
                                         " not specified in Instruction";
 
     @Override
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingValueCodec.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingValueCodec.java
index f128243..199df62 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingValueCodec.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/codec/MappingValueCodec.java
@@ -34,8 +34,8 @@
  */
 public final class MappingValueCodec extends JsonCodec<MappingValue> {
 
-    protected static final String ACTION = "action";
-    protected static final String TREATMENTS = "treatments";
+    static final String ACTION = "action";
+    static final String TREATMENTS = "treatments";
 
     @Override
     public ObjectNode encode(MappingValue value, CodecContext context) {
