Removing lots of old, unneeded code from DevMode hierarchy.

Review by: bobv

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6700 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/DevMode.java b/dev/core/src/com/google/gwt/dev/DevMode.java
index 9e60e6b..5dd351b 100644
--- a/dev/core/src/com/google/gwt/dev/DevMode.java
+++ b/dev/core/src/com/google/gwt/dev/DevMode.java
@@ -21,7 +21,6 @@
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.core.ext.linker.ArtifactSet;
 import com.google.gwt.core.ext.linker.impl.StandardLinkerContext;
-import com.google.gwt.dev.Compiler.CompilerOptionsImpl;
 import com.google.gwt.dev.cfg.ModuleDef;
 import com.google.gwt.dev.shell.ArtifactAcceptor;
 import com.google.gwt.dev.shell.jetty.JettyLauncher;
@@ -298,20 +297,6 @@
   }
 
   @Override
-  protected void compile(TreeLogger logger) throws UnableToCompleteException {
-    CompilerOptions newOptions = new CompilerOptionsImpl(options);
-    newOptions.setCompilationStateRetained(true);
-    new Compiler(newOptions).run(logger);
-  }
-
-  @Deprecated
-  @Override
-  protected void compile(TreeLogger logger, ModuleDef moduleDef)
-      throws UnableToCompleteException {
-    throw new UnsupportedOperationException();
-  }
-
-  @Override
   protected HostedModeBaseOptions createOptions() {
     return new HostedModeOptionsImpl();
   }
@@ -419,33 +404,6 @@
     return options.getServletContainerLauncher().getName();
   }
 
-  @Override
-  protected boolean initModule(String moduleName) {
-    ModuleDef module = modulesByName.get(moduleName);
-    if (module == null) {
-      getTopLogger().log(
-          TreeLogger.WARN,
-          "Unknown module requested '"
-              + moduleName
-              + "'; all active GWT modules must be specified in the command line arguments");
-      return false;
-    }
-    try {
-      TreeLogger logger = getTopLogger().branch(TreeLogger.DEBUG,
-          "Initializing module '" + module.getName() + "' for hosted mode");
-      boolean shouldRefreshPage = false;
-      if (module.isGwtXmlFileStale()) {
-        shouldRefreshPage = true;
-        module = loadModule(logger, module.getCanonicalName(), false);
-      }
-      link(logger, module);
-      return shouldRefreshPage;
-    } catch (UnableToCompleteException e) {
-      // Already logged.
-      return false;
-    }
-  }
-
   /*
    * Overridden to keep our map up to date.
    */
