Hi,

Am 28.05.2014 14:25, schrieb Thiago H de Paula Figueiredo:
I'm still undecided how to handle this issue. To get started, I created
and attached a simple patch that downgrades the write lock to a read
lock if the attribute's class is a String, a primitive wrapper type or
has the ImmutableSessionPersistedObject annotation.
This is of course not very flexible but should work in a lot of
situations. And we can always extend the list of immutable classes later.
However, if we want a more flexible approach, I guess the best way to go
would be a SessionPersistedObjectAnalyzer2 interface, with an added
boolean isMutable(T sessionPersistedObject) method.

I'd keep SessionPersistedObjectAnalyzer as it is and create a separate
service, let's say ImmutableClassService, with a single method
isMutable(Class clasz), which would be basically a collection of Class
instances received from distributed configuration. This new service
could be even used by other code that could benefit from knowing which
classes have immutable instances.

Yes, that's what I proposed earlier. I've come to thinking that it might be overkill to create a service for just that tiny purpose and that it might become hard to keep the overview over all services over time if we did that too often. And I thought that SessionPersistedObjectAnalyzer might be the right place to add the method. But I'll have a go at that and see how bad it gets. ;-) Only, I don't like the name ImmutableClassService because it doesn't tell you straight away what the service is for. How about ClassMutabilityAnalyzer if we really want to use it for that single purpose only?

Jochen

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tapestry.apache.org
For additional commands, e-mail: dev-h...@tapestry.apache.org

Reply via email to