Persistence, Persistence, Persistence! – TrayRSS

Well, if you are a code esthete, you won’t be happy with trayrss. The way it was. I wrote many tests and began to refactore it. Read more about my progress.

criss cross

messy mason
messy mason by Brittany Randolph

Well, if you are a code esthete, you won’t be happy with Trayrss. I did a messy work in the beginning and if you gain technical dept you have technical dept. Fact. I could find excuses (it was a tech playground for me and it has grown, and so on …) but let me be honest, I could have done better.

And be honest to yourself, do you really like your coding from about 4 years ago?

So now it’s time to pay for my depts.

garbage man

I’ve started to clean up my code in the previous release. But big refactorings are risky, even more if there is poor unit test coverage. So the plan is to reimplement the modules of Trayrss. First of all I decided to add more structure by declaring some modules like gui, service, domain and persistence. I moved the old code in the new packages, knowing that I will not be able to separate the concerns completely.

To gain code quality I’ve picked one of this packages in this release, the persistence layer, and started to rewrite it from scratch. The good, the bad and the ugly – yep the old persistence was two of it and to bad that every other component got in touch with it!

Rettet die Ampelmännchen!
Rettet die Ampelmännchen! by Kyle Gradinger

So I wrote tests, unit tests, well I should better call most of them integration tests. They represented the state of the code when I began to refactor and to clean up the mess. While bringing structure to the code, I wrote even more tests matching the new needs. Frist failing, a bit later changing to green. And at the end I had a simple api for my persistence, fascading every database access. The other components now don’t need to care about transactions, lazy loading, storing any more. And if I have to add or change something in the future, it will be easily verified due to my tests! Success!

collecting eggs

With this new fundament I’m convinced that I can move TrayRSS and it’s gui to a new level, increasing the user experience. To reach this goal in the next iteration I’d like to rebuild the tray menu with JavaFX and explore the promised compability of Swing and JavaFX by integrating the old configuration dialogs with it. Don’t worry, this old dialogs will be replaced in future releases too.

be gentle

If you like to help me with this work, or just want watch how messy my code really is, I’ve got good news for you. I will release the source TrayRSS on Github within the next release. So stay tuned for upcoming updates on TrayRSS or get the newest release on the official homepage.

Eggs von Spamily

Ähnliche Artikel:

TrayRSS the rise of the newsreader

TrayRSS is going to get a new dimension from notification to storage. This means that a lot of work has to be done before i’m happy with it. So please be patient and treat TrayRSS as what it is: evolving.

Bye, bye Google Reader

Google Reader will be suspended

Well, we all heared about it. Google has announced that Google Reader, their RSS web service, will be suspended on 1st of july 2013. Although there were loyal followers, they said, that the usage has declined. I was one of those followers, and many friends of mine were too. Damn you social web! You were not supposed to manage news data, you were always just a possibility to view the current snapshot.

And now?

There are some alternatives you can use like NewsBlur, Feedly, The Old Reader or Pulse. But they have all some drawbacks. Like the usage of a browser plugin, some restrictions to get fees, only login via facebook/openid or just to much desigend for „touch“.

Or you can just sign a petition to perhaps get your reader back.


Well i don’t know the alternative that brings me over the winter. But i know what i want to use afterwards! In September 2011 i’ve stopped developing my own desktop RSS Tool: TrayRSS. With the strong competitor from google i thought i would not use it by myself in the near future. I was wrong. And at the beginning of this year i decided to start the development of TrayRSS again to make it the tool i would like to use!


TrayRSS is evolving. Emerged from the idea of a friend to just have some kind of alert for a single RSS thread, it changed to a multifeed monitoring software, reminding the users in regular time intervalls when new content was spotted. As a reminder for a few feeds good enough, but not what i was looking for. Compared to RSSOwl, some simply key feature are missing.

  • A window to manage the feed items. To read them, to mark them for later usage, to share them or search in them.
  • Additionally the state of the feeds should possible to be synchronized to different devices. (Perhaps with an web back end)

With this key features, i would use it by myself!

first small steps

And there is a new release allready! This development increment of TrayRSS was about the user data. TrayRSS now stores the user data like the configuration, the log and most important the feed data within the user directory. But the user has the possibility to change this behaviour. In the root directory of TrayRSS are two properties files, letting the user choose the destination of logs and feed data. You can link your TrayRSS with your cloud storage of preference and can enjoy shared data.

Also a lot of internal changes has happened too, to be ready for upcoming changes.

Get TrayRSS 1.3 from the official home page!