diff --git a/dev/core/src/com/google/gwt/dev/DevModeBase.java b/dev/core/src/com/google/gwt/dev/DevModeBase.java
index 90932c3..31615db 100644
--- a/dev/core/src/com/google/gwt/dev/DevModeBase.java
+++ b/dev/core/src/com/google/gwt/dev/DevModeBase.java
@@ -73,25 +73,6 @@
    */
   public class UiBrowserWidgetHostImpl implements BrowserWidgetHost {
 
-    public void compile() throws UnableToCompleteException {
-      if (isLegacyMode()) {
-        throw new UnsupportedOperationException();
-      }
-      DevModeBase.this.compile(getLogger());
-    }
-
-    @Deprecated
-    public void compile(String[] moduleNames) throws UnableToCompleteException {
-      if (!isLegacyMode()) {
-        throw new UnsupportedOperationException();
-      }
-      for (int i = 0; i < moduleNames.length; i++) {
-        String moduleName = moduleNames[i];
-        ModuleDef moduleDef = loadModule(getLogger(), moduleName, true);
-        DevModeBase.this.compile(getLogger(), moduleDef);
-      }
-    }
-
     public ModuleSpaceHost createModuleSpaceHost(TreeLogger mainLogger,
         String moduleName, String userAgent, String url, String tabKey,
         String sessionKey, BrowserChannelServer serverChannel,
@@ -133,19 +114,6 @@
       return getTopLogger();
     }
 
-    public boolean initModule(String moduleName) {
-      return DevModeBase.this.initModule(moduleName);
-    }
-
-    @Deprecated
-    public boolean isLegacyMode() {
-      return DevModeBase.this instanceof GWTShell;
-    }
-
-    public String normalizeURL(String whatTheUserTyped) {
-      return DevModeBase.this.normalizeURL(whatTheUserTyped);
-    }
-
     public void unloadModule(ModuleSpaceHost moduleSpaceHost) {
       ModuleHandle module = loadedModules.remove(moduleSpaceHost);
       if (module != null) {
@@ -733,7 +701,7 @@
     String startupURL = "";
     try {
       for (String prenormalized : options.getStartupURLs()) {
-        startupURL = normalizeURL(prenormalized);
+        startupURL = normalizeURL(prenormalized, getPort(), getHost());
         logger.log(TreeLogger.INFO, "Starting URL: " + startupURL, null);
         launchURL(startupURL);
       }
@@ -743,10 +711,6 @@
     }
   }
 
-  public final String normalizeURL(String unknownUrlText) {
-    return normalizeURL(unknownUrlText, getPort(), getHost());
-  }
-
   /**
    * Callback for the UI to indicate it is done.
    */
@@ -791,21 +755,6 @@
     return CheckForUpdates.ONE_MINUTE;
   }
 
-  /**
-   * Compiles all modules.
-   * 
-   * @throws UnableToCompleteException
-   */
-  protected abstract void compile(TreeLogger logger)
-      throws UnableToCompleteException;
-
-  /**
-   * Compiles a module (legacy only).
-   */
-  @Deprecated
-  protected abstract void compile(TreeLogger logger, ModuleDef moduleDef)
-      throws UnableToCompleteException;
-
   protected abstract HostedModeBaseOptions createOptions();
 
   protected abstract ArtifactAcceptor doCreateArtifactAcceptor(ModuleDef module);
@@ -892,26 +841,6 @@
   }
 
   /**
-   * Called from a selection script as it begins to load in hosted mode. This
-   * triggers a hosted mode link, which might actually update the running
-   * selection script.
-   * 
-   * @param moduleName the module to link
-   * @return <code>true</code> if the selection script was overwritten; this
-   *         will trigger a full-page refresh by the calling (out of date)
-   *         selection script
-   */
-  protected boolean initModule(String moduleName) {
-    /*
-     * Not used in legacy mode due to GWTShellServlet playing this role.
-     * 
-     * TODO: something smarter here and actually make GWTShellServlet less
-     * magic?
-     */
-    return false;
-  }
-
-  /**
    * By default we will open the application window.
    * 
    * @return true if we are running in headless mode
diff --git a/dev/core/src/com/google/gwt/dev/GWTCompiler.java b/dev/core/src/com/google/gwt/dev/GWTCompiler.java
index ba82fe7..d5eea34 100644
--- a/dev/core/src/com/google/gwt/dev/GWTCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/GWTCompiler.java
@@ -66,7 +66,10 @@
     }
   }
 
-  static class GWTCompilerOptionsImpl extends PrecompileOptionsImpl implements
+  /**
+   * Simple implementation of {@link LegacyCompilerOptions}.
+   */
+  public static class GWTCompilerOptionsImpl extends PrecompileOptionsImpl implements
       LegacyCompilerOptions {
 
     private int localWorkers;
diff --git a/dev/core/src/com/google/gwt/dev/GWTShell.java b/dev/core/src/com/google/gwt/dev/GWTShell.java
index 9b41e00..2879f4b 100644
--- a/dev/core/src/com/google/gwt/dev/GWTShell.java
+++ b/dev/core/src/com/google/gwt/dev/GWTShell.java
@@ -19,7 +19,6 @@
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.core.ext.linker.ArtifactSet;
 import com.google.gwt.core.ext.linker.EmittedArtifact;
-import com.google.gwt.dev.GWTCompiler.GWTCompilerOptionsImpl;
 import com.google.gwt.dev.cfg.ModuleDef;
 import com.google.gwt.dev.shell.ArtifactAcceptor;
 import com.google.gwt.dev.shell.WorkDirs;
@@ -187,26 +186,6 @@
   }
 
   @Override
