Search in sources :

Example 11 with XPath

use of org.jdom.xpath.XPath in project maven-plugins by apache.

the class ComponentsXmlArchiverFileFilterTest method testAddToArchive_ShouldWriteTwoComponentToArchivedFile.

public void testAddToArchive_ShouldWriteTwoComponentToArchivedFile() throws IOException, ArchiverException, JDOMException {
    filter.components = new LinkedHashMap<String, Xpp3Dom>();
    final Xpp3Dom dom = createComponentDom(new ComponentDef("role", "hint", "impl"));
    filter.components.put("rolehint", dom);
    final Xpp3Dom dom2 = createComponentDom(new ComponentDef("role", "hint2", "impl"));
    filter.components.put("rolehint2", dom2);
    final ZipArchiver archiver = new ZipArchiver();
    final File archiveFile = fileManager.createTempFile();
    archiver.setDestFile(archiveFile);
    final File descriptorFile = fileManager.createTempFile();
    archiver.setArchiveFinalizers(Collections.<ArchiveFinalizer>singletonList(filter));
    archiver.createArchive();
    ZipFile zf = null;
    FileOutputStream out = null;
    try {
        zf = new ZipFile(archiveFile);
        final ZipEntry ze = zf.getEntry(ComponentsXmlArchiverFileFilter.COMPONENTS_XML_PATH);
        assertNotNull(ze);
        out = new FileOutputStream(descriptorFile);
        IOUtil.copy(zf.getInputStream(ze), out);
        out.close();
        out = null;
        zf.close();
        zf = null;
    } finally {
        IOUtil.close(out);
        try {
            if (zf != null) {
                zf.close();
            }
        } catch (final IOException e) {
        // Suppressed.
        }
    }
    final SAXBuilder builder = new SAXBuilder(false);
    final Document doc = builder.build(descriptorFile);
    final XPath role = XPath.newInstance("//component[position()=1]/role/text()");
    final XPath hint = XPath.newInstance("//component[position()=1]/role-hint/text()");
    final XPath implementation = XPath.newInstance("//component[position()=1]/implementation/text()");
    assertEquals("role", ((Text) role.selectSingleNode(doc)).getText());
    assertEquals("hint", ((Text) hint.selectSingleNode(doc)).getText());
    assertEquals("impl", ((Text) implementation.selectSingleNode(doc)).getText());
    final XPath role2 = XPath.newInstance("//component[position()=2]/role/text()");
    final XPath hint2 = XPath.newInstance("//component[position()=2]/role-hint/text()");
    final XPath implementation2 = XPath.newInstance("//component[position()=2]/implementation/text()");
    assertEquals("role", ((Text) role2.selectSingleNode(doc)).getText());
    assertEquals("hint2", ((Text) hint2.selectSingleNode(doc)).getText());
    assertEquals("impl", ((Text) implementation2.selectSingleNode(doc)).getText());
}
Also used : XPath(org.jdom.xpath.XPath) Xpp3Dom(org.codehaus.plexus.util.xml.Xpp3Dom) SAXBuilder(org.jdom.input.SAXBuilder) ZipEntry(java.util.zip.ZipEntry) IOException(java.io.IOException) Document(org.jdom.Document) ZipFile(java.util.zip.ZipFile) ZipArchiver(org.codehaus.plexus.archiver.zip.ZipArchiver) FileOutputStream(java.io.FileOutputStream) ZipFile(java.util.zip.ZipFile) File(java.io.File)

Example 12 with XPath

use of org.jdom.xpath.XPath in project maven-plugins by apache.

the class ComponentsXmlArchiverFileFilterTest method testAddToArchive_ShouldWriteComponentWithHintToFile.

public void testAddToArchive_ShouldWriteComponentWithHintToFile() throws IOException, ArchiverException, JDOMException {
    final Xpp3Dom dom = createComponentDom(new ComponentDef("role", "hint", "impl"));
    filter.components = new LinkedHashMap<String, Xpp3Dom>();
    filter.components.put("rolehint", dom);
    final FileCatchingArchiver fca = new FileCatchingArchiver();
    filter.finalizeArchiveCreation(fca);
    assertEquals(ComponentsXmlArchiverFileFilter.COMPONENTS_XML_PATH, fca.getDestFileName());
    final SAXBuilder builder = new SAXBuilder(false);
    final Document doc = builder.build(fca.getFile());
    final XPath role = XPath.newInstance("//component[position()=1]/role/text()");
    final XPath hint = XPath.newInstance("//component[position()=1]/role-hint/text()");
    final XPath implementation = XPath.newInstance("//component[position()=1]/implementation/text()");
    assertEquals("role", ((Text) role.selectSingleNode(doc)).getText());
    assertEquals("hint", ((Text) hint.selectSingleNode(doc)).getText());
    assertEquals("impl", ((Text) implementation.selectSingleNode(doc)).getText());
}
Also used : XPath(org.jdom.xpath.XPath) Xpp3Dom(org.codehaus.plexus.util.xml.Xpp3Dom) SAXBuilder(org.jdom.input.SAXBuilder) Document(org.jdom.Document)

Aggregations

XPath (org.jdom.xpath.XPath)12 Document (org.jdom.Document)10 SAXBuilder (org.jdom.input.SAXBuilder)9 Element (org.jdom.Element)6 Xpp3Dom (org.codehaus.plexus.util.xml.Xpp3Dom)4 JDOMException (org.jdom.JDOMException)4 File (java.io.File)3 NotNull (org.jetbrains.annotations.NotNull)3 Nullable (org.jetbrains.annotations.Nullable)3 VirtualFile (com.intellij.openapi.vfs.VirtualFile)2 IOException (java.io.IOException)2 DatatypeConfigurationException (javax.xml.datatype.DatatypeConfigurationException)2 Logger (com.intellij.openapi.diagnostic.Logger)1 Comparing (com.intellij.openapi.util.Comparing)1 PasswordUtil (com.intellij.openapi.util.PasswordUtil)1 StringUtil (com.intellij.openapi.util.text.StringUtil)1 VfsUtil.findFileByIoFile (com.intellij.openapi.vfs.VfsUtil.findFileByIoFile)1 LightElement (com.intellij.psi.impl.light.LightElement)1 com.intellij.tasks (com.intellij.tasks)1 BaseRepository (com.intellij.tasks.impl.BaseRepository)1