<%-- - $RCSfile$ - $Revision$ - $Date$ --%> <%@ page import="java.lang.reflect.Method, java.beans.PropertyDescriptor, java.sql.Connection, org.jivesoftware.database.DbConnectionManager, java.io.File, java.sql.Statement, java.sql.SQLException, java.util.Map, org.jivesoftware.util.ClassUtils" %> <% // Figure out if we've already run setup: boolean doSetup = false; // try { // ServiceLookup lookup = ServiceLookupFactory.getServiceLookup(); // Class serviceLookupFactoryClass = loadClass("org.jivesoftware.messenger.container.ServiceLookupFactory"); // Method getLookupMethod = serviceLookupFactoryClass.getMethod("getServiceLookup",null); // Object serviceLookupObj = getLookupMethod.invoke(serviceLookupFactoryClass,null); // // // Container container = (Container)lookup.lookup(Container.class); // Method lookupMethod = serviceLookupObj.getClass().getMethod("lookup",new Class[]{java.lang.Class.class}); // Object containerObj = lookupMethod.invoke(serviceLookupObj,new Class[]{org.jivesoftware.messenger.container.Container.class}); // // // boolean isSetup = container.isSetupMode() // Method isSetupModeMethod = containerObj.getClass().getMethod("isSetupMode",null); // Object isSetupObj = isSetupModeMethod.invoke(containerObj,null); // boolean setupMode = ((Boolean)isSetupObj).booleanValue(); // // if (setupMode) { // doSetup = true; // } } catch (Throwable t) { //t.printStackTrace(); doSetup = true; } if (!doSetup) { response.sendRedirect("setup-completed.jsp"); return; } // embedded mode? boolean embeddedMode = false; try { ClassUtils.forName("org.jivesoftware.messenger.starter.ServerStarter"); embeddedMode = true; } catch (Exception ignored) {} // sidebar var for sidebar page - it has to be global. boolean showSidebar = true; %> <%! // Trys to load a class 3 different ways. Class loadClass(String className) throws ClassNotFoundException { Class theClass = null; try { theClass = Class.forName(className); } catch (ClassNotFoundException e1) { try { theClass = Thread.currentThread().getContextClassLoader().loadClass(className); } catch (ClassNotFoundException e2) { theClass = getClass().getClassLoader().loadClass(className); } } return theClass; } final PropertyDescriptor getPropertyDescriptor(PropertyDescriptor[] pd, String name) { for (int i=0; i<pd.length; i++) { if (name.equals(pd[i].getName())) { return pd[i]; } } return null; } boolean testConnection(Map errors) { boolean success = true; Connection con = null; try { con = DbConnectionManager.getConnection(); if (con == null) { success = false; errors.put("general","A connection to the database could not be " + "made. View the error message by opening the " + "\"" + File.separator + "logs" + File.separator + "error.log\" log " + "file, then go back to fix the problem."); } else { // See if the Jive db schema is installed. try { Statement stmt = con.createStatement(); // Pick an arbitrary table to see if it's there. stmt.executeQuery("SELECT * FROM jiveID"); stmt.close(); } catch (SQLException sqle) { success = false; errors.put("general","The Jive Messenger database schema does not " + "appear to be installed. Follow the installation guide to " + "fix this error."); } } } catch (Exception ignored) {} finally { try { con.close(); } catch (Exception ignored) {} } return success; } %>