Author: tolusha
Date: 2012-03-21 09:58:04 -0400 (Wed, 21 Mar 2012)
New Revision: 5927
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCDataContainerConfig.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java
Log:
EXOJCR-1754: testing on DB, share same connection for database cleaning in case of
isolated db
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCDataContainerConfig.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCDataContainerConfig.java 2012-03-21
07:15:06 UTC (rev 5926)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCDataContainerConfig.java 2012-03-21
13:58:04 UTC (rev 5927)
@@ -42,6 +42,12 @@
{
return true;
}
+
+ @Override
+ public boolean isShareSameDatasource()
+ {
+ return false;
+ }
},
/**
* All workspaces from each repositories can be stored in a single database within
one set of
@@ -53,6 +59,12 @@
{
return false;
}
+
+ @Override
+ public boolean isShareSameDatasource()
+ {
+ return true;
+ }
},
/**
* "ISOLATED" database structure combines SINGLE and MULTI, by offering
workspace and repository
@@ -65,16 +77,27 @@
{
return true;
}
+
+ @Override
+ public boolean isShareSameDatasource()
+ {
+ return true;
+ }
};
/**
* @return true if every workspace stores data in separate table within one
repository
*/
public abstract boolean isMultiDatabase();
+
+ /**
+ * @return true if every workspace should have same datasource name parameter in
container
+ */
+ public abstract boolean isShareSameDatasource();
}
/**
- * Use additional connection to databse to check same name siblings
+ * Use additional connection to database to check same name siblings
*/
public boolean checkSNSNewConnection;
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java 2012-03-21
07:15:06 UTC (rev 5926)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java 2012-03-21
13:58:04 UTC (rev 5927)
@@ -405,7 +405,7 @@
if (wsSourceName != null && newWsSourceName != null)
{
- if (!dbType.isMultiDatabase() || dbType == DatabaseStructureType.ISOLATED)
+ if (dbType.isShareSameDatasource())
{
if (!wsSourceName.equals(newWsSourceName))
{
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java 2012-03-21
07:15:06 UTC (rev 5926)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java 2012-03-21
13:58:04 UTC (rev 5927)
@@ -35,6 +35,7 @@
import org.exoplatform.services.jcr.impl.clean.rdbms.DBCleanerTool;
import org.exoplatform.services.jcr.impl.clean.rdbms.DummyDBCleanerTool;
import
org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
+import
org.exoplatform.services.jcr.impl.storage.jdbc.JDBCDataContainerConfig.DatabaseStructureType;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
import org.exoplatform.services.jcr.impl.util.io.FileCleanerHolder;
@@ -91,9 +92,9 @@
// define one common database cleaner for all restores for single db case
DBCleanerTool dbCleaner = null;
- Boolean isMultiDb =
JDBCWorkspaceDataContainer.getDatabaseType(wsEntry).isMultiDatabase();
+ DatabaseStructureType dbType =
JDBCWorkspaceDataContainer.getDatabaseType(wsEntry);
- if (!isMultiDb)
+ if (dbType.isShareSameDatasource())
{
String dsName =
wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME);
@@ -113,7 +114,10 @@
});
jdbcConn.setAutoCommit(false);
- dbCleaner = DBCleanService.getRepositoryDBCleaner(jdbcConn,
repositoryEntry);
+ if (dbType == DatabaseStructureType.SINGLE)
+ {
+ dbCleaner = DBCleanService.getRepositoryDBCleaner(jdbcConn,
repositoryEntry);
+ }
}
ManageableRepository repository =
repositoryService.getRepository(this.repositoryEntry.getName());
@@ -142,7 +146,7 @@
if (jdbcConn != null)
{
- if (!isMultiDb)
+ if (dbType == DatabaseStructureType.SINGLE)
{
context = new DataRestoreContext(
new String[]{
Show replies by date