My bad. Stan Silvert JBoss, Inc. [EMAIL PROTECTED] callto://stansilvert
> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of > Matthias Wessendorf > Sent: Sunday, June 04, 2006 10:45 AM > To: MyFaces Development; [EMAIL PROTECTED]; Stan Silvert > Subject: Re: svn commit: r411228 - > /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/Ap pl > icationImpl.java > > Hi, > > is there a reason for the following dependency in clazzes like > UICommand or UIComponentBase ? > > org.apache.myfaces.el.convert.*** > > -1 on myfaces dependencie's to the API (like in JSF 1.1.x world) > > -Matthias > > On 6/4/06, Matthias Wessendorf <[EMAIL PROTECTED]> wrote: > > invokeOnComponent on UIcomponent and encodeAll() > > I did. UIData not yet ... > > > > > > > > On 6/4/06, Martin Marinschek <[EMAIL PROTECTED]> wrote: > > > Those two are invokeOnComponent? That would be Matthias, then. > > > > > > regards, > > > > > > Martin > > > > > > On 6/4/06, Dennis Byrne <[EMAIL PROTECTED]> wrote: > > > > Stan already got two of those. > > > > > > > > Dennis Byrne > > > > > > > > >-----Original Message----- > > > > >From: Martin Marinschek [mailto:[EMAIL PROTECTED] > > > > >Sent: Saturday, June 3, 2006 10:37 PM > > > > >To: 'MyFaces Development' > > > > >Subject: Re: svn commit: r411228 - > /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/Ap pl > icationImpl.java > > > > > > > > > >Three changes are necessary: > > > > > > > > > >-invokeOnComponent, two times, as it needs to be implemented on > > > > >UIComponent and UIData > > > > >-encodeAll on UIComponent > > > > > > > > > >regards, > > > > > > > > > >Martin > > > > > > > > > >On 6/4/06, Dennis Byrne <[EMAIL PROTECTED]> wrote: > > > > >> >Basically, those are invokeOnComponent, and the > contentInterweaving > > > > >> >/tree built first approach. The only 1.2 thing I need for that > is > > > > >> >three new methods in the API. Functionalitywise, we'll be as > good as > > > > >> >1.2 with this. > > > > >> > > > > >> On the subject of duplication of effort, is > UIComponent.invokeOnComponent one of these methods ? What are the other > two? > > > > >> > > > > >> Dennis Byrne > > > > >> > > > > >> >Stan's work has mostly been done on the unified EL, and the new > API > > > > >> >coming along with that. I won't touch this at all. So I wouldn't > > > > >> >reimplement what he has been doing. > > > > >> > > > > > >> >regards, > > > > >> > > > > > >> >Martin > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> >On 6/3/06, Sean Schofield <[EMAIL PROTECTED]> wrote: > > > > >> >> Still -1 for me. I agree with Dennis. This will negatively > impact > > > > >> >> our progress towards 1.2. Even if those of us opposed are not > > > > >> >> involved in doing the work, its still work that could be done > on the > > > > >> >> full JSF 1.2 version (or something else.) > > > > >> >> > > > > >> >> Keep in mind that we are *still* trying to get a tomahawk > release out > > > > >> >> the door. So far only Matthias and one non-committer have > volunteered > > > > >> >> to help. > > > > >> >> > > > > >> >> Its hard to see how the 1.2 lite version will not involve > duplication > > > > >> >> of work. We've already established that Stan's work can't be > easily > > > > >> >> separated out into TC 5.5 and TC 6 so basically Martin and > others will > > > > >> >> end up duplicating much of what he has already done just to > make > > > > >> >> things work on TC 5.5. > > > > >> >> > > > > >> >> Its hard to imagine how this duplication of work is a good > thing. > > > > >> >> Either Stan's work will go ignored or Martin will be > duplicating what > > > > >> >> Stan did (at least partially.) Given the availabilty of our > > > > >> >> committers it sometimes takes a few weeks to get a minor > release out > > > > >> >> the door so I worry that we can't afford to divide our efforts > here. > > > > >> >> Three core branches, plus tobago, tomahawk, adf and now the > IBM thing. > > > > >> >> We're stretching ourselves way too thin here. > > > > >> >> > > > > >> >> Sean > > > > >> >> > > > > >> >> On 6/2/06, Grant Smith <[EMAIL PROTECTED]> wrote: > > > > >> >> > +1 on Martin's plans. It's a good start to eventually having > a pure 1.2 > > > > >> >> > implementation. Let's hit it. > > > > >> >> > > > > > >> >> > > > > > >> >> > On 6/2/06, Martin Marinschek < [EMAIL PROTECTED]> > wrote: > > > > >> >> > > Hi Dennis, > > > > >> >> > > > > > > >> >> > > I said I'll do the merge - and I'll do it! > > > > >> >> > > > > > > >> >> > > It will not be 1.1 compliant in a sense of passing the TCK > - that's > > > > >> >> > > not possible, the API will change. > > > > >> >> > > > > > > >> >> > > I know that a fully certified JSF1.2 implementation is our > ultimate, > > > > >> >> > > and most valuable goal. We'll get there, and I believe > faster on this > > > > >> >> > > path, than on the other. More people can work along with > us... > > > > >> >> > > > > > > >> >> > > But: I also believe that a 1.1.5 implementation _is_ > valuable. There > > > > >> >> > > are quite a few people who are working on JSF right now. > They might > > > > >> >> > > not want to switch their environment right now. They want > the full > > > > >> >> > > functionality of 1.2 on their environment. They'll get it > _only_ with > > > > >> >> > > MyFaces. > > > > >> >> > > > > > > >> >> > > regards, > > > > >> >> > > > > > > >> >> > > Martin > > > > >> >> > > > > > > >> >> > > On 6/2/06, Dennis Byrne <[EMAIL PROTECTED]> wrote: > > > > >> >> > > > >1.4 and 5.5 compatible way, and then in a month do the > final step on > > > > >> >> > > > >1.2 pure. > > > > >> >> > > > > > > > >> >> > > > So, 30 days from today? We need JIRA taska and > volunteers from the JSF > > > > >> >> > 1.15 group: > > > > >> >> > > > > > > > >> >> > > > Who will do the merge? > > > > >> >> > > > Who will test it for 1.1 compliance? > > > > >> >> > > > Who will bring it back in to compliance? > > > > >> >> > > > > > > > >> >> > > > Perhaps you guys can help me figure out if we have > difference in values, > > > > >> >> > or difference in cost estimates. We are all in agreement > that supporting > > > > >> >> > our own MyFaces 1.15 implementation will delay a actual real > certified JSF > > > > >> >> > 1.2 release ? right? Do you just think the delay is > trivial, or do you > > > > >> >> > think your 1.15 implementation is more valuable, or do you > not value a 1.2 > > > > >> >> > implementation as much as I do? > > > > >> >> > > > > > > > >> >> > > > Dennis Byrne > > > > >> >> > > > > > > > >> >> > > > >regards, > > > > >> >> > > > > > > > > >> >> > > > >Martin > > > > >> >> > > > > > > > > >> >> > > > >On 6/2/06, Dennis Byrne <[EMAIL PROTECTED]> wrote: > > > > >> >> > > > >> @team - what is the game plan for making sure > improvements like this > > > > >> >> > are getting into the 1.2 branch? When will 1.2 be trunk ? > > > > >> >> > > > >> > > > > >> >> > > > >> @Grant - not an attack on you > > > > >> >> > > > >> > > > > >> >> > > > >> Dennis Byrne > > > > >> >> > > > >> > > > > >> >> > > > >> >-----Original Message----- > > > > >> >> > > > >> >From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] > > > > >> >> > > > >> >Sent: Friday, June 2, 2006 02:35 PM > > > > >> >> > > > >> >To: [email protected] > > > > >> >> > > > >> >Subject: svn commit: r411228 - > > > > >> >> > > /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/Ap pl > icationImpl.java > > > > >> >> > > > >> > > > > > >> >> > > > >> >Author: grantsmith > > > > >> >> > > > >> >Date: Fri Jun 2 11:35:51 2006 > > > > >> >> > > > >> >New Revision: 411228 > > > > >> >> > > > >> > > > > > >> >> > > > >> >URL: > > > > >> >> > http://svn.apache.org/viewvc?rev=411228&view=rev > > > > >> >> > > > >> >Log: > > > > >> >> > > > >> >MYFACES-1301: fixes check for stale components > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > > >> >> > > > >> >Modified: > > > > >> >> > > > >> > > > > > >> >> > > myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/App li > cationImpl.java > > > > >> >> > > > >> > > > > > >> >> > > > >> >Modified: > > > > >> >> > > myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/App li > cationImpl.java > > > > >> >> > > > >> >URL: > > > > >> >> > > http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/a pa > che/myfaces/application/ApplicationImpl.java?rev=411228&r1=411227&r2=411 22 > 8&view=diff > > > > >> >> > > > >> > > > > >> >> > > >======================================================================= == > ===== > > > > >> >> > > > >> >--- > > > > >> >> > > myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/App li > cationImpl.java > > > > >> >> > (original) > > > > >> >> > > > >> >+++ > > > > >> >> > > myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/App li > cationImpl.java > > > > >> >> > Fri Jun 2 11:35:51 2006 > > > > >> >> > > > >> >@@ -52,20 +52,18 @@ > > > > >> >> > > > >> > * @version $Revision$ $Date$ > > > > >> >> > > > >> > */ > > > > >> >> > > > >> > public class ApplicationImpl > > > > >> >> > > > >> >- extends Application > > > > >> >> > > > >> >+ extends Application > > > > >> >> > > > >> > { > > > > >> >> > > > >> > private static final Log log = > > > > >> >> > LogFactory.getLog(ApplicationImpl.class); > > > > >> >> > > > >> > > > > > >> >> > > > >> > //~ Instance fields > > > > >> >> > ------------------------------------------------------------ > ---------------- > > > > >> >> > > > >> > > > > > >> >> > > > >> > private final Map > > > > >> >> > _valueBindingCache = > > > > >> >> > > > >> >- new BiLevelCacheMap(90) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- protected Object newInstance(Object > key) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- return new ValueBindingImpl( > ApplicationImpl.this, > > > > >> >> > (String) key); > > > > >> >> > > > >> >- } > > > > >> >> > > > >> >- }; > > > > >> >> > > > >> >+ new BiLevelCacheMap(90) { > > > > >> >> > > > >> >+ protected Object newInstance(Object > key) { > > > > >> >> > > > >> >+ return new > > > > >> >> > ValueBindingImpl(ApplicationImpl.this, (String) key); > > > > >> >> > > > >> >+ } > > > > >> >> > > > >> >+ }; > > > > >> >> > > > >> > > > > > >> >> > > > >> > private Collection _supportedLocales > = > > > > >> >> > Collections.EMPTY_SET; > > > > >> >> > > > >> > private Locale _defaultLocale; > > > > >> >> > > > >> >@@ -193,7 +191,7 @@ > > > > >> >> > > > >> > } > > > > >> >> > > > >> > _propertyResolver = propertyResolver; > > > > >> >> > > > >> > if (log.isTraceEnabled()) log.trace("set > PropertyResolver = > > > > >> >> > " + propertyResolver.getClass().getName()); > > > > >> >> > > > >> >- } > > > > >> >> > > > >> >+ } > > > > >> >> > > > >> > > > > > >> >> > > > >> > public PropertyResolver getPropertyResolver() > > > > >> >> > > > >> > { > > > > >> >> > > > >> >@@ -270,7 +268,7 @@ > > > > >> >> > > > >> > { > > > > >> >> > > > >> > _componentClassMap.put(componentType, > > > > >> >> > ClassUtils.simpleClassForName(componentClassName)); > > > > >> >> > > > >> > if (log.isTraceEnabled()) > log.trace("add Component > > > > >> >> > class = " + componentClassName + > > > > >> >> > > > >> >- " > > > > >> >> > for type = " + componentType); > > > > >> >> > > > >> >+ " for type = " + > componentType); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > catch (Exception e) > > > > >> >> > > > >> > { > > > > >> >> > > > >> >@@ -297,7 +295,7 @@ > > > > >> >> > > > >> > > > > > >> >> > _converterIdToClassMap.put(converterId, > > > > >> >> > ClassUtils.simpleClassForName(converterClass)); > > > > >> >> > > > >> > if (log.isTraceEnabled()) > log.trace("add Converter id = > > > > >> >> > " + converterId + > > > > >> >> > > > >> > " converterClass = " + > converterClass); > > > > >> >> > > > >> >- } > > > > >> >> > > > >> >+ } > > > > >> >> > > > >> > catch (Exception e) > > > > >> >> > > > >> > { > > > > >> >> > > > >> > log.error("Converter class " + > converterClass + " not > > > > >> >> > found", e); > > > > >> >> > > > >> >@@ -363,7 +361,7 @@ > > > > >> >> > > > >> > { > > > > >> >> > > > >> > _validatorClassMap.put(validatorId, > > > > >> >> > ClassUtils.simpleClassForName(validatorClass)); > > > > >> >> > > > >> > if (log.isTraceEnabled()) > log.trace("add Validator id = > > > > >> >> > " + validatorId + > > > > >> >> > > > >> >- " > > > > >> >> > class = " + validatorClass); > > > > >> >> > > > >> >+ " class = " + validatorClass); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > catch (Exception e) > > > > >> >> > > > >> > { > > > > >> >> > > > >> >@@ -372,7 +370,7 @@ > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > public UIComponent createComponent(String > componentType) > > > > >> >> > > > >> >- throws FacesException > > > > >> >> > > > >> >+ throws FacesException > > > > >> >> > > > >> > { > > > > >> >> > > > >> > if ((componentType == null) || > (componentType.length() == > > > > >> >> > 0)) > > > > >> >> > > > >> > { > > > > >> >> > > > >> >@@ -405,8 +403,8 @@ > > > > >> >> > > > >> > public UIComponent createComponent(ValueBinding > valueBinding, > > > > >> >> > > > >> > > > > > >> >> > FacesContext facesContext, > > > > >> >> > > > >> > String > > > > >> >> > componentType) > > > > >> >> > > > >> >- throws FacesException > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ throws FacesException > > > > >> >> > > > >> >+ { > > > > >> >> > > > >> > if ((valueBinding == null)) > > > > >> >> > > > >> > { > > > > >> >> > > > >> > log.error("createComponent: > valueBinding = null is not > > > > >> >> > allowed"); > > > > >> >> > > > >> >@@ -427,65 +425,55 @@ > > > > >> >> > > > >> > > > > > >> >> > > > >> > if (obj instanceof UIComponent) > > > > >> >> > > > >> > { > > > > >> >> > > > >> >- // check for stale component > > > > >> >> > > > >> >- UIComponent parent = (UIComponent) > obj; > > > > >> >> > > > >> >- while (parent.getParent() != null) { > > > > >> >> > > > >> >- parent = parent.getParent(); > > > > >> >> > > > >> >- } > > > > >> >> > > > >> >- if (!(parent instanceof UIViewRoot) > || parent == > > > > >> >> > facesContext.getViewRoot()) { > > > > >> >> > > > >> >- return (UIComponent) obj; > > > > >> >> > > > >> >- } > > > > >> >> > > > >> >- else { > > > > >> >> > > > >> >- log.debug("Stale component > found while > > > > >> >> > creating component of type [" + componentType + "]" > > > > >> >> > > > >> >- + " for binding [" + > > > > >> >> > valueBinding.getExpressionString() + "]"); > > > > >> >> > > > >> >- } > > > > >> >> > > > >> >+ // check for stale component > > > > >> >> > > > >> >+ UIComponent parent = (UIComponent) obj; > > > > >> >> > > > >> >+ while (parent.getParent() != null) { > > > > >> >> > > > >> >+ parent = parent.getParent(); > > > > >> >> > > > >> >+ } > > > > >> >> > > > >> >+ if (!(parent instanceof UIViewRoot) || > parent == > > > > >> >> > facesContext.getViewRoot()) { > > > > >> >> > > > >> >+ return (UIComponent) obj; > > > > >> >> > > > >> >+ } else { > > > > >> >> > > > >> >+ log.debug("Stale component found > while creating > > > > >> >> > component of type [" + componentType + "]" > > > > >> >> > > > >> >+ + " for binding [" + > > > > >> >> > valueBinding.getExpressionString() + "]"); > > > > >> >> > > > >> >+ } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- return (UIComponent) obj; > > > > >> >> > > > >> > } > > > > >> >> > > > >> >- else > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- try { > > > > >> >> > > > >> >+ try { > > > > >> >> > > > >> > UIComponent component = > createComponent(componentType); > > > > >> >> > > > >> > valueBinding.setValue(facesContext, > component); > > > > >> >> > > > >> > return component; > > > > >> >> > > > >> >- } catch(FacesException ex) { > > > > >> >> > > > >> >- log.error("Exception while creating > component of > > > > >> >> > type [" + componentType + "]" > > > > >> >> > > > >> >- + " for binding [" + > > > > >> >> > valueBinding.getExpressionString() + "]"); > > > > >> >> > > > >> >- throw ex; > > > > >> >> > > > >> >- } > > > > >> >> > > > >> >+ } catch(FacesException ex) { > > > > >> >> > > > >> >+ log.error("Exception while creating > component of type > > > > >> >> > [" + componentType + "]" > > > > >> >> > > > >> >+ + " for binding [" + > > > > >> >> > valueBinding.getExpressionString () + "]"); > > > > >> >> > > > >> >+ throw ex; > > > > >> >> > > > >> >+ > > > > >> >> > > > >> > } > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- public Converter createConverter(String > converterId) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- if ((converterId == null) || > (converterId.length() == 0)) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ public Converter createConverter(String > converterId) { > > > > >> >> > > > >> >+ if ((converterId == null) || > (converterId.length() == 0)) { > > > > >> >> > > > >> > log.error("createConverter: converterId > = null is not > > > > >> >> > allowed"); > > > > >> >> > > > >> > throw new > > > > >> >> > NullPointerException("createConverter: converterId = null > > > > >> >> > is not allowed"); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > Class converterClass = (Class) > > > > >> >> > _converterIdToClassMap.get(converterId); > > > > >> >> > > > >> > > > > > >> >> > > > >> >- try > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ try { > > > > >> >> > > > >> > Converter converter= (Converter) > > > > >> >> > converterClass.newInstance(); > > > > >> >> > > > >> > > > > > >> >> > > > >> > setConverterProperties(converterClass, > > > > >> >> > converter); > > > > >> >> > > > >> > > > > > >> >> > > > >> > return converter; > > > > >> >> > > > >> > } > > > > >> >> > > > >> >- catch (Exception e) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ catch (Exception e) { > > > > >> >> > > > >> > log.error("Could not instantiate > converter " + > > > > >> >> > converterClass, e); > > > > >> >> > > > >> > throw new FacesException("Could not > instantiate > > > > >> >> > converter: " + converterClass, e); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > > >> >> > > > >> >- public Converter createConverter(Class > targetClass) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- if (targetClass == null) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ public Converter createConverter(Class > targetClass) { > > > > >> >> > > > >> >+ if (targetClass == null) { > > > > >> >> > > > >> > log.error("createConverter: targetClass > = null is not > > > > >> >> > allowed"); > > > > >> >> > > > >> > throw new > > > > >> >> > NullPointerException("createConverter: targetClass = null > > > > >> >> > is not allowed"); > > > > >> >> > > > >> > } > > > > >> >> > > > >> >@@ -496,112 +484,87 @@ > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > > >> >> > > > >> >- private Converter internalCreateConverter(Class > targetClass) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ private Converter internalCreateConverter(Class > targetClass) { > > > > >> >> > > > >> > // Locate a Converter registered for the > target class > > > > >> >> > itself. > > > > >> >> > > > >> > String converterClassName = > > > > >> >> > (String)_converterClassNameToClassMap.get(targetClass); > > > > >> >> > > > >> > > > > > >> >> > > > >> > //Locate a Converter registered for > interfaces that are > > > > >> >> > > > >> > // implemented by the target class > (directly or > > > > >> >> > indirectly). > > > > >> >> > > > >> >- if (converterClassName == null) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ if (converterClassName == null) { > > > > >> >> > > > >> > Class interfaces[] = > targetClass.getInterfaces(); > > > > >> >> > > > >> >- if (interfaces != null) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- for (int i = 0, len = > interfaces.length; i < len; > > > > >> >> > i++) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- // search all superinterfaces > for a matching > > > > >> >> > converter, create it > > > > >> >> > > > >> >+ if (interfaces != null) { > > > > >> >> > > > >> >+ for (int i = 0, len = > interfaces.length; i < len; > > > > >> >> > i++) { > > > > >> >> > > > >> >+ // search all superinterfaces > for a matching > > > > >> >> > converter, create it > > > > >> >> > > > >> > Converter converter = > > > > >> >> > internalCreateConverter(interfaces[i]); > > > > >> >> > > > >> >- if (converter != null) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ if (converter != null) { > > > > >> >> > > > >> > return converter; > > > > >> >> > > > >> > } > > > > >> >> > > > >> > } > > > > >> >> > > > >> > } > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- if (converterClassName != null) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- try > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ if (converterClassName != null) { > > > > >> >> > > > >> >+ try { > > > > >> >> > > > >> > Class converterClass = > > > > >> >> > ClassUtils.simpleClassForName(converterClassName); > > > > >> >> > > > >> >- > > > > >> >> > > > >> >+ > > > > >> >> > > > >> > Converter converter = (Converter) > > > > >> >> > converterClass.newInstance(); > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > > >> >> > setConverterProperties(converterClass, converter); > > > > >> >> > > > >> > > > > > >> >> > > > >> > return converter; > > > > >> >> > > > >> > } > > > > >> >> > > > >> >- catch (Exception e) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ catch (Exception e) { > > > > >> >> > > > >> > log.error ("Could not instantiate > converter " + > > > > >> >> > converterClassName, e); > > > > >> >> > > > >> > throw new FacesException("Could not > instantiate > > > > >> >> > converter: " + converterClassName, e); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > // locate converter for primitive types > > > > >> >> > > > >> >- if (targetClass == Long.TYPE) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ if (targetClass == Long.TYPE) { > > > > >> >> > > > >> > return > internalCreateConverter(Long.class); > > > > >> >> > > > >> >- } else if (targetClass == Boolean.TYPE) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ } else if (targetClass == Boolean.TYPE) { > > > > >> >> > > > >> > return > internalCreateConverter(Boolean.class); > > > > >> >> > > > >> >- } else if (targetClass == Double.TYPE ) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ } else if (targetClass == Double.TYPE) { > > > > >> >> > > > >> > return > internalCreateConverter(Double.class); > > > > >> >> > > > >> >- } else if (targetClass == Byte.TYPE) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ } else if (targetClass == Byte.TYPE) { > > > > >> >> > > > >> > return > internalCreateConverter(Byte.class); > > > > >> >> > > > >> >- } else if (targetClass == Short.TYPE) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ } else if (targetClass == Short.TYPE) { > > > > >> >> > > > >> > return > internalCreateConverter(Short.class); > > > > >> >> > > > >> >- } else if (targetClass == Integer.TYPE) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ } else if (targetClass == Integer.TYPE) { > > > > >> >> > > > >> > return > internalCreateConverter(Integer.class); > > > > >> >> > > > >> >- } else if (targetClass == Float.TYPE) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ } else if (targetClass == Float.TYPE) { > > > > >> >> > > > >> > return > internalCreateConverter(Float.class); > > > > >> >> > > > >> >- } else if (targetClass == Character.TYPE) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ } else if (targetClass == Character.TYPE) { > > > > >> >> > > > >> > return > internalCreateConverter(Character.class); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- > > > > >> >> > > > >> > //Locate a Converter registered for the > superclass (if any) > > > > >> >> > of the target class, > > > > >> >> > > > >> > // recursively working up the inheritance > hierarchy. > > > > >> >> > > > >> > Class superClazz = > targetClass.getSuperclass(); > > > > >> >> > > > >> >- if (superClazz != null) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ if (superClazz != null) { > > > > >> >> > > > >> > return > > > > >> >> > internalCreateConverter(superClazz); > > > > >> >> > > > >> >- } > > > > >> >> > > > >> >- else > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ } else { > > > > >> >> > > > >> > return null; > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- private void setConverterProperties(Class > converterClass, > > > > >> >> > Converter converter) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ private void setConverterProperties(Class > converterClass, > > > > >> >> > Converter converter) { > > > > >> >> > > > >> > > > > > >> >> > org.apache.myfaces.config.impl.digester.elements.Converter > > > > >> >> > converterConfig = > > > > >> >> > > > >> > ( > > > > >> >> > org.apache.myfaces.config.impl.digester.elements.Converter) > > > > >> >> > > > >> >- > > > > >> >> > > _converterClassNameToConfigurationMap.get(converterClass.getName()); > > > > >> >> > > > >> >+ > > > > >> >> > _converterClassNameToConfigurationMap.get( > > > > >> >> > converterClass.getName()); > > > > >> >> > > > >> > > > > > >> >> > > > >> >- if(converterConfig != null) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ if(converterConfig != null) { > > > > >> >> > > > >> > > > > > >> >> > > > >> > Iterator it = > converterConfig.getProperties(); > > > > >> >> > > > >> > > > > > >> >> > > > >> >- while (it.hasNext()) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ while ( it.hasNext()) { > > > > >> >> > > > >> > Property property = (Property) > it.next(); > > > > >> >> > > > >> > > > > > >> >> > > > >> >- try > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ try { > > > > >> >> > > > >> > > > > > >> >> > > BeanUtils.setProperty(converter,property.getPropertyName(),property.getD ef > aultValue()); > > > > >> >> > > > >> > } > > > > >> >> > > > >> >- catch(Throwable th) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ catch(Throwable th) { > > > > >> >> > > > >> > log.error("Initializing > converter : > > > > >> >> > "+converterClass.getName()+" with property : "+ > > > > >> >> > > > >> > > property.getPropertyName()+" and value > > > > >> >> > : "+property.getDefaultValue()+" failed."); > > > > >> >> > > > >> > } > > > > >> >> > > > >> >@@ -611,10 +574,8 @@ > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > > >> >> > > > >> > public synchronized MethodBinding > createMethodBinding(String > > > > >> >> > reference, Class[] params) > > > > >> >> > > > >> >- throws ReferenceSyntaxException > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- if ((reference == null) || > (reference.length() == 0)) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ throws ReferenceSyntaxException { > > > > >> >> > > > >> >+ if ((reference == null) || ( > reference.length() == 0)) { > > > > >> >> > > > >> > log.error("createMethodBinding: > reference = null is not > > > > >> >> > allowed"); > > > > >> >> > > > >> > throw new > > > > >> >> > NullPointerException("createMethodBinding: reference = null > > > > >> >> > is not allowed"); > > > > >> >> > > > >> > } > > > > >> >> > > > >> >@@ -626,37 +587,30 @@ > > > > >> >> > > > >> > return new MethodBindingImpl(this, > reference, params); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- public Validator createValidator(String > validatorId) throws > > > > >> >> > FacesException > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- if ((validatorId == null) || > (validatorId.length() == 0)) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ public Validator createValidator(String > validatorId) throws > > > > >> >> > FacesException { > > > > >> >> > > > >> >+ if ((validatorId == null) || > (validatorId.length() == 0)) { > > > > >> >> > > > >> > log.error("createValidator: validatorId > = null is not > > > > >> >> > allowed"); > > > > >> >> > > > >> > throw new > > > > >> >> > NullPointerException("createValidator: validatorId = null > > > > >> >> > is not allowed"); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > Class validatorClass = (Class) > > > > >> >> > _validatorClassMap.get(validatorId); > > > > >> >> > > > >> >- if (validatorClass == null) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ if (validatorClass == null) { > > > > >> >> > > > >> > String message = "Unknown validator id > '" + validatorId > > > > >> >> > + "'."; > > > > >> >> > > > >> > log.error (message); > > > > >> >> > > > >> > throw new FacesException(message); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- try > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ try { > > > > >> >> > > > >> > return (Validator) > validatorClass.newInstance(); > > > > >> >> > > > >> > } > > > > >> >> > > > >> >- catch (Exception e) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ catch (Exception e) { > > > > >> >> > > > >> > log.error("Could not instantiate > validator " + > > > > >> >> > validatorClass, e); > > > > >> >> > > > >> > throw new FacesException("Could not > instantiate > > > > >> >> > validator: " + validatorClass, e); > > > > >> >> > > > >> > } > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- public ValueBinding createValueBinding(String > reference) throws > > > > >> >> > ReferenceSyntaxException > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >- if ((reference == null) || > (reference.length() == 0)) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ public ValueBinding createValueBinding(String > reference) throws > > > > >> >> > ReferenceSyntaxException { > > > > >> >> > > > >> >+ if ((reference == null) || > (reference.length() == 0)) { > > > > >> >> > > > >> > log.error("createValueBinding: > reference = null is not > > > > >> >> > allowed"); > > > > >> >> > > > >> > throw new > > > > >> >> > NullPointerException("createValueBinding: reference = null > > > > >> >> > is not allowed"); > > > > >> >> > > > >> > } > > > > >> >> > > > >> >@@ -664,23 +618,19 @@ > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > > >> >> > > > >> >- public String getDefaultRenderKitId() > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ public String getDefaultRenderKitId() { > > > > >> >> > > > >> > return _defaultRenderKitId; > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- public void setDefaultRenderKitId(String > defaultRenderKitId) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ public void setDefaultRenderKitId(String > defaultRenderKitId) { > > > > >> >> > > > >> > _defaultRenderKitId = defaultRenderKitId; > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- public StateManager getStateManager() > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ public StateManager getStateManager() { > > > > >> >> > > > >> > return _stateManager; > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> >- public void setStateManager(StateManager > stateManager) > > > > >> >> > > > >> >- { > > > > >> >> > > > >> >+ public void setStateManager(StateManager > stateManager) { > > > > >> >> > > > >> > _stateManager = stateManager; > > > > >> >> > > > >> > } > > > > >> >> > > > >> > } > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > > >> >> > > > >> > > > > >> >> > > > >> > > > > >> >> > > > >> > > > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > >-- > > > > >> >> > > > > > > > > >> >> > > > >http://www.irian.at > > > > >> >> > > > > > > > > >> >> > > > >Your JSF powerhouse - > > > > >> >> > > > >JSF Consulting, Development and > > > > >> >> > > > >Courses in English and German > > > > >> >> > > > > > > > > >> >> > > > >Professional Support for Apache MyFaces > > > > >> >> > > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > > >> >> > > -- > > > > >> >> > > > > > > >> >> > > http://www.irian.at > > > > >> >> > > > > > > >> >> > > Your JSF powerhouse - > > > > >> >> > > JSF Consulting, Development and > > > > >> >> > > Courses in English and German > > > > >> >> > > > > > > >> >> > > Professional Support for Apache MyFaces > > > > >> >> > > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > -- > > > > >> >> > Grant Smith > > > > >> >> > > > > > >> >> > > > > >> > > > > > >> > > > > > >> >-- > > > > >> > > > > > >> >http://www.irian.at > > > > >> > > > > > >> >Your JSF powerhouse - > > > > >> >JSF Consulting, Development and > > > > >> >Courses in English and German > > > > >> > > > > > >> >Professional Support for Apache MyFaces > > > > >> > > > > > >> > > > > >> > > > > >> > > > > > > > > > > > > > > >-- > > > > > > > > > >http://www.irian.at > > > > > > > > > >Your JSF powerhouse - > > > > >JSF Consulting, Development and > > > > >Courses in English and German > > > > > > > > > >Professional Support for Apache MyFaces > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > http://www.irian.at > > > > > > Your JSF powerhouse - > > > JSF Consulting, Development and > > > Courses in English and German > > > > > > Professional Support for Apache MyFaces > > > > > > > > > -- > > Matthias Wessendorf > > Aechterhoek 18 > > 48282 Emsdetten > > blog: http://jroller.com/page/mwessendorf > > mail: mwessendorf-at-gmail-dot-com > > > > > -- > Matthias Wessendorf > Aechterhoek 18 > 48282 Emsdetten > blog: http://jroller.com/page/mwessendorf > mail: mwessendorf-at-gmail-dot-com
