Hello developers & committors,

At the moment, I am working for a customer who requires BEA Weblogic as the 
application server. There is only a small issue with the MMBase taglib which prevents 
MMBase from running in it. BEA Weblogic requires that all taglib attributes are 
implemented according to the bean specification. The MMBase taglib fails on this, 
because the CloudReferrer tags have a cloud attribute which is not implemented 
according to the bean specs.
CloudReferrer.java does not have matching setter and getter methods for the cloud 
attribute.

    public void setCloud(String c) throws JspTagException
    public Cloud getCloud() throws JspTagException

With this proposal I want to rename the getCloud method. When the method is renamed 
the bean specs is honoured and I can use MMBase in Weblogic. IMO this is more then a 
small bugfix. A rename will affect a lot of taglib classes (including custom 
extensions on the MMBase taglib). There is no other way to comply to the bean specs. 
The method can not be changed to protected, because then other classes don't compile 
anymore.

Code proposal: CloudReferrer.java

    /**
     * Find the CloudProvider and return its cloud variable in one
     * step. And the result of findCloudProvider is stored, so
     * invoking this function more often is better then invoking
     * findCloudProvider every time.
     *
     * @return a Cloud
     * @throws JspTagException
     * 
     * @deprecated (2004-05-08) use getCloudWeblogic, because this breaks the bean 
specs
     */
    public Cloud getCloud() throws JspTagException {
        return getCloudWeblogic();
    }
    
    /**
     * Find the CloudProvider and return its cloud variable in one
     * step. And the result of findCloudProvider is stored, so
     * invoking this function more often is better then invoking
     * findCloudProvider every time.
     *
     * @return a Cloud
     * @throws JspTagException
     */
    public Cloud getCloudWeblogic() throws JspTagException {
        return findCloudProvider().getCloudVar();
    }

The method should be renamed to something else, but that is a minor detail. The custom 
extenstions will still work, because the getCloud method is only deprecated. I could 
then remove the getCloud method from the sources to let it run in Weblogic.

Files changed:

applications/community/src/org/mmbase/applications/community/taglib/PostTag.java
applications/community/src/org/mmbase/applications/community/taglib/TreeTag.java
applications/community/src/org/mmbase/applications/community/taglib/UpdateTag.java
applications/community/src/org/mmbase/applications/community/taglib/WhoTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/CloudReferrerTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/ListContainerTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/ListNodesContainerTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/ListRelationsContainerTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryAgeConstraintTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryAliasConstraintTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryContainer.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/RelatedContainerTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/RelatedNodesContainerTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/CountRelationsTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/edit/CreateNodeTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/FieldInfoTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/FieldListTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/functions/AbstractFunctionTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/functions/NodeFunctionTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/functions/NodeListFunctionTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/ImageTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/InfoTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/ListNodesTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/ListRelationsTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/ListTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/macro/RelatedTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/NodeFieldTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/NodeInfoTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/NodeTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow/LeafFileTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow/LeafIncludeTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow/TreeFileTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/pageflow/TreeIncludeTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/RelatedNodesTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/security/MayCreateRelationTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/security/MayCreateTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/tree/TreeTag.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler/ByteHandler.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler/EnumHandler.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler/IntegerHandler.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler/NodeHandler.java
applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler/StringHandler.java


The code change is for MMBase-1_7 and MMBase HEAD.

Committors: please choose one of the options below.

 START OF CALL: 2004-07-05
 END OF CALL:   2004-07-08

 [_] +1 (YES)
 [_] +0 (ABSTAIN )
 [_] -1 (NO), because :
 [_] VETO, because:


Method name: _________________


Nico Klasens


Reply via email to