Dave Johnson on open web technologies, social software and Java
About three years ago I decided to modernize and improve the Apache Roller web UI by rewriting the JSP pages to use the Struts 2 Bootstrap tags, which use Twitter's Bootstrap v3 components and JavaScipt. I also wanted to replace all the HTML
table-based formatting with
div's and Bootstrap, do a bunch of other improvements and make Roller's web UI less clunky and annoying.
Converting Roller's eight-five JSP pages was a big task and I did not have much time for it. That's why it took three years. Ironically, the Roller modernization project leaves Roller three years out of date. Still, I think it is a huge improvement over the Roller v5 web UI and I want to get it released in Roller v6. Currently, this work is available as Pull Request #22 and you can find some screenshots there too. Here's one:
I also did some work to make it super-easy to try the Roller v6 snapshot pre-release for yourself, by using Docker Compose. You don't have to fiddle with Tomcat or PostgreSQL. You can find a simple Dockerfile for running Roller v2 snapshot and a docker-compose.yml file linked below. And you can find a Docker image in my DockerHub repo.If you want to try Roller v6 snapshot, here's what you need to do:
1 - If you don't aleady have it, install Docker
2 - Create a directory on your computer where you want Roller to store it's data.
3 - Save this file docker-compose.yml to that new directory.
4 - Open a shell in that new directory and run:
5 - Watch the PostgreSQL and Roller startup logs scroll by
6 - When the log scroll slows go to http://localhost:8080 to access Roller and go through the initial setup.
Alternatively, if you want to try Roller the hard way, you can get the regular-style v6 SNAPSHOT release files here roller/roller-6.0/v6.0.0.
version: '3.2' services: postgresql: image: "postgres:10.0" ports: - "5432:5432" deploy: resources: limits: memory: 50M volumes: - type: bind source: /var/lib/postgresql/data target: /var/lib/postgresql/data environment: - POSTGRES_USER=roller - POSTGRES_DB=rollerdb - POSTGRES_PASSWORD_FILE=/run/secrets/pg_passwd secrets: - source: db_passwd target: pg_passwd roller: image: "rwo:latest" ports: - "80:8080" depends_on: - postgresql deploy: resources: limits: memory: 800M volumes: - type: bind source: /var/lib/roller target: /var/lib/roller environment: - DB_HOST=postgresql - STORAGE_ROOT=/var/lib/roller - JAVA_OPTS="-Xmx700m" secrets: db_passwd: file: ./db_passwd.txtIt was a pain, but sometimes pain = gain and I learned a lot. I'm hoping the site will be a bit more stable now.