From: <fg...@us...> - 2010-02-06 16:42:12
|
Revision: 1822 http://openutils.svn.sourceforge.net/openutils/?rev=1822&view=rev Author: fgiust Date: 2010-02-06 16:42:05 +0000 (Sat, 06 Feb 2010) Log Message: ----------- cleanup properties handling for zip upload Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java 2010-02-06 16:01:56 UTC (rev 1821) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java 2010-02-06 16:42:05 UTC (rev 1822) @@ -21,8 +21,8 @@ import info.magnolia.cms.core.Content; import info.magnolia.cms.core.HierarchyManager; -import info.magnolia.cms.core.NodeData; import info.magnolia.cms.core.Path; +import info.magnolia.cms.security.AccessDeniedException; import info.magnolia.cms.util.ContentUtil; import info.magnolia.cms.util.NodeDataUtil; import info.magnolia.context.MgnlContext; @@ -100,25 +100,13 @@ Path.getUniqueLabel(parentNode, cleanFilename), MediaConfigurationManager.MEDIA.getSystemName()); - NodeData nd = NodeDataUtil.getOrCreate(media, "type"); - nd.setValue(mtc.getName()); + setNodedataOnlyIfNotExisting(media, "creator", MgnlContext.getUser().getName()); + setNodedataOnlyIfNotExisting(media, "creationDate", Calendar.getInstance()); - nd = NodeDataUtil.getOrCreate(media, "creator"); - if (StringUtils.isEmpty(nd.getString())) - { - nd.setValue(MgnlContext.getUser().getName()); - } + NodeDataUtil.getOrCreateAndSet(media, "type", mtc.getName()); + NodeDataUtil.getOrCreateAndSet(media, "modificationDate", Calendar.getInstance()); + NodeDataUtil.getOrCreateAndSet(media, "modificationUser", MgnlContext.getUser().getName()); - nd = NodeDataUtil.getOrCreate(media, "creationDate"); - if (nd.getDate() == null) - { - nd.setValue(Calendar.getInstance()); - } - nd.setValue(MgnlContext.getUser().getName()); - - nd = NodeDataUtil.getOrCreate(media, "modificationDate"); - nd.setValue(Calendar.getInstance()); - if (MediaModule.getInstance().isSingleinstance()) { media.getMetaData().setActivated(); @@ -145,6 +133,22 @@ } /** + * @param media + * @param key + * @param value + * @throws RepositoryException + * @throws AccessDeniedException + */ + private static void setNodedataOnlyIfNotExisting(Content media, String key, Object value) + throws RepositoryException, AccessDeniedException + { + if (media.hasNodeData(key)) + { + NodeDataUtil.getOrCreateAndSet(media, key, value); + } + } + + /** * Get the content node matching required path using hierarchy manager. If the required path doesn't exist create * it. * @param mgr hierarchy manager This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2011-05-18 18:32:27
|
Revision: 3462 http://openutils.svn.sourceforge.net/openutils/?rev=3462&view=rev Author: diego_schivo Date: 2011-05-18 18:32:21 +0000 (Wed, 18 May 2011) Log Message: ----------- MEDIA-229 replace special characters Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java 2011-05-18 16:35:25 UTC (rev 3461) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java 2011-05-18 18:32:21 UTC (rev 3462) @@ -85,10 +85,11 @@ if (mtc != null) { Content parentNode = getOrCreateFullPath(mgr, parent); + String mediaName = Path.getValidatedLabel(cleanFilename); if (overwrite) { - Content existing = parentNode.getChildByName(cleanFilename); + Content existing = parentNode.getChildByName(mediaName); if (existing != null) { existing.delete(); @@ -98,7 +99,7 @@ Content media = mgr.createContent( parent, - Path.getUniqueLabel(parentNode, cleanFilename), + Path.getUniqueLabel(parentNode, mediaName), MediaConfigurationManager.MEDIA.getSystemName()); setNodedataOnlyIfNotExisting(media, "creator", MgnlContext.getUser().getName()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2011-08-21 17:05:53
|
Revision: 3622 http://openutils.svn.sourceforge.net/openutils/?rev=3622&view=rev Author: fgiust Date: 2011-08-21 17:05:47 +0000 (Sun, 21 Aug 2011) Log Message: ----------- MEDIA-252 Add an API for loading an external video into the repository Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java 2011-08-21 17:01:44 UTC (rev 3621) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/MediaLoadUtils.java 2011-08-21 17:05:47 UTC (rev 3622) @@ -61,7 +61,35 @@ private static Logger log = LoggerFactory.getLogger(MediaLoadUtils.class); /** - * Load a file in media repository + * Loads a media linking to an external video. + * @param videourl absolute video url + * @param parent media folder + * @param filename video filename + * @param overwrite overwrite an exxisting media + * @return loaded media + * @throws RepositoryException exception working on media repository + * @throws IOException exception working with file stream + */ + public static Content loadExternalVideo(String videourl, String parent, String filename, boolean overwrite) + throws RepositoryException, IOException + { + log.debug("loading external video {}/{} with url {}", new Object[]{parent, filename, videourl }); + + MediaTypeConfiguration mtc = MediaConfigurationManager.getInstance().getTypes().get("youtube"); + + String cleanFilename = Path.getValidatedLabel(videourl); + + Content media = createMediaNode(mtc, parent, cleanFilename, overwrite); + media.setNodeData("videoUrl", videourl); + + mtc.getHandler().onPostSave(media); + + return media; + + } + + /** + * Loads a file in the media repository * @param inputStream file input stream * @param parent parent folder node * @param filename filename @@ -76,57 +104,23 @@ log.debug("loading image {} {}", parent, filename); - HierarchyManager mgr = MgnlContext.getSystemContext().getHierarchyManager(MediaModule.REPO); - String extension = StringUtils.substringAfterLast(filename, "."); String cleanFilename = StringUtils.substringBeforeLast(filename, "."); MediaTypeConfiguration mtc = MediaConfigurationManager.getMediaHandlerFromExtension(extension); if (mtc != null) { - Content parentNode = getOrCreateFullPath(mgr, parent); - String mediaName = Path.getValidatedLabel(cleanFilename); + Content media = createMediaNode(mtc, parent, cleanFilename, overwrite); - if (overwrite) - { - Content existing = parentNode.getChildByName(mediaName); - if (existing != null) - { - existing.delete(); - mgr.save(); - } - } - - Content media = mgr.createContent( - parent, - Path.getUniqueLabel(parentNode, mediaName), - MediaConfigurationManager.MEDIA.getSystemName()); - - setNodedataOnlyIfNotExisting(media, "creator", MgnlContext.getUser().getName()); - setNodedataOnlyIfNotExisting(media, "creationDate", Calendar.getInstance()); - - NodeDataUtil.getOrCreateAndSet(media, "type", mtc.getName()); - NodeDataUtil.getOrCreateAndSet(media, "modificationDate", Calendar.getInstance()); - NodeDataUtil.getOrCreateAndSet(media, "modificationUser", MgnlContext.getUser().getName()); - - if (MediaEl.module().isSingleinstance()) - { - media.getMetaData().setActivated(); - } - - mgr.save(); - File f = File.createTempFile("entry", "." + extension); FileOutputStream fTemp = new FileOutputStream(f); IOUtils.copy(inputStream, fTemp); - IOUtils.closeQuietly(fTemp); mtc.getHandler().saveFromZipFile(media, f, cleanFilename, extension); - mgr.save(); - + MgnlContext.getSystemContext().getHierarchyManager(MediaModule.REPO).save(); FileUtils.deleteQuietly(f); return media; @@ -135,6 +129,55 @@ } /** + * @param mtc + * @param parent + * @param filename + * @param overwrite + * @return + * @throws RepositoryException + * @throws AccessDeniedException + */ + private static Content createMediaNode(MediaTypeConfiguration mtc, String parent, String filename, boolean overwrite) + throws RepositoryException, AccessDeniedException + { + + HierarchyManager mgr = MgnlContext.getSystemContext().getHierarchyManager(MediaModule.REPO); + + Content parentNode = getOrCreateFullPath(mgr, parent); + String mediaName = Path.getValidatedLabel(filename); + + if (overwrite) + { + Content existing = parentNode.getChildByName(mediaName); + if (existing != null) + { + existing.delete(); + mgr.save(); + } + } + + Content media = mgr.createContent( + parent, + Path.getUniqueLabel(parentNode, mediaName), + MediaConfigurationManager.MEDIA.getSystemName()); + + setNodedataOnlyIfNotExisting(media, "creator", MgnlContext.getUser().getName()); + setNodedataOnlyIfNotExisting(media, "creationDate", Calendar.getInstance()); + + NodeDataUtil.getOrCreateAndSet(media, "type", mtc.getName()); + NodeDataUtil.getOrCreateAndSet(media, "modificationDate", Calendar.getInstance()); + NodeDataUtil.getOrCreateAndSet(media, "modificationUser", MgnlContext.getUser().getName()); + + if (MediaEl.module().isSingleinstance()) + { + media.getMetaData().setActivated(); + } + + mgr.save(); + return media; + } + + /** * @param media * @param key * @param value This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |