8.1 Technical Debt

Most codebases which have been worked on by many people, over a long, long time, usually have some parts which are not very nice. Here are some parts of the GoCD codebase (in no particular order) which could do with cleaning up -

8.1.1 Upgrade Spring 3.0.3 -> 4.x

8.1.2 Remove use of velocity for views

8.1.3 Hibernate and iBatis - Both used

Description

Some of the DAOs in the GoCD codebase still use iBatis. Some use Hibernate. This causes, for instance, the transaction
management to be more complicated than it should be. It also stops GoCD from easily supporting multiple databases.

History

It was a planned and slow strangler move from iBatis to Hibernate, which got slower over time, rather than quicker.

Moving forward

Need to move iBatis code over to Hibernate whenever any work around an area is done. Might need to allocate some time
specifically to move, too.

8.1.4 Javascript frameworks

Description

Prototype and jQuery: Should migrate to jQuery. There are a few pages which still use Prototype.

Some Javascript code needs refactoring/remodeling. For instance, vsm_renderer.js has tests, but is not well
organized.

History

A consequence of a long-running project, probably. Some amount of stranglers left behind. Some cleanup should have
been done before, but wasn't. Needs to be done now.

8.1.7 Make GoCD Server & GoCD Agent independent of jetty so that we can support all servers.