You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mc...@apache.org on 2009/04/30 19:51:14 UTC
svn commit: r770356 - in /myfaces/core/branches/2_0_0:
api/src/main/java/javax/faces/application/Application.java
api/src/main/java/javax/faces/application/ApplicationWrapper.java
impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
Author: mconcini
Date: Thu Apr 30 17:51:14 2009
New Revision: 770356
URL: http://svn.apache.org/viewvc?rev=770356&view=rev
Log:
MYFACES-2189 - Application/ApplicationImpl TODOs
Modified:
myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java
myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java
myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
Modified: myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java?rev=770356&r1=770355&r2=770356&view=diff
==============================================================================
--- myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java (original)
+++ myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/Application.java Thu Apr 30 17:51:14 2009
@@ -34,7 +34,7 @@
import javax.faces.component.ActionSource2;
import javax.faces.component.UIComponent;
import javax.faces.component.UIViewRoot;
-import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.Behavior;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.el.MethodBinding;
@@ -221,7 +221,7 @@
*
* FIXME: Notify EG, this should not be abstract and throw UnsupportedOperationException
*/
- public abstract ClientBehavior createBehavior(String behaviorId) throws FacesException;
+ public abstract Behavior createBehavior(String behaviorId) throws FacesException;
/**
* ???
Modified: myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java?rev=770356&r1=770355&r2=770356&view=diff
==============================================================================
--- myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java (original)
+++ myfaces/core/branches/2_0_0/api/src/main/java/javax/faces/application/ApplicationWrapper.java Thu Apr 30 17:51:14 2009
@@ -32,7 +32,7 @@
import javax.faces.FacesException;
import javax.faces.FacesWrapper;
import javax.faces.component.UIComponent;
-import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.Behavior;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.el.MethodBinding;
@@ -108,7 +108,7 @@
}
@Override
- public ClientBehavior createBehavior(String behaviorId) throws FacesException
+ public Behavior createBehavior(String behaviorId) throws FacesException
{
return getWrapped().createBehavior(behaviorId);
}
Modified: myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java?rev=770356&r1=770355&r2=770356&view=diff
==============================================================================
--- myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java (original)
+++ myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java Thu Apr 30 17:51:14 2009
@@ -54,7 +54,7 @@
import javax.faces.component.UINamingContainer;
import javax.faces.component.UIOutput;
import javax.faces.component.UIViewRoot;
-import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.Behavior;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.el.MethodBinding;
@@ -149,6 +149,8 @@
private final Map<Class<? extends SystemEvent>, SystemListenerEntry> _systemEventListenerClassMap = new ConcurrentHashMap<Class<? extends SystemEvent>, SystemListenerEntry>();
private Map<String, String> _defaultValidatorsIds = new ConcurrentHashMap<String, String>();
+
+ private final Map<String, Class<? extends Behavior>> _behaviorClassMap = new ConcurrentHashMap<String, Class<? extends Behavior>>();
private final RuntimeConfig _runtimeConfig;
@@ -517,8 +519,7 @@
@Override
public Iterator<String> getBehaviorIds()
{
- // TODO: IMPLEMENT HERE
- return null;
+ return _behaviorClassMap.keySet().iterator();
}
@Override
@@ -814,10 +815,26 @@
return _viewHandler;
}
+ @SuppressWarnings("unchecked")
@Override
public void addBehavior(String behaviorId, String behaviorClass)
{
- // TODO: IMPLEMENT HERE
+ checkNull(behaviorId, "behaviorId");
+ checkEmpty(behaviorId, "behaviorId");
+ checkNull(behaviorClass, "behaviorClass");
+ checkEmpty(behaviorClass, "behaviorClass");
+
+ try
+ {
+ _behaviorClassMap.put(behaviorId, ClassUtils.simpleClassForName(behaviorClass));
+ if (log.isTraceEnabled())
+ log.trace("add Behavior class = " + behaviorClass + " for id = " + behaviorId);
+ }
+ catch (Exception e)
+ {
+ log.error("Behavior class " + behaviorClass + " not found", e);
+ }
+
}
@SuppressWarnings("unchecked")
@@ -914,10 +931,27 @@
}
@Override
- public ClientBehavior createBehavior(String behaviorId) throws FacesException
+ public Behavior createBehavior(String behaviorId) throws FacesException
{
- // TODO: IMPLEMENT HERE
- return null;
+ checkNull(behaviorId, "behaviorId");
+ checkEmpty(behaviorId, "behaviorId");
+
+ final Class<? extends Behavior> behaviorClass = this._behaviorClassMap.get(behaviorId);
+ if (behaviorClass == null)
+ {
+ throw new FacesException("Could not find any registered behavior-class for behaviorId : " + behaviorId);
+ }
+
+ try
+ {
+ final Behavior behavior = behaviorClass.newInstance();
+ return behavior;
+ }
+ catch (Exception e)
+ {
+ log.error("Could not instantiate behavior " + behaviorClass, e);
+ throw new FacesException("Could not instantiate behavior: " + behaviorClass, e);
+ }
}
@Override