List of usage examples for com.liferay.portal.kernel.zip ZipReader close
public void close();
From source file:com.liferay.exportimport.controller.LayoutImportController.java
License:Open Source License
@Override public void importDataDeletions(ExportImportConfiguration exportImportConfiguration, File file) throws Exception { ZipReader zipReader = null; try {//from w ww . j av a2 s . c o m // LAR validation ExportImportThreadLocal.setLayoutDataDeletionImportInProcess(true); Map<String, Serializable> settingsMap = exportImportConfiguration.getSettingsMap(); long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId"); boolean privateLayout = MapUtil.getBoolean(settingsMap, "privateLayout"); Map<String, String[]> parameterMap = (Map<String, String[]>) settingsMap.get("parameterMap"); LayoutSet layoutSet = _layoutSetLocalService.getLayoutSet(targetGroupId, privateLayout); zipReader = ZipReaderFactoryUtil.getZipReader(file); validateFile(layoutSet.getCompanyId(), targetGroupId, parameterMap, zipReader); PortletDataContext portletDataContext = getPortletDataContext(exportImportConfiguration, file); boolean deletePortletData = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.DELETE_PORTLET_DATA); // Portlet data deletion if (deletePortletData) { if (_log.isDebugEnabled()) { _log.debug("Deleting portlet data"); } deletePortletData(portletDataContext); } // Deletion system events populateDeletionStagedModelTypes(portletDataContext); _deletionSystemEventImporter.importDeletionSystemEvents(portletDataContext); } finally { ExportImportThreadLocal.setLayoutDataDeletionImportInProcess(false); if (zipReader != null) { zipReader.close(); } } }
From source file:com.liferay.exportimport.controller.LayoutImportController.java
License:Open Source License
@Override public MissingReferences validateFile(ExportImportConfiguration exportImportConfiguration, File file) throws Exception { ZipReader zipReader = null; try {/*from www . j a v a2 s . c o m*/ ExportImportThreadLocal.setLayoutValidationInProcess(true); Map<String, Serializable> settingsMap = exportImportConfiguration.getSettingsMap(); long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId"); boolean privateLayout = MapUtil.getBoolean(settingsMap, "privateLayout"); Map<String, String[]> parameterMap = (Map<String, String[]>) settingsMap.get("parameterMap"); LayoutSet layoutSet = _layoutSetLocalService.getLayoutSet(targetGroupId, privateLayout); zipReader = ZipReaderFactoryUtil.getZipReader(file); validateFile(layoutSet.getCompanyId(), targetGroupId, parameterMap, zipReader); PortletDataContext portletDataContext = getPortletDataContext(exportImportConfiguration, file); portletDataContext.setPrivateLayout(privateLayout); MissingReferences missingReferences = _exportImportHelper.validateMissingReferences(portletDataContext); Map<String, MissingReference> dependencyMissingReferences = missingReferences .getDependencyMissingReferences(); if (!dependencyMissingReferences.isEmpty()) { throw new MissingReferenceException(missingReferences); } return missingReferences; } finally { ExportImportThreadLocal.setLayoutValidationInProcess(false); if (zipReader != null) { zipReader.close(); } } }
From source file:com.liferay.exportimport.controller.LayoutImportController.java
License:Open Source License
protected void doImportFile(PortletDataContext portletDataContext, long userId) throws Exception { Map<String, String[]> parameterMap = portletDataContext.getParameterMap(); Group group = _groupLocalService.getGroup(portletDataContext.getGroupId()); String layoutsImportMode = MapUtil.getString(parameterMap, PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE, PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_MERGE_BY_LAYOUT_UUID); boolean permissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS); if (group.isLayoutSetPrototype()) { parameterMap.put(PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_LINK_ENABLED, new String[] { Boolean.FALSE.toString() }); }//from w w w. jav a 2s . co m if (_log.isDebugEnabled()) { _log.debug("Import permissions " + permissions); } StopWatch stopWatch = new StopWatch(); stopWatch.start(); LayoutCache layoutCache = new LayoutCache(); long companyId = portletDataContext.getCompanyId(); ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext(); if (serviceContext == null) { serviceContext = new ServiceContext(); } serviceContext.setCompanyId(companyId); serviceContext.setSignedIn(false); serviceContext.setUserId(userId); ServiceContextThreadLocal.pushServiceContext(serviceContext); // LAR validation validateFile(companyId, portletDataContext.getGroupId(), parameterMap, portletDataContext.getZipReader()); // Source and target group id Map<Long, Long> groupIds = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(Group.class); groupIds.put(portletDataContext.getSourceGroupId(), portletDataContext.getGroupId()); // Manifest ManifestSummary manifestSummary = _exportImportHelper.getManifestSummary(portletDataContext); portletDataContext.setManifestSummary(manifestSummary); // Layout and layout set prototype Element rootElement = portletDataContext.getImportDataRootElement(); Element headerElement = rootElement.element("header"); String layoutSetPrototypeUuid = headerElement.attributeValue("layout-set-prototype-uuid"); String larType = headerElement.attributeValue("type"); portletDataContext.setType(larType); if (group.isLayoutPrototype() && larType.equals("layout-prototype")) { parameterMap.put(PortletDataHandlerKeys.DELETE_MISSING_LAYOUTS, new String[] { Boolean.FALSE.toString() }); LayoutPrototype layoutPrototype = _layoutPrototypeLocalService.getLayoutPrototype(group.getClassPK()); String layoutPrototypeUuid = GetterUtil.getString(headerElement.attributeValue("type-uuid")); LayoutPrototype existingLayoutPrototype = null; if (Validator.isNotNull(layoutPrototypeUuid)) { try { existingLayoutPrototype = _layoutPrototypeLocalService .getLayoutPrototypeByUuidAndCompanyId(layoutPrototypeUuid, companyId); } catch (NoSuchLayoutPrototypeException nslpe) { // LPS-52675 if (_log.isDebugEnabled()) { _log.debug(nslpe, nslpe); } } } if (existingLayoutPrototype == null) { List<Layout> layouts = _layoutLocalService .getLayoutsByLayoutPrototypeUuid(layoutPrototype.getUuid()); layoutPrototype.setUuid(layoutPrototypeUuid); _layoutPrototypeLocalService.updateLayoutPrototype(layoutPrototype); for (Layout layout : layouts) { layout.setLayoutPrototypeUuid(layoutPrototypeUuid); _layoutLocalService.updateLayout(layout); } } } else if (group.isLayoutSetPrototype() && larType.equals("layout-set-prototype")) { parameterMap.put(PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_SETTINGS, new String[] { Boolean.TRUE.toString() }); LayoutSetPrototype layoutSetPrototype = _layoutSetPrototypeLocalService .getLayoutSetPrototype(group.getClassPK()); String importedLayoutSetPrototypeUuid = GetterUtil.getString(headerElement.attributeValue("type-uuid")); LayoutSetPrototype existingLayoutSetPrototype = null; if (Validator.isNotNull(importedLayoutSetPrototypeUuid)) { try { existingLayoutSetPrototype = _layoutSetPrototypeLocalService .getLayoutSetPrototypeByUuidAndCompanyId(importedLayoutSetPrototypeUuid, companyId); } catch (NoSuchLayoutSetPrototypeException nslspe) { // LPS-52675 if (_log.isDebugEnabled()) { _log.debug(nslspe, nslspe); } } } if (existingLayoutSetPrototype == null) { List<LayoutSet> layoutSets = _layoutSetLocalService .getLayoutSetsByLayoutSetPrototypeUuid(layoutSetPrototype.getUuid()); layoutSetPrototype.setUuid(importedLayoutSetPrototypeUuid); _layoutSetPrototypeLocalService.updateLayoutSetPrototype(layoutSetPrototype); for (LayoutSet curLayoutSet : layoutSets) { curLayoutSet.setLayoutSetPrototypeUuid(importedLayoutSetPrototypeUuid); _layoutSetLocalService.updateLayoutSet(curLayoutSet); } } } else if (larType.equals("layout-set-prototype")) { parameterMap.put(PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_SETTINGS, new String[] { Boolean.TRUE.toString() }); layoutSetPrototypeUuid = GetterUtil.getString(headerElement.attributeValue("type-uuid")); } if (Validator.isNotNull(layoutSetPrototypeUuid)) { portletDataContext.setLayoutSetPrototypeUuid(layoutSetPrototypeUuid); } List<Element> portletElements = fetchPortletElements(rootElement); if (permissions) { for (Element portletElement : portletElements) { String portletPath = portletElement.attributeValue("path"); Document portletDocument = SAXReaderUtil.read(portletDataContext.getZipEntryAsString(portletPath)); _permissionImporter.checkRoles(layoutCache, companyId, portletDataContext.getGroupId(), userId, portletDocument.getRootElement()); } _permissionImporter.readPortletDataPermissions(portletDataContext); } if (!layoutsImportMode.equals(PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_CREATED_FROM_PROTOTYPE)) { _portletImportController.readExpandoTables(portletDataContext); } _portletImportController.readLocks(portletDataContext); // Import the group Element groupsElement = portletDataContext.getImportDataGroupElement(StagedGroup.class); for (Element groupElement : groupsElement.elements()) { StagedModelDataHandlerUtil.importStagedModel(portletDataContext, groupElement); } // Asset links _portletImportController.importAssetLinks(portletDataContext); // Site _groupLocalService.updateSite(portletDataContext.getGroupId(), true); if (_log.isInfoEnabled()) { _log.info("Importing layouts takes " + stopWatch.getTime() + " ms"); } ZipReader zipReader = portletDataContext.getZipReader(); zipReader.close(); }
From source file:com.liferay.exportimport.controller.PortletImportController.java
License:Open Source License
@Override public void importDataDeletions(ExportImportConfiguration exportImportConfiguration, File file) throws Exception { ZipReader zipReader = null; try {/* ww w .j a v a 2s .c o m*/ // LAR validation ExportImportThreadLocal.setPortletDataDeletionImportInProcess(true); Map<String, Serializable> settingsMap = exportImportConfiguration.getSettingsMap(); Map<String, String[]> parameterMap = (Map<String, String[]>) settingsMap.get("parameterMap"); String portletId = MapUtil.getString(settingsMap, "portletId"); long targetPlid = MapUtil.getLong(settingsMap, "targetPlid"); long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId"); Layout layout = _layoutLocalService.getLayout(targetPlid); zipReader = ZipReaderFactoryUtil.getZipReader(file); validateFile(layout.getCompanyId(), targetGroupId, portletId, zipReader); PortletDataContext portletDataContext = getPortletDataContext(exportImportConfiguration, file); boolean deletePortletData = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.DELETE_PORTLET_DATA); // Portlet data deletion if (deletePortletData) { if (_log.isDebugEnabled()) { _log.debug("Deleting portlet data"); } deletePortletData(portletDataContext); } // Deletion system events populateDeletionStagedModelTypes(portletDataContext); _deletionSystemEventImporter.importDeletionSystemEvents(portletDataContext); } finally { ExportImportThreadLocal.setPortletDataDeletionImportInProcess(false); if (zipReader != null) { zipReader.close(); } } }
From source file:com.liferay.exportimport.controller.PortletImportController.java
License:Open Source License
@Override public MissingReferences validateFile(ExportImportConfiguration exportImportConfiguration, File file) throws Exception { ZipReader zipReader = null; try {// www . j a v a 2s.c o m ExportImportThreadLocal.setPortletValidationInProcess(true); Map<String, Serializable> settingsMap = exportImportConfiguration.getSettingsMap(); String portletId = MapUtil.getString(settingsMap, "portletId"); long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId"); long targetPlid = MapUtil.getLong(settingsMap, "targetPlid"); Layout layout = _layoutLocalService.getLayout(targetPlid); zipReader = ZipReaderFactoryUtil.getZipReader(file); validateFile(layout.getCompanyId(), targetGroupId, portletId, zipReader); PortletDataContext portletDataContext = getPortletDataContext(exportImportConfiguration, file); MissingReferences missingReferences = _exportImportHelper.validateMissingReferences(portletDataContext); Map<String, MissingReference> dependencyMissingReferences = missingReferences .getDependencyMissingReferences(); if (!dependencyMissingReferences.isEmpty()) { throw new MissingReferenceException(missingReferences); } return missingReferences; } finally { ExportImportThreadLocal.setPortletValidationInProcess(false); if (zipReader != null) { zipReader.close(); } } }
From source file:com.liferay.exportimport.controller.PortletImportController.java
License:Open Source License
protected void doImportPortletInfo(PortletDataContext portletDataContext, long userId) throws Exception { Map<String, String[]> parameterMap = portletDataContext.getParameterMap(); boolean importPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS); StopWatch stopWatch = new StopWatch(); stopWatch.start();/* www .j a v a 2 s . co m*/ ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext(); if (serviceContext == null) { serviceContext = new ServiceContext(); serviceContext.setCompanyId(portletDataContext.getCompanyId()); serviceContext.setSignedIn(false); serviceContext.setUserId(userId); ServiceContextThreadLocal.pushServiceContext(serviceContext); } // LAR validation validateFile(portletDataContext.getCompanyId(), portletDataContext.getGroupId(), portletDataContext.getPortletId(), portletDataContext.getZipReader()); // Source and target group id Map<Long, Long> groupIds = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(Group.class); groupIds.put(portletDataContext.getSourceGroupId(), portletDataContext.getGroupId()); // Manifest ManifestSummary manifestSummary = _exportImportHelper.getManifestSummary(portletDataContext); if (BackgroundTaskThreadLocal.hasBackgroundTask()) { _portletDataHandlerStatusMessageSender.sendStatusMessage("portlet", portletDataContext.getPortletId(), manifestSummary); } portletDataContext.setManifestSummary(manifestSummary); // Read expando tables, locks and permissions to make them // available to the data handlers through the portlet data context Element rootElement = portletDataContext.getImportDataRootElement(); Element portletElement = null; try { portletElement = rootElement.element("portlet"); Document portletDocument = SAXReaderUtil .read(portletDataContext.getZipEntryAsString(portletElement.attributeValue("path"))); portletElement = portletDocument.getRootElement(); } catch (DocumentException de) { throw new SystemException("Unable to parse XML document for portlet " + portletDataContext.getPortletId() + " during import", de); } LayoutCache layoutCache = new LayoutCache(); if (importPermissions) { _permissionImporter.checkRoles(layoutCache, portletDataContext.getCompanyId(), portletDataContext.getGroupId(), userId, portletElement); _permissionImporter.readPortletDataPermissions(portletDataContext); } String layoutsImportMode = MapUtil.getString(parameterMap, PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE); if (!layoutsImportMode.equals(PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_CREATED_FROM_PROTOTYPE)) { readExpandoTables(portletDataContext); } readLocks(portletDataContext); Element portletDataElement = portletElement.element("portlet-data"); Map<String, Boolean> importPortletControlsMap = _exportImportHelper.getImportPortletControlsMap( portletDataContext.getCompanyId(), portletDataContext.getPortletId(), parameterMap, portletDataElement, manifestSummary); Layout layout = _layoutLocalService.getLayout(portletDataContext.getPlid()); try { // Portlet preferences importPortletPreferences(portletDataContext, layout.getCompanyId(), portletDataContext.getGroupId(), layout, portletElement, true, importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS), importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_DATA), importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_SETUP), importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_USER_PREFERENCES)); // Portlet data if (importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_DATA)) { if (_log.isDebugEnabled()) { _log.debug("Importing portlet data"); } importPortletData(portletDataContext, portletDataElement); } } finally { resetPortletScope(portletDataContext, portletDataContext.getGroupId()); } // Portlet permissions if (importPermissions) { if (_log.isDebugEnabled()) { _log.debug("Importing portlet permissions"); } _permissionImporter.importPortletPermissions(layoutCache, portletDataContext.getCompanyId(), portletDataContext.getGroupId(), userId, layout, portletElement, portletDataContext.getPortletId()); if (userId > 0) { Indexer<User> indexer = IndexerRegistryUtil.nullSafeGetIndexer(User.class); User user = _userLocalService.fetchUser(userId); indexer.reindex(user); } } // Asset links if (_log.isDebugEnabled()) { _log.debug("Importing asset links"); } importAssetLinks(portletDataContext); // Deletion system events _deletionSystemEventImporter.importDeletionSystemEvents(portletDataContext); if (_log.isInfoEnabled()) { _log.info("Importing portlet takes " + stopWatch.getTime() + " ms"); } // Service portlet preferences boolean importPortletSetup = importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_SETUP); if (importPortletSetup) { try { List<Element> serviceElements = rootElement.elements("service"); for (Element serviceElement : serviceElements) { Document serviceDocument = SAXReaderUtil .read(portletDataContext.getZipEntryAsString(serviceElement.attributeValue("path"))); importServicePortletPreferences(portletDataContext, serviceDocument.getRootElement()); } } catch (DocumentException de) { throw new SystemException("Unable to parse XML service information for portlet " + portletDataContext.getPortletId() + " during import", de); } catch (PortalException pe) { throw new PortletDataException( "Unable to import service preferences for portlet " + portletDataContext.getPortletId(), pe); } } ZipReader zipReader = portletDataContext.getZipReader(); zipReader.close(); }
From source file:com.liferay.exportimport.lar.ExportImportHelperImpl.java
License:Open Source License
/** * @deprecated As of 3.0.0, replaced by {@link * #getManifestSummary(PortletDataContext)} *///from www. java2s. c o m @Deprecated @Override public ManifestSummary getManifestSummary(long userId, long groupId, Map<String, String[]> parameterMap, File file) throws Exception { final Group group = _groupLocalService.getGroup(groupId); String userIdStrategy = MapUtil.getString(parameterMap, PortletDataHandlerKeys.USER_ID_STRATEGY); ZipReader zipReader = ZipReaderFactoryUtil.getZipReader(file); PortletDataContext portletDataContext = _portletDataContextFactory.createImportPortletDataContext( group.getCompanyId(), groupId, parameterMap, getUserIdStrategy(userId, userIdStrategy), zipReader); try { return getManifestSummary(portletDataContext); } finally { zipReader.close(); } }
From source file:com.liferay.exportimport.lar.ExportImportHelperImpl.java
License:Open Source License
@Override public ManifestSummary getManifestSummary(long userId, long groupId, Map<String, String[]> parameterMap, FileEntry fileEntry) throws Exception { File file = FileUtil.createTempFile("lar"); ZipReader zipReader = null; ManifestSummary manifestSummary = null; try (InputStream inputStream = _dlFileEntryLocalService.getFileAsStream(fileEntry.getFileEntryId(), fileEntry.getVersion(), false)) { FileUtil.write(file, inputStream); Group group = _groupLocalService.getGroup(groupId); String userIdStrategy = MapUtil.getString(parameterMap, PortletDataHandlerKeys.USER_ID_STRATEGY); zipReader = ZipReaderFactoryUtil.getZipReader(file); PortletDataContext portletDataContext = _portletDataContextFactory.createImportPortletDataContext( group.getCompanyId(), groupId, parameterMap, getUserIdStrategy(userId, userIdStrategy), zipReader);/*w ww . j a va2s . c o m*/ manifestSummary = getManifestSummary(portletDataContext); } finally { if (zipReader != null) { zipReader.close(); } FileUtil.delete(file); } return manifestSummary; }
From source file:com.liferay.exportimport.lar.ExportImportHelperImpl.java
License:Open Source License
/** * @deprecated As of 3.0.0, replaced by {@link * #validateMissingReferences(PortletDataContext)} *//*w w w . ja va 2 s. c o m*/ @Deprecated @Override public MissingReferences validateMissingReferences(long userId, long groupId, Map<String, String[]> parameterMap, File file) throws Exception { Group group = _groupLocalService.getGroup(groupId); String userIdStrategy = MapUtil.getString(parameterMap, PortletDataHandlerKeys.USER_ID_STRATEGY); ZipReader zipReader = ZipReaderFactoryUtil.getZipReader(file); PortletDataContext portletDataContext = _portletDataContextFactory.createImportPortletDataContext( group.getCompanyId(), groupId, parameterMap, getUserIdStrategy(userId, userIdStrategy), zipReader); try { return validateMissingReferences(portletDataContext); } finally { zipReader.close(); } }
From source file:com.liferay.exportimport.test.ExportImportHelperUtilTest.java
License:Open Source License
@Test public void testValidateMissingReferences() throws Exception { String xml = replaceParameters(getContent("missing_references.txt"), getFileEntry()); ZipWriter zipWriter = ZipWriterFactoryUtil.getZipWriter(); zipWriter.addEntry("/manifest.xml", xml); ZipReader zipReader = ZipReaderFactoryUtil.getZipReader(zipWriter.getFile()); PortletDataContext portletDataContextImport = PortletDataContextFactoryUtil.createImportPortletDataContext( _liveGroup.getCompanyId(), _liveGroup.getGroupId(), new HashMap<String, String[]>(), new TestUserIdStrategy(), zipReader); MissingReferences missingReferences = ExportImportHelperUtil .validateMissingReferences(portletDataContextImport); Map<String, MissingReference> dependencyMissingReferences = missingReferences .getDependencyMissingReferences(); Map<String, MissingReference> weakMissingReferences = missingReferences.getWeakMissingReferences(); Assert.assertEquals(dependencyMissingReferences.toString(), 2, dependencyMissingReferences.size()); Assert.assertEquals(weakMissingReferences.toString(), 1, weakMissingReferences.size()); FileUtil.delete(zipWriter.getFile()); zipReader.close(); }