<!--                                                                        -->
<!-- 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>
  <inherits name="com.google.gwt.json.JSON"/>
  <inherits name="com.google.gwt.user.User" />
  <inherits name="com.google.gwt.logging.LogImpl"/>
  <source path="client" />
  <source path="shared" />
  
  <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>

  
  <!-- 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 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.firebugHandler" values="ENABLED, DISABLED" />
  <replace-with class="com.google.gwt.logging.client.NullLogHandler">
    <when-type-is class="com.google.gwt.logging.client.FirebugLogHandler" />
    <any>
      <when-property-is name="gwt.logging.enabled" value="FALSE" />
      <when-property-is name="gwt.logging.firebugHandler" 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>


  <define-property name="gwt.logging.popupHandler" values="ENABLED, DISABLED" />
  <replace-with class="com.google.gwt.logging.client.NullLoggingPopup">
    <when-type-is class="com.google.gwt.logging.client.LoggingPopup" />
    <any>
      <when-property-is name="gwt.logging.enabled" value="FALSE" />
      <when-property-is name="gwt.logging.popupHandler" 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.firebugHandler" value="ENABLED" />
  <set-property name="gwt.logging.hasWidgetsHandler" value="ENABLED" />
  <set-property name="gwt.logging.popupHandler" value="ENABLED" />
  <set-property name="gwt.logging.systemHandler" value="ENABLED" />
  <set-property name="gwt.logging.simpleRemoteHandler" value="DISABLED" />
  
  <entry-point class="com.google.gwt.logging.client.LogConfiguration"/>
</module>