Arredondamento de meio em meio usando BigDecimal

Galera,

alguém conhece uma maneira prática de se fazer arredondamento de um BigDecimal de 0.5 em 0.5?

Tentei usando as combinações de MathContext, RoundingMode, mas ainda não cheguei onde quero.

Eis o que quero para cada um dos valores abaixo:

3.4 = 3.5
3.3 = 3.5
3.2 = 3.0
5.7 = 6.0
6.9 = 7.0

Eis o que eu consigo com cada uma das combinações de MathContext e RoundingMode:

Assumindo a seguinte operação para cada uma dos valores (onde nota representa o valor):

MathContext mathContext = new MathContext(2, <<RoundingMode>>);
BigDecimal absValue = nota.round(mathContext);
System.out.println(absValue.doubleValue());

RoundingMode.CEILING

3.4
3.3
3.3
5.8
7.0

RoundingMode.DOWN

3.3
3.2
3.2
5.7
6.9

RoundingMode.FLOOR:

3.3
3.2
3.2
5.7
6.9

RoundingMode.HALF_DOWN:

3.4
3.3
3.2
5.7
6.9

RoundingMode.HALF_EVEN:

3.4
3.3
3.2
5.7
6.9

RoundingMode.HALF_UP:

3.4
3.3
3.2
5.7
6.9

RoundingMode.UP:

3.4
3.3
3.3
5.8
7.0

Como podem ver, com nenhuma combinação eu consegui o resultado esperado.

Alguma dica?

Obrigado desde já!

Multiplique o dado por 2, arredonde-o para o inteiro mais próximo, divida-o por 2.