import java.io.File; import java.io.PrintWriter; import java.io.IOException; import java.io.FilenameFilter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import static com.zucchetti.sitepainter.Library.Empty; import com.zucchetti.sitepainter.Library; import com.zucchetti.SPBridge.SPJSPBridge; public class SPDBAdministration extends SPServlet implements SPInvokable { static public class ServletStatus extends SPPageServletStatus { } public void init(ServletConfig config) throws ServletException { super.init(config); entityGlobals.name = "SPDBAdministration"; entityGlobals.userName = "SPDBAdministration"; } public void doProcess(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException { ServletStatus status = new ServletStatus(); SPParameterSource source = SPLib.GetSource(request); status.request=request; status.response=response; status.containing = this; status.context = SPLib.GetContext(SPLib.GetContextID(request), request); status.m_cTheme = SPLib.GetTheme(status.context); status.m_cBrowser = SPLib.GetBrowser(request); SPLib.SetContentType(response); status.out=response.getWriter(); status.out.println(""); status.out.println(""); status.out.println("
"); status.out.println(""+status.context.Translate("MSG_ACC_NOT_ALLOWED")+"
"); } else { String result; boolean administrated=false; //action indica l'operazione da eseguire String action = source.GetParameter("action", "dbadmin"); //forceExecute obbliga il DBAdm a eseguire l'amministrazione ignorando che la data del plan non e' cambiata boolean forceExecute = source.GetParameter("force", false); //showSql indica se visualizzare o meno il codice eseguito nul database boolean showSql = source.GetParameter("showsql", true); String initializeDataFrom = status.context.GetInitializeDataFrom(); String defaultFrom = ( source.GetParameter("importData", false) ? initializeDataFrom : ""); String importDataFromConfig = source.GetParameter("importDataFrom",defaultFrom); DBAdm dbadm = new DBAdm(status.context, new SPXDCReaderFactory(status.context.GetInstance()), SPLib.GetClassesPath(servletContext), action); if (!"".equals(importDataFromConfig) && !status.context.GetInstance().equals(importDataFromConfig) && !"".equals(CPPooler.GetServer(importDataFromConfig))) { dbadm.setImportDataFrom(importDataFromConfig,source.GetParameter("RemoveExistingData",false)); } if ("dbadmin_preview".equals(action)) { String modifiedXDCFiles = CPLib.MustAdmin(status.context, new SPXDCReaderFactory(status.context.GetInstance()), SPLib.GetClassesPath(servletContext)); status.out.println(""); if (!(CPLib.Empty(modifiedXDCFiles) || CPLib.eq(modifiedXDCFiles, "ALL"))) { if ( ! CPLib.eq(modifiedXDCFiles, "ALL_TOINIT") ) { status.out.print(""+status.context.Translate("ADMIN_DATABASE_NO_OPERATION")+".
"; } else if (CPLib.eq(result, "ERROR_DB_LOGIN")) { result = ""+status.context.Translate("ADMIN_DATABASE_ERROR_LOGIN")+".
"; result += ""; } else if (CPLib.eq(result, "NOT_RUN")) { result = ""+status.context.Translate("ADMIN_DATABASE_DESIGN_NOT_MODIFIED")+". "+status.context.Translate("ADMIN_DATABASE_RUN_ANYWAY")+".
"; } else if (CPLib.eq(result, "ERROR_REGISTRY")) { result = ""; status.out.println(""+status.context.Translate("ADMIN_DATABASE_NOT_COMPLETE")+"
"); com.zucchetti.PortalStudio.JSPLib.PutMustAdminDatabase(status.context.GetInstance(),false); } else { if (CPLib.eq(result, "DO_SOMETHING")) result=""; administrated=true; } status.out.println(result); if(administrated){ status.out.println(""+status.context.Translate("ADMIN_DATABASE_COMPLETE")+"
"); com.zucchetti.PortalStudio.JSPLib.PutMustAdminDatabase(status.context.GetInstance(),false); } } else { status.out.println("");
status.out.println(status.context.Translate("System tables created")+"
");
status.out.println(status.context.Translate("Database administration script created"));
status.out.println("
");
if (CPLib.Empty(result)) {
status.out.println("
"+status.context.Translate("System tables created successfully")+".
");
}
else if (CPLib.eq(result, "NOT_RUN")) {
status.out.println("
"+status.context.Translate("System tables already exist")+".
");
}
else {
status.out.println("
"+CPLib.Strtran(result, "\n", "
"));
}
status.out.println("
");
status.out.println("
"+CPLib.Strtran(result, "\n", "
"));
status.out.println("
"+status.context.Translate("Language added successfully")+"
"); } try { CPPooler.ReloadTableNames2(); } catch(Exception e) { } } else { result = status.context.Translate("Errors while adding language")+"."; } status.out.println("