Will Seam 3 be "batch" friendly, ie be able to minimally run outside any container?
by denis.forveille@gmail.com
Are there plan to have a way to run a pure j2se+JPA+CDI+Weld application
containing Seam 3 components?
In it's time, I have open this JIRA/feature request to add this feature
to Seam 2: https://jira.jboss.org/jira/browse/JBSEAM-1680
Most of our applications have a need to run "batch" processes that run
outside a container, ie process thousand of "items" during off peak
hours (ie at night), but share many of the business logic and the JPA
model. Our applications are designed to isolated "shared" business logic
(ie batch+web) in a separate module and use only "Application Scope"
Seam 2 components
Currently we use some kind of "JUnit" techniques to boostrap our apps,
ie manual bootstratp of the JPA data source (Hibernate), manual control
of the transaction boundaries and manually injecting Application Scope
Components.
We have written a kind of "SeamTest" class that scans all of our
components that may be called by the batch process and inject the base
objects (logguer, other managers, EM etc..).
Something that we currently miss is to reuse the PDF and Excel
components as they depends on facelets/JSF and cannot easily run outside
some kind of container...
I don't have a deep knowledge of CDI and Weld, but it seem those should
help for this. The questions remains for Seam 3.
Is there some interest for this? The first thing could be to define the
specs and "limits" of what can be done and what cannot (Define the
authorized scopes, the way the EM ans transactions are managed, what
"modules" (I18N, PDF etc ) can be used. Of course anything related to
web woule not be allowed (Security, "pages.xml/navigation", etc..), and
maybe define some kind of "SeamBatch" class that would take care of all
the Seam components, and maybe add some batch specific annotations (or
non-container specific) for transaction boundaries
Thx