📄 cmsprojectdriver.java
字号:
try {
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_PROJECTRESOURCES_DELETE");
// delete resource from the database
stmt.setInt(1, projectId);
stmt.setString(2, resourceName);
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsProjectDriver#deleteProjectResources(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject)
*/
public void deleteProjectResources(CmsDbContext dbc, CmsProject project) throws CmsDataAccessException {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = m_sqlManager.getConnection(dbc, project.getId());
stmt = m_sqlManager.getPreparedStatement(conn, "C_PROJECTRESOURCES_DELETEALL");
stmt.setInt(1, project.getId());
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsProjectDriver#deletePublishHistory(org.opencms.db.CmsDbContext, int, int)
*/
public void deletePublishHistory(CmsDbContext dbc, int projectId, int maxBackupTagId) throws CmsDataAccessException {
PreparedStatement stmt = null;
Connection conn = null;
try {
conn = m_sqlManager.getConnection(dbc, projectId);
stmt = m_sqlManager.getPreparedStatement(conn, projectId, "C_DELETE_PUBLISH_HISTORY");
stmt.setInt(1, maxBackupTagId);
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsProjectDriver#deletePublishHistoryEntry(org.opencms.db.CmsDbContext, int, org.opencms.util.CmsUUID, org.opencms.db.CmsPublishedResource)
*/
public void deletePublishHistoryEntry(
CmsDbContext dbc,
int projectId,
CmsUUID publishHistoryId,
CmsPublishedResource publishedResource) throws CmsDataAccessException {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = m_sqlManager.getConnection(dbc, projectId);
stmt = m_sqlManager.getPreparedStatement(conn, "C_RESOURCES_DELETE_PUBLISH_HISTORY_ENTRY");
stmt.setString(1, publishHistoryId.toString());
stmt.setInt(2, publishedResource.getBackupTagId());
stmt.setString(3, publishedResource.getStructureId().toString());
stmt.setString(4, publishedResource.getResourceId().toString());
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsProjectDriver#deleteStaticExportPublishedResource(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, java.lang.String, int, java.lang.String)
*/
public void deleteStaticExportPublishedResource(
CmsDbContext dbc,
CmsProject currentProject,
String resourceName,
int linkType,
String linkParameter) throws CmsDataAccessException {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = m_sqlManager.getConnection(dbc, currentProject.getId());
stmt = m_sqlManager.getPreparedStatement(conn, "C_STATICEXPORT_DELETE_PUBLISHED_LINKS");
stmt.setString(1, resourceName);
stmt.setInt(2, linkType);
stmt.setString(3, linkParameter);
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsProjectDriver#destroy()
*/
public void destroy() throws Throwable {
finalize();
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_SHUTDOWN_DRIVER_1, getClass().getName()));
}
}
/**
* @see org.opencms.db.I_CmsProjectDriver#fillDefaults(org.opencms.db.CmsDbContext)
*/
public void fillDefaults(CmsDbContext dbc) throws CmsDataAccessException {
try {
if (readProject(dbc, CmsProject.ONLINE_PROJECT_ID) != null) {
// online-project exists - no need of filling defaults
return;
}
} catch (CmsDataAccessException exc) {
// ignore the exception - the project was not readable so fill in the defaults
}
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_FILL_DEFAULTS_0));
}
String adminUser = OpenCms.getDefaultUsers().getUserAdmin();
CmsUser admin = m_driverManager.readUser(dbc, adminUser);
String administratorsGroup = OpenCms.getDefaultUsers().getGroupAdministrators();
CmsGroup administrators = m_driverManager.readGroup(dbc, administratorsGroup);
String usersGroup = OpenCms.getDefaultUsers().getGroupUsers();
CmsGroup users = m_driverManager.readGroup(dbc, usersGroup);
String projectmanagersGroup = OpenCms.getDefaultUsers().getGroupProjectmanagers();
CmsGroup projectmanager = m_driverManager.readGroup(dbc, projectmanagersGroup);
m_driverManager.getWorkflowDriver().writeTaskType(dbc, 1, 0, "../taskforms/adhoc.asp", "Ad-Hoc", "30308", 1, 1);
////////////////////////////////////////////////////////////////////////////////////////////
// online project stuff
////////////////////////////////////////////////////////////////////////////////////////////
// create the online project
CmsTask task = m_driverManager.getWorkflowDriver().createTask(
dbc,
0,
0,
1,
admin.getId(),
admin.getId(),
administrators.getId(),
CmsProject.ONLINE_PROJECT_NAME,
new java.sql.Timestamp(new java.util.Date().getTime()),
new java.sql.Timestamp(new java.util.Date().getTime()),
CmsTaskService.TASK_PRIORITY_NORMAL);
CmsProject onlineProject = createProject(
dbc,
admin,
users,
projectmanager,
task,
CmsProject.ONLINE_PROJECT_NAME,
"The Online Project",
I_CmsPrincipal.FLAG_ENABLED,
CmsProject.PROJECT_TYPE_NORMAL,
null);
// create the root-folder for the online project
CmsFolder onlineRootFolder = new CmsFolder(
new CmsUUID(),
new CmsUUID(),
"/",
CmsResourceTypeFolder.RESOURCE_TYPE_ID,
0,
onlineProject.getId(),
CmsResource.STATE_NEW,
0,
admin.getId(),
0,
admin.getId(),
1,
CmsResource.DATE_RELEASED_DEFAULT,
CmsResource.DATE_EXPIRED_DEFAULT);
m_driverManager.getVfsDriver().createResource(dbc, onlineProject, onlineRootFolder, null);
onlineRootFolder.setState(CmsResource.STATE_UNCHANGED);
m_driverManager.getVfsDriver().writeResource(dbc, onlineProject, onlineRootFolder, CmsDriverManager.UPDATE_ALL);
// important: must access through driver manager to ensure proper cascading
m_driverManager.getProjectDriver().createProjectResource(
dbc,
onlineProject.getId(),
onlineRootFolder.getRootPath(),
null);
////////////////////////////////////////////////////////////////////////////////////////////
// setup project stuff
////////////////////////////////////////////////////////////////////////////////////////////
// create the task for the setup project
task = m_driverManager.getWorkflowDriver().createTask(
dbc,
0,
0,
1,
admin.getId(),
admin.getId(),
administrators.getId(),
"_setupProject",
new java.sql.Timestamp(new java.util.Date().getTime()),
new java.sql.Timestamp(new java.util.Date().getTime()),
CmsTaskService.TASK_PRIORITY_NORMAL);
// important: must access through driver manager to ensure proper cascading
CmsProject setupProject = m_driverManager.getProjectDriver().createProject(
dbc,
admin,
administrators,
administrators,
task,
"_setupProject",
"Initial site import",
I_CmsPrincipal.FLAG_ENABLED,
CmsProject.PROJECT_TYPE_TEMPORARY,
null);
// create the root-folder for the offline project
CmsResource offlineRootFolder = m_driverManager.getVfsDriver().createResource(
dbc,
setupProject,
onlineRootFolder,
null);
offlineRootFolder.setState(CmsResource.STATE_UNCHANGED);
m_driverManager.getVfsDriver().writeResource(dbc, setupProject, offlineRootFolder, CmsDriverManager.UPDATE_ALL);
// important: must access through driver manager to ensure proper cascading
m_driverManager.getProjectDriver().createProjectResource(
dbc,
setupProject.getId(),
offlineRootFolder.getRootPath(),
null);
}
/**
* @see org.opencms.db.I_CmsProjectDriver#getSqlManager()
*/
public CmsSqlManager getSqlManager() {
return m_sqlManager;
}
/**
* @see org.opencms.db.I_CmsDriver#init(org.opencms.db.CmsDbContext, org.opencms.configuration.CmsConfigurationManager, java.util.List, org.opencms.db.CmsDriverManager)
*/
public void init(
CmsDbContext dbc,
CmsConfigurationManager configurationManager,
List successiveDrivers,
CmsDriverManager driverManager) {
Map configuration = configurationManager.getConfiguration();
String poolUrl = configuration.get("db.project.pool").toString();
String classname = configuration.get("db.project.sqlmanager").toString();
m_sqlManager = this.initSqlManager(classname);
m_sqlManager.init(I_CmsProjectDriver.DRIVER_TYPE_ID, poolUrl);
m_driverManager = driverManager;
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_ASSIGNED_POOL_1, poolUrl));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -