Skip to content

Changes & Completed Tasks

Brett Vachon edited this page Jun 7, 2026 · 10 revisions

Changes on 6 June 2026

  • Added cron.yaml and deleted cron.xml

  • Updated instructions for properly scheduling cron jobs in App Engine.

  • Implemented proper logging at the correct level to show up in Appengine logs

Changes on 5 June 2026

  • Switched out.println to resp.getWriter().println inside the cron servlet

  • Changed servlet methods to public inside the BloviateServlet

  • Moved the setup form generation from the private helper function inside the main doGet

  • Removed help messages since instructions are in the Readme

  • Improved error handling and responses in the main Bloviate servlet

Changes on 9 March 2026

  • Deleted the Manifest file and the lib directory containing the JAR files, as well as the weird classpath directory, gitignore and anything generated by Eclipse.

  • Used Maven and deleted the jar files in the lib directory (Maven will provide the updated JARs)

  • Implemented pom.xml for the dependences. Appengine plugin included in the pom.xml

  • Added Blogger API library to Maven dependencies in pom.xml

  • Added AppEngine Plugin to Maven plugins in pom.xml

  • Update to Java 17 runtime for the Google App Engine: Added version 17 runtime to appengine* web.xml

  • Empty the index.html File

  • Changed the Favicon from the Appengine default

  • Changed web.xml xmlns version to 3.1.

  • Updated web.xml to lists the servlets and their mapping (the URLs used to access each servlet, or which servlet address points to which file). The welcome* file* list shows the URL mapping of BloviateServlet.

  • Added security constraint for the cron job to web.xml

  • Fixed the cron.xml to point to the correct servlet

  • Deleted configuration files blogger.properties and oauth.properties, as well as wordnik.properties since this library doesn’t work.

  • Removed the need for properties which were read from an external file, and instead handle the strings from the datastore.

  • Replaced APP_NAME (from the old blogger.properties file) and scopes (the URL from the old oauth.properties file) in appengine* web.xml with environment variables.

  • Changed package name & directory structure to io.github.brettvac.bloviate

  • Moved the logic to authorize and initiate the callback to a Service class instead of it being located inside the “root” main servlet file (one* trick pony style).

Changes on 31 May 2026

  • Added Desired version of the Cloud SDK to prevent Maven auto-updating

  • Cleaned up the dependencies which were unneeded inside pom.xml

  • Added the business logic to authorize blogger posting to the service file (the method inside the class called PostToBloggerServlet which simply posts the content created inside the business logic)

Changes on 1 June 2026

  • Updated maven-compiler-plugin by adding groupId and version 2.8.7 as well as changed the cloud SDK version to 539.0.0 to better align to version 2.0.39 of the appengine sdk inside pom.xml

  • Added Harsh wordnik api key and filename as environment variables to the appengine-web.xml file which are retrieved in the service file

  • Moved the logic to create a post in the service file into a separate function

  • Added the static file that contains a list of ‘seed’ words for getting sentences from Wordnik

  • Implemented wordnik API functionality to build a post from Wordnik using seed words instead of grabbing sentences from a static file.

  • Modified the title for new and returning users

  • Modified the posttoblogger method in the service file to return data from the blog post so the output can appear entirely in the servlet instead of the service file

  • Removed the output writer from the posttoblogger method signature

  • Improved the blog post and error handling output inside the cron job servlet

  • Improved handling of invalid wordnik API key

  • Added a max retries count to avoid endless retries to Wordnik if no valid word is found

Implemented a more robust check for stale or missing credentials

Clone this wiki locally