1 6 7 package org.contineo.actions.setup; 8 9 import javax.servlet.http.HttpServletRequest ; 10 import javax.servlet.http.HttpServletResponse ; 11 import org.apache.log4j.Level; 12 import org.apache.log4j.Logger; 13 import org.apache.struts.action.Action; 14 import org.apache.struts.action.ActionError; 15 import org.apache.struts.action.ActionErrors; 16 import org.apache.struts.action.ActionForm; 17 import org.apache.struts.action.ActionForward; 18 import org.apache.struts.action.ActionMapping; 19 import org.contineo.core.LoggingManager; 20 import org.contineo.core.config.RepositoryConfigurator; 21 import org.contineo.forms.ConnectionForm; 22 import org.contineo.setup.DBInit; 23 import org.contineo.setup.DBProtocol; 24 29 public class SetDBAction extends Action { 30 31 35 private Logger logger; 36 37 38 39 public SetDBAction() { 40 logger = LoggingManager.getLogger(this.getClass()); 41 } 42 43 public ActionForward execute(ActionMapping mapping, 44 ActionForm form, HttpServletRequest request, 45 HttpServletResponse response) { 46 ActionErrors errors = new ActionErrors(); 47 ActionForward actionForward = new ActionForward(); 48 try { 49 ConnectionForm cform = (ConnectionForm)form; 50 RepositoryConfigurator conf = new RepositoryConfigurator(); 51 conf.setAttribute("contineo", "dbalias", cform.getDbalias()); 52 conf.setAttribute("contineo", "platform", cform.getDbms()); 53 conf.setAttribute("contineo", "default-connection", "true"); 54 conf.setAttribute("contineo", "driver", cform.getClazz()); 55 conf.setAttribute("contineo", "password", cform.getPassword()); 56 conf.setAttribute("contineo", "protocol", cform.getProtocol()); 57 conf.setAttribute("contineo", "subprotocol", cform.getSubprotocol()); 58 conf.setAttribute("contineo", "username", cform.getUser()); 59 conf.toXML(); 60 DBInit init; 61 if (cform.getDbms().equals("MySQL")) 62 init = new DBInit("mysql.sql"); 63 else 64 if (cform.getDbms().equals("Firebird")) 65 init = new DBInit("firebird.sql"); 66 else 67 init = new DBInit("sql92.sql"); 68 if (init.testConnection()) { 69 String result = init.generate(); 70 DBProtocol prot = new DBProtocol(); 71 prot.setLogs(result); 72 request.setAttribute("protocol", prot); 73 actionForward = mapping.findForward("initdb"); 74 } else { 75 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.dbfailed")); 76 actionForward = mapping.findForward("choosedb"); 77 } 78 } catch (Exception e) { 79 if (logger.isEnabledFor(Level.ERROR)) 80 logger.error(e.getMessage()); 81 actionForward = mapping.findForward("error"); 82 } 83 saveErrors(request, errors); 84 return actionForward; 85 } 86 } 87 | Popular Tags |