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;
  

Reply via email to