tdraier 2005/04/19 13:14:18 CEST
Modified files:
src/java/org/jahia/update/db DBManager.java
src/java/org/jahia/update/core PatchSlide2.java
Log:
-use alter tables when creating tables
-drop tables at the end
-create one version per imported file
Revision Changes Path
1.6 +46 -70
jahia_update/src/java/org/jahia/update/core/PatchSlide2.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia_update/src/java/org/jahia/update/core/PatchSlide2.java.diff?r1=1.5&r2=1.6&f=h
1.4 +30 -2 jahia_update/src/java/org/jahia/update/db/DBManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia_update/src/java/org/jahia/update/db/DBManager.java.diff?r1=1.3&r2=1.4&f=h
Index: DBManager.java
===================================================================
RCS file:
/home/cvs/repository/jahia_update/src/java/org/jahia/update/db/DBManager.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DBManager.java 21 Oct 2003 11:25:11 -0000 1.3
+++ DBManager.java 19 Apr 2005 11:14:17 -0000 1.4
@@ -188,8 +188,17 @@
* True if table successfully created
*/
public boolean createTable(String tableName) {
-
- return query((String)_tableCreationScript.get(tableName));
+ if (query((String)_tableCreationScript.get(tableName))) {
+ List alters = getTableAlterations(tableName);
+ if (alters != null) {
+ for (Iterator iterator = alters.iterator();
iterator.hasNext();) {
+ String alter = (String) iterator.next();
+ query(alter);
+ }
+ }
+ return true;
+ }
+ return false;
}
/**
@@ -205,6 +214,10 @@
return (String)_tableCreationScript.get(tableName);
}
+ public List getTableAlterations(String tableName) {
+ return (List)_tableAlterScript.get(tableName);
+ }
+
/**
* Copy a table creation script to another.
* If the new name is the same, then the old one creation script will
removed.
@@ -285,6 +298,19 @@
createTableStr.length(),
tableCreation.indexOf("(")).trim();
_tableCreationScript.put(tableName, tableCreation);
}
+ String alterTableStr = "ALTER TABLE";
+ if (tableCreation .toUpperCase().indexOf(alterTableStr) !=
-1) {
+ String tableName = tableCreation.substring(
+ alterTableStr.length()).trim();
+ tableName = tableName.substring(0, tableName.indexOf('
'));
+
+ List alters = (List) _tableAlterScript.get(tableName);
+ if (alters == null) {
+ alters = new ArrayList();
+ _tableAlterScript.put(tableName, alters);
+ }
+ alters.add(tableCreation);
+ }
}
}
jahiaDBScriptBuffer.close();
@@ -296,6 +322,8 @@
private static HashMap _tableCreationScript = new HashMap();
+ private static HashMap _tableAlterScript = new HashMap();
+
private static String _dbScriptFileName;
private static Connection _dbConnection;
Index: PatchSlide2.java
===================================================================
RCS file:
/home/cvs/repository/jahia_update/src/java/org/jahia/update/core/PatchSlide2.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PatchSlide2.java 18 Apr 2005 09:41:34 -0000 1.5
+++ PatchSlide2.java 19 Apr 2005 11:14:17 -0000 1.6
@@ -25,7 +25,6 @@
private Map sites;
private Map objects;
private Map branches;
- private Map versions;
public PatchSlide2(PropertiesManager jahiaProps) {
System.out.println("PatchSlide2 initialized.");
@@ -46,14 +45,16 @@
ResultSet rs;
objects = new HashMap();
branches = new HashMap();
- versions = new HashMap();
PreparedStatement insertUri = dbManager.prepareStatement("insert
into jahia_sl2_uri values(?,?,?)");
PreparedStatement insertObject =
dbManager.prepareStatement("insert into jahia_sl2_object values(?,?)");
+ PreparedStatement insertVersion =
dbManager.prepareStatement("insert into jahia_sl2_version values(?,?)");
+ PreparedStatement insertVersionHistory =
dbManager.prepareStatement("insert into jahia_sl2_version_history
values(?,?,?,?)");
+ PreparedStatement insertBranch =
dbManager.prepareStatement("insert into jahia_sl2_branch values(?,?,?)");
rs = dbManager.selectFromTable("*", "jahia_slide_objects");
int uriId = 1;
-
+ int branchId = 1;
while (rs.next()) {
String uri = rs.getString(1);
String classname = rs.getString(2);
@@ -73,9 +74,36 @@
insertObject.setInt(1,uriId);
insertObject.setString(2,classname);
insertObject.executeUpdate();
+
+ String branch = "main";
+ int currentBranchId;
+ if (branches.containsKey(slidens+branch)) {
+ currentBranchId =
((Integer)branches.get(slidens+branch)).intValue();
+ } else {
+ currentBranchId = branchId++;
+ branches.put(slidens+branch, new
Integer(currentBranchId));
+ insertBranch.setInt(1, currentBranchId);
+ insertBranch.setString(2, branch);
+ insertBranch.setInt(3, nsId);
+ insertBranch.executeUpdate();
+ }
+
+ insertVersion.setInt(1,uriId);
+ insertVersion.setInt(2,0);
+ insertVersion.executeUpdate();
+
+ insertVersionHistory.setInt(1,uriId);
+ insertVersionHistory.setInt(2,uriId);
+ insertVersionHistory.setInt(3,currentBranchId);
+ insertVersionHistory.setString(4,"1.0");
+ insertVersionHistory.executeUpdate();
+
uriId ++;
}
insertObject.close();
+ insertVersion.close();
+ insertVersionHistory.close();
+ insertBranch.close();
PreparedStatement insertBinding =
dbManager.prepareStatement("insert into jahia_sl2_binding values(?,?,?)");
PreparedStatement insertParentBinding =
dbManager.prepareStatement("insert into jahia_sl2_parent_binding
values(?,?,?)");
@@ -123,70 +151,6 @@
// locks
- // revisions/versions
- PreparedStatement insertVersion =
dbManager.prepareStatement("insert into jahia_sl2_version values(?,?)");
-
- rs = dbManager.selectFromTable("*", "jahia_slide_revisions");
- while (rs.next()) {
- String uri = rs.getString(1);
- int isVersioned = rs.getInt(2);
- String initialRev = rs.getString(3);
- String slidens = rs.getString(4);
-
- if (objects.containsKey(slidens+uri)) {
- int id = ((Integer)objects.get(slidens+uri)).intValue();
-
- insertVersion.setInt(1,id);
- insertVersion.setInt(2,isVersioned);
- insertVersion.executeUpdate();
- }
- }
- insertVersion.close();
-
- PreparedStatement insertVersionHistory =
dbManager.prepareStatement("insert into jahia_sl2_version_history
values(?,?,?,?)");
- PreparedStatement insertBranch =
dbManager.prepareStatement("insert into jahia_sl2_branch values(?,?,?)");
-
- rs = dbManager.selectFromTable("*", "jahia_slide_revision");
- int versionId = 1;
- int branchId = 1;
- while (rs.next()) {
- String uri = rs.getString(1);
- String xnum = rs.getString(2);
- String branch = rs.getString(3);
- String slidens = rs.getString(4);
- JahiaSite siteByKey = (JahiaSite) sites.get(slidens);
- if (siteByKey == null) {
- continue;
- }
- int nsId = siteByKey.getId();
-
- if (objects.containsKey(slidens+uri)) {
- int id = ((Integer)objects.get(slidens+uri)).intValue();
-
- versions.put(slidens+uri+xnum, new Integer(versionId));
-
- int currentBranchId;
- if (branches.containsKey(slidens+branch)) {
- currentBranchId =
((Integer)branches.get(slidens+branch)).intValue();
- } else {
- currentBranchId = branchId++;
- insertBranch.setInt(1, currentBranchId);
- insertBranch.setString(2, branch);
- insertBranch.setInt(3, nsId);
- insertBranch.executeUpdate();
- }
-
- insertVersionHistory.setInt(1,versionId);
- insertVersionHistory.setInt(2,id);
- insertVersionHistory.setInt(3,currentBranchId);
- insertVersionHistory.setString(4,xnum);
- insertVersionHistory.executeUpdate();
- versionId++;
- }
- }
-
- insertVersionHistory.close();
- insertBranch.close();
PreparedStatement insertPermission =
dbManager.prepareStatement("insert into jahia_sl2_permissions
values(?,?,?,?,?,?,?)");
PreparedStatement getSucc = dbManager.prepareStatement("select
max(p.SUCCESSION) from JAHIA_SL2_PERMISSIONS p where p.OBJECT_ID = ?");
@@ -254,8 +218,8 @@
int protect = rs.getInt(7);
String slidens = rs.getString(8);
- if (versions.containsKey(slidens+uri+xnum)) {
- int id =
((Integer)versions.get(slidens+uri+xnum)).intValue();
+ if (objects.containsKey(slidens+uri)) {
+ int id = ((Integer)objects.get(slidens+uri)).intValue();
if ("displayname".equals(propName) && (value != null)) {
if (value.startsWith("<![CDATA[") &&
value.endsWith("]]>")) {
@@ -275,7 +239,7 @@
insertProperty.close();
dbManager.query("insert into jahia_autoids
values('JAHIA_SL2_URI',"+uriId+")");
- dbManager.query("insert into jahia_autoids
values('JAHIA_SL2_VERSION_HISTORY',"+versionId+")");
+ dbManager.query("insert into jahia_autoids
values('JAHIA_SL2_VERSION_HISTORY',"+uriId+")");
dbManager.query("insert into jahia_autoids
values('JAHIA_SL2_BRANCH',"+branchId+")");
File slideRoot = new File(path);
File[] sites = slideRoot.listFiles();
@@ -290,6 +254,18 @@
file.renameTo(new File(store, file.getName()));
}
}
+ dbManager.dropTable("jahia_slide_property");
+ dbManager.dropTable("jahia_slide_label");
+ dbManager.dropTable("jahia_slide_revision");
+ dbManager.dropTable("jahia_slide_branches");
+ dbManager.dropTable("jahia_slide_latestrev");
+ dbManager.dropTable("jahia_slide_workingrev");
+ dbManager.dropTable("jahia_slide_revisions");
+ dbManager.dropTable("jahia_slide_locks");
+ dbManager.dropTable("jahia_slide_permissions");
+ dbManager.dropTable("jahia_slide_links");
+ dbManager.dropTable("jahia_slide_children");
+ dbManager.dropTable("jahia_slide_objects");
} catch (Exception e) {
e.printStackTrace();
return false;