Hi all,

I mentioned this briefly a week or so back but I would like to propose some
refactoring of the monitoring module. To sum up basically moving out the
monitoring dao into a separate module resulting in two modules.

1. The monitor core module - as it exists today, minus the hibernate dao
2. The hibernate module - with everything hibernate

Implicit in this change is making the backend dao fully pluggable, which
isn't the case today. This should make it easier to implement new back end
daos.

The biggest impact is that projects that are using on the hibernate backend
will have to update their dependencies. Aside from that not much should
really change. The plan is do the refactoring in a way that behaves exactly
like it does today when the hibernate module is present.

However there are some subtle things that will change in the core module
related to configuration. Currently the monitor config has the "mode"
property which is currently a mix of two things. The first is that it
controls which dao is chosen, the memory dao or the hibernate dao. But it
also controls how the hibernate dao operates with respect to when during
the life cycle of a request it persists to the database.

In light of this i am also proposing the following configuration changes.

1. A new config parameter named "storage", which would control specially
what dao is used. Its values would be "memory", "hibernate", and the future
names of daos yet to be implemented. I was also thinking "none" would make
sense as well which would basically make persistent a no-op. For instance
this would be handy for folks who only use the audit logging functionality
and don't want to pay the overhead of the memory dao, even though the
overhead is fairly minimal.

2. A change to the "mode" parameter to be one of "live" or "history", which
is a subset of what he values are today. Basically removing the "hybrid"
mode. The value "live" specifies that the dao should
persist continuously over the life cycle of the request. The value
"history" specifies that the dao should only persist after the request is
fully completed. To retain backward compatibility the value "hybrid" will
still be recognized by the hibernate extension but will essentially be an
alias for "live". Which is more or less the same behaviour as today.

I've thrown together an initial cut of the work, located here:


https://github.com/jdeolive/geoserver/commit/6c46371e6b7816cd08219ecce175e582f5be119e


Thoughts? Opinions?

-Justin


-- 
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to