List of usage examples for com.liferay.portal.kernel.xml SAXReaderUtil createDocument
public static Document createDocument()
From source file:com.liferay.dynamic.data.mapping.internal.upgrade.v1_0_0.UpgradeDynamicDataMappingTest.java
License:Open Source License
@Test public void testToJSONWithLocalizedAndNestedData() throws Exception { DDMForm ddmForm = new DDMForm(); ddmForm.setAvailableLocales(createAvailableLocales(LocaleUtil.US)); ddmForm.setDefaultLocale(LocaleUtil.US); DDMFormField textDDMFormField = new DDMFormField("Text", "text"); textDDMFormField.setDataType("string"); textDDMFormField.setLocalizable(true); textDDMFormField.setRepeatable(true); DDMFormField textAreaDDMFormField = new DDMFormField("TextArea", "textarea"); textAreaDDMFormField.setDataType("string"); textAreaDDMFormField.setLocalizable(true); textAreaDDMFormField.setRepeatable(true); textDDMFormField.addNestedDDMFormField(textAreaDDMFormField); ddmForm.addDDMFormField(textDDMFormField); // DDM form values DDMFormValues ddmFormValues = new DDMFormValues(ddmForm); ddmFormValues.setAvailableLocales(createAvailableLocales(LocaleUtil.BRAZIL, LocaleUtil.US)); ddmFormValues.setDefaultLocale(LocaleUtil.US); DDMFormFieldValue text1DDMFormFieldValue = createDDMFormFieldValue("srfa", "Text", createLocalizedValue("En Text Value 1", "Pt Text Value 1", LocaleUtil.US)); text1DDMFormFieldValue.addNestedDDMFormFieldValue(createDDMFormFieldValue("elcy", "TextArea", createLocalizedValue("En Text Area Value 1", "Pt Text Area Value 1", LocaleUtil.US))); text1DDMFormFieldValue.addNestedDDMFormFieldValue(createDDMFormFieldValue("uxyj", "TextArea", createLocalizedValue("En Text Area Value 2", "Pt Text Area Value 2", LocaleUtil.US))); ddmFormValues.addDDMFormFieldValue(text1DDMFormFieldValue); DDMFormFieldValue text2DDMFormFieldValue = createDDMFormFieldValue("ealq", "Text", createLocalizedValue("En Text Value 2", "Pt Text Value 2", LocaleUtil.US)); text2DDMFormFieldValue.addNestedDDMFormFieldValue(createDDMFormFieldValue("eepy", "TextArea", createLocalizedValue("En Text Area Value 3", "Pt Text Area Value 3", LocaleUtil.US))); ddmFormValues.addDDMFormFieldValue(text2DDMFormFieldValue); // XML//from w w w . j av a 2 s.c om Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); rootElement.addAttribute("default-locale", "en_US"); rootElement.addAttribute("available-locales", "en_US,pt_BR"); addDynamicElementElement(rootElement, "Text", new String[] { "En Text Value 1", "En Text Value 2" }, new String[] { "Pt Text Value 1", "Pt Text Value 2" }); addDynamicElementElement(rootElement, "TextArea", new String[] { "En Text Area Value 1", "En Text Area Value 2", "En Text Area Value 3" }, new String[] { "Pt Text Area Value 1", "Pt Text Area Value 2", "Pt Text Area Value 3" }); addDynamicElementElement(rootElement, "_fieldsDisplay", new String[] { "Text_INSTANCE_srfa,TextArea_INSTANCE_elcy," + "TextArea_INSTANCE_uxyj,Text_INSTANCE_ealq," + "TextArea_INSTANCE_eepy" }); String expectedJSON = _ddmFormValuesJSONSerializer.serialize(ddmFormValues); DDMFormValues actualDDMFormValues = _upgradeDynamicDataMapping.getDDMFormValues(1L, ddmForm, document.asXML()); String actualJSON = _upgradeDynamicDataMapping.toJSON(actualDDMFormValues); JSONAssert.assertEquals(expectedJSON, actualJSON, false); }
From source file:com.liferay.dynamic.data.mapping.internal.upgrade.v1_0_0.UpgradeDynamicDataMappingTest.java
License:Open Source License
@Test public void testToJSONWithLocalizedData() throws Exception { DDMForm ddmForm = new DDMForm(); ddmForm.setAvailableLocales(createAvailableLocales(LocaleUtil.US)); ddmForm.setDefaultLocale(LocaleUtil.US); DDMFormField textDDMFormField = new DDMFormField("Text", "text"); textDDMFormField.setDataType("string"); textDDMFormField.setLocalizable(true); textDDMFormField.setRepeatable(true); ddmForm.addDDMFormField(textDDMFormField); DDMFormField textAreaDDMFormField = new DDMFormField("TextArea", "textarea"); textAreaDDMFormField.setDataType("string"); textAreaDDMFormField.setLocalizable(true); textAreaDDMFormField.setRepeatable(true); ddmForm.addDDMFormField(textAreaDDMFormField); DDMFormField integerDDMFormField = new DDMFormField("Integer", "ddm-integer"); integerDDMFormField.setDataType("integer"); integerDDMFormField.setLocalizable(false); integerDDMFormField.setRepeatable(false); ddmForm.addDDMFormField(integerDDMFormField); // DDM form values DDMFormValues ddmFormValues = new DDMFormValues(ddmForm); ddmFormValues.setAvailableLocales(createAvailableLocales(LocaleUtil.BRAZIL, LocaleUtil.US)); ddmFormValues.setDefaultLocale(LocaleUtil.US); ddmFormValues.addDDMFormFieldValue(createDDMFormFieldValue("srfa", "Text", createLocalizedValue("En Text Value 1", "Pt Text Value 1", LocaleUtil.US))); ddmFormValues.addDDMFormFieldValue(createDDMFormFieldValue("ealq", "Text", createLocalizedValue("En Text Value 2", "Pt Text Value 2", LocaleUtil.US))); ddmFormValues.addDDMFormFieldValue(createDDMFormFieldValue("elcy", "TextArea", createLocalizedValue("En Text Area Value 1", "Pt Text Area Value 1", LocaleUtil.US))); ddmFormValues.addDDMFormFieldValue(createDDMFormFieldValue("uxyj", "TextArea", createLocalizedValue("En Text Area Value 2", "Pt Text Area Value 2", LocaleUtil.US))); ddmFormValues.addDDMFormFieldValue(createDDMFormFieldValue("eepy", "TextArea", createLocalizedValue("En Text Area Value 3", "Pt Text Area Value 3", LocaleUtil.US))); ddmFormValues.addDDMFormFieldValue(createDDMFormFieldValue("ckkp", "Integer", new UnlocalizedValue("1"))); // XML/*from w w w. j a v a 2 s . c o m*/ Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); rootElement.addAttribute("default-locale", "en_US"); rootElement.addAttribute("available-locales", "en_US,pt_BR"); addDynamicElementElement(rootElement, "Text", new String[] { "En Text Value 1", "En Text Value 2" }, new String[] { "Pt Text Value 1", "Pt Text Value 2" }); addDynamicElementElement(rootElement, "TextArea", new String[] { "En Text Area Value 1", "En Text Area Value 2", "En Text Area Value 3" }, new String[] { "Pt Text Area Value 1", "Pt Text Area Value 2", "Pt Text Area Value 3" }); addDynamicElementElement(rootElement, "Integer", new String[] { "1" }); addDynamicElementElement(rootElement, "_fieldsDisplay", new String[] { "Text_INSTANCE_srfa,Text_INSTANCE_ealq," + "TextArea_INSTANCE_elcy,TextArea_INSTANCE_uxyj," + "TextArea_INSTANCE_eepy,Integer_INSTANCE_ckkp" }); String expectedJSON = _ddmFormValuesJSONSerializer.serialize(ddmFormValues); DDMFormValues actualDDMFormValues = _upgradeDynamicDataMapping.getDDMFormValues(1L, ddmForm, document.asXML()); String actualJSON = _upgradeDynamicDataMapping.toJSON(actualDDMFormValues); JSONAssert.assertEquals(expectedJSON, actualJSON, false); }
From source file:com.liferay.dynamic.data.mapping.internal.upgrade.v1_0_0.UpgradeDynamicDataMappingTest.java
License:Open Source License
@Test public void testToJSONWithoutLocalizedData() throws Exception { DDMForm ddmForm = new DDMForm(); ddmForm.setAvailableLocales(createAvailableLocales(LocaleUtil.US)); ddmForm.setDefaultLocale(LocaleUtil.US); DDMFormField textDDMFormField = new DDMFormField("Text", "text"); textDDMFormField.setDataType("string"); textDDMFormField.setLocalizable(false); textDDMFormField.setRepeatable(false); ddmForm.addDDMFormField(textDDMFormField); DDMFormField textAreaDDMFormField = new DDMFormField("TextArea", "textarea"); textAreaDDMFormField.setDataType("string"); textAreaDDMFormField.setLocalizable(false); textAreaDDMFormField.setRepeatable(true); ddmForm.addDDMFormField(textAreaDDMFormField); // DDM form values DDMFormValues ddmFormValues = new DDMFormValues(ddmForm); ddmFormValues.setAvailableLocales(createAvailableLocales(LocaleUtil.US)); ddmFormValues.setDefaultLocale(LocaleUtil.US); ddmFormValues/*from w w w . j av a 2 s. c o m*/ .addDDMFormFieldValue(createDDMFormFieldValue("hcxo", "Text", new UnlocalizedValue("Text Value"))); ddmFormValues.addDDMFormFieldValue( createDDMFormFieldValue("vfqd", "TextArea", new UnlocalizedValue("Text Area Value 1"))); ddmFormValues.addDDMFormFieldValue( createDDMFormFieldValue("ycey", "TextArea", new UnlocalizedValue("Text Area Value 2"))); ddmFormValues.addDDMFormFieldValue( createDDMFormFieldValue("habt", "TextArea", new UnlocalizedValue("Text Area Value 3"))); // XML Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); rootElement.addAttribute("default-locale", "en_US"); rootElement.addAttribute("available-locales", "en_US"); addDynamicElementElement(rootElement, "Text", new String[] { "Text Value" }); addDynamicElementElement(rootElement, "TextArea", new String[] { "Text Area Value 1", "Text Area Value 2", "Text Area Value 3" }); addDynamicElementElement(rootElement, "_fieldsDisplay", new String[] { "Text_INSTANCE_hcxo,TextArea_INSTANCE_vfqd," + "TextArea_INSTANCE_ycey,TextArea_INSTANCE_habt" }); String expectedJSON = _ddmFormValuesJSONSerializer.serialize(ddmFormValues); DDMFormValues actualDDMFormValues = _upgradeDynamicDataMapping.getDDMFormValues(1L, ddmForm, document.asXML()); String actualJSON = _upgradeDynamicDataMapping.toJSON(actualDDMFormValues); JSONAssert.assertEquals(expectedJSON, actualJSON, false); }
From source file:com.liferay.dynamic.data.mapping.io.internal.exporter.DDMFormXMLExporter.java
License:Open Source License
@Override protected byte[] doExport(long formInstanceId, int status, int start, int end, OrderByComparator<DDMFormInstanceRecord> orderByComparator) throws Exception { Map<String, DDMFormField> ddmFormFields = getDistinctFields(formInstanceId); Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); List<DDMFormInstanceRecord> formInstanceRecords = _ddmFormInstanceRecordLocalService .getFormInstanceRecords(formInstanceId, status, start, end, orderByComparator); DateTimeFormatter dateTimeFormatter = getDateTimeFormatter(); for (DDMFormInstanceRecord formInstanceRecord : formInstanceRecords) { Element fieldsElement = rootElement.addElement("fields"); DDMFormInstanceRecordVersion recordVersion = formInstanceRecord.getFormInstanceRecordVersion(); DDMFormValues ddmFormValues = _storageEngine.getDDMFormValues(recordVersion.getStorageId()); Map<String, DDMFormFieldRenderedValue> values = getRenderedValues(ddmFormFields.values(), ddmFormValues);/*from w ww .j a va 2s. co m*/ for (Map.Entry<String, DDMFormField> entry : ddmFormFields.entrySet()) { DDMFormFieldRenderedValue ddmFormFieldRenderedValue = values.get(entry.getKey()); addFieldElement(ddmFormFieldRenderedValue, fieldsElement, entry); } Locale locale = getLocale(); addFieldElement(fieldsElement, LanguageUtil.get(locale, "status"), getStatusMessage(recordVersion.getStatus())); addFieldElement(fieldsElement, LanguageUtil.get(locale, "modified-date"), formatDate(recordVersion.getStatusDate(), dateTimeFormatter)); addFieldElement(fieldsElement, LanguageUtil.get(locale, "author"), recordVersion.getUserName()); } String xml = document.asXML(); return xml.getBytes(); }
From source file:com.liferay.dynamic.data.mapping.test.util.DDMStructureTestUtil.java
License:Open Source License
protected static Document createDocumentContent(String availableLocales, String defaultLocale) { Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); rootElement.addAttribute("available-locales", availableLocales); rootElement.addAttribute("default-locale", defaultLocale); rootElement.addElement("request"); return document; }
From source file:com.liferay.dynamic.data.mapping.test.util.DDMStructureTestUtil.java
License:Open Source License
protected static Document createDocumentStructure(Locale[] availableLocales, Locale defaultLocale) { Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); rootElement.addAttribute("available-locales", StringUtil.merge(LocaleUtil.toLanguageIds(availableLocales))); rootElement.addAttribute("default-locale", LocaleUtil.toLanguageId(defaultLocale)); return document; }
From source file:com.liferay.exportimport.controller.LayoutExportController.java
License:Open Source License
protected File doExport(PortletDataContext portletDataContext) throws Exception { Map<String, String[]> parameterMap = portletDataContext.getParameterMap(); boolean ignoreLastPublishDate = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.IGNORE_LAST_PUBLISH_DATE); boolean permissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS); if (_log.isDebugEnabled()) { _log.debug("Export permissions " + permissions); }//from ww w .j a va2s . com long companyId = portletDataContext.getCompanyId(); long defaultUserId = _userLocalService.getDefaultUserId(companyId); ServiceContext serviceContext = ServiceContextThreadLocal.popServiceContext(); if (serviceContext == null) { serviceContext = new ServiceContext(); } serviceContext.setCompanyId(companyId); serviceContext.setSignedIn(true); if (BackgroundTaskThreadLocal.hasBackgroundTask()) { BackgroundTask backgroundTask = _backgroundTaskLocalService .getBackgroundTask(BackgroundTaskThreadLocal.getBackgroundTaskId()); serviceContext.setUserId(backgroundTask.getUserId()); } else { serviceContext.setUserId(defaultUserId); } serviceContext.setAttribute("exporting", Boolean.TRUE); long layoutSetBranchId = MapUtil.getLong(parameterMap, "layoutSetBranchId"); serviceContext.setAttribute("layoutSetBranchId", layoutSetBranchId); ServiceContextThreadLocal.pushServiceContext(serviceContext); if (ignoreLastPublishDate) { portletDataContext.setEndDate(null); portletDataContext.setStartDate(null); } StopWatch stopWatch = new StopWatch(); stopWatch.start(); 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("schema-version", ExportImportConstants.EXPORT_IMPORT_SCHEMA_VERSION); 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(portletDataContext.getGroupId())); headerElement.addAttribute("user-personal-site-group-id", String.valueOf(portletDataContext.getUserPersonalSiteGroupId())); headerElement.addAttribute("private-layout", String.valueOf(portletDataContext.isPrivateLayout())); Group group = _groupLocalService.fetchGroup(portletDataContext.getGroupId()); String type = "layout-set"; if (group.isLayoutPrototype()) { type = "layout-prototype"; LayoutPrototype layoutPrototype = _layoutPrototypeLocalService.getLayoutPrototype(group.getClassPK()); headerElement.addAttribute("type-uuid", layoutPrototype.getUuid()); } else if (group.isLayoutSetPrototype()) { type = "layout-set-prototype"; LayoutSetPrototype layoutSetPrototype = _layoutSetPrototypeLocalService .getLayoutSetPrototype(group.getClassPK()); headerElement.addAttribute("type-uuid", layoutSetPrototype.getUuid()); } headerElement.addAttribute("type", type); portletDataContext.setType(type); Element missingReferencesElement = rootElement.addElement("missing-references"); portletDataContext.setMissingReferencesElement(missingReferencesElement); rootElement.addElement("site-portlets"); rootElement.addElement("site-services"); // Export the group LayoutSet layoutSet = _layoutSetLocalService.getLayoutSet(portletDataContext.getGroupId(), portletDataContext.isPrivateLayout()); String layoutSetPrototypeUuid = layoutSet.getLayoutSetPrototypeUuid(); boolean layoutSetPrototypeSettings = MapUtil.getBoolean(portletDataContext.getParameterMap(), PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_SETTINGS); if (!group.isStaged() && Validator.isNotNull(layoutSetPrototypeUuid) && layoutSetPrototypeSettings) { LayoutSetPrototype layoutSetPrototype = _layoutSetPrototypeLocalService .getLayoutSetPrototypeByUuidAndCompanyId(layoutSetPrototypeUuid, companyId); headerElement.addAttribute("layout-set-prototype-uuid", layoutSetPrototypeUuid); headerElement.addAttribute("layout-set-prototype-name", layoutSetPrototype.getName(LocaleUtil.getDefault())); } StagedGroup stagedGroup = ModelAdapterUtil.adapt(group, Group.class, StagedGroup.class); StagedModelDataHandlerUtil.exportStagedModel(portletDataContext, stagedGroup); // Export other models _portletExportController.exportAssetLinks(portletDataContext); _portletExportController.exportExpandoTables(portletDataContext); _portletExportController.exportLocks(portletDataContext); portletDataContext.addDeletionSystemEventStagedModelTypes(new StagedModelType(StagedAssetLink.class)); _deletionSystemEventExporter.exportDeletionSystemEvents(portletDataContext); if (permissions) { _permissionExporter.exportPortletDataPermissions(portletDataContext); } _exportImportHelper.writeManifestSummary(document, portletDataContext.getManifestSummary()); if (_log.isInfoEnabled()) { _log.info("Exporting layouts takes " + stopWatch.getTime() + " ms"); } portletDataContext.addZipEntry("/manifest.xml", document.formattedString()); ZipWriter zipWriter = portletDataContext.getZipWriter(); return zipWriter.getFile(); }
From source file:com.liferay.exportimport.controller.PortletExportController.java
License:Open Source License
public void exportPortlet(PortletDataContext portletDataContext, long plid, Element parentElement, boolean exportPermissions, boolean exportPortletArchivedSetups, boolean exportPortletData, boolean exportPortletSetup, boolean exportPortletUserPreferences) throws Exception { long layoutId = LayoutConstants.DEFAULT_PARENT_LAYOUT_ID; Layout layout = _layoutLocalService.fetchLayout(plid); if (layout != null) { layoutId = layout.getLayoutId(); }//from w ww.j a v a 2 s . c o m Portlet portlet = _portletLocalService.getPortletById(portletDataContext.getCompanyId(), portletDataContext.getPortletId()); if ((portlet == null) || portlet.isUndeployedPortlet()) { if (_log.isDebugEnabled()) { _log.debug("Do not export portlet " + portletDataContext.getPortletId() + " because the portlet is not deployed"); } return; } if (!portlet.isInstanceable() && !portlet.isPreferencesUniquePerLayout() && portletDataContext.hasNotUniquePerLayout(portletDataContext.getPortletId())) { return; } if (BackgroundTaskThreadLocal.hasBackgroundTask()) { PortletDataContext clonedPortletDataContext = _portletDataContextFactory .clonePortletDataContext(portletDataContext); ManifestSummary manifestSummary = clonedPortletDataContext.getManifestSummary(); manifestSummary.resetCounters(); PortletDataHandler portletDataHandler = portlet.getPortletDataHandlerInstance(); portletDataHandler.prepareManifestSummary(clonedPortletDataContext); _portletDataHandlerStatusMessageSender.sendStatusMessage("portlet", portletDataContext.getPortletId(), manifestSummary); } Document document = SAXReaderUtil.createDocument(); Element portletElement = document.addElement("portlet"); portletElement.addAttribute("portlet-id", portletDataContext.getPortletId()); portletElement.addAttribute("root-portlet-id", portletDataContext.getRootPortletId()); portletElement.addAttribute("old-plid", String.valueOf(plid)); portletElement.addAttribute("scope-group-id", String.valueOf(portletDataContext.getScopeGroupId())); portletElement.addAttribute("scope-layout-type", portletDataContext.getScopeType()); portletElement.addAttribute("scope-layout-uuid", portletDataContext.getScopeLayoutUuid()); portletElement.addAttribute("private-layout", String.valueOf(portletDataContext.isPrivateLayout())); // Data if (exportPortletData) { javax.portlet.PortletPreferences jxPortletPreferences = null; if (ExportImportThreadLocal.isInitialLayoutStagingInProcess()) { if (layout != null) { Group liveGroup = layout.getGroup(); Group stagingGroup = liveGroup.getStagingGroup(); layout.setGroupId(stagingGroup.getGroupId()); jxPortletPreferences = PortletPreferencesFactoryUtil.getStrictPortletSetup(layout, portletDataContext.getPortletId()); layout.setGroupId(liveGroup.getGroupId()); } else { Group liveGroup = _groupLocalService.getGroup(portletDataContext.getGroupId()); Group stagingGroup = liveGroup.getStagingGroup(); jxPortletPreferences = PortletPreferencesFactoryUtil.getStrictPortletSetup( portletDataContext.getCompanyId(), stagingGroup.getGroupId(), portletDataContext.getPortletId()); } } else { if (layout != null) { jxPortletPreferences = PortletPreferencesFactoryUtil.getStrictPortletSetup(layout, portletDataContext.getPortletId()); } else { jxPortletPreferences = PortletPreferencesFactoryUtil.getStrictPortletSetup( portletDataContext.getCompanyId(), portletDataContext.getGroupId(), portletDataContext.getPortletId()); } } if (!portlet.isPreferencesUniquePerLayout()) { StringBundler sb = new StringBundler(5); sb.append(portletDataContext.getPortletId()); sb.append(StringPool.AT); sb.append(portletDataContext.getScopeType()); sb.append(StringPool.AT); sb.append(portletDataContext.getScopeLayoutUuid()); String dataKey = sb.toString(); if (!portletDataContext.hasNotUniquePerLayout(dataKey)) { portletDataContext.putNotUniquePerLayout(dataKey); exportPortletData(portletDataContext, portlet, layout, jxPortletPreferences, portletElement); } } else { exportPortletData(portletDataContext, portlet, layout, jxPortletPreferences, portletElement); } } // Portlet preferences if (exportPortletSetup) { // Company exportPortletPreferences(portletDataContext, portletDataContext.getCompanyId(), PortletKeys.PREFS_OWNER_TYPE_COMPANY, false, layout, plid, portlet.getRootPortletId(), portletElement); // Group exportPortletPreferences(portletDataContext, portletDataContext.getScopeGroupId(), PortletKeys.PREFS_OWNER_TYPE_GROUP, false, layout, PortletKeys.PREFS_PLID_SHARED, portlet.getRootPortletId(), portletElement); // Group embedded portlets exportPortletPreferences(portletDataContext, portletDataContext.getScopeGroupId(), PortletKeys.PREFS_OWNER_TYPE_LAYOUT, false, layout, PortletKeys.PREFS_PLID_SHARED, portlet.getPortletId(), portletElement); // Layout exportPortletPreferences(portletDataContext, PortletKeys.PREFS_OWNER_ID_DEFAULT, PortletKeys.PREFS_OWNER_TYPE_LAYOUT, false, layout, plid, portletDataContext.getPortletId(), portletElement); } // Portlet user preferences if (exportPortletUserPreferences) { List<PortletPreferences> portletPreferencesList = _portletPreferencesLocalService.getPortletPreferences( PortletKeys.PREFS_OWNER_TYPE_USER, plid, portletDataContext.getPortletId()); for (PortletPreferences portletPreferences : portletPreferencesList) { boolean defaultUser = false; if (portletPreferences.getOwnerId() == PortletKeys.PREFS_OWNER_ID_DEFAULT) { defaultUser = true; } exportPortletPreferences(portletDataContext, portletPreferences.getOwnerId(), PortletKeys.PREFS_OWNER_TYPE_USER, defaultUser, layout, plid, portletDataContext.getPortletId(), portletElement); } try { PortletPreferences groupPortletPreferences = _portletPreferencesLocalService.getPortletPreferences( portletDataContext.getScopeGroupId(), PortletKeys.PREFS_OWNER_TYPE_GROUP, PortletKeys.PREFS_PLID_SHARED, portlet.getRootPortletId()); exportPortletPreference(portletDataContext, portletDataContext.getScopeGroupId(), PortletKeys.PREFS_OWNER_TYPE_GROUP, false, groupPortletPreferences, portlet.getRootPortletId(), PortletKeys.PREFS_PLID_SHARED, portletElement); } catch (NoSuchPortletPreferencesException nsppe) { // LPS-52675 if (_log.isDebugEnabled()) { _log.debug(nsppe, nsppe); } } } // Archived setups if (exportPortletArchivedSetups) { List<PortletItem> portletItems = _portletItemLocalService.getPortletItems( portletDataContext.getGroupId(), portletDataContext.getRootPortletId(), PortletPreferences.class.getName()); for (PortletItem portletItem : portletItems) { exportPortletPreferences(portletDataContext, portletItem.getPortletItemId(), PortletKeys.PREFS_OWNER_TYPE_ARCHIVED, false, null, plid, portletItem.getPortletId(), portletElement); } } // Permissions if (exportPermissions) { _permissionExporter.exportPortletPermissions(portletDataContext, portletDataContext.getPortletId(), layout, portletElement); } // Zip StringBundler pathSB = new StringBundler(4); pathSB.append(ExportImportPathUtil.getPortletPath(portletDataContext)); pathSB.append(StringPool.SLASH); pathSB.append(plid); pathSB.append("/portlet.xml"); String path = pathSB.toString(); Element element = parentElement.addElement("portlet"); element.addAttribute("portlet-id", portletDataContext.getPortletId()); element.addAttribute("layout-id", String.valueOf(layoutId)); element.addAttribute("path", path); element.addAttribute("portlet-data", String.valueOf(exportPortletData)); PortletDataHandler portletDataHandler = portlet.getPortletDataHandlerInstance(); element.addAttribute("schema-version", portletDataHandler.getSchemaVersion()); StringBundler configurationOptionsSB = new StringBundler(6); if (exportPortletSetup) { configurationOptionsSB.append("setup"); configurationOptionsSB.append(StringPool.COMMA); } if (exportPortletArchivedSetups) { configurationOptionsSB.append("archived-setups"); configurationOptionsSB.append(StringPool.COMMA); } if (exportPortletUserPreferences) { configurationOptionsSB.append("user-preferences"); configurationOptionsSB.append(StringPool.COMMA); } if (configurationOptionsSB.index() > 0) { configurationOptionsSB.setIndex(configurationOptionsSB.index() - 1); } element.addAttribute("portlet-configuration", configurationOptionsSB.toString()); try { portletDataContext.addZipEntry(path, document.formattedString()); } catch (IOException ioe) { if (_log.isWarnEnabled()) { _log.warn(ioe.getMessage()); } } }
From source file:com.liferay.exportimport.controller.PortletExportController.java
License:Open Source License
protected File doExport(PortletDataContext portletDataContext) throws Exception { boolean exportPermissions = MapUtil.getBoolean(portletDataContext.getParameterMap(), PortletDataHandlerKeys.PERMISSIONS); if (_log.isDebugEnabled()) { _log.debug("Export permissions " + exportPermissions); }/* w w w . j a v a 2 s .com*/ StopWatch stopWatch = new StopWatch(); stopWatch.start(); Layout layout = _layoutLocalService.getLayout(portletDataContext.getPlid()); if (!layout.isTypeControlPanel() && !layout.isTypePanel() && !layout.isTypePortlet()) { StringBundler sb = new StringBundler(4); sb.append("Unable to export layout "); sb.append(layout.getPlid()); sb.append(" because it has an invalid type: "); sb.append(layout.getType()); throw new LayoutImportException(sb.toString()); } ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext(); if (serviceContext == null) { serviceContext = new ServiceContext(); serviceContext.setCompanyId(layout.getCompanyId()); serviceContext.setSignedIn(false); long defaultUserId = _userLocalService.getDefaultUserId(layout.getCompanyId()); serviceContext.setUserId(defaultUserId); ServiceContextThreadLocal.pushServiceContext(serviceContext); } long layoutSetBranchId = MapUtil.getLong(portletDataContext.getParameterMap(), "layoutSetBranchId"); serviceContext.setAttribute("layoutSetBranchId", layoutSetBranchId); long scopeGroupId = portletDataContext.getGroupId(); javax.portlet.PortletPreferences jxPortletPreferences = PortletPreferencesFactoryUtil .getLayoutPortletSetup(layout, portletDataContext.getPortletId()); String scopeType = GetterUtil.getString(jxPortletPreferences.getValue("lfrScopeType", null)); String scopeLayoutUuid = GetterUtil.getString(jxPortletPreferences.getValue("lfrScopeLayoutUuid", null)); if (Validator.isNotNull(scopeType)) { Group scopeGroup = null; if (scopeType.equals("company")) { scopeGroup = _groupLocalService.getCompanyGroup(layout.getCompanyId()); } else if (Validator.isNotNull(scopeLayoutUuid)) { scopeGroup = layout.getScopeGroup(); } if (scopeGroup != null) { scopeGroupId = scopeGroup.getGroupId(); } } portletDataContext.setScopeType(scopeType); portletDataContext.setScopeLayoutUuid(scopeLayoutUuid); 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(_portal.getSiteGroupId(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("type", portletDataContext.getType()); headerElement.addAttribute("company-id", String.valueOf(portletDataContext.getCompanyId())); headerElement.addAttribute("company-group-id", String.valueOf(portletDataContext.getCompanyGroupId())); headerElement.addAttribute("group-id", String.valueOf(scopeGroupId)); headerElement.addAttribute("user-personal-site-group-id", String.valueOf(portletDataContext.getUserPersonalSiteGroupId())); headerElement.addAttribute("private-layout", String.valueOf(layout.isPrivateLayout())); headerElement.addAttribute("root-portlet-id", portletDataContext.getRootPortletId()); headerElement.addAttribute("schema-version", ExportImportConstants.EXPORT_IMPORT_SCHEMA_VERSION); Element missingReferencesElement = rootElement.addElement("missing-references"); portletDataContext.setMissingReferencesElement(missingReferencesElement); Map<String, Boolean> exportPortletControlsMap = _exportImportHelper.getExportPortletControlsMap( layout.getCompanyId(), portletDataContext.getPortletId(), portletDataContext.getParameterMap()); exportPortlet(portletDataContext, layout.getPlid(), rootElement, exportPermissions, exportPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS), exportPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_DATA), exportPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_SETUP), exportPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_USER_PREFERENCES)); exportService(portletDataContext, rootElement, exportPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_SETUP)); exportAssetLinks(portletDataContext); exportExpandoTables(portletDataContext); exportLocks(portletDataContext); portletDataContext.addDeletionSystemEventStagedModelTypes(new StagedModelType(StagedAssetLink.class)); _deletionSystemEventExporter.exportDeletionSystemEvents(portletDataContext); if (exportPermissions) { _permissionExporter.exportPortletDataPermissions(portletDataContext); } _exportImportHelper.writeManifestSummary(document, portletDataContext.getManifestSummary()); if (_log.isInfoEnabled()) { _log.info("Exporting portlet took " + stopWatch.getTime() + " ms"); } try { portletDataContext.addZipEntry("/manifest.xml", document.formattedString()); } catch (IOException ioe) { throw new SystemException("Unable to create the export LAR manifest file for portlet " + portletDataContext.getPortletId(), ioe); } ZipWriter zipWriter = portletDataContext.getZipWriter(); return zipWriter.getFile(); }
From source file:com.liferay.exportimport.controller.PortletExportController.java
License:Open Source License
protected void exportAssetLinks(PortletDataContext portletDataContext) throws Exception { Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("links"); Element exportDataRootElement = portletDataContext.getExportDataRootElement(); try {/*from w w w.ja va 2s . c o m*/ portletDataContext.setExportDataRootElement(rootElement); ActionableDynamicQuery linkActionableDynamicQuery = _assetLinkLocalService .getExportActionbleDynamicQuery(portletDataContext); linkActionableDynamicQuery.performActions(); for (long linkId : portletDataContext.getAssetLinkIds()) { AssetLink assetLink = _assetLinkLocalService.getAssetLink(linkId); StagedAssetLink stagedAssetLink = ModelAdapterUtil.adapt(assetLink, AssetLink.class, StagedAssetLink.class); portletDataContext.addClassedModel(portletDataContext.getExportDataElement(stagedAssetLink), ExportImportPathUtil.getModelPath(stagedAssetLink), stagedAssetLink); } } finally { portletDataContext.setExportDataRootElement(exportDataRootElement); } portletDataContext.addZipEntry(ExportImportPathUtil.getRootPath(portletDataContext) + "/links.xml", document.formattedString()); }