diff --git a/apps/test/demo/src/main/java/org/onosproject/demo/DemoAPI.java b/apps/test/demo/src/main/java/org/onosproject/demo/DemoApi.java
similarity index 97%
rename from apps/test/demo/src/main/java/org/onosproject/demo/DemoAPI.java
rename to apps/test/demo/src/main/java/org/onosproject/demo/DemoApi.java
index 0095676..1e59415 100644
--- a/apps/test/demo/src/main/java/org/onosproject/demo/DemoAPI.java
+++ b/apps/test/demo/src/main/java/org/onosproject/demo/DemoApi.java
@@ -22,7 +22,7 @@
 /**
  * Simple demo api interface.
  */
-public interface DemoAPI {
+public interface DemoApi {
 
     enum InstallType { MESH, RANDOM }
 
diff --git a/apps/test/demo/src/main/java/org/onosproject/demo/DemoInstaller.java b/apps/test/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
index a408e69..0bddc08 100644
--- a/apps/test/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
+++ b/apps/test/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
@@ -87,7 +87,7 @@
  */
 @Component(immediate = true)
 @Service
-public class DemoInstaller implements DemoAPI {
+public class DemoInstaller implements DemoApi {
 
     private final Logger log = getLogger(getClass());
 
diff --git a/apps/test/demo/src/main/java/org/onosproject/demo/DemoResource.java b/apps/test/demo/src/main/java/org/onosproject/demo/DemoResource.java
index e0c97dd..e3a5a2d 100644
--- a/apps/test/demo/src/main/java/org/onosproject/demo/DemoResource.java
+++ b/apps/test/demo/src/main/java/org/onosproject/demo/DemoResource.java
@@ -51,7 +51,7 @@
     public Response flowTest(InputStream input) throws IOException {
         ObjectMapper mapper = new ObjectMapper();
         JsonNode cfg = mapper.readTree(input);
-        DemoAPI demo = get(DemoAPI.class);
+        DemoApi demo = get(DemoApi.class);
         return Response.ok(demo.flowTest(Optional.ofNullable(cfg)).toString()).build();
     }
 
@@ -75,9 +75,9 @@
         }
 
 
-        DemoAPI.InstallType type = DemoAPI.InstallType.valueOf(
+        DemoApi.InstallType type = DemoApi.InstallType.valueOf(
                 cfg.get("type").asText().toUpperCase());
-        DemoAPI demo = get(DemoAPI.class);
+        DemoApi demo = get(DemoApi.class);
         demo.setup(type, Optional.ofNullable(cfg.get("runParams")));
 
         return Response.ok(mapper.createObjectNode().toString()).build();
@@ -93,7 +93,7 @@
     @Produces(MediaType.APPLICATION_JSON)
     public Response tearDown() {
         ObjectMapper mapper = new ObjectMapper();
-        DemoAPI demo = get(DemoAPI.class);
+        DemoApi demo = get(DemoApi.class);
         demo.tearDown();
         return Response.ok(mapper.createObjectNode().toString()).build();
     }
