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 2012/03/13 18:38:55 UTC
svn commit: r1300255 - in /myfaces/core/trunk/impl/src:
main/java/org/apache/myfaces/view/facelets/
main/java/org/apache/myfaces/view/facelets/compiler/
main/java/org/apache/myfaces/view/facelets/tag/composite/
test/java/org/apache/myfaces/view/facelet...
Author: lu4242
Date: Tue Mar 13 17:38:54 2012
New Revision: 1300255
URL: http://svn.apache.org/viewvc?rev=1300255&view=rev
Log:
MYFACES-3500 [perf] cache ResourceHandler instance used by facelets compiler TagLibrary
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewHandler.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/Compiler.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/TagLibraryConfig.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeResourceLibrary.java
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/compiler/TagLibraryTestCase.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java?rev=1300255&r1=1300254&r2=1300255&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java Tue Mar 13 17:38:54 2012
@@ -2462,7 +2462,7 @@ public class FaceletViewDeclarationLangu
compiler.addTagLibrary(new JstlCoreLibrary());
compiler.addTagLibrary(new JstlFnLibrary());
compiler.addTagLibrary(new CompositeLibrary());
- compiler.addTagLibrary(new CompositeResourceLibrary());
+ compiler.addTagLibrary(new CompositeResourceLibrary(context));
String param = WebConfigParamUtils.getStringInitParameter(eContext, PARAMS_LIBRARIES);
if (param != null)
@@ -2477,7 +2477,7 @@ public class FaceletViewDeclarationLangu
throw new FileNotFoundException(library);
}
- TagLibrary tl = TagLibraryConfig.create(src);
+ TagLibrary tl = TagLibraryConfig.create(context, src);
if (tl != null)
{
compiler.addTagLibrary(tl);
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewHandler.java?rev=1300255&r1=1300254&r2=1300255&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewHandler.java Tue Mar 13 17:38:54 2012
@@ -300,7 +300,7 @@ public class FaceletViewHandler extends
{
throw new FileNotFoundException(libs[i]);
}
- libObj = TagLibraryConfig.create(src);
+ libObj = TagLibraryConfig.create(ctx, src);
c.addTagLibrary(libObj);
log.fine("Successfully Loaded Library: " + libs[i]);
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/Compiler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/Compiler.java?rev=1300255&r1=1300254&r2=1300255&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/Compiler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/Compiler.java Tue Mar 13 17:38:54 2012
@@ -98,7 +98,7 @@ public abstract class Compiler
try
{
TagLibraryConfig cfg = new TagLibraryConfig();
- cfg.loadImplicit(this);
+ cfg.loadImplicit(FacesContext.getCurrentInstance(), this);
if (!this.createTagLibrary().containsNamespace(UILibrary.NAMESPACE))
{
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/TagLibraryConfig.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/TagLibraryConfig.java?rev=1300255&r1=1300254&r2=1300255&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/TagLibraryConfig.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/compiler/TagLibraryConfig.java Tue Mar 13 17:38:54 2012
@@ -84,16 +84,17 @@ public final class TagLibraryConfig
{
private String _compositeLibraryName;
+ private final ResourceHandler _resourceHandler;
private Pattern _acceptPatterns;
private String _extension;
private String[] _defaultSuffixesArray;
- public TagLibraryImpl(String namespace)
+ public TagLibraryImpl(FacesContext facesContext, String namespace)
{
super(namespace);
_compositeLibraryName = null;
-
- ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
+ _resourceHandler = facesContext.getApplication().getResourceHandler();
+ ExternalContext externalContext = facesContext.getExternalContext();
_acceptPatterns = loadAcceptPattern(externalContext);
@@ -219,15 +220,12 @@ public final class TagLibraryConfig
if (!result && _compositeLibraryName != null && containsNamespace(ns))
{
- ResourceHandler resourceHandler =
- FacesContext.getCurrentInstance().getApplication().getResourceHandler();
-
for (String defaultSuffix : _defaultSuffixesArray)
{
String resourceName = localName + defaultSuffix;
if (handles(resourceName))
{
- Resource compositeComponentResource = resourceHandler.createResource(
+ Resource compositeComponentResource = _resourceHandler.createResource(
resourceName, _compositeLibraryName);
if (compositeComponentResource != null)
@@ -249,9 +247,6 @@ public final class TagLibraryConfig
if (tagHandler == null && _compositeLibraryName != null && containsNamespace(ns))
{
- ResourceHandler resourceHandler =
- FacesContext.getCurrentInstance().getApplication().getResourceHandler();
-
for (String defaultSuffix : _defaultSuffixesArray)
{
String resourceName = localName + defaultSuffix;
@@ -266,7 +261,7 @@ public final class TagLibraryConfig
// (resourceName, libraryName) will be used to derive the real instance
// to use in a view, based on the locale used.
Resource compositeComponentResource = new CompositeResouceWrapper(
- resourceHandler.createResource(resourceName, _compositeLibraryName));
+ _resourceHandler.createResource(resourceName, _compositeLibraryName));
if (compositeComponentResource != null)
{
@@ -416,6 +411,8 @@ public final class TagLibraryConfig
private static class LibraryHandler extends DefaultHandler
{
private final URL source;
+
+ private final FacesContext facesContext;
private TagLibrary library;
@@ -445,10 +442,11 @@ public final class TagLibraryConfig
private String compositeLibraryName;
- public LibraryHandler(URL source)
+ public LibraryHandler(FacesContext facesContext, URL source)
{
this.source = source;
this.buffer = new StringBuffer(64);
+ this.facesContext = facesContext;
}
public TagLibrary getLibrary()
@@ -470,7 +468,7 @@ public final class TagLibraryConfig
}
else if ("namespace".equals(qName))
{
- this.library = new TagLibraryImpl(this.captureBuffer());
+ this.library = new TagLibraryImpl(facesContext, this.captureBuffer());
if (this.compositeLibraryName != null)
{
((TagLibraryImpl)this.library).setCompositeLibrary(compositeLibraryName);
@@ -760,14 +758,14 @@ public final class TagLibraryConfig
super();
}
- public static TagLibrary create(URL url) throws IOException
+ public static TagLibrary create(FacesContext facesContext, URL url) throws IOException
{
InputStream is = null;
TagLibrary t = null;
URLConnection conn = null;
try
{
- ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
+ ExternalContext externalContext = facesContext.getExternalContext();
boolean schemaValidating = false;
// validate XML
@@ -782,7 +780,7 @@ public final class TagLibraryConfig
}
// parse file
- LibraryHandler handler = new LibraryHandler(url);
+ LibraryHandler handler = new LibraryHandler(facesContext, url);
SAXParser parser = createSAXParser(handler, externalContext, schemaValidating);
conn = url.openConnection();
conn.setUseCaches(false);
@@ -812,11 +810,11 @@ public final class TagLibraryConfig
return t;
}
- public void loadImplicit(Compiler compiler) throws IOException
+ public void loadImplicit(FacesContext facesContext, Compiler compiler) throws IOException
{
//URL[] urls = Classpath.search(cl, "META-INF/", SUFFIX);
//for (int i = 0; i < urls.length; i++)
- ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
+ ExternalContext externalContext = facesContext.getExternalContext();
FaceletConfigResourceProvider provider = FaceletConfigResourceProviderFactory.
getFacesConfigResourceProviderFactory(externalContext).
createFaceletConfigResourceProvider(externalContext);
@@ -826,7 +824,7 @@ public final class TagLibraryConfig
try
{
//TagLibrary tl = create(urls[i]);
- TagLibrary tl = create(url);
+ TagLibrary tl = create(facesContext, url);
if (tl != null)
{
compiler.addTagLibrary(tl);
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeResourceLibrary.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeResourceLibrary.java?rev=1300255&r1=1300254&r2=1300255&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeResourceLibrary.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeResourceLibrary.java Tue Mar 13 17:38:54 2012
@@ -51,13 +51,15 @@ public class CompositeResourceLibrary im
{
public final static String NAMESPACE_PREFIX = "http://java.sun.com/jsf/composite/";
+ private final ResourceHandler _resourceHandler;
private Pattern _acceptPatterns;
private String _extension;
private String[] _defaultSuffixesArray;
- public CompositeResourceLibrary()
+ public CompositeResourceLibrary(FacesContext facesContext)
{
super();
+ _resourceHandler = facesContext.getApplication().getResourceHandler();
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
@@ -188,13 +190,10 @@ public class CompositeResourceLibrary im
{
if (ns != null && ns.startsWith(NAMESPACE_PREFIX))
{
- ResourceHandler resourceHandler =
- FacesContext.getCurrentInstance().getApplication().getResourceHandler();
-
if (ns.length() > NAMESPACE_PREFIX.length())
{
String libraryName = ns.substring(NAMESPACE_PREFIX.length());
- return resourceHandler.libraryExists(libraryName);
+ return _resourceHandler.libraryExists(libraryName);
}
}
return false;
@@ -204,9 +203,6 @@ public class CompositeResourceLibrary im
{
if (ns != null && ns.startsWith(NAMESPACE_PREFIX))
{
- ResourceHandler resourceHandler =
- FacesContext.getCurrentInstance().getApplication().getResourceHandler();
-
if (ns.length() > NAMESPACE_PREFIX.length())
{
String libraryName = ns.substring(NAMESPACE_PREFIX.length());
@@ -216,7 +212,8 @@ public class CompositeResourceLibrary im
String resourceName = localName + defaultSuffix;
if (handles(resourceName))
{
- Resource compositeComponentResource = resourceHandler.createResource(resourceName, libraryName);
+ Resource compositeComponentResource =
+ _resourceHandler.createResource(resourceName, libraryName);
if (compositeComponentResource != null)
{
URL url = compositeComponentResource.getURL();
@@ -240,9 +237,6 @@ public class CompositeResourceLibrary im
{
if (ns != null && ns.startsWith(NAMESPACE_PREFIX))
{
- ResourceHandler resourceHandler =
- FacesContext.getCurrentInstance().getApplication().getResourceHandler();
-
if (ns.length() > NAMESPACE_PREFIX.length())
{
String libraryName = ns.substring(NAMESPACE_PREFIX.length());
@@ -260,7 +254,7 @@ public class CompositeResourceLibrary im
// (resourceName, libraryName) will be used to derive the real instance
// to use in a view, based on the locale used.
Resource compositeComponentResourceWrapped
- = resourceHandler.createResource(resourceName, libraryName);
+ = _resourceHandler.createResource(resourceName, libraryName);
if (compositeComponentResourceWrapped != null)
{
Resource compositeComponentResource
Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/compiler/TagLibraryTestCase.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/compiler/TagLibraryTestCase.java?rev=1300255&r1=1300254&r2=1300255&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/compiler/TagLibraryTestCase.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/compiler/TagLibraryTestCase.java Tue Mar 13 17:38:54 2012
@@ -54,7 +54,7 @@ public class TagLibraryTestCase extends
{
servletContext.addInitParameter(MyfacesConfig.INIT_PARAM_VALIDATE_XML, "true");
- TagLibrary lib = TagLibraryConfig.create(_validLibUrl);
+ TagLibrary lib = TagLibraryConfig.create(facesContext, _validLibUrl);
Assert.assertTrue(lib.containsNamespace("http://myfaces.apache.org/testlib"));
}
@@ -63,7 +63,7 @@ public class TagLibraryTestCase extends
{
servletContext.addInitParameter(MyfacesConfig.INIT_PARAM_VALIDATE_XML, "false");
- TagLibrary lib = TagLibraryConfig.create(_validLibUrl);
+ TagLibrary lib = TagLibraryConfig.create(facesContext, _validLibUrl);
Assert.assertTrue(lib.containsNamespace("http://myfaces.apache.org/testlib"));
}
/*