You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2005/03/04 01:28:45 UTC

cvs commit: incubator-myfaces/src/myfaces/org/apache/myfaces/config FacesConfigDispenser.java FacesConfigurator.java

mmarinschek    2005/03/03 16:28:45

  Modified:    src/jsfapi/javax/faces/component UIInput.java
                        UISelectMany.java
               src/myfaces/org/apache/myfaces/application
                        ApplicationImpl.java
               src/myfaces/org/apache/myfaces/config/impl/digester/elements
                        Converter.java
               src/myfaces/org/apache/myfaces/config/impl/digester
                        DigesterFacesConfigDispenserImpl.java
                        DigesterFacesConfigUnmarshallerImpl.java
               src/myfaces/org/apache/myfaces/config
                        FacesConfigDispenser.java FacesConfigurator.java
  Added:       src/myfaces/org/apache/myfaces/config/impl/digester/elements
                        Attribute.java Property.java
  Log:
  Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
  
  Revision  Changes    Path
  1.16      +28 -16    incubator-myfaces/src/jsfapi/javax/faces/component/UIInput.java
  
  Index: UIInput.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/jsfapi/javax/faces/component/UIInput.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- UIInput.java	22 Jan 2005 16:47:17 -0000	1.15
  +++ UIInput.java	4 Mar 2005 00:28:45 -0000	1.16
  @@ -37,6 +37,9 @@
    * @author Manfred Geiler (latest modification by $Author$)
    * @version $Revision$ $Date$
    * $Log$
  + * Revision 1.16  2005/03/04 00:28:45  mmarinschek
  + * Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
  + *
    * Revision 1.15  2005/01/22 16:47:17  mmarinschek
    * fixing bug with validation not called if the submitted value is empty; an empty string is submitted instead if the component is enabled.
    *
  @@ -254,23 +257,12 @@
           }
       }
   
  -    public void validate(FacesContext context)
  +    protected void validateValue(FacesContext context,Object convertedValue)
       {
  -        if (context == null) throw new NullPointerException("context");
  -        Object submittedValue = getSubmittedValue();
  -        if (submittedValue == null) return;
  -
  -        if(submittedValue instanceof String && ((String) submittedValue).length()==0)
  -        {
  -            submittedValue = null;
  -        }
  -
  -        Object convertedValue = getConvertedValue(context, submittedValue);
  -        if (!isValid()) return;
  -
           boolean empty = convertedValue == null ||
                           (convertedValue instanceof String
                            && ((String)convertedValue).length() == 0);
  +
           if (isRequired() && empty)
           {
               _MessageUtils.addErrorMessage(context, this, REQUIRED_MESSAGE_ID,new Object[]{getId()});
  @@ -282,6 +274,26 @@
           {
               _ComponentUtils.callValidators(context, this, convertedValue);
           }
  +
  +    }
  +
  +    public void validate(FacesContext context)
  +    {
  +        if (context == null) throw new NullPointerException("context");
  +        Object submittedValue = getSubmittedValue();
  +        if (submittedValue == null) return;
  +
  +        if(submittedValue instanceof String && ((String) submittedValue).length()==0)
  +        {
  +            submittedValue = null;
  +        }
  +
  +        Object convertedValue = getConvertedValue(context, submittedValue);
  +
  +        if (!isValid()) return;
  +
  +        validateValue(context, convertedValue);
  +
           if (!isValid()) return;
   
           Object previousValue = getValue();
  @@ -293,7 +305,7 @@
           }
       }
   
  -    private Object getConvertedValue(FacesContext context, Object submittedValue)
  +    protected Object getConvertedValue(FacesContext context, Object submittedValue)
       {
           try
           {
  
  
  
  1.16      +8 -3      incubator-myfaces/src/jsfapi/javax/faces/component/UISelectMany.java
  
  Index: UISelectMany.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/jsfapi/javax/faces/component/UISelectMany.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- UISelectMany.java	23 Jan 2005 22:06:33 -0000	1.15
  +++ UISelectMany.java	4 Mar 2005 00:28:45 -0000	1.16
  @@ -30,6 +30,9 @@
    * @author Manfred Geiler (latest modification by $Author$)
    * @version $Revision$ $Date$
    * $Log$
  + * Revision 1.16  2005/03/04 00:28:45  mmarinschek
  + * Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
  + *
    * Revision 1.15  2005/01/23 22:06:33  svieujot
    * Bugfix :  When no value were submitted, default values were set.
    * This caused a bug when the component wasn't displayed (for example if it was in a TabPanel's Tab that wasn't displayed).
  @@ -294,7 +297,7 @@
       }
   
   
  -    private Object getConvertedValue(FacesContext context, Object submittedValue)
  +    protected Object getConvertedValue(FacesContext context, Object submittedValue)
       {
           try
           {
  
  
  
  1.36      +57 -11    incubator-myfaces/src/myfaces/org/apache/myfaces/application/ApplicationImpl.java
  
  Index: ApplicationImpl.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/myfaces/org/apache/myfaces/application/ApplicationImpl.java,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- ApplicationImpl.java	3 Dec 2004 08:46:09 -0000	1.35
  +++ ApplicationImpl.java	4 Mar 2005 00:28:45 -0000	1.36
  @@ -23,9 +23,11 @@
   import org.apache.myfaces.el.VariableResolverImpl;
   import org.apache.myfaces.util.BiLevelCacheMap;
   import org.apache.myfaces.util.ClassUtils;
  +import org.apache.myfaces.config.impl.digester.elements.Property;
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  +import org.apache.commons.beanutils.BeanUtils;
   
   import javax.faces.FacesException;
   import javax.faces.application.Application;
  @@ -48,6 +50,9 @@
    * @author Thomas Spiegl
    * @version $Revision$ $Date$
    * $Log$
  + * Revision 1.36  2005/03/04 00:28:45  mmarinschek
  + * Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
  + *
    * Revision 1.35  2004/12/03 08:46:09  manolito
    * MYFACES-45 / ApplicationImpl does not correctly traverse a Class' hierarchy to create a Converter
    *
  @@ -96,8 +101,9 @@
       private StateManager         _stateManager;
   
       // components, converters, and validators can be added at runtime--must synchronize
  -    private final Map _converterMap = Collections.synchronizedMap(new HashMap());
  -    private final Map _converterTypeMap = Collections.synchronizedMap(new HashMap());
  +    private final Map _converterIdToClassMap = Collections.synchronizedMap(new HashMap());
  +    private final Map _converterClassToClassMap = Collections.synchronizedMap(new HashMap());
  +    private final Map _converterClassNameToConfigurationMap = Collections.synchronizedMap(new HashMap());
       private final Map _componentClassMap = Collections.synchronizedMap(new HashMap());
       private final Map _validatorClassMap = Collections.synchronizedMap(new HashMap());
   
  @@ -143,12 +149,12 @@
   
       public Iterator getConverterIds()
       {
  -        return _converterMap.keySet().iterator();
  +        return _converterIdToClassMap.keySet().iterator();
       }
   
       public Iterator getConverterTypes()
       {
  -        return _converterTypeMap.keySet().iterator();
  +        return _converterClassToClassMap.keySet().iterator();
       }
   
       public void setDefaultLocale(Locale locale)
  @@ -309,7 +315,7 @@
           
           try
           {
  -            _converterMap.put(converterId, ClassUtils.simpleClassForName(converterClass));
  +            _converterIdToClassMap.put(converterId, ClassUtils.simpleClassForName(converterClass));
               if (log.isTraceEnabled()) log.trace("add Converter id = " + converterId +
                       " converterClass = " + converterClass);
              }
  @@ -334,7 +340,7 @@
           
           try
           {
  -            _converterTypeMap.put(targetClass, ClassUtils.simpleClassForName(converterClass));
  +            _converterClassToClassMap.put(targetClass, ClassUtils.simpleClassForName(converterClass));
               if (log.isTraceEnabled()) log.trace("add Converter for class = " + targetClass +
                       " converterClass = " + converterClass);
           }
  @@ -344,6 +350,23 @@
           }
       }
   
  +    public void addConverterConfiguration(String converterClassName,
  +                                          org.apache.myfaces.config.impl.digester.elements.Converter configuration)
  +    {
  +        if ((converterClassName == null) || (converterClassName.length() == 0))
  +        {
  +            log.error("addConverterConfiguration: converterClassName = null is not allowed");
  +            throw new NullPointerException("addConverterConfiguration: converterClassName = null ist not allowed");
  +        }
  +        if ((configuration == null))
  +        {
  +            log.error("addConverterConfiguration: configuration = null is not allowed");
  +            throw new NullPointerException("addConverterConfiguration: configuration = null ist not allowed");
  +        }
  +
  +        _converterClassNameToConfigurationMap.put(converterClassName, configuration);
  +    }
  +
       public void addValidator(String validatorId, String validatorClass)
       {
           if ((validatorId == null) || (validatorId.length() == 0))
  @@ -442,7 +465,7 @@
               throw new NullPointerException("createConverter: converterId = null ist not allowed");
           }
   
  -        Class converterClass = (Class) _converterMap.get(converterId);
  +        Class converterClass = (Class) _converterIdToClassMap.get(converterId);
           if (converterClass == null)
           {
               log.error("Unknown converter id '" + converterId + "'.");
  @@ -482,7 +505,7 @@
       private Converter internalCreateConverter(Class targetClass)
       {
           // Locate a Converter registered for the target class itself.
  -        Class converterClass = (Class)_converterTypeMap.get(targetClass);
  +        Class converterClass = (Class)_converterClassToClassMap.get(targetClass);
   
           //Locate a Converter registered for interfaces that are
           // implemented by the target class (directly or indirectly).
  @@ -507,7 +530,30 @@
           {
               try
               {
  -                return (Converter) converterClass.newInstance();
  +                Converter converter = (Converter) converterClass.newInstance();
  +
  +                org.apache.myfaces.config.impl.digester.elements.Converter converterConfig =
  +                        (org.apache.myfaces.config.impl.digester.elements.Converter)
  +                            _converterClassNameToConfigurationMap.get(converterClass.getName());
  +
  +                Iterator it = converterConfig.getProperties();
  +
  +                while (it.hasNext())
  +                {
  +                    Property property = (Property) it.next();
  +
  +                    try
  +                    {
  +                        BeanUtils.setProperty(converter,property.getPropertyName(),property.getDefaultValue());
  +                    }
  +                    catch(Throwable th)
  +                    {
  +                        log.error("Initializing converter : "+converterClass.getName()+" with property : "+
  +                                property.getPropertyName()+" and value : "+property.getDefaultValue()+" failed.");
  +                    }
  +                }
  +
  +                return converter;
               }
               catch (Exception e)
               {
  
  
  
  1.3       +39 -0     incubator-myfaces/src/myfaces/org/apache/myfaces/config/impl/digester/elements/Converter.java
  
  Index: Converter.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/myfaces/org/apache/myfaces/config/impl/digester/elements/Converter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Converter.java	13 Oct 2004 11:50:59 -0000	1.2
  +++ Converter.java	4 Mar 2005 00:28:45 -0000	1.3
  @@ -15,6 +15,11 @@
    */
   package org.apache.myfaces.config.impl.digester.elements;
   
  +import java.util.ArrayList;
  +import java.util.List;
  +import java.util.Iterator;
  +import java.util.Collections;
  +
   
   /**
    * @author <a href="mailto:oliver@rossmueller.com">Oliver Rossmueller</a>
  @@ -25,6 +30,8 @@
       private String converterId;
       private String forClass;
       private String converterClass;
  +    private List _properties = null;
  +    private List _attributes = null;
   
   
       public String getConverterId()
  @@ -61,4 +68,36 @@
       {
           this.converterClass = converterClass;
       }
  +
  +    public void addProperty(Property value)
  +    {
  +        if(_properties==null)
  +            _properties = new ArrayList();
  +
  +        _properties.add(value);
  +    }
  +
  +    public Iterator getProperties()
  +    {
  +        if(_properties==null)
  +            return Collections.EMPTY_LIST.iterator();
  +
  +        return _properties.iterator();
  +    }
  +    
  +    public void addAttribute(Attribute value)
  +    {
  +        if(_attributes == null)
  +            _attributes = new ArrayList();
  +
  +        _attributes.add(value);
  +    }
  +
  +    public Iterator getAttributes()
  +    {
  +        if(_attributes==null)
  +            return Collections.EMPTY_LIST.iterator();
  +
  +        return _attributes.iterator();
  +    }
   }
  
  
  
  1.1                  incubator-myfaces/src/myfaces/org/apache/myfaces/config/impl/digester/elements/Attribute.java
  
  Index: Attribute.java
  ===================================================================
  /**
   * Copyright 2004 by Irian Marinschek & Spiegl Software OEG
   */
  package org.apache.myfaces.config.impl.digester.elements;
  
  import java.util.List;
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.Collections;
  
  /**
   * @author Martin Marinschek
   * @version $Revision: 1.1 $ $Date: 2005/03/04 00:28:45 $
   * 
       The "attribute" element represents a named, typed, value associated with
       the parent UIComponent via the generic attributes mechanism.
  
       Attribute names must be unique within the scope of the parent (or related)
       component.
  
       <!ELEMENT attribute       (description*, display-name*, icon*, attribute-name, attribute-class, default-value?, suggested-value?, attribute-extension*)>
   
   *          <p/>
   *          $Log: Attribute.java,v $
   *          Revision 1.1  2005/03/04 00:28:45  mmarinschek
   *          Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
   *
   * 
   */
  public class Attribute
  {
      private List _description;
      private List _displayName;
      private List _icon;
      private String _attributeName;
      private String _attributeClass;
      private String _defaultValue;
      private String _suggestedValue;
      private List _attributeExtension;
  
  
      public void addDescription(String value)
      {
          if(_description == null)
              _description = new ArrayList();
  
          _description.add(value);
      }
  
      public Iterator getDescriptions()
      {
          if(_description==null)
              return Collections.EMPTY_LIST.iterator();
  
          return _description.iterator();
      }
  
      public void addDisplayName(String value)
      {
          if(_displayName == null)
              _displayName = new ArrayList();
  
          _displayName.add(value);
      }
  
      public Iterator getDisplayNames()
      {
          if(_displayName==null)
              return Collections.EMPTY_LIST.iterator();
  
          return _displayName.iterator();
      }
  
      public void addIcon(String value)
      {
          if(_icon == null)
              _icon = new ArrayList();
  
          _icon.add(value);
      }
  
      public Iterator getIcons()
      {
          if(_icon==null)
              return Collections.EMPTY_LIST.iterator();
  
          return _icon.iterator();
      }
  
      public void setAttributeName(String attributeName)
      {
          _attributeName = attributeName;
      }
  
      public String getAttributeName()
      {
          return _attributeName;
      }
  
      public void setAttributeClass(String attributeClass)
      {
          _attributeClass = attributeClass;
      }
  
      public String getAttributeClass()
      {
          return _attributeClass;
      }
  
      public void setDefaultValue(String defaultValue)
      {
          _defaultValue = defaultValue;
      }
  
      public String getDefaultValue()
      {
          return _defaultValue;
      }
  
      public void setSuggestedValue(String suggestedValue)
      {
          _suggestedValue = suggestedValue;
      }
  
      public String getSuggestedValue()
      {
          return _suggestedValue;
      }
  
      public void addAttributeExtension(String attributeExtension)
      {
          if(_attributeExtension == null)
              _attributeExtension = new ArrayList();
  
          _attributeExtension.add(attributeExtension);
      }
  
      public Iterator getAttributeExtensions()
      {
          if(_attributeExtension==null)
              return Collections.EMPTY_LIST.iterator();
  
          return _attributeExtension.iterator();
      }
  }
  
  
  
  1.1                  incubator-myfaces/src/myfaces/org/apache/myfaces/config/impl/digester/elements/Property.java
  
  Index: Property.java
  ===================================================================
  /**
   * Copyright 2004 by Irian Marinschek & Spiegl Software OEG
   */
  package org.apache.myfaces.config.impl.digester.elements;
  
  import java.util.List;
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.Collections;
  
  /**
   * @author Martin Marinschek
   * @version $Revision: 1.1 $ $Date: 2005/03/04 00:28:45 $
   *
       The "property" element represents a JavaBean property of the Java class
       represented by our parent element.
  
       Property names must be unique within the scope of the Java class
       that is represented by the parent element, and must correspond to
       property names that will be recognized when performing introspection
       against that class via java.beans.Introspector.
  
      <!ELEMENT property        (description*, display-name*, icon*, property-name, property-class, default-value?, suggested-value?, property-extension*)>
  
   *          <p/>
   *          $Log: Property.java,v $
   *          Revision 1.1  2005/03/04 00:28:45  mmarinschek
   *          Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
   *
   */
  public class Property
  {
      private List _description;
      private List _displayName;
      private List _icon;
      private String _propertyName;
      private String _propertyClass;
      private String _defaultValue;
      private String _suggestedValue;
      private List _propertyExtension;
  
  
      public void addDescription(String value)
      {
          if(_description == null)
              _description = new ArrayList();
  
          _description.add(value);
      }
  
      public Iterator getDescriptions()
      {
          if(_description==null)
              return Collections.EMPTY_LIST.iterator();
  
          return _description.iterator();
      }
  
      public void addDisplayName(String value)
      {
          if(_displayName == null)
              _displayName = new ArrayList();
  
          _displayName.add(value);
      }
  
      public Iterator getDisplayNames()
      {
          if(_displayName==null)
              return Collections.EMPTY_LIST.iterator();
  
          return _displayName.iterator();
      }
  
      public void addIcon(String value)
      {
          if(_icon == null)
              _icon = new ArrayList();
  
          _icon.add(value);
      }
  
      public Iterator getIcons()
      {
          if(_icon==null)
              return Collections.EMPTY_LIST.iterator();
  
          return _icon.iterator();
      }
  
      public void setPropertyName(String propertyName)
      {
          _propertyName = propertyName;
      }
  
      public String getPropertyName()
      {
          return _propertyName;
      }
  
      public void setPropertyClass(String propertyClass)
      {
          _propertyClass = propertyClass;
      }
  
      public String getPropertyClass()
      {
          return _propertyClass;
      }
  
      public void setDefaultValue(String defaultValue)
      {
          _defaultValue = defaultValue;
      }
  
      public String getDefaultValue()
      {
          return _defaultValue;
      }
  
      public void setSuggestedValue(String suggestedValue)
      {
          _suggestedValue = suggestedValue;
      }
  
      public String getSuggestedValue()
      {
          return _suggestedValue;
      }
  
      public void addPropertyExtension(String propertyExtension)
      {
          if(_propertyExtension == null)
              _propertyExtension = new ArrayList();
  
          _propertyExtension.add(propertyExtension);
      }
  
      public Iterator getPropertyExtensions()
      {
          if(_propertyExtension==null)
              return Collections.EMPTY_LIST.iterator();
  
          return _propertyExtension.iterator();
      }
  
  }
  
  
  
  1.4       +18 -1     incubator-myfaces/src/myfaces/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java
  
  Index: DigesterFacesConfigDispenserImpl.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/myfaces/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DigesterFacesConfigDispenserImpl.java	13 Oct 2004 11:50:59 -0000	1.3
  +++ DigesterFacesConfigDispenserImpl.java	4 Mar 2005 00:28:45 -0000	1.4
  @@ -37,6 +37,9 @@
    * @author <a href="mailto:oliver@rossmueller.com">Oliver Rossmueller</a>
    *
    * $Log$
  + * Revision 1.4  2005/03/04 00:28:45  mmarinschek
  + * Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
  + *
    * Revision 1.3  2004/10/13 11:50:59  matze
    * renamed packages to org.apache
    *
  @@ -69,6 +72,7 @@
       private List variableResolver = new ArrayList();
       private Map converterById = new HashMap();
       private Map converterByClass = new HashMap();
  +    private Map converterConfigurationByClassName = new HashMap();
       private Map renderKits = new HashMap();
       private List managedBeans = new ArrayList();
       private List navigationRules = new ArrayList();
  @@ -123,10 +127,13 @@
               if (converter.getConverterId() != null)
               {
                   converterById.put(converter.getConverterId(), converter.getConverterClass());
  -            } else
  +            }
  +            else
               {
                   converterByClass.put(converter.getForClass(), converter.getConverterClass());
               }
  +
  +            converterConfigurationByClassName.put(converter.getConverterClass(),converter);
           }
   
           for (Iterator iterator = config.getRenderKits().iterator(); iterator.hasNext();)
  @@ -372,6 +379,16 @@
           return converterByClass.keySet().iterator();
       }
   
  +    public Iterator getConverterConfigurationByClassName()
  +    {
  +        return converterConfigurationByClassName.keySet().iterator();
  +    }
  +
  +    public Converter getConverterConfiguration(String converterClassName)
  +    {
  +        return (Converter) converterConfigurationByClassName.get(converterClassName);
  +    }
  +
   
       /**
        * @return converter class that belongs to the given converter id
  
  
  
  1.6       +23 -0     incubator-myfaces/src/myfaces/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java
  
  Index: DigesterFacesConfigUnmarshallerImpl.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/myfaces/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DigesterFacesConfigUnmarshallerImpl.java	25 Nov 2004 08:34:42 -0000	1.5
  +++ DigesterFacesConfigUnmarshallerImpl.java	4 Mar 2005 00:28:45 -0000	1.6
  @@ -31,6 +31,9 @@
    * @author <a href="mailto:oliver@rossmueller.com">Oliver Rossmueller</a>
    *
    * $Log$
  + * Revision 1.6  2005/03/04 00:28:45  mmarinschek
  + * Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
  + *
    * Revision 1.5  2004/11/25 08:34:42  matzew
    * applyed patch MYFACES-26. Thanks to Takashi Okamoto for supporting this.
    *
  @@ -93,6 +96,26 @@
           digester.addCallMethod("faces-config/converter/converter-id", "setConverterId", 0);
           digester.addCallMethod("faces-config/converter/converter-for-class", "setForClass", 0);
           digester.addCallMethod("faces-config/converter/converter-class", "setConverterClass", 0);
  +        digester.addObjectCreate("faces-config/converter/attribute",Attribute.class);
  +        digester.addSetNext("faces-config/converter/attribute","addAttribute");        
  +        digester.addCallMethod("faces-config/converter/attribute/description", "addDescription", 0);
  +        digester.addCallMethod("faces-config/converter/attribute/display-name", "addDisplayName", 0);
  +        digester.addCallMethod("faces-config/converter/attribute/icon", "addIcon", 0);
  +        digester.addCallMethod("faces-config/converter/attribute/attribute-name", "setAttributeName", 0);
  +        digester.addCallMethod("faces-config/converter/attribute/attribute-class", "setAttributeClass", 0);
  +        digester.addCallMethod("faces-config/converter/attribute/default-value", "setDefaultValue", 0);
  +        digester.addCallMethod("faces-config/converter/attribute/suggested-value", "setSuggestedValue", 0);
  +        digester.addCallMethod("faces-config/converter/attribute/attribute-extension", "addAttributeExtension", 0);
  +        digester.addObjectCreate("faces-config/converter/property",Property.class);
  +        digester.addSetNext("faces-config/converter/property","addProperty");
  +        digester.addCallMethod("faces-config/converter/property/description", "addDescription", 0);
  +        digester.addCallMethod("faces-config/converter/property/display-name", "addDisplayName", 0);
  +        digester.addCallMethod("faces-config/converter/property/icon", "addIcon", 0);
  +        digester.addCallMethod("faces-config/converter/property/property-name", "setPropertyName", 0);
  +        digester.addCallMethod("faces-config/converter/property/property-class", "setPropertyClass", 0);
  +        digester.addCallMethod("faces-config/converter/property/default-value", "setDefaultValue", 0);
  +        digester.addCallMethod("faces-config/converter/property/suggested-value", "setSuggestedValue", 0);
  +        digester.addCallMethod("faces-config/converter/property/property-extension", "addPropertyExtension", 0);
   
           digester.addObjectCreate("faces-config/managed-bean", ManagedBean.class);
           digester.addSetNext("faces-config/managed-bean", "addManagedBean");
  
  
  
  1.3       +13 -2     incubator-myfaces/src/myfaces/org/apache/myfaces/config/FacesConfigDispenser.java
  
  Index: FacesConfigDispenser.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/myfaces/org/apache/myfaces/config/FacesConfigDispenser.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FacesConfigDispenser.java	13 Oct 2004 11:50:59 -0000	1.2
  +++ FacesConfigDispenser.java	4 Mar 2005 00:28:45 -0000	1.3
  @@ -15,6 +15,8 @@
    */
   package org.apache.myfaces.config;
   
  +import org.apache.myfaces.config.impl.digester.elements.Converter;
  +
   import java.util.Iterator;
   
   /**
  @@ -24,6 +26,9 @@
    * @author Manfred Geiler (latest modification by $Author$)
    * @version $Revision$ $Date$
    * $Log$
  + * Revision 1.3  2005/03/04 00:28:45  mmarinschek
  + * Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
  + *
    * Revision 1.2  2004/10/13 11:50:59  matze
    * renamed packages to org.apache
    *
  @@ -136,6 +141,12 @@
       /** @return Iterator over all classes with an associated converter  */
       public Iterator getConverterClasses();
   
  +    /** @return Iterator over the config classes for the converters  */
  +    Iterator getConverterConfigurationByClassName();
  +
  +    /** delivers a converter-configuration for one class-name */
  +    Converter getConverterConfiguration(String converterClassName);
  +
       /** @return converter class that belongs to the given converter id */
       public String getConverterClassById(String converterId);
   
  
  
  
  1.11      +17 -2     incubator-myfaces/src/myfaces/org/apache/myfaces/config/FacesConfigurator.java
  
  Index: FacesConfigurator.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/myfaces/org/apache/myfaces/config/FacesConfigurator.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- FacesConfigurator.java	26 Jan 2005 17:03:11 -0000	1.10
  +++ FacesConfigurator.java	4 Mar 2005 00:28:45 -0000	1.11
  @@ -56,6 +56,7 @@
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.apache.myfaces.application.ApplicationFactoryImpl;
  +import org.apache.myfaces.application.ApplicationImpl;
   import org.apache.myfaces.config.element.ManagedBean;
   import org.apache.myfaces.config.element.NavigationRule;
   import org.apache.myfaces.config.element.Renderer;
  @@ -78,6 +79,9 @@
    * @author Manfred Geiler (latest modification by $Author$)
    * @version $Revision$ $Date$
    *          $Log$
  + *          Revision 1.11  2005/03/04 00:28:45  mmarinschek
  + *          Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
  + *
    *          Revision 1.10  2005/01/26 17:03:11  matzew
    *          MYFACES-86. portlet support provided by Stan Silver (JBoss Group)
    *
  @@ -521,6 +525,17 @@
               }
           }
   
  +        if(application instanceof ApplicationImpl)
  +        {
  +            for (Iterator it = _dispenser.getConverterConfigurationByClassName(); it.hasNext();)
  +            {
  +                String converterClassName = (String) it.next();
  +
  +                ((ApplicationImpl) application).addConverterConfiguration(converterClassName,
  +                    _dispenser.getConverterConfiguration(converterClassName));
  +            }
  +        }
  +
           for (Iterator it = _dispenser.getValidatorIds(); it.hasNext();)
           {
               String validatorId = (String) it.next();