Search in sources :

Example 36 with Jcr

use of org.apache.jackrabbit.oak.jcr.Jcr in project jackrabbit-oak by apache.

the class NodeStateCopyUtilsTest method copyToJcrVariousProps.

@Test
public void copyToJcrVariousProps() throws Exception {
    repository = new Jcr().with(new OpenSecurityProvider()).createRepository();
    Calendar cal = ISO8601.parse(ISO8601.format(Calendar.getInstance()));
    Tree srcTree = TreeFactory.createTree(builder);
    srcTree.setOrderableChildren(true);
    srcTree.setProperty("fooString", "x");
    srcTree.setProperty("fooLong", 1L, Type.LONG);
    srcTree.setProperty("fooPath", "/fooNode", Type.PATH);
    srcTree.setProperty("fooName", "mix:title", Type.NAME);
    srcTree.setProperty("fooDouble", 1.0, Type.DOUBLE);
    srcTree.setProperty("fooDate", ISO8601.format(cal), Type.DATE);
    srcTree.setProperty("fooBoolean", true, Type.BOOLEAN);
    srcTree.setProperty("fooStrings", asList("a", "b"), Type.STRINGS);
    srcTree.setProperty("fooBlob", new ArrayBasedBlob("foo".getBytes()), Type.BINARY);
    srcTree.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_OAK_UNSTRUCTURED, Type.NAME);
    srcTree.setProperty(JcrConstants.JCR_MIXINTYPES, asList("mix:mimeType", "mix:title"), Type.NAMES);
    Session session = repository.login(null, null);
    Node node = session.getRootNode();
    Node test = node.addNode("test", NT_OAK_UNSTRUCTURED);
    Node fooNode = node.addNode("fooNode", NT_OAK_UNSTRUCTURED);
    NodeStateCopyUtils.copyToNode(builder.getNodeState(), test);
    session.save();
    test = session.getNode("/test");
    assertEquals("x", test.getProperty("fooString").getString());
    assertEquals("/fooNode", test.getProperty("fooPath").getNode().getPath());
    assertEquals("mix:title", test.getProperty("fooName").getString());
    assertEquals(1, test.getProperty("fooLong").getLong());
    assertEquals(cal, test.getProperty("fooDate").getDate());
    assertEquals("a", test.getProperty("fooStrings").getValues()[0].getString());
    assertEquals("b", test.getProperty("fooStrings").getValues()[1].getString());
    InputStream is = test.getProperty("fooBlob").getBinary().getStream();
    String streamVal = IOUtils.toString(is, "UTF-8");
    assertEquals("foo", streamVal);
}
Also used : InputStream(java.io.InputStream) Calendar(java.util.Calendar) ArrayBasedBlob(org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob) Node(javax.jcr.Node) Jcr(org.apache.jackrabbit.oak.jcr.Jcr) Tree(org.apache.jackrabbit.oak.api.Tree) OpenSecurityProvider(org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider) Session(javax.jcr.Session) Test(org.junit.Test)

Aggregations

Jcr (org.apache.jackrabbit.oak.jcr.Jcr)36 Oak (org.apache.jackrabbit.oak.Oak)19 Before (org.junit.Before)19 SimpleCredentials (javax.jcr.SimpleCredentials)15 Session (javax.jcr.Session)11 NodeStore (org.apache.jackrabbit.oak.spi.state.NodeStore)8 File (java.io.File)7 Repository (javax.jcr.Repository)7 Node (javax.jcr.Node)6 MemoryStore (org.apache.jackrabbit.oak.segment.memory.MemoryStore)6 InputStream (java.io.InputStream)4 RepositoryImpl (org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl)4 QueryEngineSettings (org.apache.jackrabbit.oak.query.QueryEngineSettings)4 Observer (org.apache.jackrabbit.oak.spi.commit.Observer)4 RepositoryException (javax.jcr.RepositoryException)3 JackrabbitSession (org.apache.jackrabbit.api.JackrabbitSession)3 OakRepositoryFixture (org.apache.jackrabbit.oak.fixture.OakRepositoryFixture)3 SegmentNodeStore (org.apache.jackrabbit.oak.segment.SegmentNodeStore)3 QueryIndexProvider (org.apache.jackrabbit.oak.spi.query.QueryIndexProvider)3 ConfigurationParameters (org.apache.jackrabbit.oak.spi.security.ConfigurationParameters)3