and now?

Google has provieded a possibility to take out the feed data as an XML export. Now TrayRSS will hopefully be able to handle this in time. Therefore the next step is to provide an extended interface so the user can handle the data.

TrayRSS is going to get a new dimension from notification to storage. This means that a lot of work has to be done before i’m happy with it. So please be patient and treat TrayRSS as what it is: evolving.

Watch out for the next release of TrayRSS, bye!

Ähnliche Artikel:

TrayRSS Sideproject: RssSearch Version 0.0.2

RssSearch – A simple open source tool to search the source of a feed entry. You can provide keywords, and search for any feed matching one or all of the keywords. Soon this function will be integrated in TrayRSS – see how it works in this article.

Jump to english version

Hallo da draußen!

Vor nicht all zu langer Zeit trat ein Besucher meiner Webseite mit einer Frage an mich heran:

Für mich ist es wichtig Schlagworte und Phrasen auch auf (oder gerade nur auf) der original News-Webseite zu finden. […] Kennst du Programme die das leisten?

Zu dem gegebenen Zeitpunkt musste ich dies verneinen. Waren weder TrayRSS noch die mir bekannten Konkurrenz Programme dazu im Stande. Sogleich habe ich diese Funktionalität in die Roadmap von TrayRSS aufgenommen.

Doch leider wird bis dahin noch einiges an Zeit vergehen, stehen, damit alles gut zusammenspielt, doch noch einige andere Änderungen an TrayRSS ins Haus, wie zB. die grafisch überarbeitete Notifikation (Geplant für 1.3.0 – Roadmap von TrayRSS). Diese soll unter anderem leichter um zusätzliche Funktionen erweiterbar sein, um zukünftig mit dem angedachten Feedbrowser, zur Anzeige und Sortierung sämtlicher Feedeinträge, zusammenspielen zu können.

Ohne diesen Feedbrowser wäre eine entsprechende Suchfunktion meiner Meinung nach  nicht sinnvoll umzusetzen. Daher habe ich mich diese Woche hingesetzt und für Alle die eine ähnliche Funktion suchen ein kleines Tool geschrieben:


Dieses Tool ist denkbar simpel gehalten und war ein Vorabtest der Möglichkeiten und der beanspruchten Zeit für eine Tiefensuche. Es bietet dem Benutzer die Möglichkeit Feeds nach einem oder mehreren Schlagwörtern zu durchsuchen.

Geschrieben wurde es in Java und setzt daher ein installiertes Oracle JRE, mindestens in Verison 1.6, voraus. Wenn dies noch nicht vorhanden ist, kann man es hier beziehen.

Das Tool ist rein kommandozeilenbasierend und wird folgendermaßen benutzt:

java -jar RssSearch.jar -o|-a <keyword1> <keyword2> <…> -f <feed1> <feed2> <….>

Wobei -o für ein or – oder – steht und man damit einen oder mehrere Feeds nach nur einer vorhandenen Stelle eines einzelnen der gesamt gegebenen Keywords absucht.

Mit -a für and – und – erhält man nur diejenigen Treffer, die alle angegebenen Keywords enthalten.

Das Programm schreibt dann die Links zu allen Feedeinträgen an, die den angegebenen Kriterien entsprechen. Wurde mit -o gesucht wird zusätzlich noch das gefundene Keyword angegeben.

Damit hoffe ich meinem Besuchern vorab helfen zu können, würde mich aber dennoch freuen, euch bald als TrayRSS User begrüßen zu können. Sobald ich die Suchfunktionimplementiert habe, versteht sich ;)

Natürlich ist auch RssSearch wieder als OpenSource Software unter der GPL 3 verfügbar, die Sourcen können auf GitHub unter eingesehen werden.

Selbst bauen kann man sich das Tool mittels Maven. Für diejenigen die sich die Finger daran nicht schmutzig machen wollen hier noch ein Download Link:


Na denn, happy searching!


Und noch für die englisch sprachigen unter euch:

Hello everybody!

A few days ago, a visitor of my website contacted me, regarding his problem with searching rss feeds. He wants to find keywords or keyphrases within the source of the feed entry, not only in the entry itself.

TrayRSS couldn’t fullfil this requirements at the given time. That’s why i’ve added this feature request to the roadmap of trayrss.

As you can see, in the complete roadmap, it will take some time till it gets implemented. There are some other major changes going on. As an example, the new notification window has to be redesigend, to fit the requirements of a feedbrowser. In my opinion, without a feedbrowser, showing the entries of the feeds in a sorted way, it isn’t possible to implement any kind of search in a user friendly way.


