001
014
015 package com.liferay.portal.server.capabilities;
016
017 import com.liferay.portal.kernel.util.ServerDetector;
018 import com.liferay.portal.server.DeepNamedValueScanner;
019
020 import javax.servlet.ServletContext;
021
022
025 public class JBossServerCapabilities implements ServerCapabilities {
026
027 public void determine(ServletContext servletContext) throws Exception {
028 determineSupportsHotDeploy(servletContext);
029 }
030
031 public boolean isSupportsHotDeploy() {
032 return _supportsHotDeploy;
033 }
034
035 protected void determineSupportsHotDeploy(ServletContext servletContext)
036 throws Exception {
037
038 if (ServerDetector.isJBoss5()) {
039 _supportsHotDeploy = true;
040 }
041 else {
042 DeepNamedValueScanner deepNamedValueScanner =
043 new DeepNamedValueScanner("scanEnabled", true);
044
045 deepNamedValueScanner.setExcludedClassNames(
046 "ChainedInterceptorFactory", "TagAttributeInfo", ".jandex.",
047 ".vfs.");
048 deepNamedValueScanner.setExcludedNames("serialversion");
049 deepNamedValueScanner.setIncludedClassNames(
050 "org.apache.", "org.jboss.");
051 deepNamedValueScanner.setVisitArrays(true);
052 deepNamedValueScanner.setVisitMaps(true);
053
054 deepNamedValueScanner.scan(servletContext);
055
056 Boolean scanEnabledValue =
057 (Boolean)deepNamedValueScanner.getMatchedValue();
058
059 if (scanEnabledValue == null) {
060 _supportsHotDeploy = false;
061 }
062 else {
063 _supportsHotDeploy = scanEnabledValue.booleanValue();
064 }
065 }
066 }
067
068 private boolean _supportsHotDeploy;
069
070 }