protected List<byte[]> getImages(UploadPortletRequest uploadPortletRequest, String imagePrefix) throws Exception { List<byte[]> images = new ArrayList<>(); for (String name : getSortedParameterNames(uploadPortletRequest, imagePrefix)) { String contentType = uploadPortletRequest.getContentType(name); if (!MimeTypesUtil.isWebImage(contentType)) { throw new ProductEntryScreenshotsException(); } int priority = GetterUtil.getInteger(name.substring(imagePrefix.length())); boolean preserveScreenshot = ParamUtil.getBoolean(uploadPortletRequest, "preserveScreenshot" + priority); byte[] bytes = null; if (preserveScreenshot) { SCProductScreenshot productScreenshot = getProductScreenshot(uploadPortletRequest, priority); Image image = null; if (imagePrefix.equals("fullImage")) { image = ImageLocalServiceUtil.getImage(productScreenshot.getFullImageId()); } else { image = ImageLocalServiceUtil.getImage(productScreenshot.getThumbnailId()); } bytes = image.getTextObj(); } else { InputStream inputStream = uploadPortletRequest.getFileAsStream(name); if (inputStream != null) { bytes = FileUtil.getBytes(inputStream); } } if (ArrayUtil.isNotEmpty(bytes)) { images.add(bytes); } else { throw new ProductEntryScreenshotsException(); } } return images; }
public Object getNewValue(Object oldValue) throws Exception { _type = null; _height = null; _width = null; _size = null; String text = (String) oldValue; byte[] bytes = (byte[]) Base64.stringToObject(text); try { Image image = ImageLocalServiceUtil.getImage(bytes); _type = image.getType(); _height = new Integer(image.getHeight()); _width = new Integer(image.getWidth()); _size = new Integer(image.getSize()); } catch (Exception e) { if (_log.isWarnEnabled()) { String imageId = (String) _imageIdColumn.getOldValue(); if (_log.isWarnEnabled()) { _log.warn("Unable to get image data for " + imageId + ": " + e.getMessage()); } } _type = ImageConstants.TYPE_NOT_AVAILABLE; _height = null; _width = null; _size = new Integer(bytes.length); } return oldValue; }
protected Image fetchSmallImage() throws PortalException, SystemException { if (isSmallImage()) { return ImageLocalServiceUtil.getImage(getSmallImageId()); } return null; }
protected void initActionableDynamicQuery(ActionableDynamicQuery actionableDynamicQuery) { actionableDynamicQuery.setBaseLocalService( com.liferay.portal.service.ImageLocalServiceUtil.getService()); actionableDynamicQuery.setClassLoader(getClassLoader()); actionableDynamicQuery.setModelClass(Image.class); actionableDynamicQuery.setPrimaryKeyPropertyName("imageId"); }
@Override public String getSmallImageType() throws PortalException { if ((_smallImageType == null) && isSmallImage()) { Image smallImage = ImageLocalServiceUtil.getImage(getSmallImageId()); _smallImageType = smallImage.getType(); } return _smallImageType; }
protected Image getDefaultImage(HttpServletRequest request, long imageId) { String path = GetterUtil.getString(request.getPathInfo()); if (path.startsWith("/company_logo") || path.startsWith("/layout_set_logo") || path.startsWith("/logo")) { return ImageLocalServiceUtil.getDefaultCompanyLogo(); } else if (path.startsWith("/organization_logo")) { return ImageLocalServiceUtil.getDefaultOrganizationLogo(); } else if (path.startsWith("/user_female_portrait")) { return ImageLocalServiceUtil.getDefaultUserFemalePortrait(); } else if (path.startsWith("/user_male_portrait")) { return ImageLocalServiceUtil.getDefaultUserMalePortrait(); } else if (path.startsWith("/user_portrait")) { return ImageLocalServiceUtil.getDefaultUserMalePortrait(); } else { return null; } }
@Override public ActionableDynamicQuery getActionableDynamicQuery() { ActionableDynamicQuery actionableDynamicQuery = new DefaultActionableDynamicQuery(); actionableDynamicQuery.setBaseLocalService( com.liferay.portal.service.ImageLocalServiceUtil.getService()); actionableDynamicQuery.setClassLoader(getClassLoader()); actionableDynamicQuery.setModelClass(Image.class); actionableDynamicQuery.setPrimaryKeyPropertyName("imageId"); return actionableDynamicQuery; }
protected void migrateImage(long imageId) throws Exception { Image image = ImageLocalServiceUtil.getImage(imageId); try { migrateFile(0, 0, null, image); } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn("Ignoring exception for image " + imageId, e); } return; } _sourceHook.deleteImage(image); }
protected Image getUserPortraitImageResized(Image image, long imageId) throws PortalException, SystemException { if (image == null) { return null; } if ((image.getHeight() > PropsValues.USERS_IMAGE_MAX_HEIGHT) || (image.getWidth() > PropsValues.USERS_IMAGE_MAX_WIDTH)) { User user = UserLocalServiceUtil.getUserByPortraitId(imageId); UserLocalServiceUtil.updatePortrait(user.getUserId(), image.getTextObj()); return ImageLocalServiceUtil.getImage(imageId); } return image; }
protected byte[] getImageBytes(UploadRequest uploadRequest, String fieldNameValue) throws Exception { File file = uploadRequest.getFile(fieldNameValue + "File"); byte[] bytes = FileUtil.getBytes(file); if (ArrayUtil.isNotEmpty(bytes)) { return bytes; } String url = uploadRequest.getParameter(fieldNameValue + "URL"); long imageId = GetterUtil.getLong(HttpUtil.getParameter(url, "img_id", false)); Image image = ImageLocalServiceUtil.fetchImage(imageId); if (image == null) { return null; } return image.getTextObj(); }
protected void importLayout( PortletDataContext portletDataContext, User user, LayoutCache layoutCache, List<Layout> previousLayouts, List<Layout> newLayouts, Map<Long, Layout> newLayoutsMap, Set<Long> newLayoutIds, String portletsMergeMode, String themeId, String colorSchemeId, String layoutsImportMode, boolean privateLayout, boolean importPermissions, boolean importPublicLayoutPermissions, boolean importUserPermissions, boolean importThemeSettings, Element rootElement, Element layoutElement) throws Exception { long groupId = portletDataContext.getGroupId(); String layoutUuid = GetterUtil.getString(layoutElement.attributeValue("layout-uuid")); long layoutId = GetterUtil.getInteger(layoutElement.attributeValue("layout-id")); long oldLayoutId = layoutId; boolean deleteLayout = GetterUtil.getBoolean(layoutElement.attributeValue("delete")); if (deleteLayout) { Layout layout = LayoutLocalServiceUtil.fetchLayoutByUuidAndGroupId(layoutUuid, groupId); if (layout != null) { newLayoutsMap.put(oldLayoutId, layout); ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext(); LayoutLocalServiceUtil.deleteLayout(layout, false, serviceContext); } return; } String path = layoutElement.attributeValue("path"); if (!portletDataContext.isPathNotProcessed(path)) { return; } Layout layout = (Layout) portletDataContext.getZipEntryAsObject(path); Layout existingLayout = null; Layout importedLayout = null; String friendlyURL = layout.getFriendlyURL(); if (layoutsImportMode.equals(PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_ADD_AS_NEW)) { layoutId = LayoutLocalServiceUtil.getNextLayoutId(groupId, privateLayout); friendlyURL = StringPool.SLASH + layoutId; } else if (layoutsImportMode.equals( PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_MERGE_BY_LAYOUT_NAME)) { Locale locale = LocaleUtil.getDefault(); String localizedName = layout.getName(locale); for (Layout curLayout : previousLayouts) { if (localizedName.equals(curLayout.getName(locale)) || friendlyURL.equals(curLayout.getFriendlyURL())) { existingLayout = curLayout; break; } } if (existingLayout == null) { layoutId = LayoutLocalServiceUtil.getNextLayoutId(groupId, privateLayout); } } else if (layoutsImportMode.equals( PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_CREATED_FROM_PROTOTYPE)) { existingLayout = LayoutUtil.fetchByG_P_SPLU(groupId, privateLayout, layout.getUuid()); if (SitesUtil.isLayoutModifiedSinceLastMerge(existingLayout)) { newLayoutsMap.put(oldLayoutId, existingLayout); return; } } else { // The default behaviour of import mode is // PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_MERGE_BY_LAYOUT_UUID existingLayout = LayoutUtil.fetchByUUID_G(layout.getUuid(), groupId); if (existingLayout == null) { existingLayout = LayoutUtil.fetchByG_P_F(groupId, privateLayout, friendlyURL); } if (existingLayout == null) { layoutId = LayoutLocalServiceUtil.getNextLayoutId(groupId, privateLayout); } } if (_log.isDebugEnabled()) { if (existingLayout == null) { _log.debug( "Layout with {groupId=" + groupId + ",privateLayout=" + privateLayout + ",layoutId=" + layoutId + "} does not exist"); } else { _log.debug( "Layout with {groupId=" + groupId + ",privateLayout=" + privateLayout + ",layoutId=" + layoutId + "} exists"); } } if (existingLayout == null) { long plid = CounterLocalServiceUtil.increment(); importedLayout = LayoutUtil.create(plid); if (layoutsImportMode.equals( PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_CREATED_FROM_PROTOTYPE)) { importedLayout.setSourcePrototypeLayoutUuid(layout.getUuid()); layoutId = LayoutLocalServiceUtil.getNextLayoutId(groupId, privateLayout); } else { importedLayout.setUuid(layout.getUuid()); importedLayout.setCreateDate(layout.getCreateDate()); importedLayout.setModifiedDate(layout.getModifiedDate()); importedLayout.setLayoutPrototypeUuid(layout.getLayoutPrototypeUuid()); importedLayout.setLayoutPrototypeLinkEnabled(layout.isLayoutPrototypeLinkEnabled()); importedLayout.setSourcePrototypeLayoutUuid(layout.getSourcePrototypeLayoutUuid()); } importedLayout.setGroupId(groupId); importedLayout.setPrivateLayout(privateLayout); importedLayout.setLayoutId(layoutId); // Resources boolean addGroupPermissions = true; Group group = importedLayout.getGroup(); if (privateLayout && group.isUser()) { addGroupPermissions = false; } boolean addGuestPermissions = false; if (!privateLayout || layout.isTypeControlPanel()) { addGuestPermissions = true; } ResourceLocalServiceUtil.addResources( user.getCompanyId(), groupId, user.getUserId(), Layout.class.getName(), importedLayout.getPlid(), false, addGroupPermissions, addGuestPermissions); LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(groupId, privateLayout); importedLayout.setLayoutSet(layoutSet); } else { importedLayout = existingLayout; } newLayoutsMap.put(oldLayoutId, importedLayout); long parentLayoutId = layout.getParentLayoutId(); Node parentLayoutNode = rootElement.selectSingleNode("./layouts/layout[@layout-id='" + parentLayoutId + "']"); String parentLayoutUuid = GetterUtil.getString(layoutElement.attributeValue("parent-layout-uuid")); if ((parentLayoutId != LayoutConstants.DEFAULT_PARENT_LAYOUT_ID) && (parentLayoutNode != null)) { importLayout( portletDataContext, user, layoutCache, previousLayouts, newLayouts, newLayoutsMap, newLayoutIds, portletsMergeMode, themeId, colorSchemeId, layoutsImportMode, privateLayout, importPermissions, importPublicLayoutPermissions, importUserPermissions, importThemeSettings, rootElement, (Element) parentLayoutNode); Layout parentLayout = newLayoutsMap.get(parentLayoutId); parentLayoutId = parentLayout.getLayoutId(); } else if (Validator.isNotNull(parentLayoutUuid)) { Layout parentLayout = LayoutLocalServiceUtil.getLayoutByUuidAndGroupId(parentLayoutUuid, groupId); parentLayoutId = parentLayout.getLayoutId(); } if (_log.isDebugEnabled()) { _log.debug( "Importing layout with layout id " + layoutId + " and parent layout id " + parentLayoutId); } importedLayout.setCompanyId(user.getCompanyId()); importedLayout.setParentLayoutId(parentLayoutId); importedLayout.setName(layout.getName()); importedLayout.setTitle(layout.getTitle()); importedLayout.setDescription(layout.getDescription()); importedLayout.setKeywords(layout.getKeywords()); importedLayout.setRobots(layout.getRobots()); importedLayout.setType(layout.getType()); if (layout.isTypeArticle()) { importJournalArticle(portletDataContext, layout, layoutElement); importedLayout.setTypeSettings(layout.getTypeSettings()); } else if (layout.isTypePortlet() && Validator.isNotNull(layout.getTypeSettings()) && !portletsMergeMode.equals(PortletDataHandlerKeys.PORTLETS_MERGE_MODE_REPLACE)) { mergePortlets(importedLayout, layout.getTypeSettings(), portletsMergeMode); } else if (layout.isTypeLinkToLayout()) { UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties(); long linkToLayoutId = GetterUtil.getLong( typeSettingsProperties.getProperty("linkToLayoutId", StringPool.BLANK)); if (linkToLayoutId > 0) { Node linkedLayoutNode = rootElement.selectSingleNode("./layouts/layout[@layout-id='" + linkToLayoutId + "']"); if (linkedLayoutNode != null) { importLayout( portletDataContext, user, layoutCache, previousLayouts, newLayouts, newLayoutsMap, newLayoutIds, portletsMergeMode, themeId, colorSchemeId, layoutsImportMode, privateLayout, importPermissions, importPublicLayoutPermissions, importUserPermissions, importThemeSettings, rootElement, (Element) linkedLayoutNode); Layout linkedLayout = newLayoutsMap.get(linkToLayoutId); typeSettingsProperties.setProperty( "privateLayout", String.valueOf(linkedLayout.getPrivateLayout())); typeSettingsProperties.setProperty( "linkToLayoutId", String.valueOf(linkedLayout.getLayoutId())); } else { if (_log.isWarnEnabled()) { StringBundler sb = new StringBundler(); sb.append("Unable to link layout with friendly URL "); sb.append(layout.getFriendlyURL()); sb.append(" and layout id "); sb.append(layout.getLayoutId()); sb.append(" to layout with layout id "); sb.append(linkToLayoutId); _log.warn(sb.toString()); } } } importedLayout.setTypeSettings(layout.getTypeSettings()); } else { importedLayout.setTypeSettings(layout.getTypeSettings()); } importedLayout.setHidden(layout.isHidden()); importedLayout.setFriendlyURL(friendlyURL); if (importThemeSettings) { importedLayout.setThemeId(layout.getThemeId()); importedLayout.setColorSchemeId(layout.getColorSchemeId()); } else { importedLayout.setThemeId(StringPool.BLANK); importedLayout.setColorSchemeId(StringPool.BLANK); } importedLayout.setWapThemeId(layout.getWapThemeId()); importedLayout.setWapColorSchemeId(layout.getWapColorSchemeId()); importedLayout.setCss(layout.getCss()); importedLayout.setPriority(layout.getPriority()); importedLayout.setLayoutPrototypeUuid(layout.getLayoutPrototypeUuid()); importedLayout.setLayoutPrototypeLinkEnabled(layout.isLayoutPrototypeLinkEnabled()); StagingUtil.updateLastImportSettings(layoutElement, importedLayout, portletDataContext); fixTypeSettings(importedLayout); importedLayout.setIconImage(false); if (layout.isIconImage()) { String iconImagePath = layoutElement.elementText("icon-image-path"); byte[] iconBytes = portletDataContext.getZipEntryAsByteArray(iconImagePath); if ((iconBytes != null) && (iconBytes.length > 0)) { importedLayout.setIconImage(true); if (importedLayout.getIconImageId() == 0) { long iconImageId = CounterLocalServiceUtil.increment(); importedLayout.setIconImageId(iconImageId); } ImageLocalServiceUtil.updateImage(importedLayout.getIconImageId(), iconBytes); } } else { ImageLocalServiceUtil.deleteImage(importedLayout.getIconImageId()); } ServiceContext serviceContext = portletDataContext.createServiceContext(layoutElement, importedLayout, null); importedLayout.setExpandoBridgeAttributes(serviceContext); LayoutUtil.update(importedLayout, false); portletDataContext.setPlid(importedLayout.getPlid()); portletDataContext.setOldPlid(layout.getPlid()); newLayoutIds.add(importedLayout.getLayoutId()); newLayouts.add(importedLayout); // Layout permissions if (importPermissions) { _permissionImporter.importLayoutPermissions( layoutCache, portletDataContext.getCompanyId(), groupId, user.getUserId(), importedLayout, layoutElement, rootElement, importUserPermissions); } if (importPublicLayoutPermissions) { String resourceName = Layout.class.getName(); String resourcePrimKey = String.valueOf(importedLayout.getPlid()); Role guestRole = RoleLocalServiceUtil.getRole(importedLayout.getCompanyId(), RoleConstants.GUEST); if (PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM == 5) { Resource resource = layoutCache.getResource( importedLayout.getCompanyId(), groupId, resourceName, ResourceConstants.SCOPE_INDIVIDUAL, resourcePrimKey, false); PermissionLocalServiceUtil.setRolePermissions( guestRole.getRoleId(), new String[] {ActionKeys.VIEW}, resource.getResourceId()); } else if (PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM == 6) { ResourcePermissionLocalServiceUtil.setResourcePermissions( importedLayout.getCompanyId(), resourceName, ResourceConstants.SCOPE_INDIVIDUAL, resourcePrimKey, guestRole.getRoleId(), new String[] {ActionKeys.VIEW}); } else { Resource resource = layoutCache.getResource( importedLayout.getCompanyId(), groupId, resourceName, ResourceConstants.SCOPE_INDIVIDUAL, resourcePrimKey, false); PermissionLocalServiceUtil.setGroupPermissions( groupId, new String[] {ActionKeys.VIEW}, resource.getResourceId()); } } _portletImporter.importPortletData( portletDataContext, PortletKeys.LAYOUT_CONFIGURATION, null, layoutElement); }
protected void exportLayout( PortletDataContext portletDataContext, Portlet layoutConfigurationPortlet, LayoutCache layoutCache, List<Portlet> portlets, Map<String, Object[]> portletIds, boolean exportPermissions, boolean exportUserPermissions, Layout layout, Element layoutsElement) throws Exception { String path = portletDataContext.getLayoutPath(layout.getLayoutId()) + "/layout.xml"; if (!portletDataContext.isPathNotProcessed(path)) { return; } LayoutRevision layoutRevision = null; if (LayoutStagingUtil.isBranchingLayout(layout)) { ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext(); long layoutSetBranchId = ParamUtil.getLong(serviceContext, "layoutSetBranchId"); if (layoutSetBranchId <= 0) { return; } layoutRevision = LayoutRevisionUtil.fetchByL_H_P(layoutSetBranchId, true, layout.getPlid()); if (layoutRevision == null) { return; } LayoutStagingHandler layoutStagingHandler = LayoutStagingUtil.getLayoutStagingHandler(layout); layoutStagingHandler.setLayoutRevision(layoutRevision); } Element layoutElement = layoutsElement.addElement("layout"); if (layoutRevision != null) { layoutElement.addAttribute( "layout-revision-id", String.valueOf(layoutRevision.getLayoutRevisionId())); layoutElement.addAttribute( "layout-branch-id", String.valueOf(layoutRevision.getLayoutBranchId())); layoutElement.addAttribute( "layout-branch-name", String.valueOf(layoutRevision.getLayoutBranch().getName())); } layoutElement.addAttribute("layout-uuid", layout.getUuid()); layoutElement.addAttribute("layout-id", String.valueOf(layout.getLayoutId())); long parentLayoutId = layout.getParentLayoutId(); if (parentLayoutId != LayoutConstants.DEFAULT_PARENT_LAYOUT_ID) { Layout parentLayout = LayoutLocalServiceUtil.getLayout( layout.getGroupId(), layout.isPrivateLayout(), parentLayoutId); if (parentLayout != null) { layoutElement.addAttribute("parent-layout-uuid", parentLayout.getUuid()); } } boolean deleteLayout = MapUtil.getBoolean(portletDataContext.getParameterMap(), "delete_" + layout.getPlid()); if (deleteLayout) { layoutElement.addAttribute("delete", String.valueOf(true)); return; } portletDataContext.setPlid(layout.getPlid()); if (layout.isIconImage()) { Image image = ImageLocalServiceUtil.getImage(layout.getIconImageId()); if (image != null) { String iconPath = getLayoutIconPath(portletDataContext, layout, image); layoutElement.addElement("icon-image-path").addText(iconPath); portletDataContext.addZipEntry(iconPath, image.getTextObj()); } } _portletExporter.exportPortletData( portletDataContext, layoutConfigurationPortlet, layout, null, layoutElement); // Layout permissions if (exportPermissions) { _permissionExporter.exportLayoutPermissions( portletDataContext, layoutCache, portletDataContext.getCompanyId(), portletDataContext.getScopeGroupId(), layout, layoutElement, exportUserPermissions); } if (layout.isTypeArticle()) { exportJournalArticle(portletDataContext, layout, layoutElement); } else if (layout.isTypeLinkToLayout()) { UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties(); long linkToLayoutId = GetterUtil.getLong( typeSettingsProperties.getProperty("linkToLayoutId", StringPool.BLANK)); if (linkToLayoutId > 0) { try { Layout linkedToLayout = LayoutLocalServiceUtil.getLayout( portletDataContext.getScopeGroupId(), layout.isPrivateLayout(), linkToLayoutId); exportLayout( portletDataContext, layoutConfigurationPortlet, layoutCache, portlets, portletIds, exportPermissions, exportUserPermissions, linkedToLayout, layoutsElement); } catch (NoSuchLayoutException nsle) { } } } else if (layout.isTypePortlet()) { for (Portlet portlet : portlets) { if (portlet.isScopeable() && layout.hasScopeGroup()) { String key = PortletPermissionUtil.getPrimaryKey(layout.getPlid(), portlet.getPortletId()); portletIds.put( key, new Object[] { portlet.getPortletId(), layout.getPlid(), layout.getScopeGroup().getGroupId(), StringPool.BLANK, layout.getUuid() }); } } LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType(); for (String portletId : layoutTypePortlet.getPortletIds()) { javax.portlet.PortletPreferences jxPreferences = PortletPreferencesFactoryUtil.getLayoutPortletSetup(layout, portletId); String scopeType = GetterUtil.getString(jxPreferences.getValue("lfrScopeType", null)); String scopeLayoutUuid = GetterUtil.getString(jxPreferences.getValue("lfrScopeLayoutUuid", null)); long scopeGroupId = portletDataContext.getScopeGroupId(); if (Validator.isNotNull(scopeType)) { Group scopeGroup = null; if (scopeType.equals("company")) { scopeGroup = GroupLocalServiceUtil.getCompanyGroup(layout.getCompanyId()); } else if (scopeType.equals("layout")) { Layout scopeLayout = null; scopeLayout = LayoutLocalServiceUtil.fetchLayoutByUuidAndGroupId( scopeLayoutUuid, portletDataContext.getGroupId()); if (scopeLayout == null) { continue; } scopeGroup = scopeLayout.getScopeGroup(); } else { throw new IllegalArgumentException("Scope type " + scopeType + " is invalid"); } if (scopeGroup != null) { scopeGroupId = scopeGroup.getGroupId(); } } String key = PortletPermissionUtil.getPrimaryKey(layout.getPlid(), portletId); portletIds.put( key, new Object[] {portletId, layout.getPlid(), scopeGroupId, scopeType, scopeLayoutUuid}); } } fixTypeSettings(layout); layoutElement.addAttribute("path", path); portletDataContext.addExpando(layoutElement, path, layout); portletDataContext.addZipEntry(path, layout); }
protected File doExportLayoutsAsFile( long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate) throws Exception { boolean exportCategories = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.CATEGORIES); boolean exportIgnoreLastPublishDate = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.IGNORE_LAST_PUBLISH_DATE); boolean exportPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS); boolean exportUserPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.USER_PERMISSIONS); boolean exportPortletArchivedSetups = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS); boolean exportPortletUserPreferences = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_USER_PREFERENCES); boolean exportTheme = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.THEME); boolean exportThemeSettings = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.THEME_REFERENCE); boolean exportLogo = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.LOGO); boolean exportLayoutSetSettings = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.LAYOUT_SET_SETTINGS); boolean publishToRemote = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PUBLISH_TO_REMOTE); boolean updateLastPublishDate = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.UPDATE_LAST_PUBLISH_DATE); if (_log.isDebugEnabled()) { _log.debug("Export categories " + exportCategories); _log.debug("Export permissions " + exportPermissions); _log.debug("Export user permissions " + exportUserPermissions); _log.debug("Export portlet archived setups " + exportPortletArchivedSetups); _log.debug("Export portlet user preferences " + exportPortletUserPreferences); _log.debug("Export theme " + exportTheme); } LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(groupId, privateLayout); long companyId = layoutSet.getCompanyId(); long defaultUserId = UserLocalServiceUtil.getDefaultUserId(companyId); ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext(); if (serviceContext == null) { serviceContext = new ServiceContext(); serviceContext.setCompanyId(companyId); serviceContext.setSignedIn(false); serviceContext.setUserId(defaultUserId); ServiceContextThreadLocal.pushServiceContext(serviceContext); } serviceContext.setAttribute("exporting", Boolean.TRUE); long layoutSetBranchId = MapUtil.getLong(parameterMap, "layoutSetBranchId"); serviceContext.setAttribute("layoutSetBranchId", layoutSetBranchId); long lastPublishDate = System.currentTimeMillis(); if (endDate != null) { lastPublishDate = endDate.getTime(); } if (exportIgnoreLastPublishDate) { endDate = null; startDate = null; } StopWatch stopWatch = null; if (_log.isInfoEnabled()) { stopWatch = new StopWatch(); stopWatch.start(); } LayoutCache layoutCache = new LayoutCache(); ZipWriter zipWriter = ZipWriterFactoryUtil.getZipWriter(); PortletDataContext portletDataContext = new PortletDataContextImpl( companyId, groupId, parameterMap, new HashSet<String>(), startDate, endDate, zipWriter); portletDataContext.setPortetDataContextListener( new PortletDataContextListenerImpl(portletDataContext)); Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); Element headerElement = rootElement.addElement("header"); headerElement.addAttribute("build-number", String.valueOf(ReleaseInfo.getBuildNumber())); headerElement.addAttribute("export-date", Time.getRFC822()); if (portletDataContext.hasDateRange()) { headerElement.addAttribute("start-date", String.valueOf(portletDataContext.getStartDate())); headerElement.addAttribute("end-date", String.valueOf(portletDataContext.getEndDate())); } headerElement.addAttribute("group-id", String.valueOf(groupId)); headerElement.addAttribute("private-layout", String.valueOf(privateLayout)); Group group = layoutSet.getGroup(); String type = "layout-set"; if (group.isLayoutSetPrototype()) { type = "layout-set-prototype"; LayoutSetPrototype layoutSetPrototype = LayoutSetPrototypeLocalServiceUtil.getLayoutSetPrototype(group.getClassPK()); headerElement.addAttribute("type-uuid", layoutSetPrototype.getUuid()); } headerElement.addAttribute("type", type); if (exportTheme || exportThemeSettings) { headerElement.addAttribute("theme-id", layoutSet.getThemeId()); headerElement.addAttribute("color-scheme-id", layoutSet.getColorSchemeId()); } if (exportLogo) { Image image = ImageLocalServiceUtil.getImage(layoutSet.getLogoId()); if (image != null) { String logoPath = getLayoutSetLogoPath(portletDataContext); headerElement.addAttribute("logo-path", logoPath); portletDataContext.addZipEntry(logoPath, image.getTextObj()); } } if (exportLayoutSetSettings) { Element settingsElement = headerElement.addElement("settings"); settingsElement.addCDATA(layoutSet.getSettings()); } Element cssElement = headerElement.addElement("css"); cssElement.addCDATA(layoutSet.getCss()); Portlet layoutConfigurationPortlet = PortletLocalServiceUtil.getPortletById( portletDataContext.getCompanyId(), PortletKeys.LAYOUT_CONFIGURATION); Map<String, Object[]> portletIds = new LinkedHashMap<String, Object[]>(); List<Layout> layouts = null; if ((layoutIds == null) || (layoutIds.length == 0)) { layouts = LayoutLocalServiceUtil.getLayouts(groupId, privateLayout); } else { layouts = LayoutLocalServiceUtil.getLayouts(groupId, privateLayout, layoutIds); } List<Portlet> portlets = getAlwaysExportablePortlets(companyId); if (!layouts.isEmpty()) { Layout firstLayout = layouts.get(0); if (group.isStagingGroup()) { group = group.getLiveGroup(); } for (Portlet portlet : portlets) { String portletId = portlet.getRootPortletId(); if (!group.isStagedPortlet(portletId)) { continue; } String key = PortletPermissionUtil.getPrimaryKey(0, portletId); if (portletIds.get(key) == null) { portletIds.put( key, new Object[] { portletId, firstLayout.getPlid(), groupId, StringPool.BLANK, StringPool.BLANK }); } } } Element layoutsElement = rootElement.addElement("layouts"); String layoutSetPrototypeUuid = layoutSet.getLayoutSetPrototypeUuid(); if (Validator.isNotNull(layoutSetPrototypeUuid)) { LayoutSetPrototype layoutSetPrototype = LayoutSetPrototypeLocalServiceUtil.getLayoutSetPrototypeByUuid(layoutSetPrototypeUuid); layoutsElement.addAttribute("layout-set-prototype-uuid", layoutSetPrototypeUuid); if (publishToRemote) { String path = getLayoutSetPrototype(portletDataContext, layoutSetPrototypeUuid); File layoutSetPrototypeFile = null; InputStream inputStream = null; try { layoutSetPrototypeFile = SitesUtil.exportLayoutSetPrototype(layoutSetPrototype, serviceContext); inputStream = new FileInputStream(layoutSetPrototypeFile); portletDataContext.addZipEntry(path.concat(".lar"), inputStream); portletDataContext.addZipEntry(path.concat(".xml"), layoutSetPrototype); } finally { StreamUtil.cleanUp(inputStream); FileUtil.delete(layoutSetPrototypeFile); } } } for (Layout layout : layouts) { exportLayout( portletDataContext, layoutConfigurationPortlet, layoutCache, portlets, portletIds, exportPermissions, exportUserPermissions, layout, layoutsElement); } if (PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM < 5) { Element rolesElement = rootElement.addElement("roles"); if (exportPermissions) { _permissionExporter.exportLayoutRoles(layoutCache, companyId, groupId, rolesElement); } } long previousScopeGroupId = portletDataContext.getScopeGroupId(); Element portletsElement = rootElement.addElement("portlets"); for (Map.Entry<String, Object[]> portletIdsEntry : portletIds.entrySet()) { Object[] portletObjects = portletIdsEntry.getValue(); String portletId = null; long plid = 0; long scopeGroupId = 0; String scopeType = StringPool.BLANK; String scopeLayoutUuid = null; if (portletObjects.length == 4) { portletId = (String) portletIdsEntry.getValue()[0]; plid = (Long) portletIdsEntry.getValue()[1]; scopeGroupId = (Long) portletIdsEntry.getValue()[2]; scopeLayoutUuid = (String) portletIdsEntry.getValue()[3]; } else { portletId = (String) portletIdsEntry.getValue()[0]; plid = (Long) portletIdsEntry.getValue()[1]; scopeGroupId = (Long) portletIdsEntry.getValue()[2]; scopeType = (String) portletIdsEntry.getValue()[3]; scopeLayoutUuid = (String) portletIdsEntry.getValue()[4]; } Layout layout = LayoutLocalServiceUtil.getLayout(plid); portletDataContext.setPlid(layout.getPlid()); portletDataContext.setOldPlid(layout.getPlid()); portletDataContext.setScopeGroupId(scopeGroupId); portletDataContext.setScopeType(scopeType); portletDataContext.setScopeLayoutUuid(scopeLayoutUuid); boolean[] exportPortletControls = getExportPortletControls(companyId, portletId, portletDataContext, parameterMap); _portletExporter.exportPortlet( portletDataContext, layoutCache, portletId, layout, portletsElement, defaultUserId, exportPermissions, exportPortletArchivedSetups, exportPortletControls[0], exportPortletControls[1], exportPortletUserPreferences, exportUserPermissions); } portletDataContext.setScopeGroupId(previousScopeGroupId); if (exportCategories) { exportAssetCategories(portletDataContext); } _portletExporter.exportAssetLinks(portletDataContext); _portletExporter.exportAssetTags(portletDataContext); _portletExporter.exportComments(portletDataContext); _portletExporter.exportExpandoTables(portletDataContext); _portletExporter.exportLocks(portletDataContext); if (exportPermissions) { _permissionExporter.exportPortletDataPermissions(portletDataContext); } _portletExporter.exportRatingsEntries(portletDataContext, rootElement); if (exportTheme && !portletDataContext.isPerformDirectBinaryImport()) { exportTheme(layoutSet, zipWriter); } if (_log.isInfoEnabled()) { if (stopWatch != null) { _log.info("Exporting layouts takes " + stopWatch.getTime() + " ms"); } else { _log.info("Exporting layouts is finished"); } } portletDataContext.addZipEntry("/manifest.xml", document.formattedString()); try { return zipWriter.getFile(); } finally { if (updateLastPublishDate) { updateLastPublishDate(layoutSet, lastPublishDate); } } }
protected File doExportLayoutsAsFile( long groupId, boolean privateLayout, long[] layoutIds, Map<String, String[]> parameterMap, Date startDate, Date endDate) throws Exception { boolean exportCategories = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.CATEGORIES); boolean exportIgnoreLastPublishDate = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.IGNORE_LAST_PUBLISH_DATE); boolean exportPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS); boolean exportPortletDataAll = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_DATA_ALL); boolean exportTheme = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.THEME); boolean exportThemeSettings = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.THEME_REFERENCE); boolean exportLogo = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.LOGO); boolean exportLayoutSetSettings = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.LAYOUT_SET_SETTINGS); boolean updateLastPublishDate = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.UPDATE_LAST_PUBLISH_DATE); if (_log.isDebugEnabled()) { _log.debug("Export permissions " + exportPermissions); _log.debug("Export theme " + exportTheme); } LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(groupId, privateLayout); long companyId = layoutSet.getCompanyId(); long defaultUserId = UserLocalServiceUtil.getDefaultUserId(companyId); ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext(); if (serviceContext == null) { serviceContext = new ServiceContext(); serviceContext.setCompanyId(companyId); serviceContext.setSignedIn(false); serviceContext.setUserId(defaultUserId); ServiceContextThreadLocal.pushServiceContext(serviceContext); } serviceContext.setAttribute("exporting", Boolean.TRUE); long layoutSetBranchId = MapUtil.getLong(parameterMap, "layoutSetBranchId"); serviceContext.setAttribute("layoutSetBranchId", layoutSetBranchId); long lastPublishDate = System.currentTimeMillis(); if (endDate != null) { lastPublishDate = endDate.getTime(); } if (exportIgnoreLastPublishDate) { endDate = null; startDate = null; } StopWatch stopWatch = null; if (_log.isInfoEnabled()) { stopWatch = new StopWatch(); stopWatch.start(); } LayoutCache layoutCache = new LayoutCache(); ZipWriter zipWriter = ZipWriterFactoryUtil.getZipWriter(); PortletDataContext portletDataContext = PortletDataContextFactoryUtil.createExportPortletDataContext( companyId, groupId, parameterMap, startDate, endDate, zipWriter); portletDataContext.setPortetDataContextListener( new PortletDataContextListenerImpl(portletDataContext)); Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); portletDataContext.setExportDataRootElement(rootElement); Element headerElement = rootElement.addElement("header"); headerElement.addAttribute( "available-locales", StringUtil.merge(LanguageUtil.getAvailableLocales(portletDataContext.getScopeGroupId()))); headerElement.addAttribute("build-number", String.valueOf(ReleaseInfo.getBuildNumber())); headerElement.addAttribute("export-date", Time.getRFC822()); if (portletDataContext.hasDateRange()) { headerElement.addAttribute("start-date", String.valueOf(portletDataContext.getStartDate())); headerElement.addAttribute("end-date", String.valueOf(portletDataContext.getEndDate())); } headerElement.addAttribute("company-id", String.valueOf(portletDataContext.getCompanyId())); headerElement.addAttribute( "company-group-id", String.valueOf(portletDataContext.getCompanyGroupId())); headerElement.addAttribute("group-id", String.valueOf(groupId)); headerElement.addAttribute( "user-personal-site-group-id", String.valueOf(portletDataContext.getUserPersonalSiteGroupId())); headerElement.addAttribute("private-layout", String.valueOf(privateLayout)); Group group = layoutSet.getGroup(); String type = "layout-set"; if (group.isLayoutPrototype()) { type = "layout-prototype"; LayoutPrototype layoutPrototype = LayoutPrototypeLocalServiceUtil.getLayoutPrototype(group.getClassPK()); headerElement.addAttribute("type-uuid", layoutPrototype.getUuid()); } else if (group.isLayoutSetPrototype()) { type = "layout-set-prototype"; LayoutSetPrototype layoutSetPrototype = LayoutSetPrototypeLocalServiceUtil.getLayoutSetPrototype(group.getClassPK()); headerElement.addAttribute("type-uuid", layoutSetPrototype.getUuid()); } headerElement.addAttribute("type", type); if (exportTheme || exportThemeSettings) { headerElement.addAttribute("theme-id", layoutSet.getThemeId()); headerElement.addAttribute("color-scheme-id", layoutSet.getColorSchemeId()); } if (exportLogo) { Image image = ImageLocalServiceUtil.getImage(layoutSet.getLogoId()); if ((image != null) && (image.getTextObj() != null)) { String logoPath = ExportImportPathUtil.getRootPath(portletDataContext); logoPath += "/logo"; headerElement.addAttribute("logo-path", logoPath); portletDataContext.addZipEntry(logoPath, image.getTextObj()); } } if (exportLayoutSetSettings) { Element settingsElement = headerElement.addElement("settings"); settingsElement.addCDATA(layoutSet.getSettings()); } Element cssElement = headerElement.addElement("css"); cssElement.addCDATA(layoutSet.getCss()); Map<String, Object[]> portletIds = new LinkedHashMap<String, Object[]>(); List<Layout> layouts = LayoutLocalServiceUtil.getLayouts(groupId, privateLayout); List<Portlet> portlets = getDataSiteLevelPortlets(companyId); long plid = LayoutConstants.DEFAULT_PLID; if (!layouts.isEmpty()) { Layout firstLayout = layouts.get(0); plid = firstLayout.getPlid(); } if (group.isStagingGroup()) { group = group.getLiveGroup(); } for (Portlet portlet : portlets) { String portletId = portlet.getRootPortletId(); if (!group.isStagedPortlet(portletId)) { continue; } String key = PortletPermissionUtil.getPrimaryKey(0, portletId); if (portletIds.get(key) == null) { portletIds.put( key, new Object[] {portletId, plid, groupId, StringPool.BLANK, StringPool.BLANK}); } } Element missingReferencesElement = rootElement.addElement("missing-references"); portletDataContext.setMissingReferencesElement(missingReferencesElement); portletDataContext.addDeletionSystemEventStagedModelTypes(new StagedModelType(Layout.class)); Element layoutsElement = portletDataContext.getExportDataGroupElement(Layout.class); String layoutSetPrototypeUuid = layoutSet.getLayoutSetPrototypeUuid(); if (Validator.isNotNull(layoutSetPrototypeUuid)) { LayoutSetPrototype layoutSetPrototype = LayoutSetPrototypeLocalServiceUtil.getLayoutSetPrototypeByUuidAndCompanyId( layoutSetPrototypeUuid, companyId); layoutsElement.addAttribute("layout-set-prototype-uuid", layoutSetPrototypeUuid); layoutsElement.addAttribute( "layout-set-prototype-name", layoutSetPrototype.getName(LocaleUtil.getDefault())); } for (Layout layout : layouts) { exportLayout(portletDataContext, portlets, layoutIds, portletIds, layout); } long previousScopeGroupId = portletDataContext.getScopeGroupId(); Element portletsElement = rootElement.addElement("portlets"); for (Map.Entry<String, Object[]> portletIdsEntry : portletIds.entrySet()) { Object[] portletObjects = portletIdsEntry.getValue(); String portletId = null; plid = LayoutConstants.DEFAULT_PLID; long scopeGroupId = 0; String scopeType = StringPool.BLANK; String scopeLayoutUuid = null; if (portletObjects.length == 4) { portletId = (String) portletIdsEntry.getValue()[0]; plid = (Long) portletIdsEntry.getValue()[1]; scopeGroupId = (Long) portletIdsEntry.getValue()[2]; scopeLayoutUuid = (String) portletIdsEntry.getValue()[3]; } else { portletId = (String) portletIdsEntry.getValue()[0]; plid = (Long) portletIdsEntry.getValue()[1]; scopeGroupId = (Long) portletIdsEntry.getValue()[2]; scopeType = (String) portletIdsEntry.getValue()[3]; scopeLayoutUuid = (String) portletIdsEntry.getValue()[4]; } Layout layout = LayoutLocalServiceUtil.fetchLayout(plid); if (layout == null) { if (!group.isCompany() && (plid <= LayoutConstants.DEFAULT_PLID)) { continue; } if (_log.isWarnEnabled()) { _log.warn("Assuming global scope because no layout was found"); } layout = new LayoutImpl(); layout.setGroupId(groupId); layout.setCompanyId(companyId); } portletDataContext.setPlid(plid); portletDataContext.setOldPlid(plid); portletDataContext.setScopeGroupId(scopeGroupId); portletDataContext.setScopeType(scopeType); portletDataContext.setScopeLayoutUuid(scopeLayoutUuid); boolean[] exportPortletControls = getExportPortletControls(companyId, portletId, parameterMap, type); _portletExporter.exportPortlet( portletDataContext, layoutCache, portletId, layout, portletsElement, defaultUserId, exportPermissions, exportPortletControls[0], exportPortletControls[1], exportPortletControls[2], exportPortletControls[3]); } portletDataContext.setScopeGroupId(previousScopeGroupId); exportAssetCategories( portletDataContext, exportPortletDataAll, exportCategories, group.isCompany()); _portletExporter.exportAssetLinks(portletDataContext); _portletExporter.exportAssetTags(portletDataContext); _portletExporter.exportComments(portletDataContext); _portletExporter.exportExpandoTables(portletDataContext); _portletExporter.exportLocks(portletDataContext); _deletionSystemEventExporter.exportDeletionSystemEvents(portletDataContext); if (exportPermissions) { _permissionExporter.exportPortletDataPermissions(portletDataContext); } _portletExporter.exportRatingsEntries(portletDataContext, rootElement); if (exportTheme && !portletDataContext.isPerformDirectBinaryImport()) { exportTheme(layoutSet, zipWriter); } ExportImportHelperUtil.writeManifestSummary(document, portletDataContext.getManifestSummary()); if (_log.isInfoEnabled()) { if (stopWatch != null) { _log.info("Exporting layouts takes " + stopWatch.getTime() + " ms"); } else { _log.info("Exporting layouts is finished"); } } portletDataContext.addZipEntry("/manifest.xml", document.formattedString()); try { return zipWriter.getFile(); } finally { if (updateLastPublishDate) { updateLastPublishDate(layoutSet, lastPublishDate); } } }
protected void migrateImage( long fileEntryId, long companyId, long groupId, long folderId, String name, long smallImageId, long largeImageId, long custom1ImageId, long custom2ImageId) throws Exception { Image largeImage = null; if (largeImageId != 0) { largeImage = ImageLocalServiceUtil.getImage(largeImageId); long repositoryId = DLFolderConstants.getDataRepositoryId(groupId, folderId); try { migrateFile(repositoryId, companyId, name, largeImage); } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn("Ignoring exception for image " + largeImageId, e); } } } long thumbnailImageId = 0; if (smallImageId != 0) { thumbnailImageId = smallImageId; } else if (custom1ImageId != 0) { thumbnailImageId = custom1ImageId; } else if (custom2ImageId != 0) { thumbnailImageId = custom2ImageId; } Image thumbnailImage = null; if (thumbnailImageId != 0) { thumbnailImage = ImageLocalServiceUtil.getImage(thumbnailImageId); Connection con = null; PreparedStatement ps = null; ResultSet rs = null; try { InputStream is = _sourceHook.getImageAsStream(thumbnailImage); con = DataAccess.getConnection(); ps = con.prepareStatement( "select max(fileVersionId) from DLFileVersion where " + "fileEntryId = " + fileEntryId); rs = ps.executeQuery(); if (rs.next()) { long fileVersionId = rs.getLong(1); ImageProcessorUtil.storeThumbnail( companyId, groupId, fileEntryId, fileVersionId, custom1ImageId, custom2ImageId, is, thumbnailImage.getType()); } } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn("Ignoring exception for image " + thumbnailImageId, e); } } finally { DataAccess.cleanUp(con, ps, rs); } } if (largeImageId != 0) { _sourceHook.deleteImage(largeImage); runSQL("delete from Image where imageId = " + largeImageId); } if ((largeImageId != thumbnailImageId) && (thumbnailImageId != 0)) { _sourceHook.deleteImage(thumbnailImage); runSQL("delete from Image where imageId = " + thumbnailImageId); } }
protected void format( long groupId, String articleId, double version, String previewArticleId, Element root, UploadServletRequest uploadRequest) throws Exception { Iterator<Element> itr = root.elements().iterator(); while (itr.hasNext()) { Element el = itr.next(); Element dynamicContent = el.element("dynamic-content"); String elInstanceId = el.attributeValue("instance-id", StringPool.BLANK); String elName = el.attributeValue("name", StringPool.BLANK); String elType = el.attributeValue("type", StringPool.BLANK); String elContent = StringPool.BLANK; String elLanguage = StringPool.BLANK; if (dynamicContent != null) { elContent = dynamicContent.getTextTrim(); elLanguage = dynamicContent.attributeValue("language-id", StringPool.BLANK); if (!elLanguage.equals(StringPool.BLANK)) { elLanguage = "_" + elLanguage; } } if (elType.equals("image") && Validator.isNull(elContent)) { File file = uploadRequest.getFile("structure_image_" + elName + elLanguage); byte[] bytes = FileUtil.getBytes(file); if ((bytes != null) && (bytes.length > 0)) { long imageId = JournalArticleImageLocalServiceUtil.getArticleImageId( groupId, previewArticleId, version, elInstanceId, elName, elLanguage, true); String token = ImageServletTokenUtil.getToken(imageId); dynamicContent.setText("/image/journal/article?img_id=" + imageId + "&t=" + token); ImageLocalServiceUtil.updateImage(imageId, bytes); } else { if (Validator.isNotNull(articleId)) { long imageId = JournalArticleImageLocalServiceUtil.getArticleImageId( groupId, articleId, version, elInstanceId, elName, elLanguage); String token = ImageServletTokenUtil.getToken(imageId); dynamicContent.setText("/image/journal/article?img_id=" + imageId + "&t=" + token); } } } format(groupId, articleId, version, previewArticleId, el, uploadRequest); } }