Caelum | Ensino e Inovação - Cursos de Java, Scrum, Ruby on Rails


Iniciativa Caelum Open Source

Por Sérgio Lopes em 30/04/10

open source A Caelum sempre reconheceu o poder da comunidade e do open source, e ativamente participa de ambas. Disponibilizamos várias apostilas para download, organizamos o GUJ e o InfoQ Brasil e estamos diretamente envolvidos em diversos projetos de código aberto. Há desde novos projetos como VRaptor, Restfulie e Stella, até a participação em projetos existentes como Hibernate, XStream e PicoContainer.

Aliás, hoje, o VRaptor é um dos principais projetos que desenvolvemos, e acaba de ter sua versão 3.1.2 lançada. A nova série 3.x já possui mais de 8000 downloads.

O Restfulie é outro importante projeto que tem revolucionado a forma como se aplica REST hoje mundo a fora. O projeto é liderado por Guilherme Silveira que foi apresentado juntamente com Ian Robinson e Jim Webber da ThoughtWorks no WWW 2010, um evento com palestrantes de peso como o “criador” da web, Tim Berns Lee. Há uma entrevista com o Guilherme (em inglês) para você conhecer mais do assunto.

E, agora, para incentivar ainda mais a comunidade, a Caelum lança sua Iniciativa Open Source, que traz descontos em todos os cursos para alunos que participam de projetos de código aberto. Saiba mais na página da iniciativa e participe também com o seu projeto.

  • Share/Bookmark

Mirror DSL: facilitando o uso da API de reflection

Por Jonas Abreu em 17/11/08

No último domingo foi feito o primeiro release público do projeto Mirror (versão 1.2).

O Mirror é um projeto que tem por objetivo facilitar o uso da Java Reflection API, removendo boa parte da burocracia (como as diversas checked exceptions que são lançadas) e utilizando uma DSL para melhorar a legibilidade do código.

Com essa remoção de burocracia e a DSL, é possível transformar o seguinte código:

Field toSet = null;
for (Field f : target.getClass().getDeclaredFields()) {
    if (f.getName().equals("field")) {
        toSet = f;
    }
}
if (toSet != null && ((toSet.getModifiers() & Modifier.STATIC== 0)
        && ((toSet.getModifiers() & Modifier.FINAL== 0)) {
    toSet.setAccessible(true);
    toSet.set(target, value);
}

em algo mais legível e expressivo:

Mirror.on(target).set().field("fieldName").withValue(value);

Atualmente o Mirror possui suporte para lidar com as operações reflectivas mais comuns (como instanciar objetos, invocar métodos, ler ou escrever atributos, etc). Ele foi desenvolvido por Adriano Almeida, Diego Feitosa e eu, todos consultores/instrutores aqui da Caelum, enquanto enfretavamos problemas comuns no dia a dia.

Esperamos que possa ser útil para vocês também!

  • Share/Bookmark



Caelum | Ensino e Inovação
São Paulo: Rua Vergueiro, 3185, cj. 87, próximo ao Metrô Vila Mariana   |   Tel. (11) 5571-2751
Rio de Janeiro: Rua Senador Dantas, 80, cj. 307/308 - Centro   |   Tel. (21) 2220-4156 ou 2297-0033
Brasília: SCS Qd. 8 Bl. B-50, Sala 521 - Ed. Venâncio 2000   |   Tel. (61) 3039-4222