summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/app/Webapp.java29
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartHandler.java4
-rw-r--r--sonar-application/src/main/assembly/conf/sonar.properties13
3 files changed, 33 insertions, 13 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/app/Webapp.java b/server/sonar-server/src/main/java/org/sonar/server/app/Webapp.java
index 19dad273d80..674583996fa 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/app/Webapp.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/app/Webapp.java
@@ -37,14 +37,7 @@ class Webapp {
static StandardContext configure(Tomcat tomcat, Props props) {
try {
- String webDir = props.of("sonar.web.dev.sources");
- boolean dev = true;
- if (StringUtils.isEmpty(webDir)) {
- webDir = new File(props.of("sonar.path.home"), "web").getAbsolutePath();
- dev = false;
- }
- LoggerFactory.getLogger(Webapp.class).info("Webapp directory: " + webDir);
- StandardContext context = (StandardContext) tomcat.addWebapp(getContextPath(props), webDir);
+ StandardContext context = (StandardContext) tomcat.addWebapp(getContextPath(props), webappPath(props));
context.setClearReferencesHttpClientKeepAliveThread(false);
context.setClearReferencesStatic(false);
context.setClearReferencesStopThreads(false);
@@ -62,13 +55,14 @@ class Webapp {
context.setUseNaming(false);
context.setDelegate(true);
context.setJarScanner(new NullJarScanner());
+ configureRails(props, context);
+
for (Map.Entry<Object, Object> entry : props.encryptedProperties().entrySet()) {
String key = entry.getKey().toString();
if (key.startsWith("sonar.")) {
context.addParameter(key, entry.getValue().toString());
}
}
- configureRails(props, context, dev);
return context;
@@ -87,8 +81,12 @@ class Webapp {
return context;
}
- static void configureRails(Props props, Context context, boolean development) {
- if (development) {
+ static void configureRails(Props props, Context context) {
+ // sonar.dev is kept for backward-compatibility
+ if (props.booleanOf("sonar.dev", false)) {
+ props.set("sonar.web.dev", "true");
+ }
+ if (props.booleanOf("sonar.web.dev", false)) {
context.addParameter(RAILS_ENV, "development");
context.addParameter(JRUBY_MAX_RUNTIMES, "3");
LoggerFactory.getLogger(Webapp.class).warn("WEB DEVELOPMENT MODE IS ENABLED - DO NOT USE FOR PRODUCTION USAGE");
@@ -97,4 +95,13 @@ class Webapp {
context.addParameter(JRUBY_MAX_RUNTIMES, "1");
}
}
+
+ static String webappPath(Props props) {
+ String webDir = props.of("sonar.web.dev.sources");
+ if (StringUtils.isEmpty(webDir)) {
+ webDir = new File(props.of("sonar.path.home"), "web").getAbsolutePath();
+ }
+ LoggerFactory.getLogger(Webapp.class).info(String.format("Webapp directory: %s", webDir));
+ return webDir;
+ }
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartHandler.java b/server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartHandler.java
index 927f1618816..d32623de5a5 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartHandler.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartHandler.java
@@ -44,7 +44,7 @@ public class RestartHandler implements RequestHandler {
void define(WebService.NewController controller) {
controller.createAction("restart")
- .setDescription("Restart server. Available only on development mode (sonar.dev=true), except when using Java 6 " +
+ .setDescription("Restart server. Available only on development mode (sonar.web.dev=true), except when using Java 6 " +
"on MS Windows. Ruby on Rails extensions are not reloaded")
.setSince("4.3")
.setPost(true)
@@ -66,7 +66,7 @@ public class RestartHandler implements RequestHandler {
}
private boolean canRestart() {
- boolean ok = settings.getBoolean("sonar.dev");
+ boolean ok = settings.getBoolean("sonar.web.dev");
if (ok) {
ok = !system.isOsWindows() || system.isJavaAtLeast17();
}
diff --git a/sonar-application/src/main/assembly/conf/sonar.properties b/sonar-application/src/main/assembly/conf/sonar.properties
index 578cfa942bd..a5a575e7a8b 100644
--- a/sonar-application/src/main/assembly/conf/sonar.properties
+++ b/sonar-application/src/main/assembly/conf/sonar.properties
@@ -237,3 +237,16 @@ sonar.jdbc.timeBetweenEvictionRunsMillis=30000
# Defaults are respectively <installation home>/data and <installation home>/temp
#sonar.path.data=data
#sonar.path.temp=temp
+
+
+
+#--------------------------------------------------------------------------------------------------
+# DEVELOPMENT - only for developers
+
+# Dev mode allows to reload web sources on changes and to restart server when new versions
+# of plugins are deployed.
+#sonar.web.dev=false
+
+# Path to webapp sources for hot-reloading of Ruby on Rails, JS and CSS (only core,
+# plugins not supported).
+#sonar.web.dev.sources=/path/to/server/sonar-web/src/main/webapp