Author: snoopdave
Date: Tue Jun 19 08:12:43 2007
New Revision: 548758
URL: http://svn.apache.org/viewvc?view=rev&rev=548758
Log:
Refinements to Roller EZ install:
- Moved bootstrap logic from BootstrapFilter to new Struts Install action
- Replaced "please restart" messages with "click here to start using Roller"
- Added unknown error page for unexpected errors
- RollerContext is no longer a DatabaseScriptProvider
- All Struts actions now extend UIAction, no need for ApplicationAware
Added:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Install.java
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/ServletContextDatabaseScriptProvider.java
roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UnknownError.jsp
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/CreateDatabase.java
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/DatabaseError.java
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/UpgradeDatabase.java
roller/trunk/apps/weblogger/src/sql/droptables.sql
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml
roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/CreateDatabase.jsp
roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UpgradeDatabase.jsp
roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java
(original)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java
Tue Jun 19 08:12:43 2007
@@ -21,6 +21,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.utils.DatabaseCreator;
+import org.apache.roller.weblogger.business.utils.DatabaseUpgrader;
import org.apache.roller.weblogger.config.PingConfig;
import org.apache.roller.weblogger.config.RollerConfig;
@@ -58,7 +60,14 @@
/**
* Bootstrap the Roller Weblogger business tier.
*/
- public static final void bootstrap() {
+ public static final void bootstrap() throws WebloggerException {
+
+ if ("manual".equals(RollerConfig.getProperty("installation.type"))) {
+ if (DatabaseCreator.isCreationRequired()
+ || DatabaseUpgrader.isUpgradeRequired()) {
+ return;
+ }
+ }
// This will cause instantiation and initialziation of Roller impl
Roller roller = getRoller();
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java
(original)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java
Tue Jun 19 08:12:43 2007
@@ -33,7 +33,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.utils.DatabaseScriptProvider;
import org.apache.roller.weblogger.business.utils.DatabaseUpgrader;
import org.apache.roller.weblogger.config.RollerConfig;
import org.apache.roller.weblogger.business.RollerFactory;
@@ -42,6 +41,7 @@
import org.apache.roller.weblogger.ui.core.plugins.UIPluginManager;
import org.apache.roller.weblogger.ui.core.plugins.UIPluginManagerImpl;
import org.apache.roller.weblogger.ui.core.security.AutoProvision;
+import
org.apache.roller.weblogger.ui.struts2.core.ServletContextDatabaseScriptProvider;
import org.apache.roller.weblogger.util.cache.CacheManager;
import org.apache.velocity.runtime.RuntimeSingleton;
import org.springframework.context.ApplicationContext;
@@ -53,7 +53,7 @@
* Initialize the Roller web application/context.
*/
public class RollerContext extends ContextLoaderListener
- implements ServletContextListener, DatabaseScriptProvider {
+ implements ServletContextListener {
private static Log log = LogFactory.getLog(RollerContext.class);
@@ -79,9 +79,6 @@
// Keep a reverence to ServletContext object
this.servletContext = sce.getServletContext();
- // Save self to context as DatabaseScriptProvider
- this.servletContext.setAttribute("DatabaseScriptProvider", this);
-
// Call Spring's context ContextLoaderListener to initialize all
the
// context files specified in web.xml. This is necessary because
// listeners don't initialize in the order specified in 2.3
containers
@@ -126,7 +123,8 @@
// If installation type is manual, then don't run migraton scripts
if
("manual".equals(RollerConfig.getProperty("installation.type"))) {
if (DatabaseUpgrader.isUpgradeRequired()) {
- DatabaseUpgrader upgrader = new DatabaseUpgrader(this);
+ DatabaseUpgrader upgrader = new DatabaseUpgrader(
+ new ServletContextDatabaseScriptProvider());
upgrader.upgradeDatabase(false);
}
}
@@ -288,14 +286,6 @@
return servletContext;
}
-
- /**
- * Get database script as stream, path is relative to dbscripts directory.
- */
- public InputStream getDatabaseScript(String path) throws Exception {
- return getServletContext().getResourceAsStream("/WEB-INF/dbscripts/" +
path);
- }
-
/**
* Get an instance of AutoProvision, if available in roller.properties
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java
(original)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java
Tue Jun 19 08:12:43 2007
@@ -33,7 +33,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
import org.apache.roller.weblogger.business.DatabaseProvider;
-
+import org.apache.roller.weblogger.business.RollerFactory;
import org.apache.roller.weblogger.config.RollerConfig;
import org.apache.roller.weblogger.business.utils.DatabaseCreator;
import org.apache.roller.weblogger.business.utils.DatabaseUpgrader;
@@ -58,55 +58,27 @@
log.debug("Entered "+request.getRequestURI());
- if ("auto".equals(RollerConfig.getProperty("installation.type"))) {
-
+ if ("auto".equals(RollerConfig.getProperty("installation.type"))) {
// an auto-install is in progress, do some checks and if necessary
// redirect to error, db create or db upgrade page
// only do this if Roller is configured for auto-install and
- // only if request is NOT for install page or a style/script file
-
+ // only if request is NOT for install page or a style/script file
String requestURI = request.getRequestURI();
if ( requestURI != null
- && !requestURI.startsWith("/roller/roller-ui/install")
+ && requestURI.indexOf("/roller-ui/install") < 0
&& !requestURI.endsWith(".js")
&& !requestURI.endsWith(".css")) {
-
- // if cannot connect to database
- try {
- DatabaseProvider dp =
DatabaseProvider.getDatabaseProvider();
- } catch (RollerException e) {
- // we doing an install, so forward to informative database
error page
- RequestDispatcher rd =
-
context.getRequestDispatcher("/roller-ui/install/databaseError.rol");
+
+ if (!RollerFactory.isBootstrapped()) {
+ // we doing an install, so forward to installer
+ RequestDispatcher rd = context.getRequestDispatcher(
+ "/roller-ui/install/install.rol");
rd.forward(req, res);
return;
- }
-
- // if installation type 'auto' then check if upgrade required
- try {
- if (DatabaseCreator.isCreationRequired()) {
- // forward to database create page
- RequestDispatcher rd = context.getRequestDispatcher(
- "/roller-ui/install/createDatabase.rol");
- rd.forward(req, res);
- return;
- }
- if (DatabaseUpgrader.isUpgradeRequired()) {
- // forward to database upgrade page
- RequestDispatcher rd = context.getRequestDispatcher(
- "/roller-ui/install/upgradeDatabase.rol");
- rd.forward(req, res);
- return;
- }
- } catch (Throwable t) {
- // Exception at this point indicates something is
- // horribly wrong and there is no way to recover.
- throw new RuntimeException("FATAL error checking database
status", t);
}
}
}
-
chain.doFilter(request, response);
log.debug("Exiting "+request.getRequestURI());
}
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java
(original)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java
Tue Jun 19 08:12:43 2007
@@ -60,11 +60,15 @@
chain.doFilter(request, response);
} finally {
log.debug("Releasing Roller Session");
- RollerFactory.getRoller().release();
+ if (RollerFactory.getRoller() != null) {
+ RollerFactory.getRoller().release();
+ }
// if planet is enabled then release planet backend as well
- if(RollerConfig.getBooleanProperty("planet.aggregator.enabled")) {
- PlanetFactory.getPlanet().release();
+ if (RollerConfig.getBooleanProperty("planet.aggregator.enabled")) {
+ if (PlanetFactory.getPlanet() != null) {
+ PlanetFactory.getPlanet().release();
+ }
}
}
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/CreateDatabase.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/CreateDatabase.java?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/CreateDatabase.java
(original)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/CreateDatabase.java
Tue Jun 19 08:12:43 2007
@@ -18,26 +18,21 @@
package org.apache.roller.weblogger.ui.struts2.core;
-import com.opensymphony.xwork2.ActionSupport;
import java.sql.Connection;
import java.util.List;
-import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.DatabaseProvider;
import org.apache.roller.weblogger.business.utils.DatabaseCreator;
-import org.apache.roller.weblogger.business.utils.DatabaseScriptProvider;
import org.apache.roller.weblogger.config.RollerConfig;
-import org.apache.struts2.interceptor.ApplicationAware;
+import org.apache.roller.weblogger.ui.struts2.util.UIAction;
/**
* Walk user through database auto-creation process.
*/
-public class CreateDatabase extends ActionSupport implements ApplicationAware
{
- private static Log log = LogFactory.getLog(CreateDatabase.class);
-
- private DatabaseScriptProvider scripts = null;
+public class CreateDatabase extends UIAction {
+ private static Log log = LogFactory.getLog(CreateDatabase.class);
private boolean error = false;
private List<String> messages = null;
@@ -46,17 +41,17 @@
return SUCCESS;
}
- /**
- * Looks for DatabaseScriptProvider via key 'DatabaseScriptProvider'
- */
- public void setApplication(Map map) {
- if (map.get("DatabaseScriptProvider") != null) {
- scripts =
(DatabaseScriptProvider)map.get("DatabaseScriptProvider");
- }
+ public boolean isUserRequired() {
+ return false;
}
-
+
+ public boolean isWeblogRequired() {
+ return false;
+ }
+
public String create() {
- DatabaseCreator creator = new DatabaseCreator(scripts);
+ DatabaseCreator creator = new DatabaseCreator(
+ new ServletContextDatabaseScriptProvider());
try {
creator.createDatabase();
} catch (Exception ex) {
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/DatabaseError.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/DatabaseError.java?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/DatabaseError.java
(original)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/DatabaseError.java
Tue Jun 19 08:12:43 2007
@@ -18,20 +18,28 @@
package org.apache.roller.weblogger.ui.struts2.core;
-import com.opensymphony.xwork2.ActionSupport;
import java.io.StringWriter;
import java.util.List;
import org.apache.roller.RollerException;
import org.apache.roller.weblogger.business.DatabaseProvider;
import org.apache.roller.weblogger.config.RollerConfig;
+import org.apache.roller.weblogger.ui.struts2.util.UIAction;
/**
* Display error message about database.
*/
-public class DatabaseError extends ActionSupport {
+public class DatabaseError extends UIAction {
public String execute() {
return SUCCESS;
+ }
+
+ public boolean isUserRequired() {
+ return false;
+ }
+
+ public boolean isWeblogRequired() {
+ return false;
}
public String getProp(String key) {
Added:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Install.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Install.java?view=auto&rev=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Install.java
(added)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Install.java
Tue Jun 19 08:12:43 2007
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.ui.struts2.core;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.RollerException;
+import org.apache.roller.weblogger.business.DatabaseProvider;
+import org.apache.roller.weblogger.business.RollerFactory;
+import org.apache.roller.weblogger.business.utils.DatabaseCreator;
+import org.apache.roller.weblogger.business.utils.DatabaseUpgrader;
+import org.apache.roller.weblogger.ui.struts2.util.UIAction;
+
+/**
+ * Walk user through install process.
+ */
+public class Install extends UIAction {
+ private static Log log = LogFactory.getLog(Install.class);
+ private static final String DATABASE_ERROR = "database_error";
+ private static final String CREATE_DATABASE = "create_database";
+ private static final String UPGRADE_DATABASE = "upgrade_database";
+ private static final String UNKNOWN_ERROR = "unknown_error";
+ private Throwable rootCauseException = null;
+
+ public String execute() {
+
+ try {
+ DatabaseProvider dp = DatabaseProvider.getDatabaseProvider();
+ } catch (RollerException e) {
+ return DATABASE_ERROR;
+ }
+
+ try {
+ if (DatabaseCreator.isCreationRequired()) {
+ log.info("Forwarding to database table creation page");
+ return CREATE_DATABASE;
+ }
+ if (DatabaseUpgrader.isUpgradeRequired()) {
+ log.info("Forwarding to database table upgrade page");
+ return UPGRADE_DATABASE;
+ }
+ } catch (Throwable t) {
+ rootCauseException = t;
+ log.error("ERROR checking database status", t);
+ return UNKNOWN_ERROR;
+ }
+
+ try {
+ log.info("Attempting to bootstrap Roller");
+ RollerFactory.bootstrap();
+ } catch (Throwable t) {
+ rootCauseException = t;
+ log.error("ERROR bootstrapping Roller", t);
+ return UNKNOWN_ERROR;
+ }
+
+ return SUCCESS;
+ }
+
+ public boolean isUserRequired() {
+ return false;
+ }
+
+ public boolean isWeblogRequired() {
+ return false;
+ }
+
+ public Throwable getRootCauseException() {
+ return rootCauseException;
+ }
+
+ public String getRootCauseStackTrace() {
+ String stackTrace = "";
+ if (getRootCauseException() != null) {
+ StringWriter sw = new StringWriter();
+ getRootCauseException().printStackTrace(new PrintWriter(sw));
+ stackTrace = sw.toString().trim();
+ }
+ return stackTrace;
+ }
+}
+
Added:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/ServletContextDatabaseScriptProvider.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/ServletContextDatabaseScriptProvider.java?view=auto&rev=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/ServletContextDatabaseScriptProvider.java
(added)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/ServletContextDatabaseScriptProvider.java
Tue Jun 19 08:12:43 2007
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.weblogger.ui.struts2.core;
+
+import java.io.InputStream;
+import org.apache.roller.weblogger.business.utils.DatabaseScriptProvider;
+import org.apache.roller.weblogger.ui.core.RollerContext;
+
+/**
+ * Reads script from ServletContext.
+ */
+public class ServletContextDatabaseScriptProvider implements
DatabaseScriptProvider {
+
+ public InputStream getDatabaseScript(String path) throws Exception {
+ return RollerContext.getServletContext().getResourceAsStream(
+ "/WEB-INF/dbscripts/" + path);
+ }
+}
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/UpgradeDatabase.java
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/UpgradeDatabase.java?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
---
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/UpgradeDatabase.java
(original)
+++
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/UpgradeDatabase.java
Tue Jun 19 08:12:43 2007
@@ -18,44 +18,40 @@
package org.apache.roller.weblogger.ui.struts2.core;
-import com.opensymphony.xwork2.ActionSupport;
import java.sql.Connection;
import java.util.List;
-import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.DatabaseProvider;
-import org.apache.roller.weblogger.business.utils.DatabaseScriptProvider;
import org.apache.roller.weblogger.business.utils.DatabaseUpgrader;
import org.apache.roller.weblogger.config.RollerConfig;
-import org.apache.struts2.interceptor.ApplicationAware;
+import org.apache.roller.weblogger.ui.struts2.util.UIAction;
/**
* Walk user through database auto-upgrade process.
*/
-public class UpgradeDatabase extends ActionSupport implements ApplicationAware
{
- private static Log log = LogFactory.getLog(UpgradeDatabase.class);
-
- private DatabaseScriptProvider scripts = null;
+public class UpgradeDatabase extends UIAction {
+ private static Log log = LogFactory.getLog(UpgradeDatabase.class);
private boolean error = false;
private List<String> messages = null;
+
public String execute() {
return SUCCESS;
+ }
+
+ public boolean isUserRequired() {
+ return false;
}
- /**
- * Looks for DatabaseScriptProvider via key 'DatabaseScriptProvider'
- */
- public void setApplication(Map map) {
- if (map.get("DatabaseScriptProvider") != null) {
- scripts =
(DatabaseScriptProvider)map.get("DatabaseScriptProvider");
- }
+ public boolean isWeblogRequired() {
+ return false;
}
public String upgrade() {
- DatabaseUpgrader upgrader = new DatabaseUpgrader(scripts);
+ DatabaseUpgrader upgrader = new DatabaseUpgrader(
+ new ServletContextDatabaseScriptProvider());
try {
upgrader.upgradeDatabase(true);
} catch (Exception ex) {
Modified: roller/trunk/apps/weblogger/src/sql/droptables.sql
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/sql/droptables.sql?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
--- roller/trunk/apps/weblogger/src/sql/droptables.sql (original)
+++ roller/trunk/apps/weblogger/src/sql/droptables.sql Tue Jun 19 08:12:43 2007
@@ -21,6 +21,7 @@
drop table rag_group;
drop table rag_planet;
drop table rag_properties;
+drop table rag_config;
-- non-associated tables
drop table newsfeed;
Modified:
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
---
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
(original)
+++
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
Tue Jun 19 08:12:43 2007
@@ -733,10 +733,14 @@
installer.bannerTitleLeft=Apache Roller Weblogger
installer.bannerTitleRight=Auto-Installer
+# database error
installer.cannotConnectToDatabase=Cannot connect to database
installer.whatHappened=What happened?
installer.whatHappenedDatabaseConnectionError=\
-Here's what happened when Roller tried to establish a connection:
+A database error occurred, probably because your database connection is \
+misconfigured. You will have to fix this problem and then restart or redeploy \
+Roller before you can proceed. Here's what happened when Roller \
+tried to establish a connection:
installer.whyDidThatHappen=Why did that happen?
installer.aboutTheException=In case the clues above are not enough to help you
\
figure out what is going wrong, here are some more details. The root cause of \
@@ -744,7 +748,17 @@
installer.heresTheStackTrace=\
To help you debug the problem, here is the stack trace for that exception:
+# unknown error
+installer.unknownError=An unknown error has occurred
+installer.whatHappenedUnknown=An unknown and unexpected error occured when \
+Roller tried to check database status or bootstrap itself. Roller can't \
+determine what happened so you will have to look at your servers log files \
+and diagnose the problem yourself. Follow the instructons on the Roller wiki \
+and seek help from the <a href=\
+"http://cwiki.apache.org/confluence/display/ROLLER/Roller+Mailing+Lists"> \
+Roller user mailing list.
+# create tables
installer.noDatabaseTablesFound=No database tables found
installer.noDatabaseTablesExplanation=\
Roller is able to connect to your database of type [{0}], but found no tables.
@@ -753,10 +767,17 @@
installer.tablesCreated=Tables created successfully
installer.tablesCreatedExplanation=Database tables were created successfully \
as you can see below.
-installer.pleaseRestart=Before you start using Roller please restart or \
-redeploy the Roller web application.
+installer.tryBootstrapping=Database tables are present and up-to-date. \
+Click <a href="{0}">here</a> to complete the installation process and start \
+using Roller.
installer.errorCreatingTables=Error creating tables
+installer.errorCreatingTablesExplanation=Error creating tables, possibly due \
+to an error in the database creation script or because you are using an \
+unsupported database. You will have to fix this problem and then restart or \
+redeploy Roller before you can proceed. Below are the success/error messages \
+issued during the creation process:
+# upgrade tables
installer.databaseUpgradeNeeded=Database tables need to be upgraded
installer.databaseUpgradeNeededExplanation=\
Roller is able to connect to your database of type [{0}] and found tables, \
@@ -767,6 +788,11 @@
installer.tablesUpgradedExplanation=\
Database tables were upgraded successfully as you can see below.
installer.errorUpgradingTables=Error upgrading tables
+installer.errorUpgradingTablesExplanation=Error upgrading tables, possibly due
\
+to an error in the database creation script or because you are using an \
+unsupported database. You will have to fix this problem and then restart or \
+redeploy Roller before you can proceed. Below are the success/error messages \
+issued during the upgrade process:
# ----------------------------------------------------------------------- Login
Modified: roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml Tue Jun 19
08:12:43 2007
@@ -122,7 +122,7 @@
</package>
- <!-- Weblogger Admin UI (includes planet) -->
+ <!-- Weblogger install/bootstrap actions -->
<package name="weblogger-install" namespace="/roller-ui/install"
extends="weblogger">
<action name="databaseError"
@@ -130,6 +130,11 @@
<result name="success" type="tiles">.DatabaseError</result>
</action>
+ <action name="unknownError"
+
class="org.apache.roller.weblogger.ui.struts2.core.UpgradeDatabase">
+ <result name="success" type="tiles">.UnknownError</result>
+ </action>
+
<action name="createDatabase!*" method="{1}"
class="org.apache.roller.weblogger.ui.struts2.core.CreateDatabase">
<result name="success" type="tiles">.CreateDatabase</result>
@@ -140,6 +145,15 @@
<result name="success" type="tiles">.UpgradeDatabase</result>
</action>
+ <action name="install"
+ class="org.apache.roller.weblogger.ui.struts2.core.Install">
+ <result name="database_error" type="chain">databaseError</result>
+ <result name="create_database"
type="chain">createDatabase</result>
+ <result name="upgrade_database"
type="chain">upgradeDatabase</result>
+ <result name="unknown_error" type="tiles">.UnknownError</result>
+ <result name="success" type="chain">home</result>
+ </action>
+
</package>
Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/CreateDatabase.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/CreateDatabase.jsp?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/CreateDatabase.jsp
(original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/CreateDatabase.jsp Tue
Jun 19 08:12:43 2007
@@ -20,10 +20,9 @@
<s:if test="error">
<h2><s:text name="installer.errorCreatingTables" /></h2>
+ <p><s:text name="installer.errorCreatingTablesExplanation" /></p>
<pre>
-<s:iterator value="messages">
-<s:property/>
-</s:iterator>
+<s:iterator value="messages"><s:property/><br /></s:iterator>
</pre>
</s:if>
@@ -48,7 +47,11 @@
<h2><s:text name="installer.tablesCreated" /></h2>
<p><s:text name="installer.tablesCreatedExplanation" /></p>
- <p><s:text name="installer.pleaseRestart" /></p>
+ <p>
+ <s:text name="installer.tryBootstrapping">
+ <s:param><s:url value="/"/></s:param>
+ </s:text>
+ </p>
<pre>
<s:iterator value="messages"><s:property/><br /></s:iterator>
Added: roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UnknownError.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UnknownError.jsp?view=auto&rev=548758
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UnknownError.jsp (added)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UnknownError.jsp Tue Jun
19 08:12:43 2007
@@ -0,0 +1,39 @@
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. The ASF licenses this file to You
+ under the Apache License, Version 2.0 (the "License"); you may not
+ use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. For additional information regarding
+ copyright in this work, please see the NOTICE file in the top level
+ directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+
+<h2><s:text name="installer.unknownError" /></h2>
+
+<h3><s:text name="installer.whatHappened" /></h3>
+
+<p><s:text name="installer.whatHappenedUnknown" /></p>
+
+<h3><s:text name="installer.whyDidThatHappen" /></h3>
+
+<p>
+ <s:text name="installer.aboutTheException" />
+ [<s:property value="getRootCauseException().getClass().getName()" />]
+</p>
+
+<p><s:text name="installer.heresTheStackTrace" /></p>
+<pre>
+ [<s:property value="getRootCauseStackTrace()" />]
+</pre>
+
+<br />
+<br />
Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UpgradeDatabase.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UpgradeDatabase.jsp?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UpgradeDatabase.jsp
(original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/UpgradeDatabase.jsp Tue
Jun 19 08:12:43 2007
@@ -21,10 +21,9 @@
<s:if test="error">
<h2><s:text name="installer.errorUpgradingTables" /></h2>
+ <p><s:text name="installer.errorUpgradingTablesExplanation" /></p>
<pre>
-<s:iterator value="messages">
-<s:property/>
-</s:iterator>
+<s:iterator value="messages"><s:property/><br /></s:iterator>
</pre>
</s:if>
@@ -49,7 +48,11 @@
<h2><s:text name="installer.tablesUpgraded" /></h2>
<p><s:text name="installer.tablesUpgradedExplanation" /></p>
- <p><s:text name="installer.pleaseRestart" /></p>
+ <p>
+ <s:text name="installer.tryBootstrapping">
+ <s:param><s:url value="/"/></s:param>
+ </s:text>
+ </p>
<pre>
<s:iterator value="messages"><s:property/><br /></s:iterator>
Modified: roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml?view=diff&rev=548758&r1=548757&r2=548758
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml Tue Jun 19 08:12:43 2007
@@ -122,6 +122,12 @@
<put name="banner" value="/WEB-INF/jsps/tiles/bannerInstallation.jsp"
/>
</definition>
+ <definition name=".UnknownError" extends=".tiles-errorpage" >
+ <put name="content" value="/WEB-INF/jsps/core/UnknownError.jsp" />
+ <put name="footer" value="/WEB-INF/jsps/tiles/empty.jsp" />
+ <put name="banner" value="/WEB-INF/jsps/tiles/bannerInstallation.jsp"
/>
+ </definition>
+
<!-- global admin pages (and associates) -->
<definition name=".GlobalConfig" extends=".tiles-tabbedpage" >