Rename Namespace to be EntityPath.

No intended semantic change.
diff --git a/tests/src/whisk/core/container/test/ContainerPoolTests.scala b/tests/src/whisk/core/container/test/ContainerPoolTests.scala
index 357f0bc..d809051 100644
--- a/tests/src/whisk/core/container/test/ContainerPoolTests.scala
+++ b/tests/src/whisk/core/container/test/ContainerPoolTests.scala
@@ -38,7 +38,7 @@
 import whisk.core.entity.AuthKey
 import whisk.core.entity.EntityName
 import whisk.core.entity.Exec
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Subject
 import whisk.core.entity.WhiskAction
 import whisk.core.entity.WhiskAuth
@@ -219,7 +219,7 @@
         } // for
     }
 
-    private val defaultNamespace = Namespace("container pool test")
+    private val defaultNamespace = EntityPath("container pool test")
     private val defaultAuth = WhiskAuth(Subject(), AuthKey()) // XXXXXX test this with a real uuid/key
 
     /*
diff --git a/tests/src/whisk/core/controller/test/ActionsApiTests.scala b/tests/src/whisk/core/controller/test/ActionsApiTests.scala
index eebd08e..1371905 100644
--- a/tests/src/whisk/core/controller/test/ActionsApiTests.scala
+++ b/tests/src/whisk/core/controller/test/ActionsApiTests.scala
@@ -49,7 +49,7 @@
 import whisk.core.entity.Exec
 import whisk.core.entity.MemoryLimit
 import whisk.core.entity.LogLimit
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Parameters
 import whisk.core.entity.Subject
 import whisk.core.entity.TimeLimit
@@ -82,8 +82,8 @@
     behavior of "Actions API"
 
     val creds = WhiskAuth(Subject(), AuthKey())
-    val namespace = Namespace(creds.subject())
-    val collectionPath = s"/${Namespace.DEFAULT}/${collection.path}"
+    val namespace = EntityPath(creds.subject())
+    val collectionPath = s"/${EntityPath.DEFAULT}/${collection.path}"
     def aname = MakeName.next("action_tests")
     setVerbosity(InfoLevel)
     val entityTooBigRejectionMessage = "request entity too large"
diff --git a/tests/src/whisk/core/controller/test/ActivationsApiTests.scala b/tests/src/whisk/core/controller/test/ActivationsApiTests.scala
index c9ed4a8..3304d3c 100644
--- a/tests/src/whisk/core/controller/test/ActivationsApiTests.scala
+++ b/tests/src/whisk/core/controller/test/ActivationsApiTests.scala
@@ -29,7 +29,7 @@
 import whisk.core.controller.WhiskActivationsApi
 import whisk.core.entity.ActivationId
 import whisk.core.entity.EntityName
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.AuthKey
 import whisk.core.entity.WhiskAuth
 import whisk.core.entity.Subject
@@ -59,8 +59,8 @@
     behavior of "Activations API"
 
     val creds = WhiskAuth(Subject(), AuthKey())
-    val namespace = Namespace(creds.subject())
-    val collectionPath = s"/${Namespace.DEFAULT}/${collection.path}"
+    val namespace = EntityPath(creds.subject())
+    val collectionPath = s"/${EntityPath.DEFAULT}/${collection.path}"
     def aname = MakeName.next("activations_tests")
 
     //// GET /activations
@@ -69,7 +69,7 @@
         // create two sets of activation records, and check that only one set is served back
         val creds1 = WhiskAuth(Subject(), AuthKey())
         (1 to 2).map { i =>
-            WhiskActivation(Namespace(creds1.subject()), aname, creds1.subject, ActivationId(), start = Instant.now, end = Instant.now)
+            WhiskActivation(EntityPath(creds1.subject()), aname, creds1.subject, ActivationId(), start = Instant.now, end = Instant.now)
         } foreach { put(entityStore, _) }
 
         val actionName = aname
@@ -96,7 +96,7 @@
         // create two sets of activation records, and check that only one set is served back
         val creds1 = WhiskAuth(Subject(), AuthKey())
         (1 to 2).map { i =>
-            WhiskActivation(Namespace(creds1.subject()), aname, creds1.subject, ActivationId(), start = Instant.now, end = Instant.now)
+            WhiskActivation(EntityPath(creds1.subject()), aname, creds1.subject, ActivationId(), start = Instant.now, end = Instant.now)
         } foreach { put(entityStore, _) }
 
         val actionName = aname
@@ -122,7 +122,7 @@
         // create two sets of activation records, and check that only one set is served back
         val creds1 = WhiskAuth(Subject(), AuthKey())
         (1 to 2).map { i =>
-            WhiskActivation(Namespace(creds1.subject()), aname, creds1.subject, ActivationId(), start = Instant.now, end = Instant.now)
+            WhiskActivation(EntityPath(creds1.subject()), aname, creds1.subject, ActivationId(), start = Instant.now, end = Instant.now)
         } foreach { put(entityStore, _) }
 
         val actionName = aname
@@ -185,7 +185,7 @@
         // create two sets of activation records, and check that only one set is served back
         val creds1 = WhiskAuth(Subject(), AuthKey())
         (1 to 2).map { i =>
-            WhiskActivation(Namespace(creds1.subject()), aname, creds1.subject, ActivationId(), start = Instant.now, end = Instant.now)
+            WhiskActivation(EntityPath(creds1.subject()), aname, creds1.subject, ActivationId(), start = Instant.now, end = Instant.now)
         } foreach { put(entityStore, _) }
 
         val activations = (1 to 2).map { i =>
diff --git a/tests/src/whisk/core/controller/test/NamespacesApiTests.scala b/tests/src/whisk/core/controller/test/NamespacesApiTests.scala
index 4fa9292..bc444a6 100644
--- a/tests/src/whisk/core/controller/test/NamespacesApiTests.scala
+++ b/tests/src/whisk/core/controller/test/NamespacesApiTests.scala
@@ -27,7 +27,7 @@
 import spray.json.JsObject
 import whisk.core.controller.WhiskNamespacesApi
 import whisk.core.entity.AuthKey
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Subject
 import whisk.core.entity.WhiskAuth
 import spray.json.JsObject
@@ -54,14 +54,14 @@
 
     val collectionPath = s"/${collection.path}"
     val creds = WhiskAuth(Subject(), AuthKey())
-    val namespace = Namespace(creds.subject())
+    val namespace = EntityPath(creds.subject())
 
     it should "list namespaces for subject" in {
         implicit val tid = transid()
         Get(collectionPath) ~> sealRoute(routes(creds)) ~> check {
             status should be(OK)
-            val ns = responseAs[List[Namespace]]
-            ns should be(List(Namespace(creds.subject())))
+            val ns = responseAs[List[EntityPath]]
+            ns should be(List(EntityPath(creds.subject())))
         }
     }
 
@@ -69,8 +69,8 @@
         implicit val tid = transid()
         Get(s"$collectionPath/") ~> sealRoute(routes(creds)) ~> check {
             status should be(OK)
-            val ns = responseAs[List[Namespace]]
-            ns should be(List(Namespace(creds.subject())))
+            val ns = responseAs[List[EntityPath]]
+            ns should be(List(EntityPath(creds.subject())))
         }
     }
 
diff --git a/tests/src/whisk/core/controller/test/PackageActionsApiTests.scala b/tests/src/whisk/core/controller/test/PackageActionsApiTests.scala
index 0d96efc..e3b3333 100644
--- a/tests/src/whisk/core/controller/test/PackageActionsApiTests.scala
+++ b/tests/src/whisk/core/controller/test/PackageActionsApiTests.scala
@@ -36,7 +36,7 @@
 import whisk.core.controller.WhiskActionsApi
 import whisk.core.entity.ActionLimits
 import whisk.core.entity.Exec
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Parameters
 import whisk.core.entity.WhiskAction
 import whisk.core.entity.WhiskActionPut
@@ -68,8 +68,8 @@
     behavior of "Package Actions API"
 
     val creds = WhiskAuth(Subject(), AuthKey())
-    val namespace = Namespace(creds.subject())
-    val collectionPath = s"/${Namespace.DEFAULT}/${collection.path}"
+    val namespace = EntityPath(creds.subject())
+    val collectionPath = s"/${EntityPath.DEFAULT}/${collection.path}"
     def aname = MakeName.next("package_action_tests")
 
     //// GET /actions/package/
@@ -268,7 +268,7 @@
         implicit val tid = transid()
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, None, publish = true)
-        val binding = WhiskPackage(Namespace(auser.subject()), aname, provider.bind, Parameters("b", "B"))
+        val binding = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind, Parameters("b", "B"))
         val action = WhiskAction(provider.path, aname, Exec.js("??"))
         put(entityStore, provider)
         put(entityStore, binding)
@@ -286,7 +286,7 @@
         implicit val tid = transid()
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, None, Parameters("p", "P"), publish = true)
-        val binding = WhiskPackage(Namespace(auser.subject()), aname, provider.bind, Parameters("b", "B"))
+        val binding = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind, Parameters("b", "B"))
         val action = WhiskAction(provider.path, aname, Exec.js("??"), Parameters("a", "A") ++ Parameters("b", "b"))
         put(entityStore, provider)
         put(entityStore, binding)
@@ -306,7 +306,7 @@
         implicit val tid = transid()
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, None, Parameters("p", "P"), publish = false)
-        val binding = WhiskPackage(Namespace(auser.subject()), aname, provider.bind, Parameters("b", "B"))
+        val binding = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind, Parameters("b", "B"))
         val action = WhiskAction(provider.path, aname, Exec.js("??"), Parameters("a", "A"))
         put(entityStore, provider)
         put(entityStore, binding)
@@ -345,7 +345,7 @@
         val name = aname
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, None, Parameters("p", "P"), publish = true)
-        val binding = WhiskPackage(Namespace(auser.subject()), aname, provider.bind, Parameters("b", "B"))
+        val binding = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind, Parameters("b", "B"))
         val action = WhiskAction(provider.path, aname, Exec.js("??"), Parameters("a", "A"))
         put(entityStore, provider)
         put(entityStore, action)
@@ -359,7 +359,7 @@
         val name = aname
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, None, Parameters("p", "P"), publish = true)
-        val binding = WhiskPackage(Namespace(auser.subject()), aname, provider.bind, Parameters("b", "B"))
+        val binding = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind, Parameters("b", "B"))
         val action = WhiskAction(provider.path, aname, Exec.js("??"), Parameters("a", "A"))
         put(entityStore, binding)
         put(entityStore, action)
@@ -373,7 +373,7 @@
         val name = aname
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, None, Parameters("p", "P"), publish = true)
-        val binding = WhiskPackage(Namespace(auser.subject()), aname, provider.bind, Parameters("b", "B"))
+        val binding = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind, Parameters("b", "B"))
         val action = WhiskAction(provider.path, aname, Exec.js("??"), Parameters("a", "A"))
         put(entityStore, provider)
         put(entityStore, binding)
@@ -386,7 +386,7 @@
         implicit val tid = transid()
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, None, Parameters("p", "P"), publish = false)
-        val binding = WhiskPackage(Namespace(auser.subject()), aname, provider.bind, Parameters("b", "B"))
+        val binding = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind, Parameters("b", "B"))
         val action = WhiskAction(provider.path, aname, Exec.js("??"), Parameters("a", "A"))
         put(entityStore, provider)
         put(entityStore, binding)
@@ -430,7 +430,7 @@
         implicit val tid = transid()
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, publish = true)
-        val reference = WhiskPackage(Namespace(auser.subject()), aname, provider.bind)
+        val reference = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind)
         val action = WhiskAction(provider.path, aname, Exec.js("??"))
         val content = JsObject("x" -> "x".toJson, "z" -> "Z".toJson)
         put(entityStore, provider)
@@ -449,7 +449,7 @@
         implicit val tid = transid()
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, publish = false)
-        val reference = WhiskPackage(Namespace(auser.subject()), aname, provider.bind)
+        val reference = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind)
         val action = WhiskAction(provider.path, aname, Exec.js("??"))
         val content = JsObject("x" -> "x".toJson, "z" -> "Z".toJson)
         put(entityStore, provider)
@@ -504,7 +504,7 @@
         implicit val tid = transid()
         val auser = WhiskAuth(Subject(), AuthKey())
         val provider = WhiskPackage(namespace, aname, publish = false)
-        val reference = WhiskPackage(Namespace(auser.subject()), aname, provider.bind)
+        val reference = WhiskPackage(EntityPath(auser.subject()), aname, provider.bind)
         val action = WhiskAction(provider.path, aname, Exec.js("??"))
         val content = JsObject("x" -> "x".toJson, "z" -> "Z".toJson)
         put(entityStore, provider)
diff --git a/tests/src/whisk/core/controller/test/PackagesApiTests.scala b/tests/src/whisk/core/controller/test/PackagesApiTests.scala
index 51d4041..ab96857 100644
--- a/tests/src/whisk/core/controller/test/PackagesApiTests.scala
+++ b/tests/src/whisk/core/controller/test/PackagesApiTests.scala
@@ -33,7 +33,7 @@
 import spray.json.JsObject
 import spray.json.pimpString
 import whisk.core.entity.Exec
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Parameters
 import whisk.core.entity.WhiskAction
 import whisk.core.entity.AuthKey
@@ -66,8 +66,8 @@
     behavior of "Packages API"
 
     val creds = WhiskAuth(Subject(), AuthKey())
-    val namespace = Namespace(creds.subject())
-    val collectionPath = s"/${Namespace.DEFAULT}/${collection.path}"
+    val namespace = EntityPath(creds.subject())
+    val collectionPath = s"/${EntityPath.DEFAULT}/${collection.path}"
     def aname = MakeName.next("packages_tests")
     val entityTooBigRejectionMessage = "request entity too large"
     val parametersLimit = Parameters.sizeLimit
@@ -109,7 +109,7 @@
     it should "list all public packages in explicit namespace excluding bindings" in {
         implicit val tid = transid()
         // create packages and package bindings, set some public and confirm API lists only public packages
-        val namespaces = Seq(namespace, Namespace(aname.toString), Namespace(aname.toString))
+        val namespaces = Seq(namespace, EntityPath(aname.toString), EntityPath(aname.toString))
         val providers = Seq(
             WhiskPackage(namespaces(0), aname, None, publish = true),
             WhiskPackage(namespaces(1), aname, None, publish = true),
@@ -148,7 +148,7 @@
     ignore should "list all public packages excluding bindings" in {
         implicit val tid = transid()
         // create packages and package bindings, set some public and confirm API lists only public packages
-        val namespaces = Seq(namespace, Namespace(aname.toString), Namespace(aname.toString))
+        val namespaces = Seq(namespace, EntityPath(aname.toString), EntityPath(aname.toString))
         val providers = Seq(
             WhiskPackage(namespaces(0), aname, None, publish = false),
             WhiskPackage(namespaces(1), aname, None, publish = true),
@@ -175,7 +175,7 @@
     ignore should "list all public packages including ones with same name but in different namespaces" in {
         implicit val tid = transid()
         // create packages and package bindings, set some public and confirm API lists only public packages
-        val namespaces = Seq(namespace, Namespace(aname.toString), Namespace(aname.toString))
+        val namespaces = Seq(namespace, EntityPath(aname.toString), EntityPath(aname.toString))
         val pkgname = aname
         val providers = Seq(
             WhiskPackage(namespaces(0), pkgname, None, publish = false),
@@ -200,7 +200,7 @@
         Get(s"$collectionPath?public=true") ~> sealRoute(routes(creds)) ~> check {
             implicit val tid = transid()
             // create packages and package bindings, set some public and confirm API lists only public packages
-            val namespaces = Seq(namespace, Namespace(aname.toString), Namespace(aname.toString))
+            val namespaces = Seq(namespace, EntityPath(aname.toString), EntityPath(aname.toString))
             val pkgname = aname
             val providers = Seq(
                 WhiskPackage(namespaces(0), pkgname, None, publish = true),
@@ -350,7 +350,7 @@
     it should "create package reference with implicit namespace" in {
         implicit val tid = transid()
         val provider = WhiskPackage(namespace, aname)
-        val reference = WhiskPackage(namespace, aname, Some(Binding(Namespace.DEFAULT, provider.name)))
+        val reference = WhiskPackage(namespace, aname, Some(Binding(EntityPath.DEFAULT, provider.name)))
         val content = WhiskPackagePut(reference.binding)
         put(entityStore, provider)
         Put(s"$collectionPath/${reference.name}", content) ~> sealRoute(routes(creds)) ~> check {
diff --git a/tests/src/whisk/core/controller/test/RulesApiTests.scala b/tests/src/whisk/core/controller/test/RulesApiTests.scala
index 5350d52..aa60160 100644
--- a/tests/src/whisk/core/controller/test/RulesApiTests.scala
+++ b/tests/src/whisk/core/controller/test/RulesApiTests.scala
@@ -33,7 +33,7 @@
 import whisk.core.controller.WhiskRulesApi
 import whisk.core.entity.EntityName
 import whisk.core.entity.Exec
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Parameters
 import whisk.core.entity.SemVer
 import whisk.core.entity.Status
@@ -71,9 +71,9 @@
     behavior of "Rules API"
 
     val creds = WhiskAuth(Subject(), AuthKey())
-    val namespace = Namespace(creds.subject())
+    val namespace = EntityPath(creds.subject())
     def aname = MakeName.next("rules_tests")
-    val collectionPath = s"/${Namespace.DEFAULT}/${collection.path}"
+    val collectionPath = s"/${EntityPath.DEFAULT}/${collection.path}"
     val activeStatus = s"""{"status":"${Status.ACTIVE}"}""".parseJson.asJsObject
     val inactiveStatus = s"""{"status":"${Status.INACTIVE}"}""".parseJson.asJsObject
     val entityTooBigRejectionMessage = "request entity too large"
@@ -135,7 +135,7 @@
         val ruleName = EntityName("get_active_rule")
         val triggerName = EntityName("get_active_rule trigger")
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
-        val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(Namespace(WhiskEntity.qualifiedName(namespace, ruleName)) -> ReducedRule(namespace, Status.ACTIVE))))
+        val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(EntityPath(WhiskEntity.qualifiedName(namespace, ruleName)) -> ReducedRule(namespace, Status.ACTIVE))))
 
         put(entityStore, trigger)
         put(entityStore, rule)
@@ -178,7 +178,7 @@
         implicit val tid = transid()
         val ruleName = EntityName("reject_delete_rule_active")
         val triggerName = EntityName("a trigger")
-        val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(Namespace(WhiskEntity.qualifiedName(namespace, ruleName)) -> ReducedRule(namespace, Status.ACTIVE))))
+        val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(EntityPath(WhiskEntity.qualifiedName(namespace, ruleName)) -> ReducedRule(namespace, Status.ACTIVE))))
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
         put(entityStore, trigger)
         put(entityStore, rule)
@@ -193,10 +193,10 @@
     it should "delete rule in state inactive" in {
         implicit val tid = transid()
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val actionName = aname
-        val actionNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, actionName))
+        val actionNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, actionName))
         val triggerLink = ReducedRule(actionNameQualified, Status.INACTIVE)
         val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(ruleNameQualified -> triggerLink)))
         val rule = WhiskRule(namespace, ruleName, triggerName, actionName)
@@ -227,7 +227,7 @@
     it should "delete rule in state inactive even if the trigger has no reference to the rule" in {
         implicit val tid = transid()
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val trigger = WhiskTrigger(namespace, triggerName)
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
@@ -247,10 +247,10 @@
         implicit val tid = transid()
 
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val actionName = aname
-        val actionNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, actionName))
+        val actionNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, actionName))
         val trigger = WhiskTrigger(namespace, triggerName)
         val rule = WhiskRule(namespace, ruleName, triggerName, actionName)
         val action = WhiskAction(namespace, actionName, Exec.js("??"))
@@ -358,7 +358,7 @@
 
             status should be(OK)
 
-            t.rules.get(Namespace(WhiskEntity.qualifiedName(namespace, rule.name))).action should be(Namespace(WhiskEntity.qualifiedName(namespace, action.name)))
+            t.rules.get(EntityPath(WhiskEntity.qualifiedName(namespace, rule.name))).action should be(EntityPath(WhiskEntity.qualifiedName(namespace, action.name)))
             val response = responseAs[WhiskRuleResponse]
             response should be(WhiskRuleResponse(namespace, rule.name, Status.ACTIVE, trigger.name, action.name, version = SemVer().upPatch))
         }
@@ -379,7 +379,7 @@
             deleteRule(rule.docid)
 
             status should be(OK)
-            t.rules.get(Namespace(WhiskEntity.qualifiedName(namespace, rule.name))).action should be(Namespace(WhiskEntity.qualifiedName(namespace, action.name)))
+            t.rules.get(EntityPath(WhiskEntity.qualifiedName(namespace, rule.name))).action should be(EntityPath(WhiskEntity.qualifiedName(namespace, action.name)))
             val response = responseAs[WhiskRuleResponse]
             response should be(WhiskRuleResponse(namespace, rule.name, Status.ACTIVE, trigger.name, action.name, version = SemVer().upPatch))
         }
@@ -400,7 +400,7 @@
             deleteRule(rule.docid)
 
             status should be(OK)
-            t.rules.map { rules => rules(Namespace(WhiskEntity.qualifiedName(namespace, rule.name))).action }.get should be(Namespace(WhiskEntity.qualifiedName(namespace, action.name)))
+            t.rules.map { rules => rules(EntityPath(WhiskEntity.qualifiedName(namespace, rule.name))).action }.get should be(EntityPath(WhiskEntity.qualifiedName(namespace, action.name)))
             val response = responseAs[WhiskRuleResponse]
             response should be(WhiskRuleResponse(namespace, rule.name, Status.ACTIVE, trigger.name, action.name, version = SemVer().upPatch))
         }
@@ -421,7 +421,7 @@
             deleteRule(rule.docid)
 
             status should be(OK)
-            t.rules.get.get(Namespace(WhiskEntity.qualifiedName(namespace, rule.name))) shouldBe a[Some[_]]
+            t.rules.get.get(EntityPath(WhiskEntity.qualifiedName(namespace, rule.name))) shouldBe a[Some[_]]
             val response = responseAs[WhiskRuleResponse]
             response should be(WhiskRuleResponse(namespace, rule.name, Status.ACTIVE, trigger.name, action.name, version = SemVer().upPatch))
         }
@@ -487,7 +487,7 @@
         implicit val tid = transid()
         val triggerName = EntityName("a trigger")
         val ruleName = aname
-        val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(Namespace(WhiskEntity.qualifiedName(namespace, ruleName)) -> ReducedRule(namespace, Status.ACTIVE))))
+        val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(EntityPath(WhiskEntity.qualifiedName(namespace, ruleName)) -> ReducedRule(namespace, Status.ACTIVE))))
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
         put(entityStore, trigger)
         put(entityStore, rule)
@@ -511,7 +511,7 @@
         implicit val tid = transid()
         val ruleName = aname
         val triggerName = EntityName("a trigger")
-        val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(Namespace(WhiskEntity.qualifiedName(namespace, ruleName)) -> ReducedRule(namespace, Status.ACTIVE))))
+        val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(EntityPath(WhiskEntity.qualifiedName(namespace, ruleName)) -> ReducedRule(namespace, Status.ACTIVE))))
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
         put(entityStore, trigger)
         put(entityStore, rule)
@@ -538,7 +538,7 @@
     it should "activate rule" in {
         implicit val tid = transid()
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
         val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(ruleNameQualified -> ReducedRule(namespace, Status.INACTIVE))))
@@ -557,7 +557,7 @@
     it should "activate rule without rule in trigger" in {
         implicit val tid = transid()
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
         val trigger = WhiskTrigger(namespace, triggerName)
@@ -575,7 +575,7 @@
     it should "reject rule activation, if the trigger is absent" in {
         implicit val tid = transid()
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
         put(entityStore, rule)
@@ -587,7 +587,7 @@
     it should "deactivate rule" in {
         implicit val tid = transid()
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val rule = WhiskRule(namespace, ruleName, triggerName, EntityName("an action"))
         val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(ruleNameQualified -> ReducedRule(namespace, Status.ACTIVE))))
@@ -628,10 +628,10 @@
         implicit val tid = transid()
 
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val actionName = aname
-        val actionNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, actionName))
+        val actionNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, actionName))
         val trigger = OldWhiskTrigger(namespace, triggerName)
         val rule = WhiskRule(namespace, ruleName, triggerName, actionName)
         val action = WhiskAction(namespace, actionName, Exec.js("??"))
@@ -653,7 +653,7 @@
     it should "activate rule even if it is still in the old schema" in {
         implicit val tid = transid()
         val ruleName = aname
-        val ruleNameQualified = Namespace(WhiskEntity.qualifiedName(namespace, ruleName))
+        val ruleNameQualified = EntityPath(WhiskEntity.qualifiedName(namespace, ruleName))
         val triggerName = aname
         val rule = OldWhiskRule(namespace, ruleName, triggerName, EntityName("an action"), Status.ACTIVE)
         val trigger = WhiskTrigger(namespace, triggerName, rules = Some(Map(ruleNameQualified -> ReducedRule(namespace, Status.INACTIVE))))
diff --git a/tests/src/whisk/core/controller/test/TriggersApiTests.scala b/tests/src/whisk/core/controller/test/TriggersApiTests.scala
index 3ca1140..c88ce82 100644
--- a/tests/src/whisk/core/controller/test/TriggersApiTests.scala
+++ b/tests/src/whisk/core/controller/test/TriggersApiTests.scala
@@ -41,7 +41,7 @@
 import whisk.core.entity.ActivationId
 import whisk.core.entity.AuthKey
 import whisk.core.entity.DocId
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Parameters
 import whisk.core.entity.Subject
 import whisk.core.entity.WhiskActivation
@@ -71,8 +71,8 @@
     behavior of "Triggers API"
 
     val creds = WhiskAuth(Subject(), AuthKey())
-    val namespace = Namespace(creds.subject())
-    val collectionPath = s"/${Namespace.DEFAULT}/${collection.path}"
+    val namespace = EntityPath(creds.subject())
+    val collectionPath = s"/${EntityPath.DEFAULT}/${collection.path}"
     def aname = MakeName.next("triggers_tests")
     val entityTooBigRejectionMessage = "request entity too large"
     val parametersLimit = Parameters.sizeLimit
diff --git a/tests/src/whisk/core/database/test/DbUtils.scala b/tests/src/whisk/core/database/test/DbUtils.scala
index 9472521..db1a216 100644
--- a/tests/src/whisk/core/database/test/DbUtils.scala
+++ b/tests/src/whisk/core/database/test/DbUtils.scala
@@ -30,7 +30,7 @@
 import whisk.core.database.DocumentFactory
 import whisk.core.database.NoDocumentException
 import whisk.core.entity.DocInfo
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.UUID
 import whisk.core.entity.WhiskAuth
 import whisk.core.entity.WhiskEntityQueries
@@ -79,7 +79,7 @@
      * where the step performs a direct db query to retrieve the view and check the count
      * matches the given value.
      */
