Changeset 28218

Show
Ignore:
Timestamp:
05.09.2013 12:35:09 (6 years ago)
Author:
sjm84
Message:

Should now create a database on server start

Location:
main/trunk/greenstone3/src/java/org/greenstone/gsdl3
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/Authentication.java

    r28210 r28218  
    177177        this.short_service_info.appendChild(getUserInformation_service); 
    178178 
     179        DerbyWrapper.createDatabaseIfNeeded(); 
     180         
    179181        NodeList recaptchaElems = info.getElementsByTagName("recaptcha"); 
    180  
    181182        for (int i = 0; i < recaptchaElems.getLength(); i++) 
    182183        { 
     
    847848        // check the usersDb database, if it isn't existing, check the etc dir, create the etc dir if it isn't existing, then create the  user database and add a "admin" user 
    848849        String usersDB_dir = GlobalProperties.getGSDL3Home() + File.separatorChar + "etc" + File.separatorChar + "usersDB"; 
    849  
    850850        DerbyWrapper derbyWrapper = new DerbyWrapper(usersDB_dir); 
    851  
    852         File usersDB_file = new File(usersDB_dir); 
    853         if (!usersDB_file.exists()) 
    854         { 
    855             String etc_dir = GlobalProperties.getGSDL3Home() + File.separatorChar + "etc"; 
    856             File etc_file = new File(etc_dir); 
    857             if (!etc_file.exists()) 
    858             { 
    859                 boolean success = etc_file.mkdir(); 
    860                 if (!success) 
    861                 { 
    862                     logger.error("Couldn't create the etc dir under " + GlobalProperties.getGSDL3Home() + "."); 
    863                     return null; 
    864                 } 
    865             } 
    866             derbyWrapper.createDatabase(); 
    867         } 
    868  
    869851        return derbyWrapper; 
    870852    } 
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/DerbyWrapper.java

    r28210 r28218  
    1919package org.greenstone.gsdl3.util; 
    2020 
     21import java.io.File; 
    2122import java.sql.Connection; 
    2223import java.sql.DriverManager; 
     
    3031 
    3132import org.greenstone.gsdl3.service.Authentication; 
     33import org.greenstone.util.GlobalProperties; 
    3234 
    3335public class DerbyWrapper 
     
    4042    static final String DATA = "data"; 
    4143    private Connection conn = null; 
    42     private String protocol_str; 
     44    private static String protocol_str; 
    4345 
    4446    public DerbyWrapper(String dbpath) 
    4547    { 
    4648        connectDatabase(dbpath, false); 
     49    } 
     50 
     51    public static void createDatabaseIfNeeded() 
     52    { 
     53        String usersDB_dir = GlobalProperties.getGSDL3Home() + File.separatorChar + "etc" + File.separatorChar + "usersDB"; 
     54        File usersDB_file = new File(usersDB_dir); 
     55        if (!usersDB_file.exists()) 
     56        { 
     57            String etc_dir = GlobalProperties.getGSDL3Home() + File.separatorChar + "etc"; 
     58            File etc_file = new File(etc_dir); 
     59            if (!etc_file.exists()) 
     60            { 
     61                boolean success = etc_file.mkdir(); 
     62                if (!success) 
     63                { 
     64                    System.err.println("Couldn't create the etc dir under " + GlobalProperties.getGSDL3Home() + "."); 
     65                } 
     66            } 
     67            try 
     68            { 
     69                DerbyWrapper.createDatabase(DriverManager.getConnection(protocol_str + ";create=true")); 
     70            } 
     71            catch (Exception ex) 
     72            { 
     73                ex.printStackTrace(); 
     74            } 
     75        } 
    4776    } 
    4877 
     
    154183    } 
    155184 
    156     public void createDatabase() 
     185    public static void createDatabase(Connection conn) 
    157186    { 
    158187        try 
     
    169198            conn.commit(); 
    170199            state.close(); 
     200            conn.close(); 
    171201        } 
    172202        catch (Exception ex)