From f36cd4e99fde90cd68e52898593fad69cf4d9312 Mon Sep 17 00:00:00 2001 From: Simon Spinner <simon.spinner@uni-wuerzburg.de> Date: Tue, 24 May 2016 15:59:03 +0200 Subject: [PATCH] Fix processing of servlets with no web manifest (only annotations). --- ...verInstrumentationDeploymentProcessor.java | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/tools.descartes.prisma.agent.wildfly/src/main/java/tools/descartes/prisma/agent/wildfly/deployment/ServerInstrumentationDeploymentProcessor.java b/tools.descartes.prisma.agent.wildfly/src/main/java/tools/descartes/prisma/agent/wildfly/deployment/ServerInstrumentationDeploymentProcessor.java index f33a295..8385950 100644 --- a/tools.descartes.prisma.agent.wildfly/src/main/java/tools/descartes/prisma/agent/wildfly/deployment/ServerInstrumentationDeploymentProcessor.java +++ b/tools.descartes.prisma.agent.wildfly/src/main/java/tools/descartes/prisma/agent/wildfly/deployment/ServerInstrumentationDeploymentProcessor.java @@ -56,8 +56,9 @@ import org.jboss.as.webservices.metadata.model.POJOEndpoint; import org.jboss.as.webservices.util.WSAttachmentKeys; import org.jboss.invocation.ImmediateInterceptorFactory; import org.jboss.logging.Logger; +import org.jboss.metadata.web.jboss.JBossServletMetaData; +import org.jboss.metadata.web.jboss.JBossWebMetaData; import org.jboss.metadata.web.spec.ServletMappingMetaData; -import org.jboss.metadata.web.spec.ServletMetaData; import tools.descartes.prisma.agent.wildfly.callstack.ComponentRecord; import tools.descartes.prisma.agent.wildfly.interceptors.EJBLocalCallInterceptor; @@ -101,27 +102,29 @@ public class ServerInstrumentationDeploymentProcessor implements DeploymentUnitP if (metaData != null) { String serverNode = System.getProperty("jboss.node.name"); String root = null; - if (metaData.getJBossWebMetaData() != null) { - root = metaData.getJBossWebMetaData().getContextRoot(); - } - if (root == null) { - root = eeModuleDescription.getModuleName(); - } - Map<String, String> servlets = new HashMap<>(); - for (ServletMetaData curServlet : metaData.getWebMetaData().getServlets()) { - servlets.put(curServlet.getServletName(), curServlet.getServletClass()); - } - for (ServletMappingMetaData meta : metaData.getWebMetaData().getServletMappings()) { - for (String url : meta.getUrlPatterns()) { - if (url.startsWith("/")) { - url = url.substring(1); + JBossWebMetaData jbossWeb = metaData.getMergedJBossWebMetaData(); + if (jbossWeb != null) { + root = jbossWeb.getContextRoot(); + + if (root == null) { + root = eeModuleDescription.getModuleName(); + } + Map<String, String> servlets = new HashMap<>(); + + for (JBossServletMetaData curServlet : jbossWeb.getServlets()) { + servlets.put(curServlet.getServletName(), curServlet.getServletClass()); + } + for (ServletMappingMetaData meta : jbossWeb.getServletMappings()) { + for (String url : meta.getUrlPatterns()) { + if (url.startsWith("/")) { + url = url.substring(1); + } + String alias = serverNode + "/" + root + "/" + url; + ComponentRecord record = monitoringService.requireComponent(serverNode, + eeModuleDescription.getApplicationName(), eeModuleDescription.getModuleName(), url); + record.setComponentClass(servlets.get(meta.getServletName())); + monitoringService.addAlias(alias, record); } - String alias = serverNode + "/" + root + "/" + url; - ComponentRecord record = monitoringService.requireComponent(serverNode, - eeModuleDescription.getApplicationName(), eeModuleDescription.getModuleName(), - url); - record.setComponentClass(servlets.get(meta.getServletName())); - monitoringService.addAlias(alias, record); } } } -- GitLab