Olá,
Estou aqui para dizer que publiquei uma biblioteca para facilitar o uso da API reflection com DSL.
Quem desejar dar uma olhada no projeto pode acessá-lo em http://code.google.com/p/reflection-dsl/
Ah, críticas construtivas e sugestões são muito bem-vindas.
Obrigado.
Olá Rafael,
Realmente são projetos muito parecidos, embora o mirror seja um pouco mais verboso.
Também vi que o mirror nao isola totalmente a api do reflection:
Constructor<T> aConstructor;
Class<T> clazz;
T t = Mirror.on(clazz).invoke().constructor(aConstructor).withArgs(value1, value2);
Ficaria assim no reflection-dsl (até vi que daria para usar o generics para que o método não retornasse Object.)
// Nao preciso passar um objeto Constructor, nem dizer que vou invocar
Object o = Introspector.forClass(ClasseTeste.class).create(1000, "s");
Enfim, da mesma forma que o mirror, essa biblioteca foi criada para resolver problemas que eu tinha ao utilizar reflection.
Vi muitas coisas legais que existem no mirror que ainda não existem no reflecttion-dsl como trabalhar com annotations…
Não sei se é de interesse dos desenvolvedores do mirror, mas poderíamos juntar as boas idéias de ambas as bibliotecas e consolidá-las em um só projeto.
Fica aí minha sugestão.
Obrigado.
Interessante ambos os projetos!
Parabéns!
Olá nadilson,
Sou o desenvolvedor líder do projeto Mirror.
O Mirror foi desenvolvido seguindo alguns princípios, como manter a maior legibilidade possível do código. Por isso essa verbosidade extra em alguns casos.
Outro princípio foi manter ele de fácil integração com código que utilize reflection, por isso os pontos onde recebemos os objetos padrão da API de Reflection do Java. Mas isso não impede que você use o Mirror sem encostar nos objetos da Reflection API. Você pode instanciar um objeto da seguinte forma:
Mirror.on("net.vidageek.minha.Classe").invoke().constructor().withArgs("arg1", 1);
Quanto à uma possível integração ou contribuição, entre em contato com a gente na lista de desenvolvimento do Mirror (você pode se cadastrar aqui http://lista.vidageek.net/listinfo.cgi/mirror-dev-vidageek.net).
Até!