@Test @FixFor("MODE-1408") public void shouldRegisterNewNamespace() { Map<String, String> urisByPrefix = new HashMap<String, String>(); String uri = "http://foo.bar"; String prefix = "foobar"; urisByPrefix.put(prefix, uri); system.registerNamespaces(urisByPrefix); assertEquals(prefix, system.readNamespacePrefix(uri, false)); }
@Test public void shouldUnregisterNamespace() { Map<String, String> urisByPrefix = new HashMap<String, String>(); String uri = "http://foo.bar"; String prefix = "foobar"; urisByPrefix.put(prefix, uri); system.registerNamespaces(urisByPrefix); assertTrue(system.unregisterNamespace(uri)); assertNull(system.readNamespacePrefix(uri, false)); }
@Override public String getPrefixForNamespaceUri(String namespaceUri, boolean generateIfMissing) { CheckArg.isNotNull(namespaceUri, "namespaceUri"); Lock lock = this.namespacesLock.readLock(); try { lock.lock(); // Try the cache first ... String prefix = cache.getPrefixForNamespaceUri(namespaceUri, false); if (prefix == null && generateIfMissing) { SystemContent systemContent = systemContent(!generateIfMissing); prefix = systemContent.readNamespacePrefix(namespaceUri, generateIfMissing); if (prefix != null) { systemContent.save(); cache.register(prefix, namespaceUri); } } return prefix; } finally { lock.unlock(); } }