Example usage for com.liferay.portal.kernel.repository.model FileVersion getVersion

List of usage examples for com.liferay.portal.kernel.repository.model FileVersion getVersion

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.repository.model FileVersion getVersion.

Prototype

public String getVersion();

Source Link

Usage

From source file:com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.java

License:Open Source License

@Override
protected void doImportStagedModel(PortletDataContext portletDataContext, FileEntry fileEntry)
        throws Exception {

    long userId = portletDataContext.getUserId(fileEntry.getUserUuid());

    if (!fileEntry.isDefaultRepository()) {

        // References has been automatically imported, nothing to do here

        return;//from  w w w  . j av  a  2 s . c o  m
    }

    Map<Long, Long> folderIds = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(Folder.class);

    long folderId = MapUtil.getLong(folderIds, fileEntry.getFolderId(), fileEntry.getFolderId());

    long[] assetCategoryIds = portletDataContext.getAssetCategoryIds(DLFileEntry.class,
            fileEntry.getFileEntryId());
    String[] assetTagNames = portletDataContext.getAssetTagNames(DLFileEntry.class, fileEntry.getFileEntryId());

    ServiceContext serviceContext = portletDataContext.createServiceContext(fileEntry, DLFileEntry.class);

    serviceContext.setAttribute("sourceFileName", "A." + fileEntry.getExtension());
    serviceContext.setUserId(userId);

    Element fileEntryElement = portletDataContext.getImportDataElement(fileEntry);

    String binPath = fileEntryElement.attributeValue("bin-path");

    InputStream is = null;

    try {
        if (Validator.isNull(binPath) && portletDataContext.isPerformDirectBinaryImport()) {

            try {
                is = FileEntryUtil.getContentStream(fileEntry);
            } catch (Exception e) {
                if (_log.isWarnEnabled()) {
                    _log.warn("Unable to retrieve content for file entry " + fileEntry.getFileEntryId(), e);
                }

                return;
            }
        } else {
            is = portletDataContext.getZipEntryAsInputStream(binPath);
        }

        if (is == null) {
            if (_log.isWarnEnabled()) {
                _log.warn("No file found for file entry " + fileEntry.getFileEntryId());
            }

            return;
        }

        importMetaData(portletDataContext, fileEntryElement, fileEntry, serviceContext);

        FileEntry importedFileEntry = null;

        if (portletDataContext.isDataStrategyMirror()) {
            FileEntry existingFileEntry = fetchStagedModelByUuidAndGroupId(fileEntry.getUuid(),
                    portletDataContext.getScopeGroupId());

            FileVersion fileVersion = fileEntry.getFileVersion();

            if (existingFileEntry == null) {
                if (portletDataContext.isDataStrategyMirrorWithOverwriting()) {

                    FileEntry existingTitleFileEntry = FileEntryUtil
                            .fetchByR_F_T(portletDataContext.getScopeGroupId(), folderId, fileEntry.getTitle());

                    if (existingTitleFileEntry == null) {
                        existingTitleFileEntry = FileEntryUtil.fetchByR_F_FN(
                                portletDataContext.getScopeGroupId(), folderId, fileEntry.getFileName());
                    }

                    if (existingTitleFileEntry != null) {
                        _dlAppLocalService.deleteFileEntry(existingTitleFileEntry.getFileEntryId());
                    }
                }

                serviceContext.setAttribute("fileVersionUuid", fileVersion.getUuid());
                serviceContext.setUuid(fileEntry.getUuid());

                String fileEntryTitle = _dlFileEntryLocalService.getUniqueTitle(
                        portletDataContext.getScopeGroupId(), folderId, 0, fileEntry.getTitle(),
                        fileEntry.getExtension());

                importedFileEntry = _dlAppLocalService.addFileEntry(userId,
                        portletDataContext.getScopeGroupId(), folderId, fileEntry.getFileName(),
                        fileEntry.getMimeType(), fileEntryTitle, fileEntry.getDescription(), null, is,
                        fileEntry.getSize(), serviceContext);

                if (fileEntry.isInTrash()) {
                    importedFileEntry = _dlTrashService
                            .moveFileEntryToTrash(importedFileEntry.getFileEntryId());
                }
            } else {
                FileVersion latestExistingFileVersion = existingFileEntry.getLatestFileVersion(true);

                boolean indexEnabled = serviceContext.isIndexingEnabled();

                boolean deleteFileEntry = false;
                boolean updateFileEntry = false;

                if (!Objects.equals(fileVersion.getUuid(), latestExistingFileVersion.getUuid())) {

                    deleteFileEntry = true;
                    updateFileEntry = true;
                } else {
                    InputStream existingFileVersionInputStream = null;

                    try {
                        existingFileVersionInputStream = latestExistingFileVersion.getContentStream(false);
                    } catch (Exception e) {
                        if (_log.isDebugEnabled()) {
                            _log.debug(e, e);
                        }
                    } finally {
                        if (existingFileVersionInputStream != null) {
                            existingFileVersionInputStream.close();
                        }
                    }

                    if (existingFileVersionInputStream == null) {
                        updateFileEntry = true;
                    }
                }

                try {
                    serviceContext.setIndexingEnabled(false);

                    if (updateFileEntry) {
                        DLFileVersion alreadyExistingFileVersion = _dlFileVersionLocalService
                                .getFileVersionByUuidAndGroupId(fileVersion.getUuid(),
                                        existingFileEntry.getGroupId());

                        if (alreadyExistingFileVersion != null) {
                            serviceContext.setAttribute("existingDLFileVersionId",
                                    alreadyExistingFileVersion.getFileVersionId());
                        }

                        serviceContext.setUuid(fileVersion.getUuid());

                        String fileEntryTitle = _dlFileEntryLocalService.getUniqueTitle(
                                portletDataContext.getScopeGroupId(), existingFileEntry.getFolderId(),
                                existingFileEntry.getFileEntryId(), fileEntry.getTitle(),
                                fileEntry.getExtension());

                        importedFileEntry = _dlAppLocalService.updateFileEntry(userId,
                                existingFileEntry.getFileEntryId(), fileEntry.getFileName(),
                                fileEntry.getMimeType(), fileEntryTitle, fileEntry.getDescription(), null,
                                false, is, fileEntry.getSize(), serviceContext);
                    } else {
                        _dlAppLocalService.updateAsset(userId, existingFileEntry, latestExistingFileVersion,
                                assetCategoryIds, assetTagNames, null);

                        importedFileEntry = existingFileEntry;
                    }

                    if (importedFileEntry.getFolderId() != folderId) {
                        importedFileEntry = _dlAppLocalService.moveFileEntry(userId,
                                importedFileEntry.getFileEntryId(), folderId, serviceContext);
                    }

                    if (importedFileEntry instanceof LiferayFileEntry) {
                        LiferayFileEntry liferayFileEntry = (LiferayFileEntry) importedFileEntry;

                        Indexer<DLFileEntry> indexer = IndexerRegistryUtil
                                .nullSafeGetIndexer(DLFileEntry.class);

                        indexer.reindex((DLFileEntry) liferayFileEntry.getModel());
                    }

                    if (deleteFileEntry && ExportImportThreadLocal.isStagingInProcess()) {

                        _dlAppService.deleteFileVersion(latestExistingFileVersion.getFileEntryId(),
                                latestExistingFileVersion.getVersion());
                    }
                } finally {
                    serviceContext.setIndexingEnabled(indexEnabled);
                }
            }
        } else {
            String fileEntryTitle = _dlFileEntryLocalService.getUniqueTitle(
                    portletDataContext.getScopeGroupId(), folderId, 0, fileEntry.getTitle(),
                    fileEntry.getExtension());

            importedFileEntry = _dlAppLocalService.addFileEntry(userId, portletDataContext.getScopeGroupId(),
                    folderId, fileEntry.getFileName(), fileEntry.getMimeType(), fileEntryTitle,
                    fileEntry.getDescription(), null, is, fileEntry.getSize(), serviceContext);
        }

        for (DLPluggableContentDataHandler dlPluggableContentDataHandler : _serviceTrackerList) {

            dlPluggableContentDataHandler.importContent(portletDataContext, fileEntryElement, fileEntry,
                    importedFileEntry);
        }

        portletDataContext.importClassedModel(fileEntry, importedFileEntry, DLFileEntry.class);

        Map<Long, Long> fileEntryIds = (Map<Long, Long>) portletDataContext
                .getNewPrimaryKeysMap(FileEntry.class);

        fileEntryIds.put(fileEntry.getFileEntryId(), importedFileEntry.getFileEntryId());
    } finally {
        try {
            is.close();
        } catch (IOException ioe) {
            _log.error(ioe, ioe);
        }
    }
}

From source file:com.liferay.document.library.repository.external.model.ExtRepositoryFileEntryAdapter.java

License:Open Source License

@Override
public String getVersion() {
    try {//from w  w  w .  j a  v a  2s . c  o  m
        List<ExtRepositoryFileVersionAdapter> extRepositoryFileVersionAdapters = _getExtRepositoryFileVersionAdapters();

        FileVersion fileVersion = extRepositoryFileVersionAdapters.get(0);

        return fileVersion.getVersion();
    } catch (Exception e) {
        return null;
    }
}

From source file:com.liferay.document.library.service.test.DLCheckInCheckOutTest.java

License:Open Source License

@Test
public void testCancelCheckIn() throws Exception {
    DLAppServiceUtil.checkOutFileEntry(_fileEntry.getFileEntryId(), _serviceContext);

    Folder folder = DLAppServiceUtil.getFolder(_folder.getFolderId());

    Date lastPostDate = folder.getLastPostDate();

    FileEntry fileEntry = DLAppServiceUtil.getFileEntry(_fileEntry.getFileEntryId());

    FileVersion fileVersion = fileEntry.getLatestFileVersion();

    Assert.assertEquals("PWC", fileVersion.getVersion());

    getAssetEntry(fileVersion.getFileVersionId(), true);

    DLAppServiceUtil.cancelCheckOut(_fileEntry.getFileEntryId());

    folder = DLAppServiceUtil.getFolder(_folder.getFolderId());

    Assert.assertTrue(DateUtil.equals(lastPostDate, folder.getLastPostDate()));

    fileEntry = DLAppServiceUtil.getFileEntry(_fileEntry.getFileEntryId());

    Assert.assertEquals("1.0", fileEntry.getVersion());
}

From source file:com.liferay.document.library.service.test.DLCheckInCheckOutTest.java

License:Open Source License

@Test
public void testCheckIn() throws Exception {
    for (int i = 0; i < 2; i++) {
        DLAppServiceUtil.checkOutFileEntry(_fileEntry.getFileEntryId(), _serviceContext);

        Folder folder = DLAppServiceUtil.getFolder(_folder.getFolderId());

        Date lastPostDate = folder.getLastPostDate();

        FileVersion fileVersion = _fileEntry.getLatestFileVersion();

        Assert.assertEquals("PWC", fileVersion.getVersion());

        getAssetEntry(fileVersion.getFileVersionId(), true);

        if (i == 1) {
            updateFileEntry(_fileEntry.getFileEntryId());
        }/*from  w ww. j av  a 2s.com*/

        DLAppServiceUtil.checkInFileEntry(_fileEntry.getFileEntryId(), false, StringPool.BLANK,
                _serviceContext);

        folder = DLAppServiceUtil.getFolder(_folder.getFolderId());

        if (i == 1) {
            Assert.assertFalse(lastPostDate.after(folder.getLastPostDate()));
        } else {
            Assert.assertTrue(DateUtil.equals(lastPostDate, folder.getLastPostDate()));
        }

        FileEntry fileEntry = DLAppServiceUtil.getFileEntry(_fileEntry.getFileEntryId());

        Assert.assertEquals("1." + i, fileEntry.getVersion());

        fileVersion = fileEntry.getFileVersion();

        getAssetEntry(fileVersion.getFileVersionId(), false);
    }
}

From source file:com.liferay.document.library.service.test.DLCheckInCheckOutTest.java

License:Open Source License

@Test
public void testCheckOut() throws Exception {
    Folder folder = DLAppServiceUtil.getFolder(_folder.getFolderId());

    Date lastPostDate = folder.getLastPostDate();

    DLAppServiceUtil.checkOutFileEntry(_fileEntry.getFileEntryId(), _serviceContext);

    folder = DLAppServiceUtil.getFolder(_folder.getFolderId());

    Assert.assertTrue(DateUtil.equals(lastPostDate, folder.getLastPostDate()));

    FileVersion fileVersion = _fileEntry.getLatestFileVersion();

    Assert.assertEquals("PWC", fileVersion.getVersion());

    getAssetEntry(fileVersion.getFileVersionId(), true);
}

From source file:com.liferay.document.library.service.test.DLCheckInCheckOutTest.java

License:Open Source License

@Test
public void testUpdateFileEntry2() throws Exception {
    DLAppServiceUtil.checkOutFileEntry(_fileEntry.getFileEntryId(), _serviceContext);

    Folder folder = DLAppServiceUtil.getFolder(_folder.getFolderId());

    Date lastPostDate = folder.getLastPostDate();

    FileEntry fileEntry = updateFileEntry(_fileEntry.getFileEntryId());

    Assert.assertEquals("1.0", fileEntry.getVersion());

    FileVersion fileVersion = fileEntry.getLatestFileVersion();

    Assert.assertEquals("PWC", fileVersion.getVersion());

    DLAppServiceUtil.checkInFileEntry(_fileEntry.getFileEntryId(), false, StringPool.BLANK, _serviceContext);

    folder = DLAppServiceUtil.getFolder(_folder.getFolderId());

    Assert.assertFalse(lastPostDate.after(folder.getLastPostDate()));

    fileEntry = DLAppServiceUtil.getFileEntry(_fileEntry.getFileEntryId());

    Assert.assertEquals("1.1", fileEntry.getVersion());

    getAssetEntry(fileVersion.getFileVersionId(), false);
}

From source file:com.liferay.document.library.service.test.DLFileVersionUpdateTest.java

License:Open Source License

protected void testVersionUpdate(String addFileName, byte[] addBytes, String addMimeType, String updateFileName,
        byte[] updateBytes, String updateMimeType) throws PortalException {

    String description = StringPool.BLANK;
    String changeLog = StringPool.BLANK;

    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(group.getGroupId());

    FileEntry fileEntry = DLAppServiceUtil.addFileEntry(group.getGroupId(), parentFolder.getFolderId(),
            addFileName, addMimeType, addFileName, description, changeLog, addBytes, serviceContext);

    fileEntry = DLAppServiceUtil.updateFileEntry(fileEntry.getFileEntryId(), updateFileName, updateMimeType,
            updateFileName, description, changeLog, false, updateBytes, serviceContext);

    FileVersion fileVersion = fileEntry.getFileVersion();

    Assert.assertEquals(DLFileEntryConstants.VERSION_DEFAULT, fileVersion.getVersion());
    Assert.assertEquals(updateMimeType, fileVersion.getMimeType());
    Assert.assertEquals(updateBytes.length, fileVersion.getSize());
    Assert.assertEquals(fileVersion.getExtension(), fileEntry.getExtension());
    Assert.assertEquals(fileVersion.getMimeType(), fileEntry.getMimeType());
    Assert.assertEquals(fileVersion.getSize(), fileEntry.getSize());
}

From source file:com.liferay.document.library.web.internal.portlet.action.CompareVersionsMVCRenderCommand.java

License:Open Source License

protected void compareVersions(RenderRequest renderRequest) throws Exception {

    long sourceFileVersionId = ParamUtil.getLong(renderRequest, "sourceFileVersionId");
    long targetFileVersionId = ParamUtil.getLong(renderRequest, "targetFileVersionId");

    FileVersion sourceFileVersion = _dlAppService.getFileVersion(sourceFileVersionId);

    InputStream sourceIs = sourceFileVersion.getContentStream(false);

    String sourceExtension = sourceFileVersion.getExtension();

    if (sourceExtension.equals("css") || sourceExtension.equals("htm") || sourceExtension.equals("html")
            || sourceExtension.equals("js") || sourceExtension.equals("txt") || sourceExtension.equals("xml")) {

        String sourceContent = HtmlUtil.escape(StringUtil.read(sourceIs));

        sourceIs = new UnsyncByteArrayInputStream(sourceContent.getBytes(StringPool.UTF8));
    }/* w ww .j  a va 2  s .c o m*/

    FileVersion targetFileVersion = _dlAppLocalService.getFileVersion(targetFileVersionId);

    InputStream targetIs = targetFileVersion.getContentStream(false);

    String targetExtension = targetFileVersion.getExtension();

    if (targetExtension.equals("css") || targetExtension.equals("htm") || targetExtension.equals("html")
            || targetExtension.equals("js") || targetExtension.equals("txt") || targetExtension.equals("xml")) {

        String targetContent = HtmlUtil.escape(StringUtil.read(targetIs));

        targetIs = new UnsyncByteArrayInputStream(targetContent.getBytes(StringPool.UTF8));
    }

    if (DocumentConversionUtil.isEnabled()) {
        if (DocumentConversionUtil.isConvertBeforeCompare(sourceExtension)) {

            String sourceTempFileId = DLUtil.getTempFileId(sourceFileVersion.getFileEntryId(),
                    sourceFileVersion.getVersion());

            sourceIs = new FileInputStream(
                    DocumentConversionUtil.convert(sourceTempFileId, sourceIs, sourceExtension, "txt"));
        }

        if (DocumentConversionUtil.isConvertBeforeCompare(targetExtension)) {

            String targetTempFileId = DLUtil.getTempFileId(targetFileVersion.getFileEntryId(),
                    targetFileVersion.getVersion());

            targetIs = new FileInputStream(
                    DocumentConversionUtil.convert(targetTempFileId, targetIs, targetExtension, "txt"));
        }
    }

    List<DiffResult>[] diffResults = DiffUtil.diff(new InputStreamReader(sourceIs),
            new InputStreamReader(targetIs));

    renderRequest.setAttribute(WebKeys.DIFF_RESULTS, diffResults);

    renderRequest.setAttribute(WebKeys.SOURCE_NAME,
            sourceFileVersion.getTitle() + StringPool.SPACE + sourceFileVersion.getVersion());
    renderRequest.setAttribute(WebKeys.TARGET_NAME,
            targetFileVersion.getTitle() + StringPool.SPACE + targetFileVersion.getVersion());
}

From source file:com.liferay.item.selector.taglib.internal.util.ItemSelectorRepositoryEntryBrowserUtil.java

License:Open Source License

public static JSONObject getItemMetadataJSONObject(FileEntry fileEntry, Locale locale) throws PortalException {

    JSONObject itemMetadataJSONObject = JSONFactoryUtil.createJSONObject();

    JSONArray groupsJSONArray = JSONFactoryUtil.createJSONArray();

    JSONObject firstTabJSONObject = JSONFactoryUtil.createJSONObject();

    JSONArray firstTabDataJSONArray = JSONFactoryUtil.createJSONArray();

    FileVersion latestFileVersion = fileEntry.getLatestFileVersion();

    firstTabDataJSONArray.put(_createJSONObject(LanguageUtil.get(locale, "format"),
            HtmlUtil.escape(latestFileVersion.getExtension())));

    firstTabDataJSONArray.put(_createJSONObject(LanguageUtil.get(locale, "size"),
            TextFormatter.formatStorageSize(fileEntry.getSize(), locale)));
    firstTabDataJSONArray.put(_createJSONObject(LanguageUtil.get(locale, "name"),
            HtmlUtil.escape(DLUtil.getTitleWithExtension(fileEntry))));

    Date modifiedDate = fileEntry.getModifiedDate();

    firstTabDataJSONArray.put(_createJSONObject(LanguageUtil.get(locale, "modified"),
            LanguageUtil.format(locale, "x-ago-by-x",
                    new Object[] {
                            LanguageUtil.getTimeDescription(locale,
                                    System.currentTimeMillis() - modifiedDate.getTime(), true),
                            HtmlUtil.escape(fileEntry.getUserName()) })));

    firstTabJSONObject.put("data", firstTabDataJSONArray);

    firstTabJSONObject.put("title", LanguageUtil.get(locale, "file-info"));

    groupsJSONArray.put(firstTabJSONObject);

    JSONObject secondTabJSONObject = JSONFactoryUtil.createJSONObject();

    JSONArray secondTabDataJSONArray = JSONFactoryUtil.createJSONArray();

    secondTabDataJSONArray.put(_createJSONObject(LanguageUtil.get(locale, "version"),
            HtmlUtil.escape(latestFileVersion.getVersion())));
    secondTabDataJSONArray.put(_createJSONObject(LanguageUtil.get(locale, "status"),
            WorkflowConstants.getStatusLabel(latestFileVersion.getStatus())));

    secondTabJSONObject.put("data", secondTabDataJSONArray);

    secondTabJSONObject.put("title", LanguageUtil.get(locale, "version"));

    groupsJSONArray.put(secondTabJSONObject);

    itemMetadataJSONObject.put("groups", groupsJSONArray);

    return itemMetadataJSONObject;
}

From source file:com.liferay.portlet.documentlibrary.service.impl.DLAppHelperLocalServiceImpl.java

License:Open Source License

public void checkAssetEntry(long userId, FileEntry fileEntry, FileVersion fileVersion)
        throws PortalException, SystemException {

    AssetEntry fileEntryAssetEntry = assetEntryLocalService.fetchEntry(DLFileEntryConstants.getClassName(),
            fileEntry.getFileEntryId());

    long[] assetCategoryIds = new long[0];
    String[] assetTagNames = new String[0];

    long fileEntryTypeId = getFileEntryTypeId(fileEntry);

    if (fileEntryAssetEntry == null) {
        fileEntryAssetEntry = assetEntryLocalService.updateEntry(userId, fileEntry.getGroupId(),
                DLFileEntryConstants.getClassName(), fileEntry.getFileEntryId(), fileEntry.getUuid(),
                fileEntryTypeId, assetCategoryIds, assetTagNames, false, null, null, null, null,
                fileEntry.getMimeType(), fileEntry.getTitle(), fileEntry.getDescription(), null, null, null, 0,
                0, null, false);/*from  w  w  w .  j  a  v  a2s.  com*/
    }

    AssetEntry fileVersionAssetEntry = assetEntryLocalService.fetchEntry(DLFileEntryConstants.getClassName(),
            fileVersion.getFileVersionId());

    if ((fileVersionAssetEntry == null) && !fileVersion.isApproved()
            && !fileVersion.getVersion().equals(DLFileEntryConstants.VERSION_DEFAULT)) {

        assetCategoryIds = assetCategoryLocalService.getCategoryIds(DLFileEntryConstants.getClassName(),
                fileEntry.getFileEntryId());
        assetTagNames = assetTagLocalService.getTagNames(DLFileEntryConstants.getClassName(),
                fileEntry.getFileEntryId());

        fileVersionAssetEntry = assetEntryLocalService.updateEntry(userId, fileEntry.getGroupId(),
                DLFileEntryConstants.getClassName(), fileVersion.getFileVersionId(), fileEntry.getUuid(),
                fileEntryTypeId, assetCategoryIds, assetTagNames, false, null, null, null, null,
                fileEntry.getMimeType(), fileEntry.getTitle(), fileEntry.getDescription(), null, null, null, 0,
                0, null, false);

        List<AssetLink> assetLinks = assetLinkLocalService.getDirectLinks(fileEntryAssetEntry.getEntryId());

        long[] assetLinkIds = StringUtil.split(ListUtil.toString(assetLinks, AssetLink.ENTRY_ID2_ACCESSOR), 0L);

        assetLinkLocalService.updateLinks(userId, fileVersionAssetEntry.getEntryId(), assetLinkIds,
                AssetLinkConstants.TYPE_RELATED);
    }
}