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 @Override
028 public void determine(ServletContext servletContext) throws Exception {
029 determineSupportsHotDeploy(servletContext);
030 }
031
032 @Override
033 public boolean isSupportsHotDeploy() {
034 return _supportsHotDeploy;
035 }
036
037 protected void determineSupportsHotDeploy(ServletContext servletContext)
038 throws Exception {
039
040 if (ServerDetector.isJBoss5()) {
041 _supportsHotDeploy = true;
042 }
043 else {
044 DeepNamedValueScanner deepNamedValueScanner =
045 new DeepNamedValueScanner("scanEnabled", true);
046
047 deepNamedValueScanner.setExcludedClassNames(
048 "ChainedInterceptorFactory", "TagAttributeInfo", ".jandex.",
049 ".vfs.");
050 deepNamedValueScanner.setExcludedNames("serialversion");
051 deepNamedValueScanner.setIncludedClassNames(
052 "org.apache.", "org.jboss.");
053 deepNamedValueScanner.setVisitArrays(true);
054 deepNamedValueScanner.setVisitMaps(true);
055
056 deepNamedValueScanner.scan(servletContext);
057
058 Boolean scanEnabledValue =
059 (Boolean)deepNamedValueScanner.getMatchedValue();
060
061 if (scanEnabledValue == null) {
062 _supportsHotDeploy = false;
063 }
064 else {
065 _supportsHotDeploy = scanEnabledValue.booleanValue();
066 }
067 }
068 }
069
070 private boolean _supportsHotDeploy;
071
072 }