You are viewing a plain text version of this content. The canonical link for it is here.
Posted to graffito-commits@incubator.apache.org by cl...@apache.org on 2005/09/26 19:10:35 UTC
svn commit: r291714 - in /incubator/graffito/trunk/jcr-mapping/src:
java/org/apache/portals/graffito/jcr/persistence/
java/org/apache/portals/graffito/jcr/persistence/impl/
java/org/apache/portals/graffito/jcr/query/
java/org/apache/portals/graffito/jc...
Author: clombart
Date: Mon Sep 26 12:10:22 2005
New Revision: 291714
URL: http://svn.apache.org/viewcvs?rev=291714&view=rev
Log:
Continue my work on the Query service. This is not yet finished.
The PersistenceManagerQueryTest contains a good API example.
Modified:
incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java
incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java
incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/Filter.java
incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/FilterImpl.java
incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/QueryManagerImpl.java
incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java
incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/query/impl/QueryManagerTest.java
Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java?rev=291714&r1=291713&r2=291714&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java Mon Sep 26 12:10:22 2005
@@ -15,7 +15,10 @@
*/
package org.apache.portals.graffito.jcr.persistence;
+import java.util.Collection;
+
import org.apache.portals.graffito.jcr.exception.JcrMappingException;
+import org.apache.portals.graffito.jcr.query.Query;
/**
* The persistence manager encapsulate a JCR session.
@@ -68,6 +71,14 @@
*/
public void remove(String path) throws JcrMappingException;
+
+ /**
+ * Retrieve some pojo objects matching to a query
+ * @param query The Graffito Query object used to seach the objects
+ * @return a collection of object found
+ *
+ */
+ public Collection getObjects(Query query) throws JcrMappingException;
/**
* Close the JCR session
Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java?rev=291714&r1=291713&r2=291714&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java Mon Sep 26 12:10:22 2005
@@ -15,11 +15,19 @@
*/
package org.apache.portals.graffito.jcr.persistence.impl;
+import java.util.ArrayList;
+import java.util.Collection;
+
import javax.jcr.Item;
import javax.jcr.Node;
+import javax.jcr.NodeIterator;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.query.QueryManager;
+import javax.jcr.query.QueryResult;
+import javax.jcr.query.Row;
+import javax.jcr.query.RowIterator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -29,6 +37,7 @@
import org.apache.portals.graffito.jcr.persistence.PersistenceManager;
import org.apache.portals.graffito.jcr.persistence.atomictypeconverter.AtomicTypeConverterFactory;
import org.apache.portals.graffito.jcr.persistence.objectconverter.ObjectConverter;
+import org.apache.portals.graffito.jcr.query.Query;
/** Interface that specifies howto interact with a jcr repository (JCR broker).
*
@@ -39,185 +48,204 @@
*/
public class PersistenceManagerImpl implements PersistenceManager
{
- /** Logger.
- */
- private final static Log log = LogFactory.getLog(PersistenceManagerImpl.class);
-
-
- /**
- * Jackrabbit jcr repository.
- */
- private Repository repository;
-
- /** Jackrabbit jcr session.
- */
- private Session session;
-
- /**
- * The Mapper component
- */
- private Mapper mapper;
-
- /**
- * The Atomic Type Converter Factory
- */
- private AtomicTypeConverterFactory atomicTypeConverterFactory;
-
- /**
- * Object Converter
- */
- private ObjectConverter objectConverter;
-
-
-
- /**
- * Contructor for setting up a session to interact with a jcr repository.
- *
- * @param mapper the Mapper component
- * @param repository The JCR repository reference
- * @param session The JCR Session
- *
- * @throws JcrMappingException when it is impossible to create the PersistenceManager
- */
- public PersistenceManagerImpl(Mapper mapper, Repository repository, Session session) throws JcrMappingException
- {
- try
- {
- this.mapper = mapper;
- this.repository = repository;
- this.session = session;
- this.atomicTypeConverterFactory = AtomicTypeConverterFactory.getInstance(session.getValueFactory());
- this.objectConverter = new ObjectConverter(mapper, atomicTypeConverterFactory);
- }
- catch(Exception e)
- {
- throw new JcrMappingException("Impossible to create the persistenceManager", e);
- }
- }
-
-
- /**
- *
- * @see org.apache.portals.graffito.jcr.session.JcrSession#getObject(java.lang.Class, java.lang.String)
- */
- public Object getObject(Class pojoClass, String path) throws JcrMappingException
- {
- try
- {
- if (!session.itemExists(path))
- {
- return null;
- }
-
- }
- catch (Exception e)
- {
- throw new JcrMappingException("Impossible to get the object at " + path, e);
- }
-
- return objectConverter.getObject(session, pojoClass, path);
-
- }
-
- /**
- *
- * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#insert(java.lang.String, java.lang.Object)
- */
- public void insert(String path, Object object) throws JcrMappingException
- {
- try
- {
- if (session.itemExists(path))
- {
- throw new JcrMappingException("Path already exists : " + path);
- }
- }
- catch (RepositoryException e)
- {
- throw new JcrMappingException("Impossible to insert the object at " + path, e);
- }
-
-
- objectConverter.insert(session, path, object);
-
- }
-
- /**
- *
- * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#update(java.lang.String, java.lang.Object)
- */
- public void update(String path, Object object) throws JcrMappingException
- {
- try
- {
- if (! session.itemExists(path))
- {
- throw new JcrMappingException("Path is not existing : " + path);
- }
- }
- catch (RepositoryException e)
- {
- throw new JcrMappingException("Impossible to update", e);
- }
-
- objectConverter.update(session, path, object);
- }
-
- /**
- *
- * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#remove(java.lang.String)
- */
- public void remove(String path) throws JcrMappingException
- {
-
- try
- {
- Item item = session.getItem(path);
- Node parent = item.getParent();
- item.remove();
- parent.save();
- }
- catch (RepositoryException e)
- {
- throw new JcrMappingException("Impossible to remove the object at " + path);
- }
- }
-
- /**
- *
- * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#itemExists(java.lang.String)
- */
- public boolean itemExists(String path) throws JcrMappingException
- {
- try
- {
- return session.itemExists(path);
- }
- catch (RepositoryException e)
- {
- throw new JcrMappingException("Impossible to check if the object exist", e);
- }
- }
-
-
- /**
- *
- * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#logout()
- */
- public void logout() throws JcrMappingException
- {
- try
- {
- session.save();
- session.logout();
- }
- catch (Exception e)
- {
- throw new JcrMappingException("Impossible to logout", e);
- }
- }
-
-
-
-
+ /** Logger.
+ */
+ private final static Log log = LogFactory.getLog(PersistenceManagerImpl.class);
+
+ /**
+ * Jackrabbit jcr repository.
+ */
+ private Repository repository;
+
+ /** Jackrabbit jcr session.
+ */
+ private Session session;
+
+ /**
+ * The Mapper component
+ */
+ private Mapper mapper;
+
+ org.apache.portals.graffito.jcr.query.QueryManager queryManager;
+
+ /**
+ * The Atomic Type Converter Factory
+ */
+ private AtomicTypeConverterFactory atomicTypeConverterFactory;
+
+ /**
+ * Object Converter
+ */
+ private ObjectConverter objectConverter;
+
+ /**
+ * Contructor for setting up a session to interact with a jcr repository.
+ *
+ * @param mapper the Mapper component
+ * @param repository The JCR repository reference
+ * @param session The JCR Session
+ *
+ * @throws JcrMappingException when it is impossible to create the PersistenceManager
+ */
+ public PersistenceManagerImpl(Mapper mapper, org.apache.portals.graffito.jcr.query.QueryManager queryManager, Repository repository, Session session) throws JcrMappingException
+ {
+ try
+ {
+ this.mapper = mapper;
+ this.repository = repository;
+ this.session = session;
+ this.atomicTypeConverterFactory = AtomicTypeConverterFactory.getInstance(session.getValueFactory());
+ this.objectConverter = new ObjectConverter(mapper, atomicTypeConverterFactory);
+ this.queryManager = queryManager;
+ }
+ catch (Exception e)
+ {
+ throw new JcrMappingException("Impossible to create the persistenceManager", e);
+ }
+ }
+
+ /**
+ *
+ * @see org.apache.portals.graffito.jcr.session.JcrSession#getObject(java.lang.Class, java.lang.String)
+ */
+ public Object getObject(Class pojoClass, String path) throws JcrMappingException
+ {
+ try
+ {
+ if (!session.itemExists(path))
+ {
+ return null;
+ }
+
+ }
+ catch (Exception e)
+ {
+ throw new JcrMappingException("Impossible to get the object at " + path, e);
+ }
+
+ return objectConverter.getObject(session, pojoClass, path);
+
+ }
+
+ /**
+ *
+ * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#insert(java.lang.String, java.lang.Object)
+ */
+ public void insert(String path, Object object) throws JcrMappingException
+ {
+ try
+ {
+ if (session.itemExists(path))
+ {
+ throw new JcrMappingException("Path already exists : " + path);
+ }
+ }
+ catch (RepositoryException e)
+ {
+ throw new JcrMappingException("Impossible to insert the object at " + path, e);
+ }
+
+ objectConverter.insert(session, path, object);
+
+ }
+
+ /**
+ *
+ * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#update(java.lang.String, java.lang.Object)
+ */
+ public void update(String path, Object object) throws JcrMappingException
+ {
+ try
+ {
+ if (!session.itemExists(path))
+ {
+ throw new JcrMappingException("Path is not existing : " + path);
+ }
+ }
+ catch (RepositoryException e)
+ {
+ throw new JcrMappingException("Impossible to update", e);
+ }
+
+ objectConverter.update(session, path, object);
+ }
+
+ /**
+ *
+ * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#remove(java.lang.String)
+ */
+ public void remove(String path) throws JcrMappingException
+ {
+
+ try
+ {
+ Item item = session.getItem(path);
+ Node parent = item.getParent();
+ item.remove();
+ parent.save();
+ }
+ catch (RepositoryException e)
+ {
+ throw new JcrMappingException("Impossible to remove the object at " + path);
+ }
+ }
+
+ /**
+ *
+ * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#itemExists(java.lang.String)
+ */
+ public boolean itemExists(String path) throws JcrMappingException
+ {
+ try
+ {
+ return session.itemExists(path);
+ }
+ catch (RepositoryException e)
+ {
+ throw new JcrMappingException("Impossible to check if the object exist", e);
+ }
+ }
+
+ public Collection getObjects(Query query) throws JcrMappingException
+ {
+ try
+ {
+
+ String jcrExpression = this.queryManager.buildJCRExpression(query);
+ javax.jcr.query.Query jcrQuery = session.getWorkspace().getQueryManager().createQuery(jcrExpression, javax.jcr.query.Query.XPATH);
+ QueryResult queryResult = jcrQuery.execute();
+ NodeIterator nodeIterator = queryResult.getNodes();
+
+ ArrayList result = new ArrayList();
+ while (nodeIterator.hasNext())
+ {
+ Node node = nodeIterator.nextNode();
+ result.add(objectConverter.getObject(session, query.getFilter().getFilterClass(), node.getPath()));
+ }
+
+ return result;
+ }
+ catch (RepositoryException e)
+ {
+ throw new JcrMappingException("Impossible to get the object collection", e);
+ }
+ }
+
+ /**
+ *
+ * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#logout()
+ */
+ public void logout() throws JcrMappingException
+ {
+ try
+ {
+ session.save();
+ session.logout();
+ }
+ catch (Exception e)
+ {
+ throw new JcrMappingException("Impossible to logout", e);
+ }
+ }
+
}
Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/Filter.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/Filter.java?rev=291714&r1=291713&r2=291714&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/Filter.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/Filter.java Mon Sep 26 12:10:22 2005
@@ -64,17 +64,11 @@
public void addGreaterThan(String arg0, Object arg1);
- public void addIn(String attribute, Collection values);
-
public void addLessOrEqualThan(String arg0, Object arg1);
public void addLike(String arg0, Object arg1);
- public abstract void addNotBetween(String arg0, Object arg1, Object arg2);
-
public void addNotEqualTo(String arg0, Object arg1);
-
- public void addNotLike(String arg0, Object arg1);
public void addNotNull(String arg0);
Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/FilterImpl.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/FilterImpl.java?rev=291714&r1=291713&r2=291714&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/FilterImpl.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/FilterImpl.java Mon Sep 26 12:10:22 2005
@@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Iterator;
import org.apache.portals.graffito.jcr.exception.JcrMappingException;
import org.apache.portals.graffito.jcr.mapper.Mapper;
@@ -40,6 +41,9 @@
private Mapper mapper;
private ClassDescriptor classDescriptor;
+
+
+ private String orJcrExpression;
public FilterImpl(Mapper mapper, Class clazz) throws JcrMappingException
@@ -53,8 +57,7 @@
public Class getFilterClass()
- {
-
+ {
return claszz;
}
@@ -82,6 +85,8 @@
*/
public void addContains(String fullTextSearch)
{
+ String jcrExpression = "jcr:contains(., '" + fullTextSearch + "')";
+ jcrExpressions.add(jcrExpression);
}
/**
@@ -89,6 +94,10 @@
*/
public void addBetween(String fieldAttributeName, Object value1, Object value2)
{
+ String jcrExpression = "( @" + this.getJcrFieldName(fieldAttributeName) + " >= " + this.getStringValue(value1) +
+ " and " + this.getJcrFieldName(fieldAttributeName) + " <= " + this.getStringValue(value2) + ")";
+ jcrExpressions.add(jcrExpression) ;
+
}
/**
@@ -116,55 +125,50 @@
*/
public void addGreaterThan(String fieldAttributeName, Object value)
{
+ String jcrExpression = "@" + this.getJcrFieldName(fieldAttributeName) + " > " + this.getStringValue(value);
+ jcrExpressions.add(jcrExpression);
+
}
- /**
- * @see org.apache.portals.graffito.jcr.query.Filter#addIn(java.lang.String, java.util.Collection)
- */
- public void addIn(String fieldAttributeName, Collection values)
- {
- }
/**
* @see org.apache.portals.graffito.jcr.query.Filter#addLessOrEqualThan(java.lang.String, java.lang.Object)
*/
- public void addLessOrEqualThan(String fieldAttributeName, Object arg1)
+ public void addLessOrEqualThan(String fieldAttributeName, Object value)
{
+ String jcrExpression = "@" + this.getJcrFieldName(fieldAttributeName) + " <= " + this.getStringValue(value);
+ jcrExpressions.add(jcrExpression);
+
}
/**
* @see org.apache.portals.graffito.jcr.query.Filter#addLike(java.lang.Object, java.lang.Object)
*/
- public void addLike(String fieldAttributeName, Object arg1)
+ public void addLike(String fieldAttributeName, Object value)
{
+ String jcrExpression = "jcr:like(" + "@" + this.getJcrFieldName(fieldAttributeName) + ", '" + value + "')";
+ jcrExpressions.add(jcrExpression);
}
- /**
- * @see org.apache.portals.graffito.jcr.query.Filter#addNotBetween(java.lang.String, java.lang.Object, java.lang.Object)
- */
- public void addNotBetween(String fieldAttributeName, Object value1, Object value2)
- {
- }
/**
* @see org.apache.portals.graffito.jcr.query.Filter#addNotEqualTo(java.lang.String, java.lang.Object)
*/
public void addNotEqualTo(String fieldAttributeName, Object value)
{
+ String jcrExpression = "@" + this.getJcrFieldName(fieldAttributeName) + " != " + this.getStringValue(value);
+ jcrExpressions.add(jcrExpression);
}
- /**
- * @see org.apache.portals.graffito.jcr.query.Filter#addNotLike(java.lang.String, java.lang.Object)
- */
- public void addNotLike(String fieldAttributeName, Object value)
- {
- }
/**
* @see org.apache.portals.graffito.jcr.query.Filter#addNotNull(java.lang.String)
*/
- public void addNotNull(String arg0)
+ public void addNotNull(String fieldAttributeName)
{
+ String jcrExpression = "@" + this.getJcrFieldName(fieldAttributeName);
+ jcrExpressions.add(jcrExpression);
+
}
/**
@@ -172,6 +176,9 @@
*/
public void addIsNull(String fieldAttributeName)
{
+ String jcrExpression = "not(@" + this.getJcrFieldName(fieldAttributeName)+")";
+ jcrExpressions.add(jcrExpression);
+
}
/**
@@ -179,6 +186,9 @@
*/
public void addOrFilter(Filter filter)
{
+
+ orJcrExpression = ((FilterImpl)filter).getJcrExpression();
+
}
public void addJCRExpression(String jcrExpression)
@@ -205,9 +215,40 @@
}
}
- public Collection getJcrExpressions()
+ public String getJcrExpression()
+ {
+ if (orJcrExpression == null || orJcrExpression.equals(""))
+ {
+ return buildJcrExpression();
+ }
+ else
+ {
+ return "(" + buildJcrExpression() + ") or (" + this.orJcrExpression + ")";
+ }
+
+ }
+
+ private String buildJcrExpression()
{
- return jcrExpressions;
+ int count = 1;
+ String jcrExp = "";
+
+ jcrExp += "[";
+ Iterator criteriaIterator = jcrExpressions.iterator();
+ while (criteriaIterator.hasNext())
+ {
+ if (count > 1)
+ {
+ jcrExp += " and ";
+ }
+ jcrExp += (String) criteriaIterator.next();
+ count++;
+
+ }
+ jcrExp += "]";
+
+ return jcrExp;
+
}
Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/QueryManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/QueryManagerImpl.java?rev=291714&r1=291713&r2=291714&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/QueryManagerImpl.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/query/impl/QueryManagerImpl.java Mon Sep 26 12:10:22 2005
@@ -48,25 +48,7 @@
jcrExp += "//element(*, " + this.getNodeType(filter) + ")";
// Add filter criteria
- if (((FilterImpl)filter).getJcrExpressions().size() > 0)
- {
- int count = 1;
-
- jcrExp += "[";
- Iterator criteriaIterator = ((FilterImpl)filter).getJcrExpressions().iterator();
- while (criteriaIterator.hasNext())
- {
- if (count > 1)
- {
- jcrExp += " and ";
- }
- jcrExp += (String) criteriaIterator.next();
- count++;
-
- }
- jcrExp += "]";
- }
-
+ jcrExp += ((FilterImpl)filter).getJcrExpression();
return jcrExp;
Modified: incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java?rev=291714&r1=291713&r2=291714&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java Mon Sep 26 12:10:22 2005
@@ -16,11 +16,23 @@
*/
package org.apache.portals.graffito.jcr;
+import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
+import java.io.IOException;
+import javax.jcr.ImportUUIDBehavior;
+import javax.jcr.InvalidSerializedDataException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.PathNotFoundException;
import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.lock.LockException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.version.VersionException;
import junit.framework.TestCase;
@@ -76,9 +88,10 @@
DigesterMapperImpl mapper = new DigesterMapperImpl("./src/test-config/jcrmapping.xml");
Repository repository = RepositoryUtil.getRepository("repositoryTest");
- session = RepositoryUtil.login(repository, "superuser", "superuser");
- persistenceManager = new PersistenceManagerImpl(mapper, repository, session);
+ session = RepositoryUtil.login(repository, "superuser", "superuser");
queryManager = new QueryManagerImpl(mapper);
+ persistenceManager = new PersistenceManagerImpl(mapper, queryManager, repository, session);
+
@@ -115,11 +128,30 @@
BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(filePath));
ContentHandler handler = new org.apache.xml.serialize.XMLSerializer(os, null).asContentHandler();
session.exportDocumentView(nodePath, handler, skipBinary, noRecurse);
+ os.flush();
+ os.close();
} catch (Exception e)
{
System.out.println("Impossible to export the content from : " + nodePath);
e.printStackTrace();
}
+ }
+
+ public void importDocument(String filePath, String nodePath)
+ {
+ try
+ {
+ BufferedInputStream is = new BufferedInputStream(new FileInputStream(filePath));
+ session.importXML(nodePath, is, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
+ session.save();
+ is.close();
+ }
+ catch (Exception e)
+ {
+ System.out.println("Impossible to import the content from : " + nodePath);
+ e.printStackTrace();
+ }
+
}
protected Session getSession()
Modified: incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/query/impl/QueryManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/query/impl/QueryManagerTest.java?rev=291714&r1=291713&r2=291714&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/query/impl/QueryManagerTest.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/query/impl/QueryManagerTest.java Mon Sep 26 12:10:22 2005
@@ -16,16 +16,21 @@
*/
package org.apache.portals.graffito.jcr.query.impl;
+import java.util.ArrayList;
+
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.portals.graffito.jcr.TestBase;
+import org.apache.portals.graffito.jcr.exception.JcrMappingException;
import org.apache.portals.graffito.jcr.query.Filter;
import org.apache.portals.graffito.jcr.query.Query;
import org.apache.portals.graffito.jcr.query.QueryManager;
import org.apache.portals.graffito.jcr.testmodel.C;
+import org.apache.portals.graffito.jcr.testmodel.Page;
+import org.apache.portals.graffito.jcr.testmodel.Paragraph;
/**
@@ -52,7 +57,7 @@
return new TestSuite(QueryManagerTest.class);
}
- public void testClassA()
+ public void testBuildExpression1()
{
try
@@ -67,6 +72,32 @@
String jcrExpression = queryManager.buildJCRExpression(query);
assertNotNull("jcrExpression is null", jcrExpression);
assertTrue("Invalid JcrExpression", jcrExpression.equals("/jcr:root/test//element(*, graffito:C)[@graffito:name = 'a test value' and @graffito:id = 1]"));
+
+
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail("Exception occurs during the unit test : " + e);
+ }
+
+ }
+
+ public void testBuildExpression2()
+ {
+
+ try
+ {
+ QueryManager queryManager = this.getQueryManager();
+ Filter filter = queryManager.createFilter(C.class);
+ filter.addEqualTo("name", "a test value");
+ filter.addEqualTo("id", new Integer(1));
+
+ Query query = queryManager.createQuery(filter);
+ String jcrExpression = queryManager.buildJCRExpression(query);
+ assertNotNull("jcrExpression is null", jcrExpression);
+ assertTrue("Invalid JcrExpression", jcrExpression.equals("//element(*, graffito:C)[@graffito:name = 'a test value' and @graffito:id = 1]"));