Blog do Urubatan
msgbartop
Desenvolvedor, Palestrante, Escritor, Nerd Assumido e Pai do Marcus :D
msgbarbottom

23 Mar 07 Spring-Annotations de casa nova (e precisando de ajudantes :D )

Bom, post rápido, apenas para informar que o Spring-Annotation esta de casa nova …

Estou movendo o projeto do dev.java.net para o Source Forge …

Eu nunca gostei muito da estrutura de hospedagem de projetos no java.net, o site do projeto fica estranho la, não tem suporte a absolutamente nada, o gerenciamento das listas de discução é falho, …

Acabei de publicar o site, ainda faltam algumas alterações, correções de links, …

Até eu terminar isto, os dois sites continuam no ar, assim que isto for tudo migrado, vou colocar apenas uma mensagem no site antigo apontando para o novo endereço …

Até amanha ja devo ter migrado todos os fontes para o sourceforge, e junto a isto vou estar liberando o beta da versão 1.1, assim que o beta for liberado (com algumas correções, e poucas features novas), gostaria de ajuda de todos os que puderem nos testes …

Ainda tem muito pouco unit test escrito, mas testes de utilização são mais bem vindos, pois acho que vão ajudar muito mais na qualidade da release final …

O beta, diferente das releases anteriores, quero liberar junto com um zip, que contenha todas as dependencias, então, se alguem souber uma forma fácil de fazer isto com o maven eu agradeço muito :D

Assim que for liberada a release final, quero fazer também o upload do projeto para o repositorio central do maven …

Quem quiser ajudar, pode deixar um comentário aqui, ou então se inscrever nas listas do projeto …

Novo endereço do site: http://sannotations.sourceforge.net/

Projeto no Source Forge: http://sourceforge.net/projects/sannotations

Valeus galera …

If you enjoyed this post, make sure you subscribe to my RSS feed!

Tags: , ,

Reader's Comments

  1. |

    Oi.

    Essa sua spring-annotations… Afinal, seria um util ou um framework?

    ^^

    Reply to this comment
  2. |

    acho que a melhor definição seria um conjunto de modulos para o spring-framework …
    para facilitar a utilização :D

    Reply to this comment
  3. |

    Bacana Rodrigo.

    Vou te ajudar a testar ele. Vou puxar as libs novas e colocar no projeto de exemplo que tenho aqui pra ver se resolve aquele problema que tive com o scope do DataTable. E outras coisinhas. =)

    abraços!

    Reply to this comment
  4. |

    ahhh lembrei de uma coisa tbm que acharia interessante no SA.
    Um projeto blank, ajudaria muito =)

    Abraço.

    Reply to this comment
  5. |

    qual a vantagem do sourceforge ?
    vc diz que o java.net nao te dah suporte a nada… qual é o suporte que o sf dá ?

    ps: estou perguntando prq to pensando em migrar..

    Reply to this comment
  6. |

    Valeus :D
    bom, acho que amanha as libs ja vão estar no sourceforge junto com os fontes …
    quanto ao projeto blank, vou colocar 3 projetos blank em duas versões cada, maven e não maven …
    1 – console
    2 – web spring MVC
    3 – web JSF

    quanto a vantagens no sourceforge ..
    o site abre mais rapido (3 segundos contra 10 segundos) isto só em um teste rapido na pagina inicial …
    o site do projeto fica deformado no java.net
    o gerenciamento de listas de discução no java.net é sofrivel

    no SF é permitido ter ADs na página dos projetos
    o Java.Net não tem contador de downloads
    o bugtracking do java.net é terrivel
    não tem acesso anonimo ao SVN do java.net
    e algumas outras coisinhas :D

    Reply to this comment
  7. |

    Já pensou no google code? Ex: http://code.google.com/p/fumigant
    Tem wiki, lista, svn, etc

    Reply to this comment
  8. |

    “não tem acesso anonimo ao SVN do java.net”

    Isso tem ;)

    Reply to this comment
  9. |

    Sei que não é o espaço adequado, mas como não achei seu e-mail, estou postanto aqui msm.

    Fiz aqui em casa o exemplo abaixo:

    http://cwiki.apache.org/S2WIKI/struts-2-spring-2-jpa-ajax.html

    E depois, estava tentando colocar o spring-annotation para nao ter que ficar,
    criando os beans no xml. Vi a documentação no site, porém não tive sucesso.

    Pode me explicar como eu devo proceder?

    Obrigado

    Reply to this comment
  10. |

    é só colocar os jars no classpath
    editar o teu applicationContext.xml, adicionar o namespace do spring-annotations (tem exemplo no site, não lembro agora exatamente, mas deve ser algo tipo:
    xmlns:sa=”https://spring-annotations.dev.java.net/context”

    dentro do xml adiciona:
    <import name=”classpath*:applicationContext.xml”/>
    <sa:annotation-autoload />

    isto deve resolver :D

    Reply to this comment
  11. |

    Cara desculpa a encheção aih.. mas é o seguinte:

    Fiz a configuração q vc disse.. a aplicação continuo rodando normalmente.

    Bom.. comentei as declarações dos beans no xml…. e acrescentei as annotations
    Bean nas duas classes.. q estavam mapeadas…

    Soh que uma delas recebe o outro bean como paramentro… com o scopo “prototype”

    Provavelmente tenho q usar o @ConstructorArgs , mas nao achei na documentacao
    como usa ele….

    Obrigado pela ajuda

    Reply to this comment
  12. |

    recebe pelo contnstrutor? baixa os fontes do spring-annotation, tem testcase disto no modulo base :D
    se é como propriedade ele ta usando qutowire by name por default, se tu não quiser pode usar @property

    Reply to this comment
  13. |

    HUm… blz, valeu.. consegui resolver esse problema.. agora o problema é outro…

    como vc pode no exemplo que te passei…. o struts tah configurado para
    instanciar os objetos pelo spring. Só que quando eu starto o tomcat, ele
    le o struts.xml, e não acha o bean “personAction” que o struts.xml referencia
    no mapeamento da action… e gera o seguinte erro:

    SEVERE: Exception starting filter struts2
    Action class [personAction] not found – action – file:/E:/desenvolvimento/projetos/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps/struts2_spring2_jpa_ajax/WEB-INF/classes/struts.xml:16:68
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:333)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:288)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:384)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:398)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:455)

    Reply to this comment
  14. |

    tenta colocar um arquivo vazio de nome to.properties na raiz do classpath …

    Reply to this comment
  15. |

    Colando o to.properties.. ele comecou a enxergar os beans….

    agora tah dando erro no parametro recebido no construtor….

    Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [project.action.PersonAction]: No default constructor found; nested exception is java.lang.NoSuchMethodException: project.action.PersonAction.()

    o contrutor é esse:

    @ConstructorArgs({@Property(value=”personService”)})
    public PersonAction(PersonService personService) {
    this.service = personService;
    }

    personService é o nome do outro Bean… tem algo errado aih?

    Reply to this comment
  16. |

    bom, eu vou verificar se existe algum test case para parametros e contrutor …
    tente até amanha pelo menos, utilizar este parametro como uma propriedade do bean, que se não ouver um test case para isto, pode ser que uma das ultimas alterações tenha quebrado esta funcionalidade, vou escrever o test-case e corrigir …
    se ja houver o test-case eu tento descobrir qual o problema por ai, mas a principio deveria estar funcionando :D

    Reply to this comment
  17. |

    bom, não tinha um teste para isto, mas eu escrevi o teste e esta funcionando OK

    ahh, fui prestar atenção no teu exemplo e tem um probleminha …
    [java]@ConstructorArgs({@Property(value=??personService??)})
    public PersonAction(PersonService personService) {
    this.service = personService;
    }[/java]
    deveria ser:
    [java]
    @ConstructorArgs({@Property(bean=??personService??)})
    public PersonAction(PersonService personService) {
    this.service = personService;
    }[/java]

    na tag @Property, o value é para um valor string, bean é para referenciar outro bean da bean factory …

    Reply to this comment
  18. |

    Muito obrigado pela ajuda.

    Na verdade também não funcionou dessa forma. Na hora de startar a aplicação
    o spring continua reclamando que não existe um construtor default para essa
    classe.

    Se eu adicionar o contrutor default.. a aplicacao roda.. mas depois dah NullPointerException pq ele não injetou o outro bean.

    Mass…. eu troquei o argumento do construtor por propriedade como vc havia
    sugerido e funcionou perfeitamente.

    Parabéns pelo spring-annotations.. ele elimina um trabalho chato que é ficar
    se preocupando com os beans em xml.

    Desculpa tantas perguntas aih…
    Valeu!

    Reply to this comment
  19. |

    [...] Bom pessoal, só para confirmar o que eu falei no ultimo post, o spring-annotations ja esta na casa nova. e acabei de subir os arquivos da versão 1.1 beta para [...]

    Reply to this comment
  20. |

    essa tua idéia é mt boa, trabalhar com annotations no lugar de xml é mt melhor… agora é só seguir na idéia q vc ta, parabéns.

    a pergunta: o spring-annotations é válido para substituir o spring de sempre, ou há algum caso q vc conheça q ainda não rola? só de curiosidade =]

    flw ^^

    Reply to this comment
  21. |

    O spring-annotations não substitui o spring, ele trabalha junto, é uma forma de facilitar a configuração do Spring-Framework apenas …
    Traz algumas outras vantagens alem da configuração, mas basicamente é uma forma de facilitar isto :D

    Reply to this comment

Leave a Comment