-injars 'wrapper 4.1.jar'
-outjars 'wrapper 4.1-obfuscated.jar'

-libraryjars 'C:\Program Files\Java\jre6\lib\rt.jar'
-libraryjars jgrapht-jdk1.5.jar
-libraryjars 'D:\eclipse\plugins\org.junit_4.8.1.v4_8_1_v20100427-1100\junit.jar'
-libraryjars 'D:\eclipse\plugins\org.hamcrest.core_1.1.0.v20090501071000.jar'

-dontshrink
-dontoptimize
-keeppackagenames
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod
-keepparameternames


-keepclasseswithmembers,allowshrinking class * {
    <methods>;
}

-keepclasseswithmembers,allowshrinking class *

-keep,allowshrinking,allowobfuscation class * {
    <fields>;
}

-keep,allowshrinking class * {
    @**
    <fields>;
}

-keep,allowshrinking class * {
    public static final <fields>;
}

# Keep - Applications. Keep all application classes, along with their 'main'
# methods.
-keepclasseswithmembers public class * {
    public static void main(java.lang.String[]);
}

# Also keep - Enumerations. Keep the special static methods that are required in
# enumeration classes.
-keepclassmembers enum  *,it.unical.mat.dlv.testing.TestState {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# Also keep - Database drivers. Keep all implementations of java.sql.Driver.
-keep class * extends java.sql.Driver

# Also keep - Swing UI L&F. Keep all extensions of javax.swing.plaf.ComponentUI,
# along with the special 'createUI' method.
-keep class * extends javax.swing.plaf.ComponentUI {
    public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent);
}

# Keep names - Native method names. Keep all native class/method names.
-keepclasseswithmembers,allowshrinking class * {
    native <methods>;
}

# Keep names - _class method names. Keep all .class method names. This may be
# useful for libraries that will be obfuscated again with different obfuscators.
-keepclassmembers,allowshrinking class * {
    java.lang.Class class$(java.lang.String);
    java.lang.Class class$(java.lang.String,boolean);
}
