[jboss-dev-forums] [Design of POJO Server] - Re: metadata simplication
wolfc
do-not-reply at jboss.com
Mon Oct 22 06:29:12 EDT 2007
We're still mixing merging and parsing logic, which to me looks like an unsolvable puzzle.
What's the function of the override (NamedMetaDataWithDescriptionGroupWithOverride.data)?
Either it's for holding data from the jboss xml parse or it's for referring to the override. IMHO it can't be both.
The code now creates a StackOverflow in JBossEnterpriseBean.setDescriptionGroup. (ensureOverride returns a new instance of the same class and calls setDescriptionGroup.)
I have changed this part, but as long as the above question is unanswered the solution is by definition wrong.
Another thing is the merge method: the current use of the merge is contradicting the implementation.
MergeUtil.merge:
JBossMetaData merged = new JBossMetaData();
| merged.merge(jboss, spec);
| merged.setOverridenMetaData(spec);
| return merged;
vs for example IdMetaDataImpl:
public void merge(IdMetaDataImpl merged, IdMetaDataImpl original)
| {
| ...
| if (id != null)
| merged.setId(id);
| else if (original.id != null)
| merged.setId(original.id);
| }
where merged is the target. I would rather see this as target (as in MergeUtil) and have the following signature:
interface Mergable<M>
| void merge(M original, M override);
Or maybe only a one-way merge:
interface Mergable<M>
| void merge(M override);
Because the default (non-performant) code is always:
void merge(M original, M override)
| {
| merge(original);
| merge(override);
| }
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4097391#4097391
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4097391
More information about the jboss-dev-forums
mailing list