I think that current architecture of GEP is too rigid in a way which
produces very redundant code if we extend it for future versions of
Geronimo. Also it is not compliant with multiple version of schemas.The UI
elements are also somewhat implemented in a hacky way where v20 UI depends
on v21 UI which should be the opposite. We need to introduce proper
hierarchy levels according to schema/server versions in GEP MVC at this
level before GEP becomes overly complicated.

For this I propose we change the architecture of our JAXB model to provide
support for multiple versions of schemas. With the help of slight
customizations we can easily make JAXB model tailored for our purpose. The
main task would be to create a common pool of classes between the versions
and initializing the JAXB context properly. Assuming we support both v2.0
and v2.1 which respectively have geronimo-web-2.0.xsd &
geronimo-web-2.0.1.xsd, we will create a Interface that will be implemented
by both WebAppTypes so that in commn UI section we can directly cast to the
interface and in version specific UI we can cast it to the particular
version we are working in.

After that we may need to refactor the code in ui plugins to utilize the new
hierarchy levels and extra functionality added. Current architecture will
easily achieve its bottleneck if the schema changes frequently. I find it
this is the ideal time to reorganize the whole of GEP.
Any comments?

-- 
Thanks,
Sainath Chowdary
B.Tech III yr, Spring Semester
Electronics & Communication Engg
Indian Institute of Technology Roorkee

Reply via email to