Search in sources :

Example 1 with Node

use of javax.jcr.Node in project camel by apache.

the class JcrConsumerTest method testJcrConsumer.

@Test
public void testJcrConsumer() throws Exception {
    // start consumer thread first
    JcrConsumerThread consumerThread = new JcrConsumerThread();
    consumerThread.start();
    // wait until the consumer thread has tried to receive event at least once
    while (consumerThread.getReceiveTrialTimes() < 1) {
        Thread.sleep(10L);
    }
    // now create a node under the specified event node path
    Session session = openSession();
    try {
        Node folderNode = session.getRootNode();
        for (String folderNodeName : absPath.split("\\/")) {
            if (!"".equals(folderNodeName)) {
                if (folderNode.hasNode(folderNodeName)) {
                    folderNode.getNode(folderNodeName).remove();
                }
                folderNode = folderNode.addNode(folderNodeName, "nt:unstructured");
            }
        }
        folderNode.addNode("node", "nt:unstructured");
        session.save();
    } finally {
        if (session != null && session.isLive()) {
            session.logout();
        }
    }
    // wait until the consumer thread captures an event
    consumerThread.join();
    Exchange exchange = consumerThread.getExchange();
    assertNotNull(exchange);
    Message message = exchange.getIn();
    assertNotNull(message);
    assertTrue(message instanceof JcrMessage);
    EventIterator eventIterator = ((JcrMessage) message).getEventIterator();
    assertNotNull(eventIterator);
    assertEquals(1, eventIterator.getSize());
    List<?> eventList = message.getBody(List.class);
    assertEquals(1, eventList.size());
    Event event = (Event) eventList.get(0);
    assertEquals(Event.NODE_ADDED, event.getType());
    assertNotNull(event.getPath());
    assertTrue(event.getPath().startsWith(absPath));
}
Also used : Exchange(org.apache.camel.Exchange) Message(org.apache.camel.Message) Node(javax.jcr.Node) Event(javax.jcr.observation.Event) EventIterator(javax.jcr.observation.EventIterator) Session(javax.jcr.Session) Test(org.junit.Test)

Example 2 with Node

use of javax.jcr.Node in project camel by apache.

the class JcrGetNodeByIdTest method setUp.

@Override
@Before
public void setUp() throws Exception {
    super.setUp();
    Session session = openSession();
    Node node = session.getRootNode().addNode("home").addNode("test");
    node.setProperty("content.approved", APPROVED);
    node.setProperty("my.contents.property", CONTENT);
    ValueFactory valFact = session.getValueFactory();
    Value[] vals = new Value[] { valFact.createValue("value-1"), valFact.createValue("value-2") };
    node.setProperty("my.multi.valued", vals);
    identifier = node.getIdentifier();
    session.save();
    session.logout();
}
Also used : Node(javax.jcr.Node) Value(javax.jcr.Value) ValueFactory(javax.jcr.ValueFactory) Session(javax.jcr.Session) Before(org.junit.Before)

Example 3 with Node

use of javax.jcr.Node in project camel by apache.

the class JcrNodePathCreationTest method testJcrNodePathCreation.

@Test
public void testJcrNodePathCreation() throws Exception {
    Exchange exchange = createExchangeWithBody("<body/>");
    Exchange out = template.send("direct:a", exchange);
    assertNotNull(out);
    String uuid = out.getOut().getBody(String.class);
    assertNotNull("Out body was null; expected JCR node UUID", uuid);
    Session session = openSession();
    try {
        Node node = session.getNodeByIdentifier(uuid);
        assertNotNull(node);
        assertEquals("/home/test/node/with/path", node.getPath());
    } finally {
        if (session != null && session.isLive()) {
            session.logout();
        }
    }
}
Also used : Exchange(org.apache.camel.Exchange) Node(javax.jcr.Node) Session(javax.jcr.Session) Test(org.junit.Test)

Example 4 with Node

use of javax.jcr.Node in project camel by apache.

the class JcrProducerDifferentWorkspaceTest method testJcrProducer.

@Test
public void testJcrProducer() throws Exception {
    Exchange exchange = createExchangeWithBody("<hello>world!</hello>");
    Exchange out = template.send("direct:a", exchange);
    assertNotNull(out);
    String uuid = out.getOut().getBody(String.class);
    Session session = openSession(CUSTOM_WORKSPACE_NAME);
    try {
        Node node = session.getNodeByIdentifier(uuid);
        Workspace workspace = session.getWorkspace();
        assertEquals(CUSTOM_WORKSPACE_NAME, workspace.getName());
        assertNotNull(node);
        assertEquals("/home/test/node", node.getPath());
        assertEquals("<hello>world!</hello>", node.getProperty("my.contents.property").getString());
    } finally {
        if (session != null && session.isLive()) {
            session.logout();
        }
    }
}
Also used : Exchange(org.apache.camel.Exchange) Node(javax.jcr.Node) Session(javax.jcr.Session) Workspace(javax.jcr.Workspace) Test(org.junit.Test)

Example 5 with Node

use of javax.jcr.Node in project camel by apache.

the class JcrProducerTest method testNodeTypeIsSpecified.

@Test
public void testNodeTypeIsSpecified() throws Exception {
    Exchange exchange = createExchangeWithBody("Test");
    //there is no definition of such property in nt:resource
    exchange.getIn().removeHeader("testClass");
    exchange.getIn().setHeader(JcrConstants.JCR_NODE_NAME, "typedNode");
    exchange.getIn().setHeader(JcrConstants.JCR_NODE_TYPE, "nt:folder");
    Exchange out = template.send("direct:a", exchange);
    assertNotNull(out);
    String uuid = out.getOut().getBody(String.class);
    Session session = openSession();
    try {
        Node node = session.getNodeByIdentifier(uuid);
        assertNotNull(node);
        assertEquals("/home/test/typedNode", node.getPath());
        assertEquals("nt:folder", node.getPrimaryNodeType().getName());
    } finally {
        if (session != null && session.isLive()) {
            session.logout();
        }
    }
}
Also used : Exchange(org.apache.camel.Exchange) Node(javax.jcr.Node) Session(javax.jcr.Session) Test(org.junit.Test)

Aggregations

Node (javax.jcr.Node)2620 Session (javax.jcr.Session)645 Test (org.junit.Test)643 RepositoryException (javax.jcr.RepositoryException)317 Property (javax.jcr.Property)251 NodeIterator (javax.jcr.NodeIterator)214 JackrabbitNode (org.apache.jackrabbit.api.JackrabbitNode)182 Value (javax.jcr.Value)158 Version (javax.jcr.version.Version)155 NotExecutableException (org.apache.jackrabbit.test.NotExecutableException)151 Query (javax.jcr.query.Query)122 QueryResult (javax.jcr.query.QueryResult)108 Event (javax.jcr.observation.Event)103 VersionManager (javax.jcr.version.VersionManager)97 Resource (org.apache.sling.api.resource.Resource)96 ArrayList (java.util.ArrayList)93 AccessDeniedException (javax.jcr.AccessDeniedException)89 InvalidItemStateException (javax.jcr.InvalidItemStateException)82 ConstraintViolationException (javax.jcr.nodetype.ConstraintViolationException)82 AbstractRepositoryTest (org.apache.jackrabbit.oak.jcr.AbstractRepositoryTest)81