<!--                                                                        -->
<!-- Copyright 2010 Google Inc.                                             -->
<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
<!-- may not use this file except in compliance with the License. You may   -->
<!-- may obtain a copy of the License at                                    -->
<!--                                                                        -->
<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
<!--                                                                        -->
<!-- Unless required by applicable law or agreed to in writing, software    -->
<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
<!-- implied. License for the specific language governing permissions and   -->
<!-- limitations under the License.                                         -->

<module type="fileset">
  <inherits name="com.google.gwt.json.JSON"/>
  <inherits name="com.google.gwt.user.UI" />
  <inherits name="com.google.gwt.user.RemoteService" />
  <inherits name="com.google.gwt.logging.LogImpl"/>
  <source path="client" />
  <source path="shared" />
  <public path="public" />

  <replace-with class="com.google.gwt.logging.client.LogConfiguration.LogConfigurationImplRegular">
    <when-type-is class="com.google.gwt.logging.client.LogConfiguration.LogConfigurationImplNull"/>
    <when-property-is name="gwt.logging.enabled" value="TRUE" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.LogConfiguration.LogConfigurationImplSevere">
    <when-type-is class="com.google.gwt.logging.client.LogConfiguration.LogConfigurationImplNull"/>
    <when-property-is name="gwt.logging.enabled" value="SEVERE" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.LogConfiguration.LogConfigurationImplWarning">
    <when-type-is class="com.google.gwt.logging.client.LogConfiguration.LogConfigurationImplNull"/>
    <when-property-is name="gwt.logging.enabled" value="WARNING" />
  </replace-with>

  <!-- Set up and handle the gwt.logging.logLevel property -->
  <define-property name="gwt.logging.logLevel" values="ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE" />
  <replace-with class="com.google.gwt.logging.client.DefaultLevel.All">
    <when-type-is class="com.google.gwt.logging.client.DefaultLevel" />
    <when-property-is name="gwt.logging.logLevel" value="ALL" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.DefaultLevel.Finest">
    <when-type-is class="com.google.gwt.logging.client.DefaultLevel" />
    <when-property-is name="gwt.logging.logLevel" value="FINEST" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.DefaultLevel.Finer">
    <when-type-is class="com.google.gwt.logging.client.DefaultLevel" />
    <when-property-is name="gwt.logging.logLevel" value="FINER" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.DefaultLevel.Fine">
    <when-type-is class="com.google.gwt.logging.client.DefaultLevel" />
    <when-property-is name="gwt.logging.logLevel" value="FINE" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.DefaultLevel.Config">
    <when-type-is class="com.google.gwt.logging.client.DefaultLevel" />
    <when-property-is name="gwt.logging.logLevel" value="CONFIG" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.DefaultLevel.Info">
    <when-type-is class="com.google.gwt.logging.client.DefaultLevel" />
    <when-property-is name="gwt.logging.logLevel" value="INFO" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.DefaultLevel.Warning">
    <when-type-is class="com.google.gwt.logging.client.DefaultLevel" />
    <when-property-is name="gwt.logging.logLevel" value="WARNING" />
  </replace-with>
  <replace-with class="com.google.gwt.logging.client.DefaultLevel.Severe">
    <when-type-is class="com.google.gwt.logging.client.DefaultLevel" />
    <when-property-is name="gwt.logging.logLevel" value="SEVERE" />
  </replace-with>

  <!-- Set the default implementation for HasWidgetsLogHandler -->
  <replace-with class="com.google.gwt.logging.client.PopupLogHandler">
    <when-type-is class="com.google.gwt.logging.client.HasWidgetsLogHandler" />
  </replace-with>

  <!-- Set up and handle the gwt.logging.xxxHandler properties -->
  <define-property name="gwt.logging.consoleHandler" values="ENABLED, DISABLED" />
  <replace-with class="com.google.gwt.logging.client.NullLogHandler">
    <when-type-is class="com.google.gwt.logging.client.ConsoleLogHandler" />
    <any>
      <when-property-is name="gwt.logging.enabled" value="FALSE" />
      <when-property-is name="gwt.logging.consoleHandler" value="DISABLED" />
    </any>
  </replace-with>
  <define-property name="gwt.logging.developmentModeHandler" values="ENABLED, DISABLED" />
  <replace-with class="com.google.gwt.logging.client.NullLogHandler">
    <when-type-is class="com.google.gwt.logging.client.DevelopmentModeLogHandler" />
    <any>
      <when-property-is name="gwt.logging.enabled" value="FALSE" />
      <when-property-is name="gwt.logging.developmentModeHandler" value="DISABLED" />
    </any>
  </replace-with>
  <define-property name="gwt.logging.systemHandler" values="ENABLED, DISABLED" />
  <replace-with class="com.google.gwt.logging.client.NullLogHandler">
    <when-type-is class="com.google.gwt.logging.client.SystemLogHandler" />
    <any>
      <when-property-is name="gwt.logging.enabled" value="FALSE" />
      <when-property-is name="gwt.logging.systemHandler" value="DISABLED" />
    </any>
  </replace-with>
  <define-property name="gwt.logging.simpleRemoteHandler" values="ENABLED, DISABLED" />
  <replace-with class="com.google.gwt.logging.client.NullLogHandler">
    <when-type-is class="com.google.gwt.logging.client.SimpleRemoteLogHandler" />
    <any>
      <when-property-is name="gwt.logging.enabled" value="FALSE" />
      <when-property-is name="gwt.logging.simpleRemoteHandler" value="DISABLED" />
    </any>
  </replace-with>
  <define-property name="gwt.logging.hasWidgetsHandler" values="ENABLED, DISABLED" />
  <replace-with class="com.google.gwt.logging.client.NullLogHandler">
    <when-type-is class="com.google.gwt.logging.client.HasWidgetsLogHandler" />
    <any>
      <when-property-is name="gwt.logging.enabled" value="FALSE" />
      <when-property-is name="gwt.logging.hasWidgetsHandler" value="DISABLED" />
    </any>
  </replace-with>

  <!-- Default values for all properties -->
  <set-property name="gwt.logging.logLevel" value="INFO"/>
  <set-property name="gwt.logging.consoleHandler" value="ENABLED" />
  <set-property name="gwt.logging.developmentModeHandler" value="ENABLED" />
  <set-property name="gwt.logging.hasWidgetsHandler" value="DISABLED" />
  <set-property name="gwt.logging.systemHandler" value="DISABLED" />
  <set-property name="gwt.logging.simpleRemoteHandler" value="DISABLED" />

  <entry-point class="com.google.gwt.logging.client.LogConfiguration"/>

  <!-- Disable simple logging as the app already opted into Logging by inheriting this module -->
  <replace-with class="com.google.gwt.logging.impl.LoggerConfiguratorNull">
    <when-type-is class="com.google.gwt.logging.impl.LoggerConfigurator"/>
  </replace-with>
</module>
