From: <fg...@us...> - 2011-01-24 21:01:48
|
Revision: 3290 http://openutils.svn.sourceforge.net/openutils/?rev=3290&view=rev Author: fgiust Date: 2011-01-24 21:01:42 +0000 (Mon, 24 Jan 2011) Log Message: ----------- update task using criteria query instead of standard magnolia APIs Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/MoveOriginalNodeTask.java Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/MoveOriginalNodeTask.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/MoveOriginalNodeTask.java 2011-01-24 20:31:37 UTC (rev 3289) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/setup/MoveOriginalNodeTask.java 2011-01-24 21:01:42 UTC (rev 3290) @@ -20,22 +20,25 @@ package net.sourceforge.openutils.mgnlmedia.media.setup; import info.magnolia.cms.core.Content; +import info.magnolia.cms.core.HierarchyManager; import info.magnolia.cms.core.NodeData; import info.magnolia.cms.core.search.Query; -import info.magnolia.cms.core.search.QueryManager; -import info.magnolia.cms.core.search.QueryResult; import info.magnolia.module.InstallContext; import info.magnolia.module.delta.Task; import info.magnolia.module.delta.TaskExecutionException; import java.io.InputStream; -import java.util.Collection; import java.util.List; import javax.jcr.RepositoryException; import javax.jcr.Value; import javax.jcr.nodetype.ConstraintViolationException; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResult; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResultItem; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.DirectJcrQuery; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRCriteriaFactory; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.ResultIterator; import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; import net.sourceforge.openutils.mgnlmedia.media.types.impl.BaseTypeHandler; @@ -69,7 +72,7 @@ public void execute(InstallContext installContext) throws TaskExecutionException { - QueryManager mgr = installContext.getHierarchyManager(MediaModule.REPO).getQueryManager(); + HierarchyManager mgr = installContext.getHierarchyManager(MediaModule.REPO); try { reset(mgr, "image", "image"); @@ -82,13 +85,25 @@ } } - private void reset(QueryManager queryManager, String type, String nodedataOldName) throws RepositoryException + private void reset(HierarchyManager queryManager, String type, String nodedataOldName) throws RepositoryException { - Query query = queryManager.createQuery("//*[" + nodedataOldName + " and type='" + type + "']", Query.XPATH); - QueryResult queryResult = query.execute(); - Collection<Content> medias = queryResult.getContent(MediaConfigurationManager.MEDIA.getSystemName()); - for (Content media : medias) + + DirectJcrQuery query = JCRCriteriaFactory.createDirectJcrQuery(queryManager, "//*[@jcr:primaryType = '" + + MediaConfigurationManager.MEDIA.getSystemName() + + "' and " + + nodedataOldName + + " and @type='" + + type + + "']", Query.XPATH); + + AdvancedResult result = query.execute(); + + ResultIterator<AdvancedResultItem> items = result.getItems(); + + while (items.hasNext()) { + Content media = items.next(); + NodeData nd = media.getNodeData(nodedataOldName); Value value = nd.getValue(); if (value != null) @@ -109,7 +124,7 @@ IOUtils.closeQuietly(stream); nd.delete(); } - // media.deleteNodeData(nd.getName()); + media.save(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |