You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2019/03/07 16:22:18 UTC

[myfaces] branch master updated: cleanup digester, it's not used after startup

This is an automated email from the ASF dual-hosted git repository.

tandraschko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git


The following commit(s) were added to refs/heads/master by this push:
     new 08ae1dc  cleanup digester, it's not used after startup
08ae1dc is described below

commit 08ae1dc97d28f1c10bf25e9c3dd46bfb028362ee
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Thu Mar 7 17:22:13 2019 +0100

    cleanup digester, it's not used after startup
---
 .../config/DefaultFacesConfigurationProvider.java    | 20 ++++++++++++--------
 .../myfaces/config/FacesConfigUnmarshaller.java      |  2 ++
 .../DigesterFacesConfigUnmarshallerImpl.java         | 11 ++++++++---
 .../myfaces/spi/FacesConfigurationProvider.java      |  2 ++
 .../myfaces/webapp/AbstractFacesInitializer.java     |  4 ++++
 5 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/impl/src/main/java/org/apache/myfaces/config/DefaultFacesConfigurationProvider.java b/impl/src/main/java/org/apache/myfaces/config/DefaultFacesConfigurationProvider.java
index 023ea29..a468b49 100644
--- a/impl/src/main/java/org/apache/myfaces/config/DefaultFacesConfigurationProvider.java
+++ b/impl/src/main/java/org/apache/myfaces/config/DefaultFacesConfigurationProvider.java
@@ -317,7 +317,6 @@ public class DefaultFacesConfigurationProvider extends FacesConfigurationProvide
                         log.info("Reading config : " + url.toExternalForm());
                     }
                     appConfigResources.add(getUnmarshaller(ectx).getFacesConfig(stream, url.toExternalForm()));
-                    //getDispenser().feed(getUnmarshaller().getFacesConfig(stream, entry.getKey()));
                 }
                 finally
                 {
@@ -363,7 +362,6 @@ public class DefaultFacesConfigurationProvider extends FacesConfigurationProvide
                     log.info("Reading config " + systemId);
                 }
                 appConfigResources.add(getUnmarshaller(ectx).getFacesConfig(stream, systemId));
-                //getDispenser().feed(getUnmarshaller().getFacesConfig(stream, systemId));
                 stream.close();
             }
         }
@@ -397,7 +395,6 @@ public class DefaultFacesConfigurationProvider extends FacesConfigurationProvide
                     log.info("Reading config /WEB-INF/faces-config.xml");
                 }
                 webAppConfig = getUnmarshaller(ectx).getFacesConfig(stream, DEFAULT_FACES_CONFIG);
-                //getDispenser().feed(getUnmarshaller().getFacesConfig(stream, DEFAULT_FACES_CONFIG));
                 stream.close();
             }
             return webAppConfig;
@@ -536,8 +533,7 @@ public class DefaultFacesConfigurationProvider extends FacesConfigurationProvide
                             trans.transform(source, result);
 
                             StringReader xmlReader = new StringReader(xmlAsWriter.toString());
-                            FacesConfig facesConfig = getUnmarshaller(ectx).getFacesConfig(
-                                xmlReader);
+                            FacesConfig facesConfig = getUnmarshaller(ectx).getFacesConfig(xmlReader);
                             facesConfigList.add(facesConfig);
                         }
                         catch (IOException ex)
@@ -708,8 +704,7 @@ public class DefaultFacesConfigurationProvider extends FacesConfigurationProvide
                 log.info("Reading config " + systemId);
             }
             
-            FacesConfigImpl facesConfig = (FacesConfigImpl) 
-                getUnmarshaller(ectx).getFacesConfig(pbstream, systemId);
+            FacesConfigImpl facesConfig = (FacesConfigImpl) getUnmarshaller(ectx).getFacesConfig(pbstream, systemId);
             
             // Set default start node when it is not present.
             for (FacesFlowDefinition definition : facesConfig.getFacesFlowDefinitions())
@@ -726,7 +721,6 @@ public class DefaultFacesConfigurationProvider extends FacesConfigurationProvide
                 }
             }
             return facesConfig;
