2008/6/5 Christian Bauer <christian.bauer(a)gmail.com>:
Also problematic seems to be the ManagedEntityIdentityInterceptor (I
think
we really could use a "no JavaBean clustering" switch that disables it -
need some input from Gavin who initially wrote it if that is feasible):
100% agreed, I want to implement this as the ability to configure
(enable/disable) default interceptors. Can we detect whether we need
to enable the ManagedEntityIdentityInterceptor somehow (e.g. if aren't
in a cluster we don't need it definitely).
2008/6/5 Christian Bauer <christian.bauer(a)gmail.com>:
The option to turn the ManagedEntityIdentityInterceptor off has been
closed
with "we need it for passivation":
http://jira.jboss.com/jira/browse/JBSEAM-468
I'm not sure we need it for a system with a) only javabean components and b)
in-memory/non-persistent http sessions and c) no clustering/replication of
http sessions. Which well, would be really a common scenario. :)
Yes, I think you are correct. Gavin, any input?
2008/6/5 Christian Bauer <cbauer(a)redhat.com>:
- Removing the TransactionInterceptor which is used with
@Transactional by
the EntityHome/Home/Query components (I don't use it) - and I also question
why it is used on EntityConverter/EntityLoader. Especially for the
converter/loaders this is never necessary, they are always called inside a
JSF request that is wrapped by Seam in transactions and saying "Transaction
required" again and again is just costing a JNDI lookup.
Agreed. Please open a JIRA issue.
- Removing the joinTransaction() that is triggered on every
EntityHome.getInstance(). EntityQuery and EntityIdentity do the same. This
also doesn't seem to be necessary, at least not for Seams
ManagedPersistenceContext which enlists the EM with the transaction on
@Unwrap (and it has a condition that avoids double-joins - hence only one UT
JNDI lookup per request).
Originally I needed it in the EntityConverter back in 1.1 timeframe,
but this may well have changed (and I altered the architecture a lot
since then) so lets have a JIRA and check.
2008/6/5 Dan Allen <dan.j.allen(a)gmail.com>:
> These are the changes I made in Component.java:
>
> if ( getType()==JAVA_BEAN &&
> beanClassHasAnnotation(Transactional.class))
> {
> - addInterceptor( new Interceptor( new TransactionInterceptor(),
> this ) );
> + // TODO: PERFORMANCE ISSUE! addInterceptor( new Interceptor( new
> TransactionInterceptor(), this ) );
I think we should only do this *if* transaction management
(Seam-managed global trasaction) is being used. If not, then we have
no transaction at all on the call.
Init.instance().isTransactionManagementEnabled()
Sure, but this is pretty low priority as most people use SMT. JIRA please.
--
Pete Muir
http://in.relation.to/Bloggers/Pete
http://www.seamframework.org