Skip to content
Sources and docs for a simple refactoring and OO design exercise
Java Shell
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
.settings Prep for XP2014 May 28, 2014
.project Improved README May 13, 2014

What's this?

This is a simple refactoring exercise that is meant to teach something about dependency inversion and dependency injection.

The documentation is in this blog bost and in the presentation in the doc directory.


To import the project in Eclipse: select

File -> Import -> Existing Project into Workspace

To import the project in Idea: run

mvn idea:idea

How to start

Run all the tests. One test will fail. Change production code so that all tests pass.

How to continue

Read the blog post and/or the included presentation.

Notes for Windows

On Windows, the tests with the fake smtp server do not work. If you are on Windows, then comment or delete the file. If you are on Linux, Mac or other Unix, then delete the

You can’t perform that action at this time.