A Terracotta anunciou a versão 2.0 da biblioteca de agendamento de tarefas Quartz, usada, entre outros produtos, no framework Spring e no JBoss Application Server. A biblioteca foi criada em 2001 por James House e adquirida pela Terracotta em 2009.
A nova versão do Quartz permite a configuração de tarefas e gatilhos usando uma nova linguagem específica ao domínio (DSL) baseada em Java:
JobDetail tarefa = newJob(Job.class) .withIdentity("job1", "grupo1") // nome e grupo da nova tarefa .build(); Trigger gatilho = newTrigger() .withIdentity("trigger1", "grupo1") // nome e o grupo do novo gatilho .startAt(futureDate(2, IntervalUnit.HOURS)) // a primeira execução ocorre em 2 horas .withSchedule(repeatHourlyForever()) // repete-se a cada hora .modifiedByCalendar("feriados") // segue o calendário "feriados" .build();
A área com maior número de mudanças foi a API, que foi atualizada para usar tipos genéricos e anotações:
- Todos os arrays foram substituídos por coleções tipadas
- As novas anotações @PersistJobAfterExecution e @DisallowConcurrentExecution podem ser usadas ao invés da interface StatefulJob quando o estado da tarefa precisa ser mantido entre duas ou mais execuções
- Qualquer tarefa marcada com a nova anotação @ExecuteInJTATransaction é executada dentro de uma transação JTA
Além da nova versão da biblioteca Quartz, a Terracotta lançou duas ferramentas pagas de gerenciamento, Quartz Manager e Quartz Where.