Monthly Archives: July 2007

DateFormat objects and thread-safety

One of my daily responsibilities is to look over the code that is checked into our JIRA source base. I look at every commit and check for any obvious mistakes, typos or things that can be instantly improved. I must admit that in recent months it was and still is quite hard to pick any obvious errors or coding mistakes from our JIRA code. I hardly get to find something major that I would need to report back to the author of that code check-in. Recently I blogged internally about some minor findings.

Continue reading »

Confluence and JIRA have a great plugin system at their core that allows you to install collections of actions, Spring beans (Confluence), jobs, etc. as discrete plugins. Confluence supports hot-deploying these plugins so they can be added, removed, or upgraded without bringing down the application. This capability is so powerful that internally we are moving more and more functionality into plugins as a way to organise our codebase and keep it tightly-focused and agile. Wanting this same functionality

Continue reading »

Terence Parr on ANTLR presentation

Last month, Atlassian hosted Sydney's Java User Group meeting at our new offices in Sussex St. We were lucky enough to see a presentation by Terence Parr, the author of Antlr, a well-known tool for language parsing, compiling and much more. A video of the presentation is now available for download: Windows media format (WMV) (204 MB) Quicktime format (MP4) (211 MB) Thanks very much to Terence for his interesting presentation! Update: Terence has posted another video and a copy of his slides on antlr.org: Powerpoint

Continue reading »

Bamboo 1.2 and Acegi Security

In Bamboo 1.2, we introduced plan level permissions as a major feature. Already with an Acegi Security framework in place, we figured it was a natural extension to build our permissions framework on top of Acegi. Bamboo Security Architecture There are really two sides to security in Bamboo (or any other application for that matter): Authentication - verifying that the user is valid Authorization - verifying that the user has the appropriate rights to perform an action (which includes accessing some

Continue reading »