to keep memory overhread low only the last visisted page is stored in
http session. the rest of the pages are spooled to disk for long-term
storage in case the user uses the back button, and are cleaned up on
session expiration.

-igor

On Thu, May 28, 2009 at 6:54 PM, Chris Colman
<chr...@stepaheadsoftware.com> wrote:
> When you say "offline storage" do you mean that the user has chosen to
> save pages for future offline reference or do you mean a more
> 'automated' process that wicket performs when system memory becomes too
> low?
>
> Chris
>
>> -----Original Message-----
>> From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com]
>> Sent: Friday, 29 May 2009 11:43 AM
>> To: users@wicket.apache.org
>> Subject: Re: Anemic domain model and are @SpringBean's compatible with
> the
>> solution in "Spring 2.0 vs. the Anemic Domain Model"?
>>
>> well, this is why salve removes the dependency field to at least help
>> with those.
>>
>> other then that you can use a loadabledetachablemodel to release the
>> reference when the page is not used.
>>
>> -igor
>>
>> On Thu, May 28, 2009 at 6:40 PM, Chris Colman
>> <chr...@stepaheadsoftware.com> wrote:
>> > Is that controllable?
>> >
>> > What if I have complex object models referenced from wicket UI
>> > components that I don't want (can't reasonably with Java's non
> optimal
>> > serialization) serialized?
>> >
>> > If we're serializing for offline storage aren't we going to require
> the
>> > underlying model objects to get serialized as well?
>> >
>> >> -----Original Message-----
>> >> serialization in the context when you need to serialize the object
> -
>> >> eg wicket serializes its pages for offline storage, etc.
>> >>
>> >> -igor
>> >>
>> >> On Thu, May 28, 2009 at 5:51 PM, Chris Colman
>> >> <chr...@stepaheadsoftware.com> wrote:
>> >> > Another extremely light weight IoC with ORM wrapping (JDO and
>> > Hibernate)
>> >> > is exPOJO at http://www.expojo.com
>> >> >
>> >> > No need for old fashioned DAOs etc., just POJOs being persisted
>> >> > transparently the way they should be.
>> >> >
>> >> > In terms of serialization:
>> >> >
>> >> > Is that for the purpose of scaling in a cluster environment? I
> vote
>> > for
>> >> > 'session affinity' every time - it's almost necessary when you
> have
>> >> > anything more sophisticated than an anemic domain model. Do you
>> > really
>> >> > want to be shifting complex object models from server to server
> via
>> >> > serialization?
>> >> >
>> >> > If it's not for a cluster environment but for a single server to
>> > allow
>> >> > stale sessions to be swapped out then let the garbage collection
>> > clean
>> >> > out the ORM's object cache instead.
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com]
>> >> >> Sent: Friday, 29 May 2009 3:38 AM
>> >> >> To: users@wicket.apache.org
>> >> >> Subject: Re: Anemic domain model and are @SpringBean's
> compatible
>> > with
>> >> > the
>> >> >> solution in "Spring 2.0 vs. the Anemic Domain Model"?
>> >> >>
>> >> >> On Thu, May 28, 2009 at 10:09 AM, Kent Larsson
>> >> > <kent.lars...@gmail.com>
>> >> >> wrote:
>> >> >> > Nice! I think Salve looks great! And it solves more than this
>> >> > problem,
>> >> >> > I like the design by contract module too as it allows me to
>> > validate
>> >> >> > parameters in a bit more declarative way.
>> >> >> >
>> >> >> > Do you think Salve is ready to be used in production? I'm a
> bit
>> >> >> > concerned by "Although already usable, Salve is still in its
>> >> > infancy.
>> >> >> > Not all features have been implemented and not all problems
>> > worked
>> >> >> > out.". I only see one open issue and it doesn't seem too major
>> > for
>> >> > me
>> >> >> > to pick it up.
>> >> >>
>> >> >> we have been using it in production for a while without any
>> > problems.
>> >> >> i just need to find the time to update the website text :)
>> >> >>
>> >> >> > If I'm not mistaken Salve may be used (for lots of things, but
>> > one
>> >> > is)
>> >> >> > to solve serialization issues with Spring beans in Wicket
>> >> > components?
>> >> >> > But isn't that the same issue that the Wicket IOC and it's
>> >> > @SpringBean
>> >> >> > annotation solves?
>> >> >>
>> >> >> wicket ioc can only take it so far. because it has to generate a
>> > proxy
>> >> >> there are limitations to what classes can be proxies - eg no
> final
>> >> >> methods, default constructor, etc. salve doesnt use a proxy so
> it
>> >> >> doesnt have any problems.
>> >> >>
>> >> >> although small, wicket ioc does have an overhead of having to
>> >> >> serialize the proxy with the componnet. since salve removes the
>> > field
>> >> >> it has no such overhead, this is more important when you are
>> > returning
>> >> >> large resultsets of entities that use dependencies.
>> >> >>
>> >> >> > If that's the case: Could I use Spring to inject my entities
> with
>> >> >> > DAO's for now, and use the @SpringBean annotation on those as
>> > well
>> >> > in
>> >> >> > my Wicket components (In those cases I have entities as class
>> > vars)?
>> >> >> > And the @SpringBean will solve the serialization issue?
>> >> >>
>> >> >> you can use whatever works for you. salve is an alternative :)
>> >> >>
>> >> >> > By just looking at Salve a bit it seems I could migrate to
> Salve
>> > in
>> >> >> > two steps that way. And it might be a pretty smooth path to
> take?
>> > It
>> >> >> > would mean that I inject 1000 entities for no good reason. But
> if
>> > I
>> >> >> > see a performance problem in doing so I could just migrate to
>> > Salve?
>> >> >> > By smooth path I mean that I would have access to my DAO's in
> my
>> >> >> > entities and would essentially only change the dependency
>> >> > annotations
>> >> >> > and setup Salve.
>> >> >>
>> >> >> as long as you do not use spring-specific injection rules you
>> > should
>> >> >> be fine. salve uses lookup by type primarily, but also does have
>> >> >> @SpringBeanId that can be used as a qualifier.
>> >> >>
>> >> >>
>> >> >> > Of course, if Salve is production ready. Then could I throw
> out
>> >> > Wicket
>> >> >> > IOC and the @SpringBean annotation and use Salve instead to
> solve
>> >> >> > serialization issues? In this case I would use Salve for my
>> >> >> > presentation/Wicket -layer as well as dependency injection in
> my
>> >> >> > entities and Spring as I already do for my service/business
>> > -layer
>> >> > and
>> >> >> > my persistence/DTO -layer. Or would it be nicer to have Salve
>> > handle
>> >> >> > dependencies in the last two layers as well?
>> >> >>
>> >> >> we use salve to inject across all layers. it gives you a
> consistent
>> >> >> approach to use and mock in unit tests. we have a spring context
>> > that
>> >> >> contains true services - eg session factory, mail sender, credit
>> > card
>> >> >> processor, etc. all of our domain model then uses salve to
> inject
>> >> >> these wherever needed.
>> >> >>
>> >> >> -igor
>> >> >>
>> >> >> > A lot of questions and text. Thanks for reading this far! :-)
>> >> >> >
>> >> >> > Best regards, Kent
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > On Thu, May 28, 2009 at 5:36 PM, Igor Vaynberg
>> >> > <igor.vaynb...@gmail.com>
>> >> >> wrote:
>> >> >> >> this is why i built salve.googlecode.com
>> >> >> >>
>> >> >> >> you can easily hook it into spring and have all your objects
>> > (doman
>> >> >> >> objects or wicket components) injected via @Dependency
> without
>> >> >> >> worrying about serialization issues or eager injection - eg
> if
>> > you
>> >> >> >> load a result set of 1000 hibernate entities that need
> injection
>> >> > you
>> >> >> >> dont want all those injected for no reason.
>> >> >> >>
>> >> >> >> -igor
>> >> >> >>
>> >> >> >> On Thu, May 28, 2009 at 6:38 AM, Kent Larsson
>> >> > <kent.lars...@gmail.com>
>> >> >> wrote:
>> >> >> >>> Hi,
>> >> >> >>>
>> >> >> >>> Our current architecture:
>> >> >> >>> ---
>> >> >> >>>
>> >> >> >>> We're currently using a 3-tier architecture (presentation,
>> >> >> >>> service/business and persistence) consisting of Wicket (+ a
>> > little
>> >> >> >>> Spring), Spring and Spring + Hibernate:
>> >> >> >>>
>> >> >> >>> Wicket:
>> >> >> >>>
>> >> >> >>> Does presentation, we're not inside a transaction /
> Hibernate
>> >> > session
>> >> >> >>> so all used fields must be loaded by Spring. We call Spring
>> >> > singleton
>> >> >> >>> beans and annotate those fields with @SpringBean.
>> >> >> >>>
>> >> >> >>> Spring:
>> >> >> >>>
>> >> >> >>> In the service layer we have Spring singleton beans,
> services,
>> >> > which
>> >> >> >>> are called from the Wicket layer. We have our transaction /
>> >> > Hibernate
>> >> >> >>> session boundary at this layer. We call DAO's from this
> layer.
>> >> >> >>>
>> >> >> >>> Spring + Hibernate:
>> >> >> >>>
>> >> >> >>> Our DAO's are Spring singleton beans which performs database
>> >> >> >>> operations using HibernateTemplate.
>> >> >> >>>
>> >> >> >>> And common to all the layers are our entities. We use the
>> > @Entity
>> >> >> >>> annotation on them (not XML), from the Wicket layer we just
> use
>> >> > the
>> >> >> >>> accessor methods making sure that the relevant fields are
>> > loaded
>> >> > (as
>> >> >> >>> we would get an exception if they were Lazy and not yet
>> > loaded).
>> >> > Our
>> >> >> >>> entities are stupid, they lack logic and are used mostly
> like a
>> >> > struct
>> >> >> >>> in C/C++.
>> >> >> >>>
>> >> >> >>> I think the general pattern is pretty common for Java EE and
>> >> > Spring
>> >> >> >>> based web applications (feel free to disagree!). Yet it's
>> >> > classified
>> >> >> >>> as an anti-pattern by Martin Fowler as we are using mostly
>> >> > procedural
>> >> >> >>> programming and have an anemic domain model (
>> >> >> >>> http://en.wikipedia.org/wiki/Anemic_Domain_Model ).
>> >> >> >>>
>> >> >> >>> What I would like:
>> >> >> >>> ---
>> >> >> >>>
>> >> >> >>> I would like to use a more OOP approach and have logic in
> our
>> >> > current
>> >> >> >>> entities, creating a rich domain model. For that to work in
> all
>> >> > cases
>> >> >> >>> they need to be able to load and save data. I would still
> use a
>> >> > Spring
>> >> >> >>> singleton bean's for different services. But instead of
>> > changing
>> >> > the
>> >> >> >>> entities like structs they would be rich objects capable of
>> >> > chaning
>> >> >> >>> themself's and other objects.
>> >> >> >>>
>> >> >> >>> I found this article very interesting:
>> >> >> >>>
> http://www.nofluffjuststuff.com/blog_detail.jsp?rssItemId=96860
>> >> >> >>>
>> >> >> >>> But how would something like that work with Wicket? Could I
>> > just
>> >> > use
>> >> >> >>> @SpringBean like I'm currently doing but use it on both
>> > "entities"
>> >> > and
>> >> >> >>> Spring singleton services?
>> >> >> >>>
>> >> >> >>> For me this has a purely practical benefit, as I could use
> some
>> >> >> >>> inheritance in the domain object model to create different
>> >> > variations
>> >> >> >>> of logic and not just data. Wicket feels quite agile and
> nice
>> > to
>> >> > work
>> >> >> >>> with, but I still feel that the current architecture is a
> bit
>> >> > stale
>> >> >> >>> and seldom supports elegant OO solutions (that said, of
> course
>> >> > things
>> >> >> >>> can still be solved elegantly, I just think it would be
> easier
>> > if
>> >> > I
>> >> >> >>> could do it in a more OO oriented way).
>> >> >> >>>
>> >> >> >>> Comments? What are the pros and cons of this kind of
>> > architecture?
>> >> >> >>>
>> >> >> >>> All comments are greatly appreciated!
>> >> >> >>>
>> >> >> >>> Best regards, Kent
>> >> >> >>>
>> >> >> >>>
>> >> >
>> >
> ---------------------------------------------------------------------
>> >> >> >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> >> >>> For additional commands, e-mail:
> users-h...@wicket.apache.org
>> >> >> >>>
>> >> >> >>>
>> >> >> >>
>> >> >> >>
>> >> >
>> >
> ---------------------------------------------------------------------
>> >> >> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> >> >> For additional commands, e-mail: users-h...@wicket.apache.org
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >
>> >
> ---------------------------------------------------------------------
>> >> >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> >> > For additional commands, e-mail: users-h...@wicket.apache.org
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >
> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> >> For additional commands, e-mail: users-h...@wicket.apache.org
>> >> >>
>> >> >>
>> >> >> No virus found in this incoming message.
>> >> >> Checked by AVG - www.avg.com
>> >> >> Version: 8.5.339 / Virus Database: 270.12.44/2140 - Release
> Date:
>> >> > 05/28/09
>> >> >> 18:09:00
>> >> >
>> >> >
>> >
> ---------------------------------------------------------------------
>> >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> > For additional commands, e-mail: users-h...@wicket.apache.org
>> >> >
>> >> >
>> >>
>> >>
> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> For additional commands, e-mail: users-h...@wicket.apache.org
>> >>
>> >>
>> >> No virus found in this incoming message.
>> >> Checked by AVG - www.avg.com
>> >> Version: 8.5.339 / Virus Database: 270.12.44/2140 - Release Date:
>> > 05/28/09
>> >> 18:09:00
>> >
>> >
> ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> > For additional commands, e-mail: users-h...@wicket.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG - www.avg.com
>> Version: 8.5.339 / Virus Database: 270.12.44/2140 - Release Date:
> 05/28/09
>> 18:09:00
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

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

Reply via email to