--- /dev/null
+package org.argeo.slc.jcr.dao;
+
+import javax.jcr.Node;
+import javax.jcr.query.Query;
+
+import org.argeo.jcr.JcrUtils;
+import org.argeo.slc.SlcException;
+import org.argeo.slc.dao.test.TestRunDescriptorDao;
+import org.argeo.slc.test.TestRunDescriptor;
+
+public class TestRunDescriptorDaoJcr extends AbstractSlcJcrDao implements
+ TestRunDescriptorDao {
+
+ public TestRunDescriptor getTestRunDescriptor(String id) {
+ try {
+ // TODO: optimize query
+ String queryString = "//testrun[@testRunUuid='" + id + "']";
+ Query query = queryManager.createQuery(queryString, Query.XPATH);
+ Node node = JcrUtils.querySingleNode(query);
+ if (node == null)
+ return null;
+ return (TestRunDescriptor) nodeMapper.load(node);
+ } catch (Exception e) {
+ throw new SlcException("Cannot load test run descriptor" + id, e);
+ }
+ }
+
+ public void saveOrUpdate(TestRunDescriptor testRunDescriptor) {
+ try {
+ nodeMapper.save(getSession(), basePath(testRunDescriptor),
+ testRunDescriptor);
+ getSession().save();
+ } catch (Exception e) {
+ throw new SlcException("Cannot import " + testRunDescriptor, e);
+ }
+ }
+
+}