<!-- This Ant build file illustrates how to process a program library,
     such that it remains usable as a library.
     Usage: ant -f library.xml -->

<project name="Library" default="obfuscate" basedir="../..">

<target name="obfuscate">
  <taskdef resource="proguard/ant/task.properties"
           classpath="lib/proguard.jar" />

  <proguard printmapping="out.map"
            renamesourcefileattribute="SourceFile">

    <!-- Specify the input jars, output jars, and library jars. -->

    <injar  file="library.jar" />
    <outjar file="library_out.jar" />

    <libraryjar file="${java.home}/lib/rt.jar" />

    <!-- Keep some useful attributes. -->

    <keepattribute name="InnerClasses" />
    <keepattribute name="SourceFile" />
    <keepattribute name="LineNumberTable" />
    <keepattribute name="Deprecated" />
    <keepattribute name="*Annotation*" />

    <!-- Preserve all public classes, and their public and protected fields
        and methods. -->

    <keep access="public">
      <field  access="public protected" />
      <method access="public protected" />
    </keep>

    <!-- Preserve all .class method names. -->

    <keepclassmembernames access="public">
      <method type      ="java.lang.Class"
              name      ="class$"
              parameters="java.lang.String" />
      <method type      ="java.lang.Class"
              name      ="class$"
              parameters="java.lang.String,boolean" />
    </keepclassmembernames>

    <!-- Preserve all native method names and the names of their classes. -->

    <keepclasseswithmembernames>
      <method access="native" />
    </keepclasseswithmembernames>
    
    <!-- Preserve the methods that are required in all enumeration classes. -->
    
    <keepclassmembers extends="java.lang.Enum">
      <method access="public static"
              type="**[]"
              name="values"
              parameters="" />
      <method access="public static"
              type="**"
              name="valueOf"
              parameters="java.lang.String" />
    </keepclassmembers>

    <!-- Explicitly preserve all serialization members. The Serializable
         interface is only a marker interface, so it wouldn't save them.
         You can comment this out if your library doesn't use serialization.
         If your code contains serializable classes that have to be backward
         compatible, please refer to the manual. -->

    <keepclassmembers implements="java.io.Serializable">
      <field  access    ="final"
              type      ="long"
              name      ="serialVersionUID" />
      <field  access    ="static final"
              type      ="java.io.ObjectStreamField[]"
              name      ="serialPersistentFields" />
      <method access    ="private"
              type      ="void"
              name      ="writeObject"
              parameters="java.io.ObjectOutputStream" />
      <method access    ="private"
              type      ="void"
              name      ="readObject"
              parameters="java.io.ObjectInputStream" />
      <method type      ="java.lang.Object"
              name      ="writeReplace"
              parameters="" />
      <method type      ="java.lang.Object"
              name      ="readResolve"
              parameters="" />
    </keepclassmembers>

    <!-- Your application may contain more items that need to be preserved;
      typically classes that are dynamically created using Class.forName -->

  </proguard>
</target>

</project>
