@Test public void testValidateMissingReferences() throws Exception { String xml = replaceParameters(getContent("missing_references.txt"), _fileEntry); ZipWriter zipWriter = ZipWriterFactoryUtil.getZipWriter(); zipWriter.addEntry("/manifest.xml", xml); ZipReader zipReader = ZipReaderFactoryUtil.getZipReader(zipWriter.getFile()); _portletDataContextImport.setZipReader(zipReader); MissingReferences missingReferences = ExportImportHelperUtil.validateMissingReferences(_portletDataContextImport); Map<String, MissingReference> dependencyMissingReferences = missingReferences.getDependencyMissingReferences(); Map<String, MissingReference> weakMissingReferences = missingReferences.getWeakMissingReferences(); Assert.assertEquals(2, dependencyMissingReferences.size()); Assert.assertEquals(1, weakMissingReferences.size()); FileUtil.delete(zipWriter.getFile()); zipReader.close(); }
@Override public MissingReferences validateFile( ExportImportConfiguration exportImportConfiguration, File file) throws Exception { ZipReader zipReader = null; try { 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 = LayoutLocalServiceUtil.getLayout(targetPlid); zipReader = ZipReaderFactoryUtil.getZipReader(file); validateFile(layout.getCompanyId(), targetGroupId, portletId, zipReader); PortletDataContext portletDataContext = getPortletDataContext(exportImportConfiguration, file); MissingReferences missingReferences = ExportImportHelperUtil.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(); } } }