Example usage for org.jdom2 Element getNamespace

List of usage examples for org.jdom2 Element getNamespace

Introduction

In this page you can find the example usage for org.jdom2 Element getNamespace.

Prototype

public Namespace getNamespace() 

Source Link

Document

Returns the element's Namespace .

Usage

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;
}