[KARAF-4746] Upgrade to Pax-Web 4.4.0 Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/de47c16d Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/de47c16d Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/de47c16d
Branch: refs/heads/master Commit: de47c16d53712a2033e76f8133791c635521bee7 Parents: f1d685d Author: Guillaume Nodet <[email protected]> Authored: Mon Oct 3 15:33:04 2016 +0200 Committer: Guillaume Nodet <[email protected]> Committed: Mon Oct 3 15:33:04 2016 +0200 ---------------------------------------------------------------------- .../http/core/internal/ServletServiceImpl.java | 11 ++++++---- pom.xml | 2 +- .../web/internal/WebContainerServiceImpl.java | 22 ++++++++++++++++---- .../karaf/web/internal/WebEventHandler.java | 2 +- .../karaf/webconsole/http/HttpPlugin.java | 14 ++++++++----- 5 files changed, 36 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/de47c16d/http/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java ---------------------------------------------------------------------- diff --git a/http/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java b/http/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java index 706c64b..9b0c7fd 100644 --- a/http/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java +++ b/http/src/main/java/org/apache/karaf/http/core/internal/ServletServiceImpl.java @@ -38,9 +38,12 @@ public class ServletServiceImpl implements ServletService { List<ServletInfo> servletInfos = new ArrayList<ServletInfo>(); Collection<ServletEvent> events = servletEventHandler.getServletEvents(); for (ServletEvent event : events) { - String servletClassName = event.getServletClassName(); - if (servletClassName.contains(".")) { - servletClassName = servletClassName.substring(servletClassName.lastIndexOf(".") + 1, servletClassName.length()); + Servlet servlet = event.getServlet(); + String servletClassName = " "; + if (servlet != null) { + servletClassName = servlet.getClass().getName(); + servletClassName = servletClassName.substring(servletClassName.lastIndexOf(".") + 1, + servletClassName.length()); } String servletName = event.getServletName() != null ? event.getServletName() : " "; if (servletName.contains(".")) { @@ -51,7 +54,7 @@ public class ServletServiceImpl implements ServletService { String[] urls = (String[])(event.getUrlParameter() != null ? event.getUrlParameter() : new String[] {""}); ServletInfo info = new ServletInfo(); - info.setBundleId(event.getBundleId()); + info.setBundleId(event.getBundle().getBundleId()); info.setName(servletName); info.setClassName(servletClassName); info.setState(event.getType()); http://git-wip-us.apache.org/repos/asf/karaf/blob/de47c16d/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index a1c8fda..3c2741a 100644 --- a/pom.xml +++ b/pom.xml @@ -267,7 +267,7 @@ <pax.logging.version>1.9.0</pax.logging.version> <pax.base.version>1.5.0</pax.base.version> <pax.url.version>2.4.7</pax.url.version> - <pax.web.version>6.0.0-SNAPSHOT</pax.web.version> + <pax.web.version>4.4.0-SNAPSHOT</pax.web.version> <pax.tinybundle.version>2.1.1</pax.tinybundle.version> <pax.jdbc.version>0.9.0</pax.jdbc.version> http://git-wip-us.apache.org/repos/asf/karaf/blob/de47c16d/web/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java ---------------------------------------------------------------------- diff --git a/web/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java b/web/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java index d2e33b6..bab1bdd 100644 --- a/web/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java +++ b/web/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java @@ -117,8 +117,15 @@ public class WebContainerServiceImpl implements WebContainerService, BundleListe if (bundleIds != null && !bundleIds.isEmpty()) { for (long bundleId : bundleIds) { if (webEventHandler.getBundleEvents().containsKey(bundleId)) { - // deploy - warManager.start(bundleId, null); + WebEvent webEvent = webEventHandler.getBundleEvents().get(bundleId); + Bundle bundle = webEvent.getBundle(); + if (bundle != null) { + // deploy + warManager.start(bundleId, null); + } else { + System.out.println("Bundle ID " + bundleId + " is invalid"); + LOGGER.warn("Bundle ID {} is invalid", bundleId); + } } } } @@ -128,8 +135,15 @@ public class WebContainerServiceImpl implements WebContainerService, BundleListe if (bundleIds != null && !bundleIds.isEmpty()) { for (long bundleId : bundleIds) { if (webEventHandler.getBundleEvents().containsKey(bundleId)) { - // undeploy - warManager.stop(bundleId); + WebEvent webEvent = webEventHandler.getBundleEvents().get(bundleId); + Bundle bundle = webEvent.getBundle(); + if (bundle != null) { + // deploy + warManager.stop(bundleId); + } else { + System.out.println("Bundle ID " + bundleId + " is invalid"); + LOGGER.warn("Bundle ID {} is invalid", bundleId); + } } } } http://git-wip-us.apache.org/repos/asf/karaf/blob/de47c16d/web/src/main/java/org/apache/karaf/web/internal/WebEventHandler.java ---------------------------------------------------------------------- diff --git a/web/src/main/java/org/apache/karaf/web/internal/WebEventHandler.java b/web/src/main/java/org/apache/karaf/web/internal/WebEventHandler.java index 11ad198..01ef52e 100644 --- a/web/src/main/java/org/apache/karaf/web/internal/WebEventHandler.java +++ b/web/src/main/java/org/apache/karaf/web/internal/WebEventHandler.java @@ -34,7 +34,7 @@ public class WebEventHandler implements WebListener { } public void webEvent(WebEvent event) { - getBundleEvents().put(event.getBundleId(), event); + getBundleEvents().put(event.getBundle().getBundleId(), event); } } http://git-wip-us.apache.org/repos/asf/karaf/blob/de47c16d/webconsole/http/src/main/java/org/apache/karaf/webconsole/http/HttpPlugin.java ---------------------------------------------------------------------- diff --git a/webconsole/http/src/main/java/org/apache/karaf/webconsole/http/HttpPlugin.java b/webconsole/http/src/main/java/org/apache/karaf/webconsole/http/HttpPlugin.java index 10deb36..b6fb060 100644 --- a/webconsole/http/src/main/java/org/apache/karaf/webconsole/http/HttpPlugin.java +++ b/webconsole/http/src/main/java/org/apache/karaf/webconsole/http/HttpPlugin.java @@ -208,8 +208,12 @@ public class HttpPlugin extends AbstractWebConsolePlugin { List<ServletDetails> result = new ArrayList<ServletDetails>(events.size()); for (ServletEvent event : events) { - String servletClassName = event.getServletClassName(); - servletClassName = servletClassName.substring(servletClassName.lastIndexOf(".") + 1, servletClassName.length()); + Servlet servlet = event.getServlet(); + String servletClassName = " "; + if (servlet != null) { + servletClassName = servlet.getClass().getName(); + servletClassName = servletClassName.substring(servletClassName.lastIndexOf(".") + 1, servletClassName.length()); + } String servletName = event.getServletName() != null ? event.getServletName() : " "; if (servletName.contains(".")) { servletName = servletName.substring(servletName.lastIndexOf(".") + 1, servletName.length()); @@ -220,7 +224,7 @@ public class HttpPlugin extends AbstractWebConsolePlugin { String[] urls = (String[]) (event.getUrlParameter() != null ? event.getUrlParameter() : new String[]{""}); ServletDetails details = new ServletDetails(); - details.setId(event.getBundleId()); + details.setId(event.getBundle().getBundleId()); details.setAlias(alias); details.setServlet(servletClassName); details.setServletName(servletName); @@ -239,9 +243,9 @@ public class HttpPlugin extends AbstractWebConsolePlugin { for (WebEvent event : bundleEvents.values()) { WebDetail webDetail = new WebDetail(); - webDetail.setBundleId(event.getBundleId()); + webDetail.setBundleId(event.getBundle().getBundleId()); webDetail.setContextPath(event.getContextPath().trim().concat("/")); - int state = bundleContext.getBundle(event.getBundleId()).getState(); + int state = bundleContext.getBundle(event.getBundle().getBundleId()).getState(); String stateStr; if (state == Bundle.ACTIVE) { stateStr = "Active";
