You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2013/08/29 02:50:13 UTC
svn commit: r1518435 - in
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config: ./
annotation/ element/ impl/digester/ impl/digester/elements/
Author: lu4242
Date: Thu Aug 29 00:50:13 2013
New Revision: 1518435
URL: http://svn.apache.org/r1518435
Log:
MYFACES-3759 Implement @FaceletsResourceResolver annotation and MYFACES-3760 ClientBehaviorRenderer is added multiple times in FacesConfigurator
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/AnnotationConfigurator.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfig.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfigData.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/FacesConfig.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java?rev=1518435&r1=1518434&r2=1518435&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java Thu Aug 29 00:50:13 2013
@@ -974,6 +974,11 @@ public class FacesConfigurator
new String[runtimeConfig.getResourceLibraryContracts().size()]);
runtimeConfig.addContractMapping("*", contracts);
}
+
+ for (String resourceResolver : dispenser.getResourceResolvers())
+ {
+ runtimeConfig.addResourceResolver(resourceResolver);
+ }
}
private void removePurgedBeansFromSessionAndApplication(RuntimeConfig runtimeConfig)
@@ -1023,8 +1028,6 @@ public class FacesConfigurator
for (Renderer element : dispenser.getRenderers(renderKitId))
{
javax.faces.render.Renderer renderer;
- Collection<ClientBehaviorRenderer> clientBehaviorRenderers
- = dispenser.getClientBehaviorRenderers(renderKitId);
if (element.getRendererClass() != null)
{
@@ -1055,28 +1058,32 @@ public class FacesConfigurator
element.getRendererClass());
}
- // Add in client behavior renderers.
+ }
+
+ Collection<ClientBehaviorRenderer> clientBehaviorRenderers
+ = dispenser.getClientBehaviorRenderers(renderKitId);
+
+ // Add in client behavior renderers.
- for (ClientBehaviorRenderer clientBehaviorRenderer : clientBehaviorRenderers)
+ for (ClientBehaviorRenderer clientBehaviorRenderer : clientBehaviorRenderers)
+ {
+ try
{
- try
- {
- javax.faces.render.ClientBehaviorRenderer behaviorRenderer
- = (javax.faces.render.ClientBehaviorRenderer)
- ClassUtils.newInstance(clientBehaviorRenderer.getRendererClass());
+ javax.faces.render.ClientBehaviorRenderer behaviorRenderer
+ = (javax.faces.render.ClientBehaviorRenderer)
+ ClassUtils.newInstance(clientBehaviorRenderer.getRendererClass());
- renderKit.addClientBehaviorRenderer(clientBehaviorRenderer.getRendererType(), behaviorRenderer);
- }
+ renderKit.addClientBehaviorRenderer(clientBehaviorRenderer.getRendererType(), behaviorRenderer);
+ }
- catch (Throwable e)
- {
- // Ignore.
+ catch (Throwable e)
+ {
+ // Ignore.
- if (log.isLoggable(Level.SEVERE))
- {
- log.log(Level.SEVERE, "failed to configure client behavior renderer class " +
- clientBehaviorRenderer.getRendererClass(), e);
- }
+ if (log.isLoggable(Level.SEVERE))
+ {
+ log.log(Level.SEVERE, "failed to configure client behavior renderer class " +
+ clientBehaviorRenderer.getRendererClass(), e);
}
}
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java?rev=1518435&r1=1518434&r2=1518435&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java Thu Aug 29 00:50:13 2013
@@ -108,6 +108,8 @@ public class RuntimeConfig
private List<ComponentTagDeclaration> _componentTagDeclarations =
new ArrayList<ComponentTagDeclaration>();
+
+ private List<String> _resourceResolvers = new ArrayList<String>();
public static RuntimeConfig getCurrentInstance(ExternalContext externalContext)
{
@@ -489,5 +491,15 @@ public class RuntimeConfig
}
contractsList.add(contract);
}
+
+ public List<String> getResourceResolvers()
+ {
+ return _resourceResolvers;
+ }
+
+ public void addResourceResolver(String resourceResolver)
+ {
+ _resourceResolvers.add(resourceResolver);
+ }
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/AnnotationConfigurator.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/AnnotationConfigurator.java?rev=1518435&r1=1518434&r2=1518435&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/AnnotationConfigurator.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/AnnotationConfigurator.java Thu Aug 29 00:50:13 2013
@@ -44,6 +44,7 @@ import javax.faces.render.FacesBehaviorR
import javax.faces.render.FacesRenderer;
import javax.faces.render.RenderKitFactory;
import javax.faces.validator.FacesValidator;
+import javax.faces.view.facelets.FaceletsResourceResolver;
import org.apache.myfaces.config.impl.digester.elements.Application;
import org.apache.myfaces.config.impl.digester.elements.Behavior;
@@ -283,6 +284,13 @@ public class AnnotationConfigurator
{
handleFacesBehaviorRenderer(facesConfig, classes);
}
+
+ classes = map.get(FaceletsResourceResolver.class);
+ if (classes != null && !classes.isEmpty())
+ {
+ handleFaceletsResourceResolver(facesConfig, classes);
+ }
+
return facesConfig;
}
@@ -526,6 +534,20 @@ public class AnnotationConfigurator
}
}
}
+
+ private void handleFaceletsResourceResolver(FacesConfig facesConfig, Set<Class<?>> classes)
+ {
+ for (Class<?> clazz : classes)
+ {
+ FaceletsResourceResolver faceletsResourceResolver =
+ (FaceletsResourceResolver) clazz.getAnnotation(FaceletsResourceResolver.class);
+
+ if (faceletsResourceResolver != null)
+ {
+ facesConfig.addResourceResolver(clazz.getName());
+ }
+ }
+ }
/**
* <p>Return an array of all <code>Field</code>s reflecting declared
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java?rev=1518435&r1=1518434&r2=1518435&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java Thu Aug 29 00:50:13 2013
@@ -48,6 +48,7 @@ import javax.faces.event.NamedEvent;
import javax.faces.render.FacesBehaviorRenderer;
import javax.faces.render.FacesRenderer;
import javax.faces.validator.FacesValidator;
+import javax.faces.view.facelets.FaceletsResourceResolver;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
import org.apache.myfaces.shared.config.MyfacesConfig;
@@ -121,6 +122,7 @@ public class DefaultAnnotationProvider e
//bcan.add("Ljavax/faces/event/ListenerFor;");
//bcan.add("Ljavax/faces/event/ListenersFor;");
bcan.add("Ljavax/faces/render/FacesBehaviorRenderer;");
+ bcan.add("Ljavax/faces/view/facelets/FaceletsResourceResolver;");
byteCodeAnnotationsNames = Collections.unmodifiableSet(bcan);
}
@@ -138,6 +140,7 @@ public class DefaultAnnotationProvider e
bcan.add(ManagedBean.class);
bcan.add(NamedEvent.class);
bcan.add(FacesBehaviorRenderer.class);
+ bcan.add(FaceletsResourceResolver.class);
JSF_ANNOTATION_CLASSES = Collections.unmodifiableSet(bcan);
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfig.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfig.java?rev=1518435&r1=1518434&r2=1518435&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfig.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfig.java Thu Aug 29 00:50:13 2013
@@ -98,4 +98,13 @@ public abstract class FacesConfig implem
{
return Collections.emptyMap();
}
+
+ /**
+ * @since 2.2.0
+ * @return
+ */
+ public List<String> getResourceResolversList()
+ {
+ return Collections.emptyList();
+ }
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfigData.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfigData.java?rev=1518435&r1=1518434&r2=1518435&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfigData.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/element/FacesConfigData.java Thu Aug 29 00:50:13 2013
@@ -274,4 +274,9 @@ public abstract class FacesConfigData im
{
return Collections.emptyList();
}
+
+ public Collection<String> getResourceResolvers()
+ {
+ return Collections.emptyList();
+ }
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java?rev=1518435&r1=1518434&r2=1518435&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java Thu Aug 29 00:50:13 2013
@@ -123,6 +123,8 @@ public class DigesterFacesConfigDispense
private List<ComponentTagDeclaration> componentTagDeclarations = new ArrayList<ComponentTagDeclaration>();
+ private List <String> resourceResolvers = new ArrayList<String>();
+
/**
* Add another unmarshalled faces config object.
*
@@ -276,6 +278,7 @@ public class DigesterFacesConfigDispense
namedEvents.addAll(config.getNamedEvents());
facesFlowDefinitions.addAll(config.getFacesFlowDefinitions());
protectedViewUrlPatterns.addAll(config.getProtectedViewsUrlPatternList());
+ resourceResolvers.addAll(config.getResourceResolversList());
}
/**
@@ -774,4 +777,9 @@ public class DigesterFacesConfigDispense
return componentTagDeclarations;
}
+ @Override
+ public Collection<String> getResourceResolvers()
+ {
+ return resourceResolvers;
+ }
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/FacesConfig.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/FacesConfig.java?rev=1518435&r1=1518434&r2=1518435&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/FacesConfig.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/FacesConfig.java Thu Aug 29 00:50:13 2013
@@ -62,6 +62,7 @@ public class FacesConfig extends org.apa
= new ArrayList<FacesFlowDefinition>();
private List <String> protectedViewsUrlPatternList
= new ArrayList<String>();
+ private List <String> resourceResolvers = new ArrayList<String>();
private String metadataComplete;
private String version;
@@ -290,5 +291,15 @@ public class FacesConfig extends org.apa
{
protectedViewsUrlPatternList.add(urlPattern);
}
+
+ public List<String> getResourceResolversList()
+ {
+ return resourceResolvers;
+ }
+
+ public void addResourceResolver(String resourceResolverClass)
+ {
+ resourceResolvers.add(resourceResolverClass);
+ }
}