Author: tolusha
Date: 2010-12-07 08:29:10 -0500 (Tue, 07 Dec 2010)
New Revision: 3607
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRdbmsWorkspaceInitializer.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/impl/core/RdbmsWorkspaceInitializerWrapper.java
Log:
EXOJCR-1078: test RDBMS workspace initialzer
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRdbmsWorkspaceInitializer.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRdbmsWorkspaceInitializer.java 2010-12-07
13:24:01 UTC (rev 3606)
+++
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRdbmsWorkspaceInitializer.java 2010-12-07
13:29:10 UTC (rev 3607)
@@ -32,10 +32,15 @@
import java.io.File;
import java.net.URL;
+import java.sql.Connection;
+import java.sql.Statement;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
+import javax.naming.InitialContext;
+import javax.sql.DataSource;
+
/**
* @author <a href="mailto:anatoliy.bazko@gmail.com">Anatoliy
Bazko</a>
* @version $Id: TestFullBackupJob.java 34360 2009-07-22 23:58:59Z tolusha $
@@ -153,4 +158,61 @@
}
}
+ public void testRDBMSInitializerRestoreTables() throws Exception
+ {
+ FullBackupJob job = new FullBackupJob();
+ BackupConfig config = new BackupConfig();
+ config.setRepository("db1");
+ config.setWorkspace("ws1");
+ config.setBackupDir(new File("target/backup/testJob"));
+
+ Calendar calendar = Calendar.getInstance();
+
+ job.init(repositoryService.getRepository("db1"), "ws1", config,
calendar);
+ job.run();
+
+ URL url = job.getStorageURL();
+
+ for (WorkspaceEntry workspaceEntry :
repositoryService.getRepository("db1").getConfiguration()
+ .getWorkspaceEntries())
+ {
+ if (workspaceEntry.getName().equals("ws1"))
+ {
+ String newValueStoragePath = "target/temp/values/" +
IdGenerator.generate();
+ String newIndexPath = "target/temp/index/" +
IdGenerator.generate();
+
+ String dsName = helper.getNewDataSource("");
+ DataSource ds = (DataSource)new InitialContext().lookup(dsName);
+
+ Connection conn = ds.getConnection();
+ Statement st = conn.createStatement();
+ st.execute("CREATE TABLE JCR_MITEM(ID VARCHAR(96) NOT NULL,PARENT_ID
VARCHAR(96) NOT NULL,NAME VARCHAR(512) NOT NULL,VERSION INTEGER NOT NULL,I_CLASS INTEGER
NOT NULL,I_INDEX INTEGER NOT NULL,N_ORDER_NUM INTEGER,P_TYPE INTEGER,P_MULTIVALUED
INTEGER,CONSTRAINT JCR_PK_MITEM PRIMARY KEY(ID))");
+ conn.commit();
+
+ // set the initializer
+ WorkspaceEntry newEntry =
+ helper.getNewWs("ws1", true, dsName, newValueStoragePath,
newIndexPath, workspaceEntry.getContainer(),
+ workspaceEntry.getContainer().getValueStorages());
+
+ WorkspaceInitializerEntry wiEntry = new WorkspaceInitializerEntry();
+ wiEntry.setType(RdbmsWorkspaceInitializer.class.getCanonicalName());
+
+ List<SimpleParameterEntry> wieParams = new
ArrayList<SimpleParameterEntry>();
+ wieParams.add(new
SimpleParameterEntry(SysViewWorkspaceInitializer.RESTORE_PATH_PARAMETER, new File(url
+ .getFile()).getParent()));
+
+ wiEntry.setParameters(wieParams);
+
+ newEntry.setInitializer(wiEntry);
+
+ RdbmsWorkspaceInitializerWrapper initializer =
+ new RdbmsWorkspaceInitializerWrapper(newEntry,
+ repositoryService.getRepository("db1").getConfiguration(),
cacheableDataManager, null, null, null,
+ (ValueFactoryImpl)valueFactory, null);
+
+ initializer.restoreTables(conn, "JCR_MITEM");
+ }
+ }
+ }
+
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/impl/core/RdbmsWorkspaceInitializerWrapper.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/impl/core/RdbmsWorkspaceInitializerWrapper.java 2010-12-07
13:24:01 UTC (rev 3606)
+++
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/impl/core/RdbmsWorkspaceInitializerWrapper.java 2010-12-07
13:29:10 UTC (rev 3607)
@@ -27,6 +27,8 @@
import
org.exoplatform.services.jcr.impl.dataflow.persistent.CacheableWorkspaceDataManager;
import java.io.IOException;
+import java.sql.Connection;
+import java.sql.SQLException;
import javax.jcr.PathNotFoundException;
import javax.jcr.RepositoryException;
@@ -62,4 +64,11 @@
{
super.restoreIndex();
}
+
+ public void restoreTables(Connection jdbcConn, String tableName) throws
RepositoryConfigurationException,
+ IOException, SQLException
+ {
+ super.restoreTable(jdbcConn, tableName);
+ }
+
}
Show replies by date