@Override public BackgroundTaskResult execute(BackgroundTask backgroundTask) throws PortalException { ExportImportConfiguration exportImportConfiguration = getExportImportConfiguration(backgroundTask); Map<String, Serializable> settingsMap = exportImportConfiguration.getSettingsMap(); long userId = MapUtil.getLong(settingsMap, "userId"); long groupId = MapUtil.getLong(settingsMap, "sourceGroupId"); boolean privateLayout = MapUtil.getBoolean(settingsMap, "privateLayout"); long[] layoutIds = GetterUtil.getLongValues(settingsMap.get("layoutIds")); Map<String, String[]> parameterMap = (Map<String, String[]>) settingsMap.get("parameterMap"); DateRange dateRange = ExportImportDateUtil.getDateRange( exportImportConfiguration, ExportImportDateUtil.RANGE_ALL); StringBundler sb = new StringBundler(4); sb.append( StringUtil.replace( exportImportConfiguration.getName(), StringPool.SPACE, StringPool.UNDERLINE)); sb.append(StringPool.DASH); sb.append(Time.getShortTimestamp()); sb.append(".lar"); File larFile = LayoutLocalServiceUtil.exportLayoutsAsFile( groupId, privateLayout, layoutIds, parameterMap, dateRange.getStartDate(), dateRange.getEndDate()); BackgroundTaskLocalServiceUtil.addBackgroundTaskAttachment( userId, backgroundTask.getBackgroundTaskId(), sb.toString(), larFile); boolean updateLastPublishDate = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.UPDATE_LAST_PUBLISH_DATE); if (updateLastPublishDate) { ExportImportDateUtil.updateLastPublishDate( groupId, privateLayout, dateRange, dateRange.getEndDate()); } return BackgroundTaskResult.SUCCESS; }
@Override protected Document doGetDocument(Object obj) throws Exception { ExportImportConfiguration exportImportConfiguration = (ExportImportConfiguration) obj; Document document = getBaseModelDocument(PORTLET_ID, exportImportConfiguration); document.addText(Field.DESCRIPTION, exportImportConfiguration.getDescription()); document.addText(Field.NAME, exportImportConfiguration.getName()); document.addKeyword(Field.TYPE, exportImportConfiguration.getType()); Map<String, Serializable> settingsMap = exportImportConfiguration.getSettingsMap(); populateDates(document, settingsMap); populateLayoutIds(document, settingsMap); populateLocale(document, settingsMap); populateParameterMap(document, settingsMap); populateSiteInformation(document, settingsMap); populateTimeZone(document, settingsMap); document.addKeyword(_PREFIX_SETTING + Field.USER_ID, MapUtil.getLong(settingsMap, "userId")); return document; }