public static void checkRepository( long repositoryId, Map<String, String> parameters, UnicodeProperties typeSettingsProperties, String typeSettingsKey) throws PortalException, RepositoryException { if (!typeSettingsProperties.containsKey(typeSettingsKey)) { org.apache.chemistry.opencmis.client.api.Repository cmisRepository = _sessionFactory.getRepositories(parameters).get(0); typeSettingsProperties.setProperty(typeSettingsKey, cmisRepository.getId()); try { RepositoryLocalServiceUtil.updateRepository(repositoryId, typeSettingsProperties); } catch (PortalException | SystemException e) { throw new RepositoryException(e); } } parameters.put( SessionParameter.REPOSITORY_ID, getTypeSettingsValue(typeSettingsProperties, typeSettingsKey)); }
@Override protected void doImportStagedModel(PortletDataContext portletDataContext, Repository repository) throws Exception { long userId = portletDataContext.getUserId(repository.getUserUuid()); ServiceContext serviceContext = portletDataContext.createServiceContext(repository); Repository importedRepository = null; Element repositoryElement = portletDataContext.getImportDataStagedModelElement(repository); try { boolean hidden = GetterUtil.getBoolean(repositoryElement.attributeValue("hidden")); if (portletDataContext.isDataStrategyMirror()) { Repository existingRepository = RepositoryLocalServiceUtil.fetchRepositoryByUuidAndGroupId( repository.getUuid(), portletDataContext.getScopeGroupId()); if (existingRepository == null) { existingRepository = RepositoryLocalServiceUtil.fetchRepository( portletDataContext.getScopeGroupId(), repository.getName()); } long classNameId = 0; if (existingRepository != null) { classNameId = existingRepository.getClassNameId(); } if ((existingRepository == null) || (classNameId != PortalUtil.getClassNameId(LiferayRepository.class))) { serviceContext.setUuid(repository.getUuid()); importedRepository = RepositoryLocalServiceUtil.addRepository( userId, portletDataContext.getScopeGroupId(), repository.getClassNameId(), DLFolderConstants.DEFAULT_PARENT_FOLDER_ID, repository.getName(), repository.getDescription(), repository.getPortletId(), repository.getTypeSettingsProperties(), hidden, serviceContext); } else { RepositoryLocalServiceUtil.updateRepository( existingRepository.getRepositoryId(), repository.getName(), repository.getDescription()); importedRepository = existingRepository; } } else { importedRepository = RepositoryLocalServiceUtil.addRepository( userId, portletDataContext.getScopeGroupId(), repository.getClassNameId(), DLFolderConstants.DEFAULT_PARENT_FOLDER_ID, repository.getName(), repository.getDescription(), repository.getPortletId(), repository.getTypeSettingsProperties(), hidden, serviceContext); } } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn( "Unable to connect to repository {name=" + repository.getName() + ", typeSettings=" + repository.getTypeSettingsProperties() + "}", e); } } portletDataContext.importClassedModel(repository, importedRepository); StagedModelDataHandlerUtil.importReferenceStagedModels( portletDataContext, repository, RepositoryEntry.class); }