@@ -20,16 +20,24 @@ public ObfuscationConfig.Builder loadConfig(File configFile) throws IOException
20
20
JsonNode root = objectMapper .readTree (configFile );
21
21
ObfuscationConfig .Builder builder = new ObfuscationConfig .Builder ();
22
22
23
+ JsonNode obfuscationNode = root .has ("obfuscation" ) ? root .get ("obfuscation" ) : root ;
24
+
23
25
if (root .has ("renameClasses" )) {
24
26
builder .renameClasses (root .get ("renameClasses" ).asBoolean ());
27
+ } else if (obfuscationNode .has ("renameClasses" )) {
28
+ builder .renameClasses (obfuscationNode .get ("renameClasses" ).asBoolean ());
25
29
}
26
-
30
+
27
31
if (root .has ("renameFields" )) {
28
32
builder .renameFields (root .get ("renameFields" ).asBoolean ());
33
+ } else if (obfuscationNode .has ("renameFields" )) {
34
+ builder .renameFields (obfuscationNode .get ("renameFields" ).asBoolean ());
29
35
}
30
36
31
37
if (root .has ("renameMethods" )) {
32
38
builder .renameMethods (root .get ("renameMethods" ).asBoolean ());
39
+ } else if (obfuscationNode .has ("renameMethods" )) {
40
+ builder .renameMethods (obfuscationNode .get ("renameMethods" ).asBoolean ());
33
41
}
34
42
35
43
@@ -54,12 +62,18 @@ public ObfuscationConfig.Builder loadConfig(File configFile) throws IOException
54
62
builder .verbose (root .get ("verbose" ).asBoolean ());
55
63
}
56
64
65
+ JsonNode keepRulesNode = root .has ("keepRules" ) ? root .get ("keepRules" ) : root ;
66
+
57
67
if (root .has ("keepMainClass" )) {
58
68
builder .keepMainClass (root .get ("keepMainClass" ).asBoolean ());
69
+ } else if (keepRulesNode .has ("keepMainClass" )) {
70
+ builder .keepMainClass (keepRulesNode .get ("keepMainClass" ).asBoolean ());
59
71
}
60
72
61
73
if (root .has ("keepStandardEntryPoints" )) {
62
74
builder .keepStandardEntryPoints (root .get ("keepStandardEntryPoints" ).asBoolean ());
75
+ } else if (keepRulesNode .has ("keepStandardEntryPoints" )) {
76
+ builder .keepStandardEntryPoints (keepRulesNode .get ("keepStandardEntryPoints" ).asBoolean ());
63
77
}
64
78
65
79
if (root .has ("sequentialTransformers" )) {
@@ -95,9 +109,9 @@ public ObfuscationConfig.Builder loadConfig(File configFile) throws IOException
95
109
if (root .has ("maxThreads" )) {
96
110
builder .maxThreads (root .get ("maxThreads" ).asInt ());
97
111
}
98
-
99
- if (root .has ("keepClasses" )) {
100
- JsonNode keepClasses = root .get ("keepClasses" );
112
+
113
+ if (keepRulesNode .has ("keepClasses" )) {
114
+ JsonNode keepClasses = keepRulesNode .get ("keepClasses" );
101
115
if (keepClasses .isArray ()) {
102
116
List <String > classes = new ArrayList <>();
103
117
for (JsonNode node : keepClasses ) {
@@ -107,8 +121,8 @@ public ObfuscationConfig.Builder loadConfig(File configFile) throws IOException
107
121
}
108
122
}
109
123
110
- if (root .has ("keepClassPatterns" )) {
111
- JsonNode keepClassPatterns = root .get ("keepClassPatterns" );
124
+ if (keepRulesNode .has ("keepClassPatterns" )) {
125
+ JsonNode keepClassPatterns = keepRulesNode .get ("keepClassPatterns" );
112
126
if (keepClassPatterns .isArray ()) {
113
127
List <String > patterns = new ArrayList <>();
114
128
for (JsonNode node : keepClassPatterns ) {
@@ -118,8 +132,8 @@ public ObfuscationConfig.Builder loadConfig(File configFile) throws IOException
118
132
}
119
133
}
120
134
121
- if (root .has ("keepMethods" )) {
122
- JsonNode keepMethods = root .get ("keepMethods" );
135
+ if (keepRulesNode .has ("keepMethods" )) {
136
+ JsonNode keepMethods = keepRulesNode .get ("keepMethods" );
123
137
if (keepMethods .isArray ()) {
124
138
List <String > methods = new ArrayList <>();
125
139
for (JsonNode node : keepMethods ) {
@@ -129,8 +143,19 @@ public ObfuscationConfig.Builder loadConfig(File configFile) throws IOException
129
143
}
130
144
}
131
145
132
- if (root .has ("keepFields" )) {
133
- JsonNode keepFields = root .get ("keepFields" );
146
+ if (keepRulesNode .has ("keepMethodsInClassPatterns" )) {
147
+ JsonNode keepMethodsInClassPatterns = keepRulesNode .get ("keepMethodsInClassPatterns" );
148
+ if (keepMethodsInClassPatterns .isArray ()) {
149
+ List <String > patterns = new ArrayList <>();
150
+ for (JsonNode node : keepMethodsInClassPatterns ) {
151
+ patterns .add (node .asText ());
152
+ }
153
+ builder .keepMethodsInClassPatterns (patterns );
154
+ }
155
+ }
156
+
157
+ if (keepRulesNode .has ("keepFields" )) {
158
+ JsonNode keepFields = keepRulesNode .get ("keepFields" );
134
159
if (keepFields .isArray ()) {
135
160
List <String > fields = new ArrayList <>();
136
161
for (JsonNode node : keepFields ) {
0 commit comments