]> source.dussan.org Git - sonarqube.git/commitdiff
Improve documentation of web dev mode
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Mon, 4 Aug 2014 09:53:35 +0000 (11:53 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Mon, 4 Aug 2014 09:53:35 +0000 (11:53 +0200)
server/sonar-server/src/main/java/org/sonar/server/app/Webapp.java
server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartHandler.java
sonar-application/src/main/assembly/conf/sonar.properties

index 19dad273d80c2e14370e59cbb960867f4d02f609..674583996fa9c5e9a2bf791db25782b8946db3a0 100644 (file)
@@ -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;
+  }
 }
index 927f161881614455d2ad1aa93037f87383b0c180..d32623de5a5112bc80e9ae570dde3d0f905e579e 100644 (file)
@@ -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();
     }
index 578cfa942bd65a103486e214796acf5b973b069d..a5a575e7a8b59ef767556a2f0492579d51f29b17 100644 (file)
@@ -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