A client of mine asked me to develop a simple standalone desktop app to deliver to his clients as part of an ez-publish extension he developed
The aim of this app was to automatically download files provided by the ez-publish installation to allow external workflows

I developed this app in Java to ensure portability
I used AWT as a graphic library, GSON for (de)serializing requests and the apache-commons to manage the actual comunication

As usual using the appropriate libraries made the work simple enough
The first setup of the app needed the user to input the correct credentials to authenticate with the server
After that the the workflow was:
query remote point to obtain list of items
Recover each item’s URL and start download
render each item with a progress bar and append them to a Jpanel
Start download in a dedicated Thread and provide feedback to the user using the progressbar
After download has finished remove the progress bar and give feedback to the user
If the content was zipped unzip it

A first version rendered also controls for each downloadable element to let the user start stop pause the download process, but we came to the conclusion that in this specific scenario we needed as little interactivity as possible, so I removed them and switched to a fully automatic polling approach

Authentication is obtained by means of a POST
Subsequent requests are managed through cookies
If the authentication fails it gets renewed and the app tries at least MAX_FAILED_LOGIN_ATTEMPTS times before warning the user that credentials are invalid

All in all a simple but effective app

Leave a Reply

Your email address will not be published. Required fields are marked *

ERROR: si-captcha.php plugin says GD image support not detected in PHP!

Contact your web host and ask them why GD image support is not enabled for PHP.

ERROR: si-captcha.php plugin says imagepng function not detected in PHP!

Contact your web host and ask them why imagepng function is not enabled for PHP.