diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/namespace/NamespaceConstants.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/namespace/NamespaceConstants.java index 668fa28518..ccbf8bde15 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/namespace/NamespaceConstants.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/namespace/NamespaceConstants.java @@ -43,6 +43,10 @@ public interface NamespaceConstants { String PREFIX_XMLNS = "xmlns"; String NAMESPACE_XMLNS = "http://www.w3.org/2000/xmlns/"; + // additional Oak namespace + String PREFIX_OAK = "oak"; + String NAMESPACE_OAK = "http://jackrabbit.apache.org/oak/ns/1.0"; + /** * Reserved namespace prefixes as defined in jackrabbit 2 */ @@ -53,7 +57,8 @@ public interface NamespaceConstants { NamespaceRegistry.PREFIX_MIX, PREFIX_XMLNS, PREFIX_REP, - PREFIX_SV + PREFIX_SV, + PREFIX_OAK )); /** @@ -66,7 +71,8 @@ public interface NamespaceConstants { NamespaceRegistry.NAMESPACE_MIX, NAMESPACE_XMLNS, NAMESPACE_REP, - NAMESPACE_SV + NAMESPACE_SV, + NAMESPACE_OAK )); // index nodes for faster lookup diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/namespace/package-info.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/namespace/package-info.java index 5b7f7acb78..89f79491d7 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/namespace/package-info.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/namespace/package-info.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@Version("1.0.0") +@Version("1.1.0") package org.apache.jackrabbit.oak.spi.namespace; import org.osgi.annotation.versioning.Version; \ No newline at end of file diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java index 2a036b99b0..886c303549 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditor.java @@ -26,15 +26,15 @@ import static org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.REP_NAM import static org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.REP_NSDATA; import static org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.REP_URIS; import static org.apache.jackrabbit.oak.plugins.name.Namespaces.isValidPrefix; -import static org.apache.jackrabbit.oak.plugins.name.Namespaces.safeGet; import java.util.Locale; import java.util.Set; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; + import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory; import org.apache.jackrabbit.oak.spi.commit.DefaultEditor; import org.apache.jackrabbit.oak.spi.commit.Editor; import org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants; @@ -89,8 +89,7 @@ class NamespaceEditor extends DefaultEditor { } private static boolean containsValue(NodeState namespaces, String value) { - return safeGet(TreeFactory.createReadOnlyTree(namespaces.getChildNode(REP_NSDATA)), - REP_URIS).contains(value); + return Iterables.contains(namespaces.getChildNode(REP_NSDATA).getStrings(REP_URIS), value); } @Override @@ -130,7 +129,7 @@ class NamespaceEditor extends DefaultEditor { if (!modified) { return; } - Namespaces.buildIndexNode(builder.child(JCR_SYSTEM).child( + Namespaces.buildIndexNode(builder.getChildNode(JCR_SYSTEM).child( REP_NAMESPACES)); } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java index 5f6f557342..46185c5beb 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java @@ -107,6 +107,9 @@ public class Namespaces implements NamespaceConstants { namespaces.setProperty(PREFIX_SV, NAMESPACE_SV); namespaces.setProperty(PREFIX_REP, NAMESPACE_REP); + // Oak Namespace + namespaces.setProperty(PREFIX_OAK, NAMESPACE_OAK); + return namespaces; }