Changeset 28218


Ignore:
Timestamp:
2013-09-05T12:35:09+12:00 (11 years ago)
Author:
sjm84
Message:

Should now create a database on server start

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

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)
Note: See TracChangeset for help on using the changeset viewer.