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