Decorator do CDI não está "decorando" meu objeto

Boa tarde a todos, antes de tudo agradeço em quem me ajudar.

estou estudando CDI a partir deste tutorial: http://blog.gilliard.eti.br/2010/05/aplicacao-desktop-com-weld-parte-2/

eu estou tentando fazer funcionar o Decorator do CDI, a minha classe decorator herda a classe que quero que ela decore, essa classe à ser decorada é injetada em outra e o decorator é declarado no beans.xml… nenhum erro acontece porém o método executado não é o da classe decoradora, mas sim o da que deveria ser decorada…

Em resumo peço que alguém me ajude a visualizar onde estou errando, códigos:

beans.xml:

[code]<beans xmlns=“http://java.sun.com/xml/ns/javaee” xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd”>

&lt;interceptors&gt;
	&lt;class&gt;pacote.cdi.bo.interceptors.implementation.SeguroInterceptor&lt;/class&gt;
&lt;/interceptors&gt;

&lt;decorators&gt;
	&lt;class&gt;pacote.cdi.bo.decorator.CaixaDecorator&lt;/class&gt;
&lt;/decorators&gt;

</beans>[/code]

classe à ser decorada:

[code]package pacote.cdi.bo;

import java.io.Serializable;

import javax.enterprise.event.Event;
import javax.inject.Inject;

import pacote.cdi.vo.Movimentacao;

public class CaixaEletronico implements Serializable {

@Inject private Event&lt;Movimentacao&gt; eventMovimentacao;

public void depositar(float valor) {
	
    eventMovimentacao.fire(new Movimentacao(valor));
}

public void sacar(float valor) {
    eventMovimentacao.fire(new Movimentacao(-1 * valor));
}

}
[/code]

classe decorator:

[code]package pacote.cdi.bo.decorator;

import java.io.Serializable;

import javax.decorator.Decorator;
import javax.decorator.Delegate;
import javax.inject.Inject;

import pacote.cdi.bo.CaixaEletronico;

@Decorator
public class CaixaDecorator extends CaixaEletronico implements Serializable {

@Inject
@Delegate
private CaixaEletronico delegate;

@Override
public void sacar(float valor) {

	System.out.println("CaixaDecorator.sacar()");

	delegate.sacar(valor);
}

@Override
public void depositar(float valor) {

	System.out.println("CaixaDecorator.depositar()");

	delegate.depositar(valor);
}

}
[/code]

outras relevantes:

[code]package pacote.cdi.main;

import org.jboss.weld.environment.se.StartMain;

public class Main {

public static void main(String[] args) {
	long inicio = System.currentTimeMillis();
	System.out.println(inicio);
	StartMain.main(args);
	long fim = System.currentTimeMillis();
	System.out.println(fim);
	System.out.println("diferença:"+ (fim-inicio));
}

}
[/code]

[code]package pacote.cdi.main;

import javax.enterprise.event.Observes;
import javax.inject.Inject;

import org.jboss.weld.environment.se.events.ContainerInitialized;

import pacote.cdi.bo.CaixaEletronico;
import pacote.cdi.bo.ContaBancaria;

public class Core {

@Inject private CaixaEletronico caixaEletronico;
@Inject private ContaBancaria contaBancaria;

public void containerInitialized (@Observes ContainerInitialized initEvent){
	System.out.println("container inicializado");
	
    caixaEletronico.sacar(200.0f);
    
    System.out.println(contaBancaria.getSaldo());
    
    caixaEletronico.depositar(300.0f);
    
    System.out.println(contaBancaria.getSaldo());
	
}

}
[/code]

novamente, grato.

editando, eu tinha deixando as classes sem implementar Serializable, googlando vi gente dizendo que resolveu problema fazendo isso mas não resolveu, também estava invertida a ordem que declarei no beans.xml entre o decorator e o interceptor mas invertendo não deu diferença…

a sim, estou usando o weld como implementação de CDI.

ninguém?