-            //getDispenser().feed(getUnmarshaller().getFacesConfig(stream, systemId));
         }
         catch (IOException e)
         {
@@ -828,4 +822,14 @@ public class DefaultFacesConfigurationProvider extends FacesConfigurationProvide
         }
         return facesConfigFilesList;
     }
+    
+    @Override
+    public void release()
+    {
+        if (_unmarshaller != null)
+        {
+            _unmarshaller.release();
+            _unmarshaller = null;
+        }
+    }
 }
\ No newline at end of file
diff --git a/impl/src/main/java/org/apache/myfaces/config/FacesConfigUnmarshaller.java b/impl/src/main/java/org/apache/myfaces/config/FacesConfigUnmarshaller.java
index 415e1b4..29f522a 100755
--- a/impl/src/main/java/org/apache/myfaces/config/FacesConfigUnmarshaller.java
+++ b/impl/src/main/java/org/apache/myfaces/config/FacesConfigUnmarshaller.java
@@ -37,4 +37,6 @@ public interface FacesConfigUnmarshaller<T>
     public T getFacesConfig(InputStream in, String systemId) throws IOException, SAXException;
     
     public FacesConfig getFacesConfig(Reader r) throws IOException, SAXException;
+    
+    public void release();
 }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java
index 61dc67e..308a310 100755
--- a/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java
@@ -447,6 +447,7 @@ public class DigesterFacesConfigUnmarshallerImpl implements FacesConfigUnmarshal
         }
     }
     
+    @Override
     public FacesConfigImpl getFacesConfig(InputStream in, String systemId) throws IOException, SAXException
     {
         InputSource is = new InputSource(in);
@@ -460,11 +461,9 @@ public class DigesterFacesConfigUnmarshallerImpl implements FacesConfigUnmarshal
         return config;
     }
     
+    @Override
     public FacesConfigImpl getFacesConfig(Reader r) throws IOException, SAXException
     {
-        //InputSource is = new InputSource(in);
-        //is.setSystemId(systemId);
-
         // Fix for http://issues.apache.org/jira/browse/MYFACES-236
         FacesConfigImpl config = (FacesConfigImpl) digester.parse(r);
 
@@ -473,4 +472,10 @@ public class DigesterFacesConfigUnmarshallerImpl implements FacesConfigUnmarshal
         return config;
     }
 
+    @Override
+    public void release()
+    {
+        digester.clear();
+        digester = null;
+    }
 }
diff --git a/impl/src/main/java/org/apache/myfaces/spi/FacesConfigurationProvider.java b/impl/src/main/java/org/apache/myfaces/spi/FacesConfigurationProvider.java
index 20792d5..9039c0d 100644
--- a/impl/src/main/java/org/apache/myfaces/spi/FacesConfigurationProvider.java
+++ b/impl/src/main/java/org/apache/myfaces/spi/FacesConfigurationProvider.java
@@ -113,4 +113,6 @@ public abstract class FacesConfigurationProvider
      * to spec rules.
      */    
     public abstract List<FacesConfig> getFaceletTaglibFacesConfig(ExternalContext ectx);
+    
+    public abstract void release();
 }
diff --git a/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java b/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java
index 0fa6af4..952be1d 100644
--- a/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java
+++ b/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java
@@ -76,6 +76,7 @@ import org.apache.myfaces.spi.ServiceProviderFinder;
 import org.apache.myfaces.spi.ServiceProviderFinderFactory;
 import org.apache.myfaces.view.facelets.ViewPoolProcessor;
 import org.apache.myfaces.context.ReleasableExternalContext;
+import org.apache.myfaces.spi.FacesConfigurationProviderFactory;
 import org.apache.myfaces.util.LangUtils;
 
 /**
@@ -288,6 +289,9 @@ public abstract class AbstractFacesInitializer implements FacesInitializer
                 extension.clear();
             }
         }
+
+        FacesConfigurationProviderFactory.getFacesConfigurationProviderFactory(externalContext).
+                getFacesConfigurationProvider(externalContext).release();
     }
     
     /**