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/ApplicationImpl.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/ApplicationImpl.java
> > >> >
> > >> >Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
> > >> >URL:
http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java?rev=411228&r1=411227&r2=411228&view=diff
> > >>
>==============================================================================
> > >> >---
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
(original)
> > >> >+++
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.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.getDefaultValue());
> > >> >                 }
> > >> >-                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

Reply via email to