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)