I made this simple tool to test the requested search method for possible restrictions and excessive timing for a deep search withing an feed entry. It offers the user the possibility to search for one or more keywords.

Written in Java it requires the Oracle JRE installed, in version 1.6 or higher.  You can get it  here.

It is a command line tool, and i’d like to show you how it can be used:

java -jar RssSearch.jar -o|-a <keyword1> <keyword2> <…> -f <feed1> <feed2> <….>

The option -o stands for or and it offers those feed entrys that matches a single of the given keywords

With -a meaning and the tool will show only those feeds, that matches all of the given keywords.

As the result the link to every given feed entry matching the conditions will be displayed to the user. If searched with the -o parameter, the matching keywords will be displayed too.

Hopefully this will help my users searching within feeds. And as soon as i can offer this function in TrayRSS i’m hoping to gain you as a user of it.

RssSearch is published under the GPL 3 as Open Source. If you would like to see the sources, just visit GitHub

You can build the tool on your own with Maven out of the sources, but for faster results, just get it here:


So long, happy searching!

Ähnliche Artikel:

With flying colours – TrayRSS 1.1.0 is released!

The release of TrayRSS 1.1.0 is here! A new GUI and many internal changes are shipped to be aware of future developements. Check it out!

TrayRSS 1.1.0 is available now! Besides some bugfixes it contains a major redesign of the configuration window. It is now seperated into three tabs containing general parameters, the feeds the tool should monitor and the time settings, where the user can specify the timeframes when TrayRSS monitors the feeds. As a new functionallity the user can disable the timeframes with a single click now, before he had to specify a timeframe from 0000 to 2359.

Take a look at the example pictures in the screenshot section. There you can find screenshots of the old configuration window too. A great change isn’t it?

Inside TrayRSS there where a lot of changes too. In the build process Apache Ant was replaced with Apache Maven and the project is now splitted to some modules like the notification, the model, the monitor, the gui and so on.

A complete List of changes can be found in the Bug Tracker of TrayRSS

Download TrayRSS 1.1.0

Future prospects in developement will be the completion of the work with the localization to every text in the application. (I’m sorry that the language change doesn’t affect the config window at the moment, this will be changed in 1.2.0). And the next step of the new Look and Feel of TrayRSS will be a redesign of the notifications, to match additional requirements like mark feedentries for later read

Have Fun using TrayRSS!

PS: If you are a Mac User, i would be very glad to get some response on how the application suits to your system, because i don’t have the chance to test it myself right now.

Ähnliche Artikel:

TrayRSS 1.0.1 is here!

TrayRSS 1.0.1 is here, with some bugfixes and improvements in performance. Track your RSS feeds in the systemtray and get noticed on changes.

Hi there,

i’d like to announce the new Bugfixrelease of Trayrss! Besides bugfixing, I made some pretty interesting changes

Changes in 1.0.1
* performance refactoring
* event-dispatcher threads for gui
* log4j updated
* refactored the useage of log4j
+ task 00035: implementing maven
* fix 00033: timesets starttimes where set as endtime
+ task 00035: packaging by maven
+ task 00035: buildnumber
– task 00044: SWIXML menu removed

You can download the new relesase here.


I’ve fixed some bugs in the event-dispatcher thread of the gui, so trayrss is now more stable. Also there was an error when monitoring feeds with an invalid timeframe. TrayRSS stopped monitoring without telling the user if the format of the timeframe could not be parsed correctly.

Besides the logging feature was updated too. This and some additional changes within the source should lead to a little performance increase.


TrayRSS relied on Trac for about two years. But Trac has its limitations. Now MantisBT is used to track all the tasks that are required to improve the application. The relation between a sourcecode change and a task will be noticed in the changelog in future by adding the tasknumber. Also Trac was binded to sourceforge. Now it isn’t necessary to have a sourceforge-account anymore to report an bug or request.

In MantisBT there are some additional possibilites to create reports. Also better notifications and a easier way to manage milestones are provided by the new bugtracker.


Additionally TrayRSS developement steps ahead to the next major release 1.1 Some major changes will be part of this release and the first step was also shipped with this Bugfixrelease: TrayRSS moved from ant to maven to manage the build process and to collect all the dependencies. That offers TrayRSS some important possibilities for the future such as managing multimodule projects, improves reusability, convention over configuration and so on. Some details about the migration will be described in future on

Hope you enjoy the new release

Kind regards!

Ähnliche Artikel: