Wessel Nieboer created JCR-3890:
-----------------------------------

             Summary: Session.exportDocumentView() does not export mixin types, 
causing exceptions on importing
                 Key: JCR-3890
                 URL: https://issues.apache.org/jira/browse/JCR-3890
             Project: Jackrabbit Content Repository
          Issue Type: Bug
    Affects Versions: 2.10.1
            Reporter: Wessel Nieboer


When exporting a node that has mixins, it does not export these to XML.

{code}

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import javax.jcr.ImportUUIDBehavior;
import javax.jcr.Node;
import javax.jcr.PropertyType;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.nodetype.NodeTypeManager;
import javax.jcr.nodetype.NodeTypeTemplate;
import javax.jcr.nodetype.PropertyDefinitionTemplate;

import org.apache.jackrabbit.core.TransientRepository;
import org.junit.Test;

public class JackrabbitTestXML {
  @Test
  public void testExportImportXML() throws Exception {
    Repository repository = new TransientRepository();
    SimpleCredentials creds = new SimpleCredentials("user", 
"pass".toCharArray());
    Session session = repository.login(creds);

    NodeTypeManager mgr = session.getWorkspace().getNodeTypeManager();
    NodeTypeTemplate mixA = mgr.createNodeTypeTemplate();
    NodeTypeTemplate mixB = mgr.createNodeTypeTemplate();

    mixA.setName("mix:a");
    mixA.setMixin(true);
    mixB.setName("mix:b");
    mixB.setMixin(true);
    PropertyDefinitionTemplate jcrA = mgr.createPropertyDefinitionTemplate();
    jcrA.setName("jcr:a");
    jcrA.setRequiredType(PropertyType.STRING);

    PropertyDefinitionTemplate jcrB = mgr.createPropertyDefinitionTemplate();
    jcrB.setName("jcr:b");
    jcrB.setRequiredType(PropertyType.STRING);

    mixA.getPropertyDefinitionTemplates().add(jcrA);
    mixB.getPropertyDefinitionTemplates().add(jcrB);

    mgr.registerNodeType(mixA, true);
    mgr.registerNodeType(mixB, true);

    Node test = session.getRootNode().addNode("a", "nt:folder");

    test.addMixin("mix:a");
    test.addMixin("mix:b");
    test.setProperty("jcr:a", "a");
    test.setProperty("jcr:b", "b");
    session.save();

    FileOutputStream fos = new FileOutputStream(new File("target/wessel"));
    session.exportDocumentView("/a", fos, false, false);
    fos.close();


    FileInputStream fis = new FileInputStream(new File("target/wessel"));
    session.getRootNode().addNode("b", "nt:folder");
    session.save();
    session.getWorkspace().importXML("/b", fis, 
ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
    // session.importXML("/fotosets2", fis, 
ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);



  }
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to