/** * * @param r * @return */ public Resource installNamespace(Resource r) { if (!hasFileBeenModified(r) || ignoreResource(r)) { return null; } String prefix = getExtensionNameFromFile(r); String namespaceUri; try { namespaceUri = new String(FileCopyUtils.copyToByteArray(r.getInputStream())); } catch (IOException ie) { logger.error("Unable to install namespace from file: " + r.getFilename(), ie); return null; } NamespacesManager mgr = client.newServerConfigManager().newNamespacesManager(); String existingUri = mgr.readPrefix(prefix); if (existingUri != null) { logger.info(String.format("Deleting namespace with prefix of %s and URI of %s", prefix, existingUri)); mgr.deletePrefix(prefix); } logger.info(String.format("Adding namespace with prefix of %s and URI of %s", prefix, namespaceUri)); mgr.addPrefix(prefix, namespaceUri); updateTimestamp(r); return r; }
@Test public void testExceptions() throws ForbiddenUserException, FailedRequestException, ResourceNotFoundException { NamespacesManager nsMgr = Common.adminClient.newServerConfigManager().newNamespacesManager(); boolean illegalArgument = false; try { nsMgr.updatePrefix(javax.xml.XMLConstants.DEFAULT_NS_PREFIX, "http://invalid"); } catch (IllegalArgumentException e) { illegalArgument = true; } assertTrue("Updating default prefix did not throw illegal argument exception", illegalArgument); illegalArgument = false; try { nsMgr.addPrefix(javax.xml.XMLConstants.DEFAULT_NS_PREFIX, "http://invalid"); } catch (IllegalArgumentException e) { illegalArgument = true; } assertTrue("Adding default prefix did not throw illegal argument exception", illegalArgument); } }