Merge pull request #717 from tandraschko/master

MyFaces 2.3.7
diff --git a/pom.xml b/pom.xml
index d4eeacf..1c8add2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -193,7 +193,7 @@
     <scannotation.version>1.0.2</scannotation.version>
     <geronimo.connector.version>3.1.4</geronimo.connector.version>
     <geronimo-osgi.version>1.1</geronimo-osgi.version>
-    <myfaces.version>2.3.6</myfaces.version>
+    <myfaces.version>2.3.7</myfaces.version>
     <mojarra.version>2.3.14</mojarra.version>
     <slf4j.version>1.7.21</slf4j.version>
     <log4j.version>1.2.17</log4j.version>
diff --git a/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigurationProvider.java b/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigurationProvider.java
deleted file mode 100644
index 3641b21..0000000
--- a/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigurationProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.tomee.myfaces;
-
-import org.apache.myfaces.config.DefaultFacesConfigurationProvider;
-import org.apache.myfaces.config.element.FacesConfig;
-import org.apache.openejb.loader.IO;
-
-import javax.faces.context.ExternalContext;
-import java.io.InputStream;
-
-// TODO remove after MYFACES-4313 / MyFaces 2.3.7
-public class TomEEFacesConfigurationProvider extends DefaultFacesConfigurationProvider {
-    @Override
-    public FacesConfig getWebAppFacesConfig(final ExternalContext ectx) {
-        final InputStream stream = ectx.getResourceAsStream("/WEB-INF/faces-config.xml");
-        if (stream != null && isEmpty(stream)) {
-            return new org.apache.myfaces.config.impl.digester.elements.FacesConfig();
-        }
-        // we can't just check the emptyness after the exception
-        // because otherwise an exception is logged because of the parser error handler
-        return super.getWebAppFacesConfig(ectx);
-    }
-
-    private static boolean isEmpty(final InputStream stream) {
-        try {
-            final String content = IO.slurp(stream);
-            return content.trim().length() == 0;
-        } catch (final Exception e) {
-            return false;
-        }
-    }
-}
diff --git a/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigurationProviderFactory.java b/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigurationProviderFactory.java
deleted file mode 100644
index 125c5c1..0000000
--- a/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigurationProviderFactory.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.tomee.myfaces;
-
-import org.apache.myfaces.shared.util.ClassUtils;
-import org.apache.myfaces.spi.FacesConfigurationProvider;
-import org.apache.myfaces.spi.ServiceProviderFinderFactory;
-import org.apache.myfaces.spi.impl.DefaultFacesConfigurationProviderFactory;
-
-import javax.faces.FacesException;
-import javax.faces.context.ExternalContext;
-import java.lang.reflect.InvocationTargetException;
-import java.security.PrivilegedActionException;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-// TODO remove after MYFACES-4313 / MyFaces 2.3.7
-// fork to be able to not fail on empty faces-config.xml
-public class TomEEFacesConfigurationProviderFactory extends DefaultFacesConfigurationProviderFactory {
-    public static final String FACES_CONFIGURATION_PROVIDER = FacesConfigurationProvider.class.getName();
-    public static final String FACES_CONFIGURATION_PROVIDER_LIST = FacesConfigurationProvider.class.getName()+".LIST";
-    public static final String FACES_CONFIGURATION_PROVIDER_INSTANCE_KEY = FacesConfigurationProvider.class.getName() + ".INSTANCE";
-
-    private Logger getLogger() {
-        return Logger.getLogger(DefaultFacesConfigurationProviderFactory.class.getName());
-    }
-
-    @Override
-    public FacesConfigurationProvider getFacesConfigurationProvider(final ExternalContext externalContext) {
-        FacesConfigurationProvider returnValue = (FacesConfigurationProvider) externalContext.getApplicationMap().get(FACES_CONFIGURATION_PROVIDER_INSTANCE_KEY);
-        if (returnValue == null) {
-            final ExternalContext extContext = externalContext;
-            try {
-                returnValue = resolveFacesConfigurationProviderFromService(extContext);
-                externalContext.getApplicationMap().put(FACES_CONFIGURATION_PROVIDER_INSTANCE_KEY, returnValue);
-            } catch (final ClassNotFoundException | NoClassDefFoundError e) {
-                // ignore
-            } catch (final InstantiationException | InvocationTargetException | IllegalAccessException e) {
-                getLogger().log(Level.SEVERE, "", e);
-            } catch (final PrivilegedActionException e) {
-                throw new FacesException(e);
-            }
-        }
-
-
-        return returnValue;
-    }
-
-    private FacesConfigurationProvider resolveFacesConfigurationProviderFromService(final ExternalContext externalContext)
-            throws ClassNotFoundException, NoClassDefFoundError, InstantiationException, IllegalAccessException, InvocationTargetException, PrivilegedActionException {
-        List<String> classList = (List<String>) externalContext.getApplicationMap().get(FACES_CONFIGURATION_PROVIDER_LIST);
-        if (classList == null) {
-            classList = ServiceProviderFinderFactory.getServiceProviderFinder(externalContext).getServiceProviderList(FACES_CONFIGURATION_PROVIDER);
-            externalContext.getApplicationMap().put(FACES_CONFIGURATION_PROVIDER_LIST, classList);
-        }
-        return ClassUtils.buildApplicationObject(FacesConfigurationProvider.class, classList, new TomEEFacesConfigurationProvider());
-    }
-}
diff --git a/tomee/tomee-myfaces/src/main/resources/META-INF/services/org.apache.myfaces.spi.FacesConfigurationProviderFactory b/tomee/tomee-myfaces/src/main/resources/META-INF/services/org.apache.myfaces.spi.FacesConfigurationProviderFactory
deleted file mode 100644
index e5b0160..0000000
--- a/tomee/tomee-myfaces/src/main/resources/META-INF/services/org.apache.myfaces.spi.FacesConfigurationProviderFactory
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.tomee.myfaces.TomEEFacesConfigurationProviderFactory