sando uma implementação CommonJ com GlassFish e Spring

Na minha busca para unificar a implantação entre os ambientes Websphere 7 e GlassFish 3, decidi tentar implementar um CommonJ WorkManager e TimerManager no GlassFish. Mas não está funcionando como o esperado. Eu fiz o seguinte:

Use a implementação do myFOO CommonJ encontrada em:http: //commonj.myfoo.de e inclua as bibliotecas na minha pasta domain / lib (incluindo as bibliotecas Spring)

Adicionou o seguinte ao<resources> seção do domínio glassfish.xml:

<custom-resource res-type="commonj.work.WorkManager" jndi-name="wm/default" factory-class="de.myfoo.commonj.work.FooWorkManagerFactory"></custom-resource>
<custom-resource res-type="commonj.timers.TimerManager" jndi-name="tm/default" factory-class="de.myfoo.commonj.timers.FooTimerManagerFactory"></custom-resource>

Inclua as referências no<servers>/<server> seção do domain.xml:

  <resource-ref ref="wm/default"></resource-ref>
  <resource-ref ref="tm/default"></resource-ref>

Adicione as referências de recursos apropriadas no web.xml do meu aplicativo de teste:

<resource-ref>
    <description>WorkManager</description>
    <res-ref-name>wm/default</res-ref-name>
    <res-type>commonj.work.WorkManager</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

<resource-ref>
    <description>TimerManager</description>
    <res-ref-name>tm/default</res-ref-name>
    <res-type>commonj.timers.TimerManager</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Unshareable</res-sharing-scope>
</resource-ref>

Adicione os seguintes beans ao meu applicationContext.xml:

<bean id="threadTestTaskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor"> 
    <property name="workManagerName" value="wm/default" />
    <property name="resourceRef" value="true"/>
</bean>

<bean id="threadTestTimerExecutor" class="org.springframework.scheduling.commonj.TimerManagerTaskScheduler"> 
    <property name="timerManagerName" value="tm/default" />
    <property name="resourceRef" value="true" />
    <property name="shared" value="false" />
</bean>

<bean id="threadTest" class="test.ThreadTester"></bean>

<task:scheduled-tasks scheduler="threadTestTimerExecutor">
    <task:scheduled ref="threadTest" method="execute" fixed-delay="30000" />  <!-- 30 seconds -->
</task:scheduled-tasks>

Depois de toda essa configuração, tudo é carregado e o aplicativo Web é executado; no entanto, a classe ThreadTester não é executada no Time

Percorri o código myFOO e o loop principal do TimerManager (FooTimerManager.java) está em execução, mas nunca parece reconhecer que a cada 30 segundos deve iniciar a classe.

Minhas perguntas

Alguém já teve experiência em implementar JSR 236/237 (CommonJ) com GlassFish 3 e Spring?

Existe outra implementação em algum lugar além do myFOO que eu poderia usar e experimentar? Alguém tentou fazer o que eu fiz? Você gostaria de compartilhar seus resultados se conseguisse?

Obrigado

Edit 1:

Esqueci de mencionar que usando a implementação do myFOO CommonJ com o GlassFishfa work no que diz respeito ao WorkManager. O que work é o TimerManager. Isso significa que eu posso iniciar threads sob demanda muito bem, mas o agendamento acionado não funcion

Edit 2:

Desde a atualização para o GlassFish 3.1.1, a implementação do myFOO CommonJ do TimerManager está funcionando bem. Tão bom! Agora, esta pergunta é mais como um Guia HOWTO.

questionAnswers(3)

yourAnswerToTheQuestion