From: <fg...@us...> - 2010-02-07 19:54:33
|
Revision: 1852 http://openutils.svn.sourceforge.net/openutils/?rev=1852&view=rev Author: fgiust Date: 2010-02-07 19:54:27 +0000 (Sun, 07 Feb 2010) Log Message: ----------- MEDIA-83 speed up page loading - new google collections dependency Modified Paths: -------------- trunk/openutils-mgnlmedia/pom.xml trunk/openutils-mgnlmedia/src/main/assembly/assembly-bundle.xml trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java Modified: trunk/openutils-mgnlmedia/pom.xml =================================================================== --- trunk/openutils-mgnlmedia/pom.xml 2010-02-07 18:57:21 UTC (rev 1851) +++ trunk/openutils-mgnlmedia/pom.xml 2010-02-07 19:54:27 UTC (rev 1852) @@ -92,6 +92,11 @@ <version>1.1</version> </dependency> <dependency> + <groupId>com.google.collections</groupId> + <artifactId>google-collections</artifactId> + <version>1.0</version> + </dependency> + <dependency> <groupId>info.magnolia</groupId> <artifactId>magnolia-module-standard-templating-kit</artifactId> <version>1.2</version> Modified: trunk/openutils-mgnlmedia/src/main/assembly/assembly-bundle.xml =================================================================== --- trunk/openutils-mgnlmedia/src/main/assembly/assembly-bundle.xml 2010-02-07 18:57:21 UTC (rev 1851) +++ trunk/openutils-mgnlmedia/src/main/assembly/assembly-bundle.xml 2010-02-07 19:54:27 UTC (rev 1852) @@ -29,6 +29,7 @@ <includes> <include>com.drewnoakes:metadata-extractor</include> <include>net.sourceforge.openutils:*</include> + <include>com.google.collections:*</include> </includes> </dependencySet> </dependencySets> Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-02-07 18:57:21 UTC (rev 1851) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-02-07 19:54:27 UTC (rev 1852) @@ -54,13 +54,16 @@ import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; import org.apache.commons.chain.Command; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.time.StopWatch; import org.apache.jackrabbit.util.ISO9075; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.base.Function; +import com.google.common.collect.Collections2; + /** * Page that renders the folder view * @author molaschi @@ -196,14 +199,14 @@ /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") @Override public String show() { HierarchyManager hm = MgnlContext.getInstance().getHierarchyManager(MediaModule.REPO); - MediaTypeConfiguration mtc = MediaConfigurationManager.getInstance().getTypes().get(type); + final MediaTypeConfiguration mtc = MediaConfigurationManager.getInstance().getTypes().get(type); Collection<Content> mediasOfType = null; - medias = new ArrayList<MediaBean>(); develop = SystemProperty.getBooleanProperty("magnolia.develop"); @@ -242,44 +245,47 @@ if (mediasOfType != null) { - - StopWatch watch = new StopWatch(); - watch.start(); - for (Content media : mediasOfType) + medias = Collections2.transform(mediasOfType, new Function<Content, MediaBean>() { - MediaBean mb = new MediaBean(); - mb.setContent(media); - mb.setMetaData(media.getMetaData()); - mb.setHandle(media.getHandle()); - mb.setFilename(mtc.getHandler().getFilename(media)); - mb.setDescription(mtc.getHandler().getDescription(media)); - mb.setThumbnailUrl(mtc.getHandler().getThumbnailUrl(media)); - mb.setPreviewUrl(mtc.getHandler().getPreviewUrl(media)); - mb.setDescription(mtc.getHandler().getDescription(media)); - mb.setUuid(media.getUUID()); - try + public MediaBean apply(Content media) { - mb.setWritable(media.getParent().isGranted(Permission.WRITE)); - mb.setCanPublish(!MediaModule.getInstance().isSingleinstance() - && mb.isWritable() - && ActivationManagerFactory.getActivationManager().hasAnyActiveSubscriber()); + MediaBean mb = new MediaBean(); + mb.setContent(media); + mb.setMetaData(media.getMetaData()); + mb.setHandle(media.getHandle()); + mb.setFilename(mtc.getHandler().getFilename(media)); + mb.setDescription(mtc.getHandler().getDescription(media)); + mb.setThumbnailUrl(mtc.getHandler().getThumbnailUrl(media)); + mb.setPreviewUrl(mtc.getHandler().getPreviewUrl(media)); + mb.setDescription(mtc.getHandler().getDescription(media)); + mb.setUuid(media.getUUID()); - mb.getUsedInWebPages().addAll( - MediaConfigurationManager.getInstance().getUsedInWebPages(media.getUUID())); - } - catch (RepositoryException ex) - { - log.error("Exception caught", ex); - } + try + { + mb.setWritable(media.getParent().isGranted(Permission.WRITE)); + mb.setCanPublish(!MediaModule.getInstance().isSingleinstance() + && mb.isWritable() + && ActivationManagerFactory.getActivationManager().hasAnyActiveSubscriber()); - mb.setMediaInfo(mtc.getHandler().getMediaInfo(media)); + mb.getUsedInWebPages().addAll( + MediaConfigurationManager.getInstance().getUsedInWebPages(media.getUUID())); + } + catch (RepositoryException ex) + { + log.error("Exception caught", ex); + } - medias.add(mb); - } + mb.setMediaInfo(mtc.getHandler().getMediaInfo(media)); - log.warn("Took {} to display {} files", watch.toSplitString(), mediasOfType.size()); + return mb; + } + }); } + else + { + medias = CollectionUtils.EMPTY_COLLECTION; + } return super.show(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |