Search in sources :

Example 1 with ImExAdt

use of com.liferay.imex.adt.model.ImExAdt in project liferay-imex by jpdacunha.

the class AdtImporter method doImportAdt.

private DDMTemplate doImportAdt(Bundle bundle, ServiceContext serviceContext, boolean debug, Group group, User user, Locale locale, File adtDir, Properties config) {
    DDMTemplate template = null;
    String adtfileBegin = FileNames.getAdtFileNameBegin();
    ServiceContext serviceContextTem = (ServiceContext) serviceContext.clone();
    String groupName = GroupUtil.getGroupName(group, locale);
    File[] adtFiles = FileUtil.listFiles(adtDir, adtfileBegin);
    if (adtFiles != null || (adtFiles != null && adtFiles.length == 0)) {
        for (File matchingAdtFile : Arrays.asList(adtFiles)) {
            String templateFileName = matchingAdtFile.getName();
            File adtFile = new File(adtDir, templateFileName);
            ImexOperationEnum operation = ImexOperationEnum.UPDATE;
            try {
                ImExAdt imexAdt = (ImExAdt) processor.read(ImExAdt.class, adtFile);
                long classNameId = classNameLocalService.getClassNameId(imexAdt.getClassName());
                // Liferay trap here :-) : the ressourceClassNameId is the name of the portlet. Potential problem here if the class is moved in future Liferay versions.
                long resourceClassNameId = classNameLocalService.getClassNameId(RESOURCE_CLASSNAME);
                Map<Locale, String> nameMap = LocalizationUtil.getLocalizationMap(imexAdt.getName());
                Map<Locale, String> descriptionMap = LocalizationUtil.getLocalizationMap(imexAdt.getDescription());
                long userId = user.getUserId();
                String type = imexAdt.getTemplateType();
                String mode = null;
                String language = imexAdt.getLangType();
                String script = imexAdt.getData();
                boolean cacheable = imexAdt.isCacheable();
                long classPK = 0;
                serviceContextTem.setUuid(imexAdt.getUuid());
                serviceContextTem.setAddGroupPermissions(false);
                serviceContextTem.setAddGuestPermissions(false);
                try {
                    // Searching for existing template
                    template = dDMTemplateLocalService.getDDMTemplateByUuidAndGroupId(imexAdt.getUuid(), group.getGroupId());
                    long templateId = template.getTemplateId();
                    dDMTemplateLocalService.updateTemplate(userId, templateId, classPK, nameMap, descriptionMap, type, mode, language, script, cacheable, serviceContextTem);
                } catch (NoSuchTemplateException e) {
                    long groupId = group.getGroupId();
                    String templateKey = "imex-" + imexAdt.getKey() + "-" + counterLocalService.increment();
                    boolean smallImage = false;
                    String smallImageURL = null;
                    File smallImageFile = null;
                    template = dDMTemplateLocalService.addTemplate(userId, groupId, classNameId, classPK, resourceClassNameId, templateKey, nameMap, descriptionMap, type, mode, language, script, cacheable, smallImage, smallImageURL, smallImageFile, serviceContextTem);
                    operation = ImexOperationEnum.CREATE;
                }
                // Setting ADT permissions
                Resource resource = resourceLocalService.getResource(template.getCompanyId(), DDMTemplate.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL, template.getTemplateId() + "");
                permissionSetter.setPermissions(config, bundle, resource);
                reportService.getOK(_log, groupName, "ADT : " + template.getName(locale), adtFile, operation);
            } catch (Exception e) {
                reportService.getError(_log, adtFile.getName(), e);
                if (debug) {
                    _log.error(e, e);
                }
            }
        }
    } else {
        reportService.getMessage(_log, "Missing templates", "No files found matching [" + adtfileBegin + "]");
    }
    return template;
}
Also used : Locale(java.util.Locale) ServiceContext(com.liferay.portal.kernel.service.ServiceContext) Resource(com.liferay.portal.kernel.model.Resource) DDMTemplate(com.liferay.dynamic.data.mapping.model.DDMTemplate) NoSuchTemplateException(com.liferay.dynamic.data.mapping.exception.NoSuchTemplateException) ImExAdt(com.liferay.imex.adt.model.ImExAdt) NoSuchTemplateException(com.liferay.dynamic.data.mapping.exception.NoSuchTemplateException) ImexOperationEnum(com.liferay.imex.core.api.report.model.ImexOperationEnum) File(java.io.File)

Example 2 with ImExAdt

use of com.liferay.imex.adt.model.ImExAdt in project liferay-imex by jpdacunha.

the class AdtExporter method doExport.

public void doExport(Properties config, Group group, File groupsDir, Locale locale, boolean debug, String classType, List<ExporterRawContent> rawContentToExport) throws ImexException {
    if (group != null) {
        long classNameId = classNameLocalService.getClassNameId(classType);
        List<DDMTemplate> adts = dDMTemplateLocalService.getTemplates(group.getGroupId(), classNameId);
        if (adts != null && adts.size() > 0) {
            File groupDir = initializeSingleGroupDirectory(groupsDir, group);
            if (groupDir != null) {
                if (groupDir.exists()) {
                    // Iterate over structures
                    for (DDMTemplate ddmTemplate : adts) {
                        File adtDir = initializeSingleAdtExportDirectory(groupDir, classType);
                        if (adtDir != null) {
                            if (adtDir.exists()) {
                                try {
                                    String groupName = GroupUtil.getGroupName(group, locale);
                                    ImExAdt imexAdt = new ImExAdt(ddmTemplate, classType);
                                    processor.write(imexAdt, adtDir, FileNames.getAdtFileName(ddmTemplate, locale, processor.getFileExtension()));
                                    String rawFileName = FileNames.getGroupAdtFileName(ddmTemplate, group, locale, StringPool.PERIOD + imexAdt.getLangType());
                                    rawContentToExport.add(new ExporterRawContent(rawFileName, imexAdt.getData()));
                                    reportService.getOK(_log, groupName, "ADT : " + ddmTemplate.getName(locale) + ", type : " + classType);
                                } catch (Exception e) {
                                    reportService.getError(_log, ddmTemplate.getName(locale), e);
                                    if (debug) {
                                        _log.error(e, e);
                                    }
                                }
                            } else {
                                reportService.getDNE(_log, adtDir.getAbsolutePath());
                            }
                        } else {
                            _log.error("adtDir is null ...");
                        }
                    }
                } else {
                    reportService.getDNE(_log, groupDir.getAbsolutePath());
                }
            } else {
                _log.error("groupDir is null ...");
            }
        } else {
            reportService.getEmpty(_log, group, locale, classType);
        }
    } else {
        _log.error("Skipping null group ...");
    }
}
Also used : ImExAdt(com.liferay.imex.adt.model.ImExAdt) ExporterRawContent(com.liferay.imex.core.api.exporter.model.ExporterRawContent) DDMTemplate(com.liferay.dynamic.data.mapping.model.DDMTemplate) File(java.io.File) ImexException(com.liferay.imex.core.util.exception.ImexException)

Aggregations

DDMTemplate (com.liferay.dynamic.data.mapping.model.DDMTemplate)2 ImExAdt (com.liferay.imex.adt.model.ImExAdt)2 File (java.io.File)2 NoSuchTemplateException (com.liferay.dynamic.data.mapping.exception.NoSuchTemplateException)1 ExporterRawContent (com.liferay.imex.core.api.exporter.model.ExporterRawContent)1 ImexOperationEnum (com.liferay.imex.core.api.report.model.ImexOperationEnum)1 ImexException (com.liferay.imex.core.util.exception.ImexException)1 Resource (com.liferay.portal.kernel.model.Resource)1 ServiceContext (com.liferay.portal.kernel.service.ServiceContext)1 Locale (java.util.Locale)1