Archives for Thomas Davies

Guicing Up Crucible

Most Atlassian products use some inversion of control (IoC) container – Confluence uses Spring and JIRA uses Picocontainer. Fisheye and Crucible don't use any IoC at present, and as part of the process of choosing one we decided to spike using Guice as Crucible's IoC container. We wanted to learn about Guice because it has some interesting differences compared to Spring: Configuration is in Java, not XML. This gives better compile time type checking, better refactoring support, and a more

Continue reading »

For this Fedex day I chose to implement HTML version diffs for Confluence. Confluence shows the differences between versions in terms of the markup which produced each version of a page – this isn't always very clear. Often a paragraph is duplicated, with additions in one copy and deletions in the other: This looks better when the HTML is diffed. Or rather it would if the algorithm I chose hadn't made some unfortunate choices (I converted the python difflib to Java, because the only HTML diff

Continue reading »