CmsUUID projectIdForReading = (!dbcHasProjectId ? offlineProject.getUuid() : CmsProject.ONLINE_PROJECT_ID); dbc.setProjectId(offlineProject.getUuid()); byte[] offlineContent = m_driverManager.getVfsDriver(dbc).readContent( dbc, projectIdForReading, } else { if (!m_driverManager.getVfsDriver(dbc).validateResourceIdExists( dbc, onlineProject.getUuid(), if (!alreadyPublished) { m_driverManager.getVfsDriver(dbc).createResource(dbc, onlineProject.getUuid(), newFile, null); } else { m_driverManager.getVfsDriver(dbc).createSibling(dbc, onlineProject, offlineResource); } else { m_driverManager.getVfsDriver(dbc).publishResource(dbc, onlineProject, newFile, offlineFile); m_driverManager.getVfsDriver(dbc).publishVersions(dbc, offlineResource, !alreadyPublished); m_driverManager.getVfsDriver(dbc).createOnlineContent( dbc, offlineFile.getResourceId(),
propertyDefinition = m_vfsDriver.readPropertyDefinition(dbc, name, dbc.currentProject().getUuid()); } catch (CmsException e) { propertyDefinition = m_vfsDriver.createPropertyDefinition( dbc, dbc.currentProject().getUuid(), m_vfsDriver.readPropertyDefinition(dbc, name, CmsProject.ONLINE_PROJECT_ID); } catch (CmsException e) { m_vfsDriver.createPropertyDefinition( dbc, CmsProject.ONLINE_PROJECT_ID,
/** * @see org.opencms.db.I_CmsVfsDriver#updateRelations(CmsDbContext, CmsProject, CmsResource) */ public void updateRelations(CmsDbContext dbc, CmsProject onlineProject, CmsResource offlineResource) throws CmsDataAccessException { // delete online relations I_CmsVfsDriver vfsDriver = m_driverManager.getVfsDriver(dbc); vfsDriver.deleteRelations(dbc, onlineProject.getUuid(), offlineResource, CmsRelationFilter.TARGETS); CmsUUID projectId; if (!dbc.getProjectId().isNullUUID()) { projectId = CmsProject.ONLINE_PROJECT_ID; } else { projectId = dbc.currentProject().getUuid(); } // copy offline to online relations CmsUUID dbcProjectId = dbc.getProjectId(); dbc.setProjectId(CmsUUID.getNullUUID()); Iterator<CmsRelation> itRelations = m_driverManager.getVfsDriver(dbc).readRelations( dbc, projectId, offlineResource, CmsRelationFilter.TARGETS).iterator(); dbc.setProjectId(dbcProjectId); while (itRelations.hasNext()) { vfsDriver.createRelation(dbc, onlineProject.getUuid(), itRelations.next()); } }
/** * Enumeration class for the mode parameter in the * {@link CmsDriverManager#readChangedResourcesInsideProject(CmsDbContext, CmsUUID, CmsReadChangedProjectResourceMode)} * method.<p> */ private static class CmsReadChangedProjectResourceMode { /** * Default constructor.<p> */ protected CmsReadChangedProjectResourceMode() { // noop } }
onlineFolder = m_driverManager.getVfsDriver(dbc).createResource( dbc, onlineProject.getUuid(), newFolder, null); m_driverManager.getVfsDriver(dbc).publishResource(dbc, onlineProject, onlineFolder, offlineFolder); m_driverManager.getVfsDriver().publishVersions(dbc, offlineFolder, true); } catch (CmsVfsResourceAlreadyExistsException e) { if (!offlineFolder.getRootPath().equals("/") onlineFolder = m_driverManager.getVfsDriver(dbc).readFolder( dbc, onlineProject.getUuid(), offlineFolder.getRootPath()); m_driverManager.getVfsDriver(dbc).publishResource( dbc, onlineProject, m_driverManager.getVfsDriver(dbc).publishVersions(dbc, offlineFolder, true); } catch (CmsDataAccessException e1) { if (LOG.isErrorEnabled()) { onlineFolder = m_driverManager.getVfsDriver(dbc).readFolder( dbc, onlineProject.getUuid(), onlineFolder = m_driverManager.getVfsDriver(dbc).createResource( dbc,
m_vfsDriver.writeResource(dbc, dbc.currentProject().getUuid(), restoredFolder, NOTHING_CHANGED); m_vfsDriver.deletePropertyObjects( dbc, dbc.currentProject().getUuid(), List propertyInfos = m_vfsDriver.readPropertyObjects(dbc, onlineProject, onlineResource); m_vfsDriver.writePropertyObjects(dbc, dbc.currentProject(), restoredFolder, propertyInfos); byte[] onlineContent = m_vfsDriver.readContent( dbc, CmsProject.ONLINE_PROJECT_ID, List properties = m_vfsDriver.readPropertyObjects(dbc, onlineProject, onlineResource); m_vfsDriver.deletePropertyObjects( dbc, dbc.currentProject().getUuid(), m_vfsDriver.writeResourceState(dbc, dbc.currentProject(), res, UPDATE_ALL, false); m_vfsDriver.deleteRelations(dbc, dbc.currentProject().getUuid(), offlineResource, CmsRelationFilter.TARGETS); List relations = m_vfsDriver.readRelations( dbc, CmsProject.ONLINE_PROJECT_ID, while (itRelations.hasNext()) { CmsRelation relation = (CmsRelation)itRelations.next();
movedFiles = vfsDriver.readResourceTree( dbc, onlineProject.getUuid(), CmsResource offlineResource = vfsDriver.readResource( dbc, dbc.currentProject().getUuid(), CmsFile offlineFile = new CmsFile(offlineResource); offlineFile.setContents( vfsDriver.readContent(dbc, dbc.currentProject().getUuid(), offlineFile.getResourceId())); internalWriteHistory( dbc, publishHistoryId, publishTag); vfsDriver.deletePropertyObjects( dbc, onlineProject.getUuid(), delFile, CmsProperty.DELETE_OPTION_DELETE_STRUCTURE_AND_RESOURCE_VALUES); vfsDriver.removeFile(dbc, onlineProject.getUuid(), delFile); } else if (offlineResource.isFolder()) { publishHistoryId, publishTag); vfsDriver.deletePropertyObjects( dbc, onlineProject.getUuid(),
Iterator childResources = m_vfsDriver.readChildResources(dbc, dbc.currentProject(), resource, true, true).iterator(); if (!error) { try { String originalPath = m_vfsDriver.readResource(dbc, projectId, errorRes.getRootPath(), true).getRootPath(); error = originalPath.equals(errorRes.getRootPath()) || originalPath.startsWith(resource.getRootPath()); } else { boolean existsOnline = (m_vfsDriver.validateStructureIdExists( dbc, CmsProject.ONLINE_PROJECT_ID, m_vfsDriver.removeFolder(dbc, dbc.currentProject(), currentResource); } else { m_vfsDriver.removeFile(dbc, dbc.currentProject().getUuid(), currentResource); m_vfsDriver.deleteRelations( dbc, dbc.currentProject().getUuid(), m_vfsDriver.writeResourceState(dbc, dbc.currentProject(), currentResource, UPDATE_STRUCTURE, false); m_vfsDriver.writeLastModifiedProjectId( dbc, dbc.currentProject(),
boolean existsOnline = m_driverManager.getVfsDriver(dbc).validateStructureIdExists( dbc, CmsProject.ONLINE_PROJECT_ID, onlineResource = m_driverManager.getVfsDriver(dbc).readResource( dbc, onlineProject.getUuid(), m_driverManager.getVfsDriver(dbc).deletePropertyObjects( dbc, onlineProject.getUuid(), List<CmsProperty> offlineProperties = m_driverManager.getVfsDriver(dbc).readPropertyObjects( dbc, dbc.currentProject(), m_driverManager.getVfsDriver(dbc).writePropertyObjects( dbc, dbc.currentProject(), offlineProperties = m_driverManager.getVfsDriver(dbc).readPropertyObjects( dbc, dbc.currentProject(), offlineResource); CmsProperty.setAutoCreatePropertyDefinitions(offlineProperties, true); m_driverManager.getVfsDriver(dbc).writePropertyObjects(dbc, onlineProject, newFile, offlineProperties); } catch (CmsDataAccessException e) { if (LOG.isErrorEnabled()) {
boolean existsOnline = m_driverManager.getVfsDriver().validateStructureIdExists( dbc, CmsProject.ONLINE_PROJECT_ID, onlineResource = m_driverManager.getVfsDriver().readResource( dbc, onlineProject.getUuid(), offlineFile.setContents(m_driverManager.getVfsDriver().readContent( dbc, dbc.currentProject().getUuid(), m_driverManager.getVfsDriver().deletePropertyObjects( dbc, onlineProject.getUuid(), m_driverManager.getVfsDriver().deletePropertyObjects( dbc, dbc.currentProject().getUuid(), && (onlineResource != null) && !onlineResource.getResourceId().equals(offlineResource.getResourceId())) { m_driverManager.getVfsDriver().deletePropertyObjects( dbc, dbc.currentProject().getUuid(), m_driverManager.getVfsDriver().removeFile(dbc, dbc.currentProject().getUuid(), offlineResource); if (existsOnline && (onlineResource != null)) { m_driverManager.getVfsDriver().removeFile(dbc, onlineProject.getUuid(), onlineResource);
m_driverManager.getVfsDriver(dbc).createOnlineContent( dbc, resource.getResourceId(), m_driverManager.getVfsDriver(dbc).createOnlineContent( dbc, resource.getResourceId(), m_driverManager.getVfsDriver(dbc).publishVersions(dbc, resource, !valResource); Map<String, Integer> versions = m_driverManager.getVfsDriver(dbc).readVersions( dbc, CmsProject.ONLINE_PROJECT_ID, CmsFolder parent = m_driverManager.getVfsDriver(dbc).readParentFolder( dbc, CmsProject.ONLINE_PROJECT_ID,
m_driverManager.getVfsDriver(dbc).deletePropertyObjects( dbc, CmsProject.ONLINE_PROJECT_ID, m_driverManager.getVfsDriver(dbc).removeFolder(dbc, dbc.currentProject(), resource); m_driverManager.getVfsDriver(dbc).deleteRelations( dbc, dbc.getRequestContext().getCurrentProject().getUuid(), m_driverManager.getVfsDriver(dbc).deletePropertyObjects( dbc, CmsProject.ONLINE_PROJECT_ID, m_driverManager.getVfsDriver(dbc).removeFolder(dbc, dbc.currentProject(), resource); m_driverManager.getVfsDriver(dbc).deleteRelations( dbc, dbc.getRequestContext().getCurrentProject().getUuid(),
m_driverManager.getVfsDriver().createResource(dbc, projectId, resource, null); resource.setState(CmsResource.STATE_UNCHANGED); m_driverManager.getVfsDriver().writeResource(dbc, projectId, resource, CmsDriverManager.NOTHING_CHANGED); m_driverManager.getVfsDriver().createResource(dbc, onlineProject.getUuid(), resource, null);
getVfsDriver(dbc).deletePropertyObjects( dbc, projectId, CmsProperty.DELETE_OPTION_DELETE_STRUCTURE_AND_RESOURCE_VALUES); getVfsDriver(dbc).removeFile(dbc, dbc.currentProject().getUuid(), currentFile); if (currentFolder.getState().isNew()) { getVfsDriver(dbc).deletePropertyObjects( dbc, projectId, CmsProperty.DELETE_OPTION_DELETE_STRUCTURE_AND_RESOURCE_VALUES); getVfsDriver(dbc).removeFolder(dbc, dbc.currentProject(), currentFolder);
onlineResource = m_driverManager.getVfsDriver().readResource( dbc, onlineProject.getUuid(), m_driverManager.getVfsDriver().moveResource( dbc, onlineProject.getUuid(),
m_monitor.flushCache(CmsMemoryMonitor.CacheType.ROLE_LIST); m_vfsDriver.moveResource(dbc, dbc.getRequestContext().currentProject().getUuid(), source, destination); m_vfsDriver.writeResourceState( dbc, dbc.currentProject(),
/** * Deletes all relations for the given resource and all its siblings.<p> * * @param dbc the current database context * @param resource the resource to delete the resource for * * @throws CmsException if something goes wrong */ protected void deleteRelationsWithSiblings(CmsDbContext dbc, CmsResource resource) throws CmsException { // get all siblings List siblings; if (resource.getSiblingCount() > 1) { siblings = readSiblings(dbc, resource, CmsResourceFilter.ALL); } else { siblings = new ArrayList(); siblings.add(resource); } // clean the relations in content for all siblings Iterator it = siblings.iterator(); while (it.hasNext()) { CmsResource sibling = (CmsResource)it.next(); // clean the relation information for this sibling m_vfsDriver.deleteRelations( dbc, dbc.currentProject().getUuid(), sibling, CmsRelationFilter.TARGETS.filterDefinedInContent()); } }
originalRelation.getTargetPath(), link.getType()); m_vfsDriver.createRelation(dbc, dbc.currentProject().getUuid(), relation);
/** * Deletes a property definition.<p> * * @param dbc the current database context * @param name the name of the property definition to delete * * @throws CmsException if something goes wrong */ public void deletePropertyDefinition(CmsDbContext dbc, String name) throws CmsException { CmsPropertyDefinition propertyDefinition = null; try { // first read and then delete the metadefinition. propertyDefinition = readPropertyDefinition(dbc, name); m_vfsDriver.deletePropertyDefinition(dbc, propertyDefinition); m_historyDriver.deletePropertyDefinition(dbc, propertyDefinition); } finally { // fire an event that a property of a resource has been deleted OpenCms.fireCmsEvent(new CmsEvent( I_CmsEventListener.EVENT_PROPERTY_DEFINITION_MODIFIED, Collections.singletonMap("propertyDefinition", propertyDefinition))); } }
res = stmt.executeQuery(); while (res.next()) { CmsResource resource = m_driverManager.getVfsDriver(dbc).createResource( res, dbc.currentProject().getUuid());