Apache Roller 6.1.6
Scope installer table detection to the connection's catalog DatabaseInstaller.tableExists() passed a null catalog to DatabaseMetaData.getTables(). Connector/J 5.1 read that as "the current database", but Connector/J 8 reads it as every database on the server, having changed nullCatalogMeansCurrent to default to false. On a MySQL server hosting more than one Roller schema, that made isCreationRequired() find userrole and roller_user in some other database and report that this one was already installed. Roller then skipped table creation, fell through to isUpgradeRequired(), logged ERROR setting database version, and died with "Table '<schema>.roller_properties' doesn't exist" — while Tomcat reported only "One or more listeners failed to start", which sends you looking at the datasource rather than the metadata call. Pass con.getCatalog() instead. Drivers that do not use catalogs return null there, which is the query that was being made before. Also document that the initial-setup token is required for an upgrade that migrates the schema, not only for a new installation, and that 6.1.x to 6.1.6 needs no token at all. The install guide described only the new-installation case, in a section titled "Upgrading Roller". Verified: full build green (325 tests), and the Selenium InitialLoginTestIT end-to-end run passes against Derby, covering the token gate, first-administrator registration, weblog creation and entry rendering on a non-MySQL database. Claude-Session: https://claude.ai/code/session_015X69HHQ5XnjRkJP8ymzwFf
Apache Roller is a Java-based, full-featured, multi-user and group-blog server suitable for blog sites large and small. Roller is typically run with Apache Tomcat and MySQL. Roller is made up of the following Maven projects:
The Roller Install, User and Template Guides are available in ODT format (for OpenOffice or LibraOffice):
Hit the Roller Confluence wiki:
If you want to run Roller in production, then you should down load the latest official release and install it by following the Installation Guide, which you can find at the documentation link: https://github.com/apache/roller/tree/master/docs.
You probably should not run Roller in production using this technique, but it‘s a relatively easy way to try Roller for yourself. Assuming you’ve got a UNIX shell, Java, Maven and Git:
Get the code:
$ git clone https://github.com/apache/roller.git
Compile and build Roller:
$ cd roller $ mvn -DskipTests=true install
Run Roller in Jetty with an embedded Derby database (for testing only):
$ mvn jetty:run
Once Jetty is up and running browse to http://localhost:8080/roller to try to Roller.
Another way to try Roller is to use Docker. This is actually easier than running via Maven because you do not need Maven or Java. If you‘ve got Docker, here’s how you can run Roller for demo purposes.
Get the code:
$ git clone https://github.com/apache/roller.git
Run Docker Compose to build and launch Roller along with a PostgreSQL database:
$ cd roller $ docker-compose up
It will take a while to build and start the Docker image. Once it's done browse to http://localhost:8080/roller to try Roller.