-    def waitOnView[Au](db: ArtifactStore[Au], namespace: Namespace, count: Int)(
+    def waitOnView[Au](db: ArtifactStore[Au], namespace: EntityPath, count: Int)(
         implicit context: ExecutionContext, transid: TransactionId, timeout: Duration) = {
         val success = retry(() => {
             val startKey = List(namespace.toString)
@@ -98,7 +98,7 @@
      * This uses retry above, where the step performs a collection-specific view query using the collection
      * factory. The result count from the view is checked against the given value.
      */
-    def waitOnView(db: EntityStore, factory: WhiskEntityQueries[_], namespace: Namespace, count: Int)(
+    def waitOnView(db: EntityStore, factory: WhiskEntityQueries[_], namespace: EntityPath, count: Int)(
         implicit context: ExecutionContext, transid: TransactionId, timeout: Duration) = {
         val success = retry(() => {
             factory.listCollectionInNamespace(db, namespace, 0, 0) map { l =>
diff --git a/tests/src/whisk/core/entity/test/DatastoreTests.scala b/tests/src/whisk/core/entity/test/DatastoreTests.scala
index a9b64e2..a201671 100644
--- a/tests/src/whisk/core/entity/test/DatastoreTests.scala
+++ b/tests/src/whisk/core/entity/test/DatastoreTests.scala
@@ -43,7 +43,7 @@
     with WskActorSystem
     with DbUtils {
 
-    val namespace = Namespace("test namespace")
+    val namespace = EntityPath("test namespace")
     val config = new WhiskConfig(WhiskEntityStore.requiredProperties)
     val datastore = WhiskEntityStore.datastore(config)
     val authstore = WhiskAuthStore.datastore(config)
diff --git a/tests/src/whisk/core/entity/test/MigrationEntities.scala b/tests/src/whisk/core/entity/test/MigrationEntities.scala
index 3dc2f8a..7bf020d 100644
--- a/tests/src/whisk/core/entity/test/MigrationEntities.scala
+++ b/tests/src/whisk/core/entity/test/MigrationEntities.scala
@@ -30,7 +30,7 @@
  * itself
  */
 case class OldWhiskRule(
-    namespace: Namespace,
+    namespace: EntityPath,
     override val name: EntityName,
     trigger: types.Trigger,
     action: types.Action,
@@ -58,7 +58,7 @@
  * Old schema of triggers, not containing a map of ReducedRules
  */
 case class OldWhiskTrigger(
-    namespace: Namespace,
+    namespace: EntityPath,
     override val name: EntityName,
     parameters: Parameters = Parameters(),
     limits: TriggerLimits = TriggerLimits(),
diff --git a/tests/src/whisk/core/entity/test/SchemaTests.scala b/tests/src/whisk/core/entity/test/SchemaTests.scala
index c408c0b..2a0f2d3 100644
--- a/tests/src/whisk/core/entity/test/SchemaTests.scala
+++ b/tests/src/whisk/core/entity/test/SchemaTests.scala
@@ -49,7 +49,7 @@
 import whisk.core.entity.Exec
 import whisk.core.entity.LogLimit
 import whisk.core.entity.MemoryLimit
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Parameters
 import whisk.core.entity.Secret
 import whisk.core.entity.SemVer
@@ -111,7 +111,7 @@
         val paths = Seq("/a", "//a", "//a//", "//a//b//c", "//a//b/c//", "a", "a/b", "a/b/", "a@b.c", "a@b.c/", "a@b.c/d", "_a/", "_ _", "a/b/c")
         val expected = Seq("a", "a", "a", "a/b/c", "a/b/c", "a", "a/b", "a/b", "a@b.c", "a@b.c", "a@b.c/d", "_a", "_ _", "a/b/c")
         val spaces = paths.zip(expected).foreach { p =>
-            assert(Namespace(p._1).namespace == p._2)
+            assert(EntityPath(p._1).namespace == p._2)
         }
     }
 
@@ -119,7 +119,7 @@
         val paths = Seq(null, "", " ", "a/ ", "a/b/c ", " xxx", "xxx ", " xxx", "xxx/ ", "/", " /", "/ ", "//", "///", " / / / ", "a/b/ c", "a/ /b", " a/ b")
         paths.foreach { p =>
             val thrown = intercept[IllegalArgumentException] {
-                Namespace(p)
+                EntityPath(p)
             }
         }
     }
diff --git a/tests/src/whisk/core/entity/test/ViewTests.scala b/tests/src/whisk/core/entity/test/ViewTests.scala
index 6c07af0..3da42a8 100644
--- a/tests/src/whisk/core/entity/test/ViewTests.scala
+++ b/tests/src/whisk/core/entity/test/ViewTests.scala
@@ -33,7 +33,7 @@
 import whisk.core.entity.Binding
 import whisk.core.entity.EntityName
 import whisk.core.entity.Exec
-import whisk.core.entity.Namespace
+import whisk.core.entity.EntityPath
 import whisk.core.entity.Subject
 import whisk.core.entity.WhiskAction
 import whisk.core.entity.WhiskActivation
@@ -73,10 +73,10 @@
     }
 
     val creds1 = WhiskAuth(Subject("s12345"), AuthKey())
-    val namespace1 = Namespace(creds1.subject())
+    val namespace1 = EntityPath(creds1.subject())
 
     val creds2 = WhiskAuth(Subject("t12345"), AuthKey())
-    val namespace2 = Namespace(creds2.subject())
+    val namespace2 = EntityPath(creds2.subject())
 
     val config = new WhiskConfig(WhiskEntityStore.requiredProperties)
     val datastore = WhiskEntityStore.datastore(config)
@@ -94,7 +94,7 @@
 
     behavior of "Datastore View"
 
-    def getAllInNamespace(ns: Namespace)(implicit entities: Seq[WhiskEntity]) = {
+    def getAllInNamespace(ns: EntityPath)(implicit entities: Seq[WhiskEntity]) = {
         implicit val tid = transid()
         val result = Await.result(listAllInNamespace(datastore, ns, false), dbOpTimeout).values.toList flatMap { t => t }
         val expected = entities filter { _.namespace.root == ns }
@@ -102,7 +102,7 @@
         expected forall { e => result contains e.summaryAsJson } should be(true)
     }
 
-    def getEntitiesInNamespace(ns: Namespace)(implicit entities: Seq[WhiskEntity]) = {
+    def getEntitiesInNamespace(ns: EntityPath)(implicit entities: Seq[WhiskEntity]) = {
         implicit val tid = transid()
         val map = Await.result(listEntitiesInNamespace(datastore, ns, false), dbOpTimeout)
         val result = map.values.toList flatMap { t => t }
@@ -112,7 +112,7 @@
         expected forall { e => result contains e.summaryAsJson } should be(true)
     }
 
-    def getKindInNamespace(ns: Namespace, kind: String, f: (WhiskEntity) => Boolean)(implicit entities: Seq[WhiskEntity]) = {
+    def getKindInNamespace(ns: EntityPath, kind: String, f: (WhiskEntity) => Boolean)(implicit entities: Seq[WhiskEntity]) = {
         implicit val tid = transid()
         val result = Await.result(listCollectionInNamespace(datastore, kind, ns, 0, 0, convert = None) map { _.left.get map { e => e } }, dbOpTimeout)
         val expected = entities filter { e => f(e) && e.namespace.root == ns }
@@ -128,7 +128,7 @@
         expected forall { e => result contains e.summaryAsJson } should be(true)
     }
 
-    def getKindInNamespaceWithDoc[T](ns: Namespace, kind: String, f: (WhiskEntity) => Boolean, convert: Option[JsObject => Try[T]])(implicit entities: Seq[WhiskEntity]) = {
+    def getKindInNamespaceWithDoc[T](ns: EntityPath, kind: String, f: (WhiskEntity) => Boolean, convert: Option[JsObject => Try[T]])(implicit entities: Seq[WhiskEntity]) = {
         implicit val tid = transid()
         val result = Await.result(listCollectionInNamespace(datastore, kind, ns, 0, 0, convert = convert) map { _.right.get }, dbOpTimeout)
         val expected = entities filter { e => f(e) && e.namespace.root == ns }
@@ -136,7 +136,7 @@
         expected forall { e => result contains e } should be(true)
     }
 
-    def getKindInNamespaceByName(ns: Namespace, kind: String, name: EntityName, f: (WhiskEntity) => Boolean)(implicit entities: Seq[WhiskEntity]) = {
+    def getKindInNamespaceByName(ns: EntityPath, kind: String, name: EntityName, f: (WhiskEntity) => Boolean)(implicit entities: Seq[WhiskEntity]) = {
         implicit val tid = transid()
         val result = Await.result(listCollectionByName(datastore, kind, ns, name, 0, 0, convert = None) map { _.left.get map { e => e } }, dbOpTimeout)
         val expected = entities filter { e => f(e) && e.namespace.root == ns }
@@ -144,7 +144,7 @@
         expected forall { e => result contains e.summaryAsJson } should be(true)
     }
 
-    def getKindInPackage(ns: Namespace, kind: String, f: (WhiskEntity) => Boolean)(implicit entities: Seq[WhiskEntity]) = {
+    def getKindInPackage(ns: EntityPath, kind: String, f: (WhiskEntity) => Boolean)(implicit entities: Seq[WhiskEntity]) = {
         implicit val tid = transid()
         val result = Await.result(listCollectionInNamespace(datastore, kind, ns, 0, 0, convert = None) map { _.left.get map { e => e } }, dbOpTimeout)
         val expected = entities filter { e => f(e) && e.namespace == ns }
@@ -153,7 +153,7 @@
     }
 
     def getKindInNamespaceByNameSortedByDate(
-        ns: Namespace, kind: String, name: EntityName, skip: Int, count: Int, start: Option[Instant], end: Option[Instant], f: (WhiskEntity) => Boolean)(
+        ns: EntityPath, kind: String, name: EntityName, skip: Int, count: Int, start: Option[Instant], end: Option[Instant], f: (WhiskEntity) => Boolean)(
             implicit entities: Seq[WhiskEntity]) = {
         implicit val tid = transid()
         val result = Await.result(listCollectionByName(datastore, kind, ns, name, skip, count, start, end, convert = None) map { _.left.get map { e => e } }, dbOpTimeout)