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