Skip to content

Commit

Permalink
Fix bug introduced in WFLY-10161
Browse files Browse the repository at this point in the history
The merged metadata is not availble yet, the unmerged metadata should be used instead
  • Loading branch information
stuartwdouglas committed Apr 4, 2018
1 parent 909d1d0 commit 8277a5e
Showing 1 changed file with 35 additions and 19 deletions.
Expand Up @@ -39,9 +39,9 @@
import org.jboss.jandex.ClassInfo;
import org.jboss.jandex.DotName;
import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.web.jboss.JBossServletMetaData;
import org.jboss.metadata.web.jboss.JBossServletsMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.spec.ServletMetaData;
import org.jboss.metadata.web.spec.ServletsMetaData;
import org.jboss.metadata.web.spec.WebCommonMetaData;
import org.jboss.metadata.web.spec.WebFragmentMetaData;
import org.jboss.vfs.VirtualFile;

Expand Down Expand Up @@ -82,6 +82,8 @@ public class JSFVersionProcessor implements DeploymentUnitProcessor {

private static final String META_INF_FACES = "META-INF/faces-config.xml";
private static final String WEB_INF_FACES = "WEB-INF/faces-config.xml";
private static final String JAVAX_FACES_WEBAPP_FACES_SERVLET = "javax.faces.webapp.FacesServlet";
private static final String CONFIG_FILES = "javax.faces.application.CONFIG_FILES";


/**
Expand Down Expand Up @@ -145,22 +147,14 @@ public void deploy(final DeploymentPhaseContext phaseContext) throws DeploymentU

private boolean shouldJsfActivate(final DeploymentUnit deploymentUnit, WarMetaData warMetaData) {
if (warMetaData != null) {
JBossWebMetaData jBossWebMetaData = warMetaData.getMergedJBossWebMetaData();
if (jBossWebMetaData != null) {
JBossServletsMetaData servlets = jBossWebMetaData.getServlets();
if (servlets != null) {
for (JBossServletMetaData servlet : servlets) {
if ("javax.faces.webapp.FacesServlet".equals(servlet.getServletClass())) {
return true;
}
}
}
List<ParamValueMetaData> sc = jBossWebMetaData.getContextParams();
if (sc != null) {
for (ParamValueMetaData p : sc) {
if ("javax.faces.application.CONFIG_FILES".equals(p.getParamName())) {
return true;
}
WebCommonMetaData jBossWebMetaData = warMetaData.getWebMetaData();
if (isJsfDeclarationsPresent(jBossWebMetaData)) {
return true;
}
if (warMetaData.getWebFragmentsMetaData() != null) {
for (WebFragmentMetaData fragmentMetaData : warMetaData.getWebFragmentsMetaData().values()) {
if(isJsfDeclarationsPresent(fragmentMetaData)) {
return true;
}
}
}
Expand Down Expand Up @@ -196,6 +190,28 @@ private boolean shouldJsfActivate(final DeploymentUnit deploymentUnit, WarMetaDa

}

private boolean isJsfDeclarationsPresent(WebCommonMetaData jBossWebMetaData) {
if (jBossWebMetaData != null) {
ServletsMetaData servlets = jBossWebMetaData.getServlets();
if (servlets != null) {
for (ServletMetaData servlet : servlets) {
if (JAVAX_FACES_WEBAPP_FACES_SERVLET.equals(servlet.getServletClass())) {
return true;
}
}
}
List<ParamValueMetaData> sc = jBossWebMetaData.getContextParams();
if (sc != null) {
for (ParamValueMetaData p : sc) {
if (CONFIG_FILES.equals(p.getParamName())) {
return true;
}
}
}
}
return false;
}

@Override
public void undeploy(final DeploymentUnit context) {
}
Expand Down

0 comments on commit 8277a5e

Please sign in to comment.