Smoke test the forked XML-RPC and AtomPub endpoints and cover OPML import

WebServicesIT is the only coverage of the servlets forked from javax-only libraries during the migration: it enables both APIs from the server admin page, lists the journey user's weblogs and publishes an entry over Blogger/MetaWeblog XML-RPC, verifies the entry renders on the blog, and fetches the AtomPub service document over basic auth. The new-user journey now also imports an OPML file and verifies the imported blogroll appears, guarding the second UploadedFilesAware conversion. The AtomPub check immediately caught a pre-existing bug where basic auth always returned 401, fixed in the Jakarta PR.
2 files changed
tree: 2cf4954c188e5648464eab2e1fc7403919714b98
  1. .github/
  2. app/
  3. assembly-release/
  4. binary-includes/
  5. db-utils/
  6. docker/
  7. docs/
  8. it-playwright/
  9. it-selenium/
  10. testing/
  11. .dockerignore
  12. .gitignore
  13. CONTRIBUTING.md
  14. doap_roller.rdf
  15. docker-compose.yml
  16. Dockerfile
  17. LICENSE.txt
  18. nbactions.xml
  19. NOTICE.txt
  20. pom.xml
  21. README.md
  22. version-rules.xml
README.md

Apache Roller

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:

  • roller-project: Top level project
  • app: Roller Weblogger webapp, JSP pages, Velocity templates
  • assembly-release: Used to create official distributions of Roller
  • docs: Roller documentation in ASCII Doc format
  • it-playwright: Browser tests for Roller using Playwright (run separately, see below)

Documentation

The Roller Install, User and Template Guides are available in ODT format (for OpenOffice or LibraOffice):

For more information

Hit the Roller Confluence wiki:

Installing Roller

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.

Quick start: Running via Maven

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 in-memory Derby database (for testing only):

$ mvn jetty:run

Once Jetty is up and running browse to http://localhost:8080/roller to try to Roller.

Quick start: running via Docker

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

The compose stack runs Roller against a PostgreSQL database with Keycloak as an OpenID Connect identity provider. Roller and your browser must both reach Keycloak at the same hostname, so add this line to /etc/hosts once:

127.0.0.1 keycloak

Run Docker Compose to build and launch everything:

$ 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/ and log in as admin/admin (administrator) or user/user (regular user).

Running the tests

Unit tests run as part of the normal build:

$ mvn install

Browser-based UI tests live in it-playwright and run against a started Roller, whichever way you started it. See it-playwright/README.md for instructions. CI runs both on every push and pull request.