From: <die...@us...> - 2010-05-12 17:49:18
|
Revision: 2432 http://openutils.svn.sourceforge.net/openutils/?rev=2432&view=rev Author: diego_schivo Date: 2010-05-12 17:49:11 +0000 (Wed, 12 May 2010) Log Message: ----------- CRIT-11 javadocs Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemImpl.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/QueryExecutorHelper.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResultItem.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java 2010-05-12 17:17:07 UTC (rev 2431) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java 2010-05-12 17:49:11 UTC (rev 2432) @@ -117,6 +117,9 @@ .ceil(((float) jcrQueryResult.getTotalSize() / (float) itemsPerPage))) : 1; } + /** + * {@inheritDoc} + */ public ResultIterator<AdvancedResultItem> getItems() { Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemImpl.java 2010-05-12 17:17:07 UTC (rev 2431) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemImpl.java 2010-05-12 17:49:11 UTC (rev 2432) @@ -63,8 +63,7 @@ } /** - * Returns the excerpt. - * @return the excerpt + * {@inheritDoc} */ public String getExcerpt() { @@ -73,8 +72,7 @@ } /** - * Returns the excerpt. - * @return the excerpt + * {@inheritDoc} */ public String getExcerpt(String selector) { @@ -107,8 +105,7 @@ } /** - * Returns the score. - * @return the score + * {@inheritDoc} */ public double getScore() { @@ -116,8 +113,7 @@ } /** - * Returns the score. - * @return the score + * {@inheritDoc} */ public double getScore(String selector) { Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/QueryExecutorHelper.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/QueryExecutorHelper.java 2010-05-12 17:17:07 UTC (rev 2431) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/QueryExecutorHelper.java 2010-05-12 17:49:11 UTC (rev 2432) @@ -49,6 +49,16 @@ */ private static Logger log = LoggerFactory.getLogger(QueryExecutorHelper.class); + /** + * Executes a jcr query. + * @param stmt the statement of the jcr query + * @param language the language of the jcr query + * @param hm the HirarchyManager for obtaining the QueryManager + * @param maxResults maximun number of results to retrieve + * @param offset the index of the first result to retrieve (0, 1, 2, ...) + * @param spellCheckString + * @return + */ public static AdvancedResultImpl execute(String stmt, String language, HierarchyManager hm, int maxResults, int offset, String spellCheckString) { Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java 2010-05-12 17:17:07 UTC (rev 2431) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java 2010-05-12 17:49:11 UTC (rev 2432) @@ -21,22 +21,47 @@ /** + * The result of an advanced jcr query. * @author fgiust * @version $Id$ */ public interface AdvancedResult { + /** + * Gets the maximum number of results per page + * @return + */ int getItemsPerPage(); + /** + * Gets the page number (1, 2, 3...) + * @return + */ int getPage(); + /** + * Gets the total number of results that would be retrieved without pagination + * @return + */ int getTotalSize(); + /** + * Gets the total number of pages + * @return + */ int getNumberOfPages(); + /** + * + * @return + */ String getSpellCheckerSuggestion(); + /** + * Gets an iterator over the results + * @return + */ ResultIterator<AdvancedResultItem> getItems(); public static AdvancedResult EMPTY_RESULT = new AdvancedResult() Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResultItem.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResultItem.java 2010-05-12 17:17:07 UTC (rev 2431) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResultItem.java 2010-05-12 17:49:11 UTC (rev 2432) @@ -29,11 +29,27 @@ public interface AdvancedResultItem extends Content { + /** + * Returns the excerpt. + * @return the excerpt + */ String getExcerpt(); + /** + * Returns the excerpt. + * @return the excerpt + */ String getExcerpt(String selector); + /** + * Returns the score. + * @return the score + */ double getScore(); + /** + * Returns the score. + * @return the score + */ double getScore(String selector); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2010-05-13 05:51:33
|
Revision: 2433 http://openutils.svn.sourceforge.net/openutils/?rev=2433&view=rev Author: diego_schivo Date: 2010-05-13 05:51:27 +0000 (Thu, 13 May 2010) Log Message: ----------- CRIT-11 javadocs Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedCriteriaImpl.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/ExecutableQuery.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/JCRCriteriaFactory.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedCriteriaImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedCriteriaImpl.java 2010-05-12 17:49:11 UTC (rev 2432) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedCriteriaImpl.java 2010-05-13 05:51:27 UTC (rev 2433) @@ -33,11 +33,6 @@ public class AdvancedCriteriaImpl extends AbstractCriteriaImpl implements Criteria { - public AdvancedCriteriaImpl() - { - // empty - } - /** * {@inheritDoc} */ Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java 2010-05-12 17:49:11 UTC (rev 2432) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java 2010-05-13 05:51:27 UTC (rev 2433) @@ -65,7 +65,12 @@ private Logger log = LoggerFactory.getLogger(AdvancedResultImpl.class); /** - * @param execute + * @param jcrQueryResult + * @param itemsPerPage + * @param pageNumberStartingFromOne + * @param statement + * @param hm + * @param spellCheckerQuery */ public AdvancedResultImpl( QueryResultImpl jcrQueryResult, Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java 2010-05-12 17:49:11 UTC (rev 2432) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/AdvancedResult.java 2010-05-13 05:51:27 UTC (rev 2433) @@ -53,7 +53,7 @@ int getNumberOfPages(); /** - * + * Gets the suggestion from the spell checker * @return */ String getSpellCheckerSuggestion(); Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/ExecutableQuery.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/ExecutableQuery.java 2010-05-12 17:49:11 UTC (rev 2432) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/ExecutableQuery.java 2010-05-13 05:51:27 UTC (rev 2433) @@ -27,5 +27,9 @@ public interface ExecutableQuery { + /** + * Executes the query + * @return the search result + */ AdvancedResult execute(); } Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/JCRCriteriaFactory.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/JCRCriteriaFactory.java 2010-05-12 17:49:11 UTC (rev 2432) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/JCRCriteriaFactory.java 2010-05-13 05:51:27 UTC (rev 2433) @@ -37,11 +37,22 @@ { } + /** + * Creates a query criteria for dynamic query composition. + * @return an AdvancedCriteriaImpl + */ public static Criteria createCriteria() { return new AdvancedCriteriaImpl(); } + /** + * Creates a jcr query using the specified statement. + * @param hm the HierarchyManager + * @param query the statement of the query + * @param language the language of the query + * @return a DirectJcrQuery + */ public static DirectJcrQuery createDirectJcrQuery(HierarchyManager hm, String query, String language) { return new DirectJcrQuery(hm, query, language); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2010-05-13 05:57:39
|
Revision: 2434 http://openutils.svn.sourceforge.net/openutils/?rev=2434&view=rev Author: diego_schivo Date: 2010-05-13 05:57:30 +0000 (Thu, 13 May 2010) Log Message: ----------- CRIT-11 removed unnecessary implements Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedCriteriaImpl.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemImpl.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/TranslatableCriteria.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/impl/AbstractCriteriaImpl.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedCriteriaImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedCriteriaImpl.java 2010-05-13 05:51:27 UTC (rev 2433) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedCriteriaImpl.java 2010-05-13 05:57:30 UTC (rev 2434) @@ -21,7 +21,6 @@ import java.util.Collection; -import net.sourceforge.openutils.mgnlcriteria.jcr.query.Criteria; import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRQueryException; import net.sourceforge.openutils.mgnlcriteria.jcr.query.xpath.impl.AbstractCriteriaImpl; @@ -30,7 +29,7 @@ * @author fgiust * @version $Id$ */ -public class AdvancedCriteriaImpl extends AbstractCriteriaImpl implements Criteria +public class AdvancedCriteriaImpl extends AbstractCriteriaImpl { /** Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemImpl.java 2010-05-13 05:51:27 UTC (rev 2433) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemImpl.java 2010-05-13 05:57:30 UTC (rev 2434) @@ -19,7 +19,6 @@ package net.sourceforge.openutils.mgnlcriteria.advanced.impl; -import info.magnolia.cms.core.Content; import info.magnolia.cms.core.DefaultContent; import info.magnolia.cms.core.HierarchyManager; import info.magnolia.cms.security.AccessDeniedException; @@ -38,7 +37,7 @@ * @author fgiust * @version $Id$ */ -public class AdvancedResultItemImpl extends DefaultContent implements Content, AdvancedResultItem +public class AdvancedResultItemImpl extends DefaultContent implements AdvancedResultItem { private final Row row; Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/TranslatableCriteria.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/TranslatableCriteria.java 2010-05-13 05:51:27 UTC (rev 2433) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/TranslatableCriteria.java 2010-05-13 05:57:30 UTC (rev 2434) @@ -33,8 +33,16 @@ public interface TranslatableCriteria extends Criteria { + /** + * + * @return + */ Collection<OrderEntry> getOrderEntries(); + /** + * + * @return + */ Collection<CriterionEntry> getCriterionEntries(); public static final class CriterionEntry implements Serializable Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/impl/AbstractCriteriaImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/impl/AbstractCriteriaImpl.java 2010-05-13 05:51:27 UTC (rev 2433) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/impl/AbstractCriteriaImpl.java 2010-05-13 05:57:30 UTC (rev 2434) @@ -48,7 +48,7 @@ * @author fgrilli * @version $Id$ */ -public abstract class AbstractCriteriaImpl implements Criteria, TranslatableCriteria +public abstract class AbstractCriteriaImpl implements TranslatableCriteria { protected Logger log = LoggerFactory.getLogger(getClass()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2010-09-09 16:52:37
|
Revision: 3005 http://openutils.svn.sourceforge.net/openutils/?rev=3005&view=rev Author: diego_schivo Date: 2010-09-09 16:52:31 +0000 (Thu, 09 Sep 2010) Log Message: ----------- CRIT-25 ACL query decoration restricted to criteria queries Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/QueryExecutorHelper.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/lucene/AclSearchIndex.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/QueryExecutorHelper.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/QueryExecutorHelper.java 2010-09-09 12:55:16 UTC (rev 3004) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/QueryExecutorHelper.java 2010-09-09 16:52:31 UTC (rev 3005) @@ -49,6 +49,16 @@ */ private static Logger log = LoggerFactory.getLogger(QueryExecutorHelper.class); + private static ThreadLocal<Boolean> executing = new ThreadLocal<Boolean>() + { + + @Override + protected Boolean initialValue() + { + return Boolean.FALSE; + }; + }; + private QueryExecutorHelper() { // don't instantiate @@ -104,14 +114,21 @@ Query.XPATH); } - return new AdvancedResultImpl( - (QueryResultImpl) query.execute(), - maxResults, - pageNumberStartingFromOne, - stmt, - hm, - spellCheckerQuery); - + try + { + executing.set(Boolean.TRUE); + return new AdvancedResultImpl( + (QueryResultImpl) query.execute(), + maxResults, + pageNumberStartingFromOne, + stmt, + hm, + spellCheckerQuery); + } + finally + { + executing.set(Boolean.FALSE); + } } catch (InvalidQueryException e) { @@ -127,4 +144,14 @@ } } + + /** + * Indicates if this helper class is executing a query + * @return + */ + public static boolean isExecuting() + { + return executing.get(); + } + } Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/lucene/AclSearchIndex.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/lucene/AclSearchIndex.java 2010-09-09 12:55:16 UTC (rev 3004) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/lucene/AclSearchIndex.java 2010-09-09 16:52:31 UTC (rev 3005) @@ -29,6 +29,7 @@ import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; +import net.sourceforge.openutils.mgnlcriteria.advanced.impl.QueryExecutorHelper; import org.apache.jackrabbit.core.SessionImpl; import org.apache.jackrabbit.core.query.lucene.LuceneQueryBuilder; @@ -111,6 +112,11 @@ { // the lucene query without acl constraints Query luceneQuery = (Query) super.accept(visitor, data); + if (!QueryExecutorHelper.isExecuting()) + { + // not a criteria query: skip lucene decoration + return luceneQuery; + } try { // retrieves the session This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2011-01-24 18:06:47
|
Revision: 3282 http://openutils.svn.sourceforge.net/openutils/?rev=3282&view=rev Author: fgiust Date: 2011-01-24 18:06:39 +0000 (Mon, 24 Jan 2011) Log Message: ----------- CRIT-32 Better handling of invalid/missing results Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemResultIterator.java Added Paths: ----------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/utils/JcrCompatUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java 2011-01-24 13:48:27 UTC (rev 3281) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultImpl.java 2011-01-24 18:06:39 UTC (rev 3282) @@ -23,6 +23,7 @@ import info.magnolia.content2bean.Content2BeanException; import info.magnolia.content2bean.Content2BeanUtil; +import javax.jcr.Item; import javax.jcr.RepositoryException; import javax.jcr.Value; import javax.jcr.query.InvalidQueryException; @@ -35,6 +36,7 @@ import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRQueryException; import net.sourceforge.openutils.mgnlcriteria.jcr.query.ResultIterator; import net.sourceforge.openutils.mgnlcriteria.jcr.query.ResultIteratorImpl; +import net.sourceforge.openutils.mgnlcriteria.utils.JcrCompatUtils; import org.apache.jackrabbit.core.query.lucene.QueryResultImpl; import org.slf4j.Logger; @@ -224,7 +226,16 @@ { try { - return (K) Content2BeanUtil.toBean(new AdvancedResultItemImpl(row, this.hm), true, theclass); + Item jcrNode = JcrCompatUtils.getJCRNode(row); + if (jcrNode == null) + { + return null; + } + + return (K) Content2BeanUtil.toBean( + new AdvancedResultItemImpl(row, jcrNode, this.hm), + true, + theclass); } catch (RepositoryException e) { Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemResultIterator.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemResultIterator.java 2011-01-24 13:48:27 UTC (rev 3281) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AdvancedResultItemResultIterator.java 2011-01-24 18:06:39 UTC (rev 3282) @@ -22,12 +22,14 @@ import info.magnolia.cms.core.HierarchyManager; import info.magnolia.cms.security.AccessDeniedException; +import javax.jcr.Item; import javax.jcr.RepositoryException; import javax.jcr.query.Row; import javax.jcr.query.RowIterator; import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResultItem; import net.sourceforge.openutils.mgnlcriteria.jcr.query.ResultIteratorImpl; +import net.sourceforge.openutils.mgnlcriteria.utils.JcrCompatUtils; /** @@ -55,7 +57,13 @@ { try { - return new AdvancedResultItemImpl(row, this.hm); + Item jcrNode = JcrCompatUtils.getJCRNode(row); + if (jcrNode == null) + { + return null; + } + + return new AdvancedResultItemImpl(row, jcrNode, this.hm); } catch (AccessDeniedException e) { Added: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/utils/JcrCompatUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/utils/JcrCompatUtils.java (rev 0) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/utils/JcrCompatUtils.java 2011-01-24 18:06:39 UTC (rev 3282) @@ -0,0 +1,74 @@ +/** + * + * Criteria API for Magnolia CMS (http://www.openmindlab.com/lab/products/mgnlcriteria.html) + * Copyright(C) 2009-2010, Openmind S.r.l. http://www.openmindonline.it + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +package net.sourceforge.openutils.mgnlcriteria.utils; + +import java.lang.reflect.InvocationTargetException; + +import javax.jcr.Item; +import javax.jcr.RepositoryException; +import javax.jcr.query.Row; + +import org.apache.commons.beanutils.PropertyUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * Utility methods for accessing jcr 2.0 only properties using reflection, for compatibility with jackrabbit 1.6. + * @author fgiust + * @version $Id$ + */ +public final class JcrCompatUtils +{ + + /** + * Logger. + */ + private static Logger log = LoggerFactory.getLogger(JcrCompatUtils.class); + + // don't instantiate + private JcrCompatUtils() + { + + } + + public static Item getJCRNode(Row row) throws RepositoryException + { + + try + { + return (Item) PropertyUtils.getProperty(row, "node"); + } + catch (IllegalAccessException e) + { + } + catch (InvocationTargetException e) + { + log.warn("Error extracting node from row", e.getTargetException()); + } + catch (NoSuchMethodException e) + { + log + .error("Unsupported version of jackrabbit detected, you need at least 1.6.x or a jcr 2.0 compliant version"); + } + + return null; + } +} Property changes on: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/utils/JcrCompatUtils.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |