The other day I decided to play a little with batch processing on JBoss + Spring EJB3 and all. Created this stateful session bean to force the Entity manager do a batch job for me on remove
| @Stateful | @Interceptors(SpringLifecycleInterceptor.class) | @TransactionAttribute(NOT_SUPPORTED) | public class StetefulBean implements Init { | @PersistenceContext(unitName = "titan", type = EXTENDED) | private EntityManager manager; | | @Spring(jndiName = "spring-pojo", bean = "statefulService") | private TravelService service; | | @PostConstruct | public void postConstruct() { | service.setManager(manager); | } | | public void initAirports(int index) { | if (isInit(Airport.class)) { | return; | } | List<Airport> lst = new ArrayList<Airport>(); | | for (int i = 0; i < index; i++) { | Airport port = new Airport(); | if (i % 2 == 0) { | port.setName("Denver " + (i + 1)); | port.setAirportCode("dnvr_" + (i + 1)); | } else { | port.setName("Hoover " + (i + 1)); | port.setAirportCode("hvr_" + (i + 1)); | } | lst.add(port); | } | service.createAirports(lst); | } | | @Remove | @TransactionAttribute(REQUIRED) | public void flush() { | // syncrhonize with database; | } | | private boolean isInit(Class clazz) { | return service.getNumberOfObjects(clazz) == 0 ? false : true; | } | } | I am using this SpringLifecycleInterceptor.class from the JBoss+Spring distribution. Unfortunately, that one is giving me kinda trouble throwing all kind of exceptions OK. Made my own interceptor a la SpringLifecycleInterceptor | public class StatefulBeanInterceptor extends SpringPassivationInterceptor { | private static final long serialVersionUID = 1243234L; | @PostConstruct | public void postConstruct(InvocationContext ctx) throws Throwable { | inject(ctx.getBean()); | ctx.proceed(); | } | } | Wired it up. @Interceptors(StatefulBeanInterceptor.class) Ran JBoss. No problemo! Works like a charm. There might be something wrong with that SpringLifecyleInterceptor thing from the distribution, or mine might be a bit obsolete (I've downloaded sometime late June, I guess). No idea... Another question - how to inject EntityManager from Spring configuration. Currently I am using annotations and pushing manager to the service layer. Yet wiring it up from outside, Spring, I mean, would be kinda kool to me. Cheers, Arno View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3961698#3961698 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3961698 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user