Index: lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/Deploy.java =================================================================== diff -u -r58266b05c67b9cc6cdf82200ccfce53a1f057fec -ra0f5bd2914dcf89a62fc3f9125fb6a8b72df1a7e --- lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/Deploy.java (.../Deploy.java) (revision 58266b05c67b9cc6cdf82200ccfce53a1f057fec) +++ lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/Deploy.java (.../Deploy.java) (revision a0f5bd2914dcf89a62fc3f9125fb6a8b72df1a7e) @@ -107,7 +107,14 @@ // updates the lams_tool table with the lams_version dbUpdater.execute(); - // TODO update scripts + // Run update scripts if present + ToolDBDeployTask dbDeployTask = new ToolDBDeployTask(); + dbDeployTask.setDbUsername(config.getDbUsername()); + dbDeployTask.setDbPassword(config.getDbPassword()); + dbDeployTask.setDbDriverClass(config.getDbDriverClass()); + dbDeployTask.setDbDriverUrl(config.getDbDriverUrl()); + dbDeployTask.setToolUpdateScriptPath(config.getToolUpdateScriptPath()); + dbDeployTask.runToolUpdateScript(config.getToolUpdateScriptPath()); // deploy the jar and war files System.out.println("Deploying files to ear"); Index: lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/ToolDBDeployTask.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -ra0f5bd2914dcf89a62fc3f9125fb6a8b72df1a7e --- lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/ToolDBDeployTask.java (.../ToolDBDeployTask.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/ToolDBDeployTask.java (.../ToolDBDeployTask.java) (revision a0f5bd2914dcf89a62fc3f9125fb6a8b72df1a7e) @@ -57,6 +57,11 @@ private String toolTablesScriptPath; /** + * Holds value of property toolUpdateScriptPath + */ + private String toolUpdateScriptPath; + + /** * Holds value of property toolId. */ private long toolId; @@ -79,6 +84,15 @@ } /** + * Setter for property toolUpdateFile. + * @param toolUpdateFile New value of property toolUpdateFile. + */ + public void setToolUpdateScriptPath(String toolUpdateScriptPath) + { + this.toolUpdateScriptPath = toolUpdateScriptPath; + } + + /** * Setter for property toolInsertFile. * @param toolInsertFile New value of property toolInsertFile. */ @@ -371,6 +385,30 @@ } } + + public void runToolUpdateScript (final String scriptSQL) + { + try + { + File updateScript = new File(scriptSQL); + if (updateScript.exists()) + { + System.out.println("Updating database with script: " + scriptSQL); + Connection conn = this.getConnection(); + runScript(readFile(updateScript), conn); + conn.close(); + System.out.println("Database updated"); + } + else + { + System.out.println("No update file found at " +scriptSQL+ ", continuing install without database update script."); + } + } + catch (SQLException se) + { + throw new DeployException("Failed to execute update script: " + scriptSQL); + } + } /** * Getter for property defaultContentId. Index: lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/ToolDBUpdater.java =================================================================== diff -u -r58266b05c67b9cc6cdf82200ccfce53a1f057fec -ra0f5bd2914dcf89a62fc3f9125fb6a8b72df1a7e --- lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/ToolDBUpdater.java (.../ToolDBUpdater.java) (revision 58266b05c67b9cc6cdf82200ccfce53a1f057fec) +++ lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/ToolDBUpdater.java (.../ToolDBUpdater.java) (revision a0f5bd2914dcf89a62fc3f9125fb6a8b72df1a7e) @@ -45,16 +45,15 @@ // Holds value of property toolCompatibleversion private String toolCompatibleVersion; - // Holds value property toolExists + // Holds value of property toolExists private boolean toolExists; - // Holds value property toolNewer + // Holds value of property toolNewer private boolean toolNewer; - // Holds value property compatibleVersion + // Holds value of property compatibleVersion private boolean compatibleVersion; - /** * Creates instance of ToolDBUpdater */ @@ -225,7 +224,7 @@ public boolean getToolNewer() {return this.toolNewer;} /** - * @return returns the toolCompatibleVersion + * @return Returns the toolCompatibleVersion */ public String getToolCompatibleVersion() {return this.toolCompatibleVersion;} @@ -238,4 +237,5 @@ * @return True if tool is compatible with the server version in the db */ public boolean getToolCompatible() {return this.compatibleVersion;} + }