-  protected void compile(TreeLogger logger) throws UnableToCompleteException {
-    throw new UnsupportedOperationException();
-  }
-
-  /**
-   * Compiles a logical module def. The caller can modify the specified module
-   * def programmatically in some cases (this is needed for JUnit support, for
-   * example).
-   */
-  @Override
-  protected void compile(TreeLogger logger, ModuleDef moduleDef)
-      throws UnableToCompleteException {
-    LegacyCompilerOptions newOptions = new GWTCompilerOptionsImpl(options);
-    newOptions.setCompilationStateRetained(true);
-    if (!new GWTCompiler(newOptions).run(logger, moduleDef)) {
-      // TODO(jat): error dialog?
-    }
-  }
-
-  @Override
   protected HostedModeBaseOptions createOptions() {
     return new ShellOptionsImpl();
   }
diff --git a/dev/core/src/com/google/gwt/dev/shell/BrowserWidgetHost.java b/dev/core/src/com/google/gwt/dev/shell/BrowserWidgetHost.java
index a9ea146..1002d4e 100644
--- a/dev/core/src/com/google/gwt/dev/shell/BrowserWidgetHost.java
+++ b/dev/core/src/com/google/gwt/dev/shell/BrowserWidgetHost.java
@@ -23,23 +23,6 @@
  * <code>ModuleSpaceHost</code>, and the compiler.
  */
 public interface BrowserWidgetHost {
-  /**
-   * Perform a web-mode compile on the user-specified set of modules. Used in
-   * non-legacy mode.
-   * 
-   * @throws UnableToCompleteException
-   */
-  void compile() throws UnableToCompleteException;
-
-  /**
-   * Compile the specified set of modules, used in legacy mode.
-   * 
-   * @param modules the names of the modules to compile
-   * @throws UnableToCompleteException
-   * @deprecated Will be removed when legacy shell mode is removed
-   */
-  @Deprecated
-  void compile(String[] modules) throws UnableToCompleteException;
 
   /**
    * For OOPHM.
@@ -63,29 +46,6 @@
   TreeLogger getLogger();
 
   /**
-   * Called from a selection script as it begins to load in hosted mode. This
-   * triggers a hosted mode link, which might actually update the running
-   * selection script.
-   * 
-   * @param moduleName the module to link
-   * @return <code>true</code> if the selection script was overwritten; this
-   *         will trigger a full-page refresh by the calling (out of date)
-   *         selection script
-   */
-  boolean initModule(String moduleName);
-
-  /**
-   * Returns <code>true</code> if running in legacy mode.
-   * 
-   * @deprecated Will be removed when legacy shell mode is removed
-   */
-  @Deprecated
-  boolean isLegacyMode();
-
-  String normalizeURL(String whatTheUserTyped);
-
-
-  /**
    * For OOPHM.
    */
   void unloadModule(ModuleSpaceHost moduleSpaceHost);
diff --git a/user/src/com/google/gwt/junit/JUnitShell.java b/user/src/com/google/gwt/junit/JUnitShell.java
index 81f1641..eeb8e9a 100644
--- a/user/src/com/google/gwt/junit/JUnitShell.java
+++ b/user/src/com/google/gwt/junit/JUnitShell.java
@@ -20,7 +20,10 @@
 import com.google.gwt.core.ext.TreeLogger.Type;
 import com.google.gwt.core.ext.typeinfo.JClassType;
 import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.dev.GWTCompiler;
 import com.google.gwt.dev.GWTShell;
+import com.google.gwt.dev.LegacyCompilerOptions;
+import com.google.gwt.dev.GWTCompiler.GWTCompilerOptionsImpl;
 import com.google.gwt.dev.cfg.BindingProperty;
 import com.google.gwt.dev.cfg.ModuleDef;
 import com.google.gwt.dev.cfg.ModuleDefLoader;
@@ -848,7 +851,11 @@
             userAgents);
       }
     }
-    super.compile(getTopLogger(), module);
+    LegacyCompilerOptions newOptions = new GWTCompilerOptionsImpl(options);
+    newOptions.setCompilationStateRetained(true);
+    if (!new GWTCompiler(newOptions).run(getTopLogger(), module)) {
+      throw new UnableToCompleteException();
+    }
   }
 
   void maybeCompileForWebMode(String moduleName, String... userAgents)