geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yunfeng ma <>
Subject Re: [Discuss] Model for deployment plans in GEP - Move from EMF to XMLBeans or JAXB?
Date Fri, 14 Mar 2008 10:54:12 GMT

Cool, great news ...  :) 

I'm trying to replace EMF using JAXB and got some issues need your help.

1. Some elements in the deployment plan can not be unmarshalled, such as 
gbeans in geronimo-web.xml. I'm not sure if it's because 
geronimo-web-2.0.1.xsd only includes an abstract element "service" which 
is the parent of "gbean".

2. Now the schema files are compiled to generate the model classes 
during every GEP building. I think the better way is generating the java 
source codes offline and importing the source codes to svn directly, 
this provides us a chance to customize the generated source codes (like 
the way in OpenEJB).

3. The deployment plan saved by JAXB after modification is unformatted, 
only contents are in one line. We need save the deployment plan with 
well format.

4. More elegant way to operate the POJOs generate by JAXB. JAXB uses 
POJO to represent the element in XML, so how to create a new instance of 
an element (JAX

B way is too fussy), how to set/get the properties of an element via 
property name (JAXB doesn't provide any way for this), how to get the 
parent instance of an element (JAXB doesn't provide any way for this) etc.

Any advice for the above issues?

Thanks a lot.

-- YunFeng Ma

Shiva Kumar H R wrote:

EMF plug-ins are now redundant and have been deleted 
(GERONIMODEVTOOLS-294). This led to a lot of GEP dependencies going 
redundant (GERONIMODEVTOOLS-295) and those have also been deleted. 
(Please see the JIRA comments for detailed information)

GEP has become Surprisingly Thinner - Just 5.4MB!! (down from 12.6MB - 
nearly 55% reduction in weight). She is becoming more & more 
attractive each day  ;) 



On Tue, Mar 11, 2008 at 11:48 PM, Shiva Kumar H R < 
<>> wrote:

    The remaining two modules (v20.core & v20.ui) have also been

    ported to an extent. Thanks again Yun Feng for the patch (you seem

    to be super fast!).

    Entire GEP builds successfully now. However there is still a lot

    more porting to be done.



    On Thu, Mar 6, 2008 at 3:31 PM, Shiva Kumar H R <

    <>> wrote:

        I have committed Yun Feng's patch into GEP trunk. Thanks very

        much Yun Feng.

        Build is successful, except for below two modules:



        Once those two modules are also ported onto JAXB, complete

        build would be successful.



        On Wed, Mar 5, 2008 at 10:44 PM, Shiva Kumar H R

        < <>> wrote:

            Perfect. Thanks Tim. I will concentrate on the various ui


            Yun Feng,

            Would you like to explore handling multiple schema versions?



            On Wed, Mar 5, 2008 at 10:18 PM, Tim McConnell

            < <>> wrote:

                Shiva, with your current experience with the

                deployment plan portal, is it safe

                to assume you will again concentrate on the visual

                aspects of the refactoring

                (deployment plan editors, etc..??) If that is the

                case, I will concentrate on

                the various version specific

                server tool cores (e.g.,,


                Tim McConnell wrote:

                > Hi Shiva, thanks for the update. I will review Yun

                Feng's patches today

                > as well, and start on the refactoring effort as



                > Shiva Kumar H R wrote:

                >> I will be committing Yun Feng's patch today, to

                kick start GEP

                >> refactoring  :) 


                >> This patch adds two new directories under plugins:

                >> org.apache.geronimo.deployment.v11.jaxbmodel, and

                >> org.apache.geronimo.deployment.v21.jaxbmodel

                >> which contain JAXB generated classes for our G

                plans. The patch has

                >> also refactored some part of GEP code to use these

                JAXB model classes

                >> instead of EMF.


                >> We need to continue refactoring rest of GEP code

                and eventually get

                >> rid of following EMF modules:

                >> org.apache.geronimo.deployment.model

                >> org.apache.geronimo.deployment.model.edit

                >> org.apache.geronimo.v11.deployment.model

                >> org.apache.geronimo.v11.deployment.model.edit


                >> And further, once we figure out how to handle

                multiple schemas, we

                >> must be able to merge

                org.apache.geronimo.deployment.v11.jaxbmodel and

                >> org.apache.geronimo.deployment.v21.jaxbmodel into *one*


                >> Once we have such single model which can handle

                multiple schemas, I am

                >> hoping that we could merge these as well:




                >>, and



                >> Just in case we mess up things  ;)  we have taken

                backup of existing GEP

                >> trunk under branches/2.1/ . We will be committing

                all new code under

                >> trunk.


                >> And trunk builds might fail for sometime until this

                refactoring is

                >> complete.


                >> --

                >> Thanks,

                >> Shiva


                >> On Tue, Mar 4, 2008 at 2:11 PM, Shiva Kumar H R

                < <>

                >> <

                <>>> wrote:


                >>     There have been further discussions on this in

                IRC and in JIRA. As

                >>     recommended in





                >>     I am summarizing those discussions below:

                >>     (Tim, DJencks, DBlevins & Yun Feng - Please

                correct if am wrong)


                >>     1) JAXB/XMLBeans/DConfigBeans:

                >>     a) On a further discussion about XMLBeans and

                JAXB, we saw that

                >>     writing deployment code might turn out be much

                easier by using JAXB

                >>     rather than XMLBeans.


                >>     b) On a discussion about whether GEP should

                ideally be using JSR-88

                >>     DConfigBeans, we wondered if JSR-88

                DConfigBeans are a dead idea &

                >>     should be left alone, because No One other than

                Geronimo even thinks

                >>     about trying to implement them.


                >>     So we concluded that it is worth experimenting

                with JAXB.


                >>     2) Hints from OpenEJB about using JAXB:

                >>     a) On a discussion about how OpenEJB uses JAXB,

                it seems schemas are

                >>     compiled only once (instead of compiling during

                every build as is

                >>     currently done both in Geronimo and GEP) and

                checked in to the

                >>     source stream.

                >>     I too don't see any point in compiling G

                schemas during every build

                >>     of GEP, and the one time compilation & check in

                approach of OpenEJB

                >>     looks ideal to me for GEP also. This would lead

                to significant

                >>     savings in build time. Please point out if I am

                missing something.


                >>     b) It seems that the real beauty (& ease of

                use) of JAXB comes from

                >>     the ability to customize JAXB generated classes

                (like (i) adding

                >>     interfaces, (ii) removing all their wrappers

                for simple types like

                >>     string, int, boolean etc, (iii) using Maps

                instead of Lists for auto

                >>     indexing things that can be keyed, etc).

                OpenEJB uses those

                >>     customizations. To keep the Customized JAXB

                classes and Schema in

                >>     sync, OpenEJB has unit tests that read in xml

                documents, write them

                >>     out again, then compare the results. A similar

                approach could be

                >>     used in GEP also.


                >>     3) Handling multiple schema versions

                >>     I guess JAXB could help us better with multiple

                version of schemas.

                >>     (I mean a single set of JAXB classes being able

                to read/write say

                >>     geronimo-web.xml in v1.1, v2.0, v2.0.1 etc). We

                need to explore this

                >>     more.


                >>     Tim, Yun Feng and myself are looking at

                completing this refactoring

                >>     at the earliest so that we could then focus on

                other JIRAs/features

                >>     & release GEP 2.1. Yun Feng already has a patch

                that has ported good

                >>     amount of GEP onto JAXB and I am looking at

                committing it tomorrow.


                >>     If you forsee any concerns with the approaches

                above, kindly reply.


                >>     --     Thanks,

                >>     Shiva



                >>     On Tue, Feb 12, 2008 at 2:16 PM, Shiva Kumar H

                R < <>

                >>     <

                <>>> wrote:


                >>         Please see 11-Feb IRC chat btw djencks,

                shivahr & mcconne



                >>         further discussions on this.


                >>         As recommended by DJencks we will

                experiment using JAXB in GEP

                >> 2.1.


                >>         --         Thanks,

                >>         Shiva



                >>         On Feb 11, 2008 9:22 PM, David Jencks

                < <>

                >>         <

                <>>> wrote:



                >>             On Feb 11, 2008, at 7:16 AM, Shiva

                Kumar H R wrote:


                >>>             I went through following tutorials of

                JAXB & XMLBeans:

                >>>               a) Java Architecture for XML Binding





                >>>               b) Tutorial: First Steps with XMLBeans





                >>>             Also searched for comparisons btw

                them. Latest one I could

                >>>             find is the following blog from Jan'2005:



                >>>             I am yet to see the value add JAXB

                brings over XMLBeans.

                >>>             Am I missing something?


                >>             My $0.02:


                >>             xmlbeans is a complete and accurate

                representation of the

                >>             xml infoset.  As a result, you can

                easily manipulate the

                >>             xml, but you get a slightly peculiar

                java object model that

                >>             exactly represents the schema and

                cannot be modified.


                >>             jaxb is focussed on the java pojos and

                lets you modify the

                >>             pojos considerably from the xml while

                still providing

                >>             accurate mapping.  This can be much

                more convenient for

                >>             directly constructing a pojo tree from

                xml suitable for

                >>             configuring server components.  It

                provides fewer validity

                >>             checks than xmlbeans.


                >>             Openejb is using jaxb and I think their

                deployment code is

                >>             pretty simple for the complexity they

                have to deal with.


                >>             thanks

                >>             david jencks





                >>>             On Feb 11, 2008 4:44 PM, Shiva Kumar H R

                >>>             <

                <> <

                <>>> wrote:




                >>>                     Despite my liking for xmlbeans

                and its unique

                >>>                     strengths I think a very

                strong argument can be

                >>>                     made for moving the deployer

                code to jaxb.


                >>>                 Interesting!! Let me do some quick

                learning of jaxb

                >>>                 and start a separate thread on this.



                >>>                     thanks

                >>>                     david jencks


                >>>                     On Feb 8, 2008, at 12:30 AM,

                Shiva Kumar H R wrote:


                >>>>                     2) Geronimo Eclipse Plug-in


                >>>>                         a) Model framework for

                Geronimo deployment

                >>>> plans:

                >>>>                     Currently it is EMF (Eclipse

                Modeling Framework).

                >>>>                     With every update to Geronimo

                deployment schema,

                >>>>                     it's a major pain to generate

                new EMF classes. If

                >>>>                     however, GEP uses the same

                model framework as

                >>>>                     that of Geronimo server

                (XMLBeans), then at least

                >>>>                     this problem would be solved.

                IIUC JSR-88

                >>>>                     DConfigBeans would be the

                ideal model framework

                >>>>                     for GEP - in that case even

                if the model

                >>>>                     framework of server changes

                in future, GEP would

                >>>>                     be unaffected.


                >>>>                     --                     Thanks,

                >>>>                     Shiva





                >>>                 --                 Thanks,

                >>>                 Shiva




                >>>             --             Thanks,

                >>>             Shiva









                Tim McConnell

Express yourself instantly with MSN Messenger! Download today it's FREE!
View raw message