17 de out. de 2007

Integrando Subversion no seu arquivo de build

SVNAnt é uma ferramenta do Ant que permite você interagir com o Subversion dentro de seu script. 1. Fazer download http://subclipse.tigris.org/files/documents/906/32898/svnant-1.0.0.zip 2. Copiar as os jars que estão em ''svnant-1.0.0\lib'' para a pasta apache-ant-1.7.0\lib svnant.jar svnClientAdapter.jar svnjavahl.jar 3. Construa o arquivo build.properties com as opções do seu repositorio # -------------------------------------------------------------- # build.properties # Este arquivo esta sendo referenciado pelo arquivo build.xml. # -------------------------------------------------------------- svnant.this.url=http://subversion.meurepositorio.com.br/svn/svnant/trunk svnant.repository.user=ramos.tiago svnant.repository.passwd=ramos.tiago 4. Construa o arquivo build.xml <project name="svnant" basedir="." default="checkout"> <property file="build.properties"> <path id="project.classpath"> <pathelement location="${svnjavahl.jar}"> <pathelement location="${svnant.jar}"> <pathelement location="${svnClientAdapter.jar}"> </pathelement> <!-- load the svn task --> <taskdef resource="svntask.properties" classpathref="project.classpath"> <target name="checkout"> <svn username="${svnant.repository.user}" password="${svnant.repository.passwd}"> <checkout url="${svnant.this.url}" revision="${revision}" destPath="."> </svn> </target> 5. Para executar o arquivo é necessário executar o comando: ant -f build.xml -Drevision=NUMERODAREVISAO Para verificar as tarefas disponíveis consulte: http://subclipse.tigris.org/svn/subclipse/trunk/svnant/doc/svn.html u/s: guest/"" Referencia: http://subclipse.tigris.org/svnant.html http://subversion.open.collab.net/articles/IntegratingSubversionIntoYourAntBuild.html

11 de out. de 2007

RejectConf aqui em Brasília

Hoje eu estive lendo o blog do Akita e gostei da idéia de movimentarmos a galera que está estudando, produzindo e até tirando onda com o rails. A boa idéia seria de realizar um RejectConf aqui em Brasília. A gente divulga, marca um dia e a gente mesmo compartilha, projetos, estudos, dúvidas, algum gem que você viu acha que é de sucesso, algum plugin. De início a gente precisa de uma sala com projetor e alguns notebooks. Não seria nada tão formal. Podemos ter grupos de compartilhamento de 20 a 30 min, dirigidos por alguém que queira mostrar algo que estudou ou que está projetando e porque não o que lançou. Podem postar sugestões e assinalem a enquete para depois termos uma noção de quantas pessoas tem interesse.  
Atualização Já temos um grupo criado para melhorar a comunicação "brasilia-on-rails@googlegroups.com", vou divulgar algumas decisões para todos aqui e no grupo. Dia 27/10/2007 traremos as primeiras notícias de data e local.

10 de out. de 2007

Injetando Interceptador do Hibernate no Spring

O Hibernate tem Interceptadores e Eventos que facilitam a implementação de mecanismos de log. Para integrar com o Spring precisamos realizar os seguintes passos: Primeiro vamos criar o Interceptador: public class HibernateInterceptor extends EmptyInterceptor { // Posso ter algum usuario e suas preferencias private Usuario usuario; // Posso ter a sessao para realizar alguma operacao private SessionFactory sessionFactory; public void setUsuario(Usuario usuario) { this.usuario = usuario; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public void onDelete(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { registrarLog(); } public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { registrarLog(); return false; } private void registrarLog() { System.out.println("Registrando LOG."); } } E em seguida configuramos o interceptador no application-context.xml <!-- Bean para armazenar os dados do usuario logado --> <bean id="usuario" class="Usuario" scope="session" method="init"> <aop:scoped-proxy> </aop:scoped-proxy> <!-- Interceptor do Hibernate --> <bean id="hibernateInterceptor" class="HibernateInterceptor"> <property name="sessionFactory" ref="sessionFactory"> <property name="usuario" ref="usuario"> </property> <!-- Configuracao do TransactionManager--> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"> <property name="entityInterceptor" ref="hibernateInterceptor"> </property> Note que o interceptador criado não será declarado no hibernate.cfg.xml, somente injetado no TransactionManager pela propriedade "entityInterceptor".
Google