<!--                                                                        -->
<!-- Copyright 2008 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.                                         -->

<!-- ClientBundle supports renaming files with strong names at compile time  -->
<module>
  <!-- Pull in the necessary base support, including user.agent detection -->
  <inherits name="com.google.gwt.core.Core" />
  <!-- Pull in StyleInjector for CssResource -->
  <inherits name="com.google.gwt.dom.DOM" />
  <!-- Used by ExternalTextResource -->
  <inherits name="com.google.gwt.http.HTTP" />

  <!--  This acts as a switch to disable the use of data: URLs -->
  <define-property name="ClientBundle.enableInlining" values="true,false" />
  <set-property name="ClientBundle.enableInlining" value="true" />

  <!-- Specify the default behavior which should work on all browsers -->
  <generate-with
    class="com.google.gwt.resources.rebind.context.StaticClientBundleGenerator">

    <!-- We have to specify on which types to execute the Generator -->
    <when-type-assignable
      class="com.google.gwt.resources.client.ClientBundle" />
  </generate-with>

  <!-- Last-matches wins, so this will selectively override the previous rule -->
  <generate-with
    class="com.google.gwt.resources.rebind.context.InlineClientBundleGenerator">

    <!-- We have a number of conditions that must be satisfied -->
    <all>
      <!-- Is inlining enabled? -->
      <when-property-is name="ClientBundle.enableInlining" value="true" />

      <!-- Again, it's necessary to specify which types the generator runs on -->
      <when-type-assignable
        class="com.google.gwt.resources.client.ClientBundle" />

      <!-- Only some browsers support RFC 2397 data: URLs -->
      <any>
        <when-property-is name="user.agent" value="safari" />
        <when-property-is name="user.agent" value="opera" />
        <when-property-is name="user.agent" value="gecko1_8" />
        <when-property-is name="user.agent" value="ie8" />
      </any>
    </all>
  </generate-with>

  <!-- This can be used to disable the use of strongly-named files -->
  <define-configuration-property name="ClientBundle.enableRenaming" is-multi-valued="false" />
  <set-configuration-property name="ClientBundle.enableRenaming" value="true" />

  <!-- This allows merging of CSS rules to be disabled. -->
  <define-configuration-property name="CssResource.mergeEnabled" is-multi-valued="false" />
  <set-configuration-property name="CssResource.mergeEnabled" value="true" />

  <!-- This allows the developer to use shorter obfuscated class names. -->
  <!-- Is is valid to extend this property to use a custom name. -->
  <define-configuration-property name="CssResource.obfuscationPrefix" is-multi-valued="false" />
  <set-configuration-property name="CssResource.obfuscationPrefix" value="default" />

  <!-- A multi-valued configuration property that defines class name prefixes -->
  <!-- the CssResource obfuscator should not use. -->
  <define-configuration-property name="CssResource.reservedClassPrefixes" is-multi-valued="true" />
  <extend-configuration-property name="CssResource.reservedClassPrefixes" value="gwt-" />

  <!-- This can be used to make CssResource produce human-readable CSS -->
  <define-configuration-property name="CssResource.style" is-multi-valued="false" />
  <set-configuration-property name="CssResource.style" value="obf" />
</module>
