List of usage examples for org.jdom2 Element getNamespace
public Namespace getNamespace()
From source file:org.apache.maven.settings.io.jdom.SettingsJDOMWriter.java
License:Apache License
/** * Method iterateServer.// ww w. j av a 2 s . c o m * * @param counter * @param childTag * @param parentTag * @param list * @param parent */ protected void iterateServer(final IndentationCounter counter, final Element parent, final java.util.Collection list, final java.lang.String parentTag, final java.lang.String childTag) { final boolean shouldExist = (list != null) && (list.size() > 0); final Element element = updateElement(counter, parent, parentTag, shouldExist); if (shouldExist) { final Iterator it = list.iterator(); Iterator elIt = element.getChildren(childTag, element.getNamespace()).iterator(); if (!elIt.hasNext()) { elIt = null; } final IndentationCounter innerCount = new IndentationCounter(counter.getDepth() + 1); while (it.hasNext()) { final Server value = (Server) it.next(); Element el; if (elIt != null && elIt.hasNext()) { el = (Element) elIt.next(); if (!elIt.hasNext()) { elIt = null; } } else { el = factory.element(childTag, element.getNamespace()); insertAtPreferredLocation(element, el, innerCount); } updateServer(value, childTag, innerCount, el); innerCount.increaseCount(); } if (elIt != null) { while (elIt.hasNext()) { elIt.next(); elIt.remove(); } } } }
From source file:org.apache.maven.toolchain.model.io.jdom.MavenToolchainsJDOMWriter.java
License:Apache License
/** * Method iterate2ToolchainModel.// w w w . j a va 2s.c o m * * @param counter * @param childTag * @param list * @param parent */ protected void iterate2ToolchainModel(final IndentationCounter counter, final Element parent, final java.util.Collection list, final java.lang.String childTag) { final Iterator it = list.iterator(); Iterator elIt = parent.getChildren(childTag, parent.getNamespace()).iterator(); if (!elIt.hasNext()) { elIt = null; } final IndentationCounter innerCount = new IndentationCounter(counter.getDepth() + 1); while (it.hasNext()) { final ToolchainModel value = (ToolchainModel) it.next(); Element el; if (elIt != null && elIt.hasNext()) { el = (Element) elIt.next(); if (!elIt.hasNext()) { elIt = null; } } else { el = factory.element(childTag, parent.getNamespace()); insertAtPreferredLocation(parent, el, innerCount); } updateToolchainModel(value, childTag, innerCount, el); innerCount.increaseCount(); } if (elIt != null) { while (elIt.hasNext()) { elIt.next(); elIt.remove(); } } }
From source file:org.artifactory.logging.version.v3.LogbackJFrogInfoConverter.java
License:Open Source License
@Override public void convert(Document doc) { Element root = doc.getRootElement(); Namespace ns = root.getNamespace(); List<Element> loggers = root.getChildren("logger", ns); for (Element logger : loggers) { if (StringUtils.equals(logger.getAttributeValue("name", ns), "org.jfrog")) { return; }/*from w ww . j av a 2s .com*/ } // Did not find org.jfrog, let's add it Element logger = new Element("logger", ns); logger.setAttribute("name", "org.jfrog"); Element level = new Element("level", ns); level.setAttribute("value", "info"); logger.addContent(level); root.addContent(logger); }
From source file:org.artifactory.mime.version.converter.MimeTypeConverterBase.java
License:Open Source License
protected void addIfNotExist(Document doc, MimeType newType) { Element rootElement = doc.getRootElement(); Namespace namespace = rootElement.getNamespace(); List mimetypes = rootElement.getChildren("mimetype", namespace); if (mimetypes == null) { return;/*from w ww .j a va 2s . c om*/ } Element typeElement = getByType(mimetypes, namespace, newType.getType()); if (typeElement == null) { typeElement = new Element("mimetype", namespace); typeElement.setAttribute("type", newType.getType()); typeElement.setAttribute("extensions", buildExtensionsString(newType)); if (StringUtils.isNotBlank(newType.getCss())) { typeElement.setAttribute("css", newType.getCss()); } if (newType.isArchive()) { typeElement.setAttribute("archive", newType.isArchive() + ""); } if (newType.isIndex()) { typeElement.setAttribute("index", newType.isIndex() + ""); } if (newType.isViewable()) { typeElement.setAttribute("viewable", newType.isViewable() + ""); } rootElement.addContent(typeElement); } }
From source file:org.artifactory.mime.version.converter.v1.XmlIndexedConverter.java
License:Open Source License
@Override public void convert(Document doc) { Element rootElement = doc.getRootElement(); Namespace namespace = rootElement.getNamespace(); List mimetypes = rootElement.getChildren("mimetype", namespace); // make sure there are no more 'xml' attributes for (Object mimetype : mimetypes) { Element mimeTypeElement = (Element) mimetype; Attribute xmlAttribute = mimeTypeElement.getAttribute("xml", namespace); if (xmlAttribute != null) { // rename to index xmlAttribute.setName("index"); // change to false unless maven of ivy String type = mimeTypeElement.getAttributeValue("type"); if (!"application/x-maven-pom+xml".equals(type) && !"application/x-ivy+xml".equals(type)) { xmlAttribute.setValue("false"); }/*from w w w . j a va 2s. c om*/ } } }
From source file:org.artifactory.mime.version.converter.v2.AscMimeTypeConverter.java
License:Open Source License
@Override public void convert(Document doc) { Element rootElement = doc.getRootElement(); Namespace namespace = rootElement.getNamespace(); List mimetypes = rootElement.getChildren("mimetype", namespace); // find "text/plain" mimetype if (mimetypes != null) { for (Object mimetype : mimetypes) { Element mimeTypeElement = (Element) mimetype; String type = mimeTypeElement.getAttributeValue("type"); if ("text/plain".equals(type)) { String extensions = mimeTypeElement.getAttributeValue("extensions", namespace); if (StringUtils.isBlank(extensions)) { extensions = ""; } else { if (!extensions.endsWith(",") && !extensions.endsWith(", ")) { extensions += ", "; }/*w ww. j a v a 2 s.co m*/ } mimeTypeElement.setAttribute("extensions", extensions + "asc"); break; } } } }
From source file:org.artifactory.mime.version.converter.v3.ArchivesIndexConverter.java
License:Open Source License
@Override public void convert(Document doc) { Element rootElement = doc.getRootElement(); Namespace namespace = rootElement.getNamespace(); List mimetypes = rootElement.getChildren("mimetype", namespace); for (Object mimetype : mimetypes) { Element mimeTypeElement = (Element) mimetype; String archiveValue = mimeTypeElement.getAttributeValue("archive", namespace); if ("true".equals(archiveValue)) { // add index attribute mimeTypeElement.setAttribute("index", "true", namespace); }/*from w w w. j a va2 s .co m*/ } }
From source file:org.artifactory.mime.version.converter.v7.ArchiveMimeTypeConverter.java
License:Open Source License
@Override public void convert(Document doc) { Element rootElement = doc.getRootElement(); Namespace namespace = rootElement.getNamespace(); List mimetypes = rootElement.getChildren("mimetype", namespace); log.info("updating mime-types: application/x-gzip and application/x-tar , setting archive value to true"); for (Object mimetype : mimetypes) { Element mimeTypeElement = (Element) mimetype; String type = mimeTypeElement.getAttributeValue("type", namespace); // update gzip and tar archive attribute to true if ("application/x-gzip".equals(type) || "application/x-tar".equals(type)) { // set archive attribute to true mimeTypeElement.getAttribute("archive").setValue("true"); }//from w w w.j a v a2 s.co m } }
From source file:org.artifactory.repo.remote.browse.S3RepositoryBrowser.java
License:Open Source License
/** * Detects the bucket url (i.e., root url). The given url is assumed to either point to the root or to "directory" * under the root. The most reliable way to get the root is to request non-existing resource and analyze the response. * * @param url URL to S3 repository/*from w w w . ja va2 s .c o m*/ * @return The root url of the repository (the bucket) */ String detectRootUrl(String url) throws IOException { //noinspection RedundantStringConstructorCall String copyUrl = new String(url); //defense // force non-directory copyUrl. S3 returns 200 for directory paths url = url.endsWith("/") ? StringUtils.removeEnd(url, "/") : url; // generate a random string to force 404 String randomString = RandomStringUtils.randomAlphanumeric(16); url = url + "/" + randomString; HttpGet method = new HttpGet(url); try (CloseableHttpResponse response = client.executeMethod(method)) { // most likely to get 404 if the repository exists assertSizeLimit(url, response); String responseString = IOUtils.toString(HttpUtils.getResponseBody(response), Charsets.UTF_8.name()); log.debug("Detect S3 root url got response code {} with content: {}", response.getStatusLine().getStatusCode(), responseString); Document doc = XmlUtils.parse(responseString); Element root = doc.getRootElement(); String errorCode = root.getChildText("Code", root.getNamespace()); if (ERROR_CODE_NOSUCHKEY.equals(errorCode)) { String relativePath = root.getChildText("Key", root.getNamespace()); rootUrl = StringUtils.removeEnd(url, relativePath); } else if (INVALID_ARGUMENT.equals(errorCode)) { if (isPro()) { String message = root.getChildText("Message"); if (UNSUPPORTED_AUTHORIZATION_TYPE.equals(message)) { rootUrl = detectRootUrlSecured(copyUrl); } } else { log.warn("Browsing secured S3 requires Artifactory Pro"); //TODO [mamo] should inform otherwise? } } else { throw new IOException("Couldn't detect S3 root URL. Unknown error code: " + errorCode); } } log.debug("Detected S3 root URL: {}", rootUrl); return rootUrl; }
From source file:org.artifactory.repo.remote.browse.S3RepositoryBrowser.java
License:Open Source License
@SuppressWarnings({ "unchecked" }) private List<RemoteItem> parseResponse(String content) { List<RemoteItem> items = Lists.newArrayList(); Document document = XmlUtils.parse(content); Element root = document.getRootElement(); Namespace ns = root.getNamespace(); String prefix = root.getChildText("Prefix", ns); // retrieve folders List<Element> folders = root.getChildren("CommonPrefixes", ns); for (Element folder : folders) { String directoryPath = folder.getChildText("Prefix", ns); String folderName = StringUtils.removeStart(directoryPath, prefix); if (StringUtils.isNotBlank(folderName)) { if (secured) { directoryPath = StringUtils.removeStart(directoryPath, getPrefix(rootUrl)); }/* www. j a v a 2 s .co m*/ items.add(new RemoteItem(rootUrl + directoryPath, true)); } } // retrieve files List<Element> files = root.getChildren("Contents", ns); for (Element element : files) { String filePath = element.getChildText("Key", ns); String fileName = StringUtils.removeStart(filePath, prefix); if (StringUtils.isNotBlank(fileName) && !folderDirectoryWithSameNameExists(fileName, items)) { // the date format is of the form yyyy-mm-ddThh:mm:ss.timezone, e.g., 2009-02-03T16:45:09.000Z String sizeStr = element.getChildText("Size", ns); long size = sizeStr == null ? 0 : Long.parseLong(sizeStr); String lastModifiedStr = element.getChildText("LastModified", ns); long lastModified = lastModifiedStr == null ? 0 : ISODateTimeFormat.dateTime().parseMillis(lastModifiedStr); if (secured) { RemoteItem remoteItem = new RemoteItem(rootUrl + filePath, false, size, lastModified); String filePath2 = StringUtils.removeStart(filePath, getPrefix(rootUrl)); String url = rootUrl + filePath2; String securedPath = buildSecuredS3RequestUrl(url, httpRepo, getPrefix(url)); remoteItem.setEffectiveUrl(securedPath); items.add(remoteItem); } else { items.add(new RemoteItem(rootUrl + filePath, false, size, lastModified)); } } } return items; }