Skip to content

Commit 252fb14

Browse files
authored
Merge pull request #64 from netplex/bump
Bump
2 parents 11ac37c + 4da35ed commit 252fb14

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+848
-681
lines changed

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"java.configuration.updateBuildConfiguration": "interactive"
3+
}

accessors-smart/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<dependency>
4242
<groupId>org.junit.jupiter</groupId>
4343
<artifactId>junit-jupiter-api</artifactId>
44-
<version>5.6.2</version>
44+
<version>5.7.1</version>
4545
<scope>test</scope>
4646
</dependency>
4747
<dependency>

accessors-smart/src/main/java/net/minidev/asm/ASMUtil.java

Lines changed: 49 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434
public class ASMUtil {
3535
/**
3636
* Append the call of proper autoboxing method for the given primitive type.
37+
*
38+
* @param mv MethodVisitor
39+
* @param clz expected class
3740
*/
3841
public static void autoBoxing(MethodVisitor mv, Class<?> clz) {
3942
autoBoxing(mv, Type.getType(clz));
@@ -69,72 +72,78 @@ static public Accessor[] getAccessors(Class<?> type, FieldFilter filter) {
6972

7073
/**
7174
* Append the call of proper autoboxing method for the given primitive type.
75+
*
76+
* @param mv MethodVisitor
77+
* @param fieldType expected class
7278
*/
7379
protected static void autoBoxing(MethodVisitor mv, Type fieldType) {
7480
switch (fieldType.getSort()) {
7581
case Type.BOOLEAN:
76-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Boolean", "valueOf", "(Z)Ljava/lang/Boolean;");
82+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Boolean", "valueOf", "(Z)Ljava/lang/Boolean;", false);
7783
break;
7884
case Type.BYTE:
79-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Byte", "valueOf", "(B)Ljava/lang/Byte;");
85+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Byte", "valueOf", "(B)Ljava/lang/Byte;", false);
8086
break;
8187
case Type.CHAR:
82-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Character", "valueOf", "(C)Ljava/lang/Character;");
88+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Character", "valueOf", "(C)Ljava/lang/Character;", false);
8389
break;
8490
case Type.SHORT:
85-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Short", "valueOf", "(S)Ljava/lang/Short;");
91+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Short", "valueOf", "(S)Ljava/lang/Short;", false);
8692
break;
8793
case Type.INT:
88-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;");
94+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
8995
break;
9096
case Type.FLOAT:
91-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Float", "valueOf", "(F)Ljava/lang/Float;");
97+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Float", "valueOf", "(F)Ljava/lang/Float;", false);
9298
break;
9399
case Type.LONG:
94-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Long", "valueOf", "(J)Ljava/lang/Long;");
100+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Long", "valueOf", "(J)Ljava/lang/Long;", false);
95101
break;
96102
case Type.DOUBLE:
97-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Double", "valueOf", "(D)Ljava/lang/Double;");
103+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Double", "valueOf", "(D)Ljava/lang/Double;", false);
98104
break;
99105
}
100106
}
101107

102108
/**
103109
* Append the call of proper extract primitive type of an boxed object.
110+
*
111+
* @param mv MethodVisitor
112+
* @param fieldType expected class
104113
*/
105114
protected static void autoUnBoxing1(MethodVisitor mv, Type fieldType) {
106115
switch (fieldType.getSort()) {
107116
case Type.BOOLEAN:
108117
mv.visitTypeInsn(CHECKCAST, "java/lang/Boolean");
109-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Boolean", "booleanValue", "()Z");
118+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Boolean", "booleanValue", "()Z", false);
110119
break;
111120
case Type.BYTE:
112121
mv.visitTypeInsn(CHECKCAST, "java/lang/Byte");
113-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Byte", "byteValue", "()B");
122+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Byte", "byteValue", "()B", false);
114123
break;
115124
case Type.CHAR:
116125
mv.visitTypeInsn(CHECKCAST, "java/lang/Character");
117-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Character", "charValue", "()C");
126+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Character", "charValue", "()C", false);
118127
break;
119128
case Type.SHORT:
120129
mv.visitTypeInsn(CHECKCAST, "java/lang/Short");
121-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Short", "shortValue", "()S");
130+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Short", "shortValue", "()S", false);
122131
break;
123132
case Type.INT:
124133
mv.visitTypeInsn(CHECKCAST, "java/lang/Integer");
125-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Integer", "intValue", "()I");
134+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Integer", "intValue", "()I", false);
126135
break;
127136
case Type.FLOAT:
128137
mv.visitTypeInsn(CHECKCAST, "java/lang/Float");
129-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Float", "floatValue", "()F");
138+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Float", "floatValue", "()F", false);
130139
break;
131140
case Type.LONG:
132141
mv.visitTypeInsn(CHECKCAST, "java/lang/Long");
133-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Long", "longValue", "()J");
142+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Long", "longValue", "()J", false);
134143
break;
135144
case Type.DOUBLE:
136145
mv.visitTypeInsn(CHECKCAST, "java/lang/Double");
137-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Double", "doubleValue", "()D");
146+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Double", "doubleValue", "()D", false);
138147
break;
139148
case Type.ARRAY:
140149
mv.visitTypeInsn(CHECKCAST, fieldType.getInternalName());
@@ -147,40 +156,43 @@ protected static void autoUnBoxing1(MethodVisitor mv, Type fieldType) {
147156
/**
148157
* Append the call of proper extract primitive type of an boxed object. this
149158
* method use Number interface to unbox object
159+
*
160+
* @param mv MethodVisitor
161+
* @param fieldType expected class
150162
*/
151163
protected static void autoUnBoxing2(MethodVisitor mv, Type fieldType) {
152164
switch (fieldType.getSort()) {
153165
case Type.BOOLEAN:
154166
mv.visitTypeInsn(CHECKCAST, "java/lang/Boolean");
155-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Boolean", "booleanValue", "()Z");
167+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Boolean", "booleanValue", "()Z", false);
156168
break;
157169
case Type.BYTE:
158170
mv.visitTypeInsn(CHECKCAST, "java/lang/Number");
159-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "byteValue", "()B");
171+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "byteValue", "()B", false);
160172
break;
161173
case Type.CHAR:
162174
mv.visitTypeInsn(CHECKCAST, "java/lang/Character");
163-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Character", "charValue", "()C");
175+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Character", "charValue", "()C", false);
164176
break;
165177
case Type.SHORT:
166178
mv.visitTypeInsn(CHECKCAST, "java/lang/Number");
167-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "shortValue", "()S");
179+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "shortValue", "()S", false);
168180
break;
169181
case Type.INT:
170182
mv.visitTypeInsn(CHECKCAST, "java/lang/Number");
171-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "intValue", "()I");
183+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "intValue", "()I", false);
172184
break;
173185
case Type.FLOAT:
174186
mv.visitTypeInsn(CHECKCAST, "java/lang/Number");
175-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "floatValue", "()F");
187+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "floatValue", "()F", false);
176188
break;
177189
case Type.LONG:
178190
mv.visitTypeInsn(CHECKCAST, "java/lang/Number");
179-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "longValue", "()J");
191+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "longValue", "()J", false);
180192
break;
181193
case Type.DOUBLE:
182194
mv.visitTypeInsn(CHECKCAST, "java/lang/Number");
183-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "doubleValue", "()D");
195+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "doubleValue", "()D", false);
184196
break;
185197
case Type.ARRAY:
186198
mv.visitTypeInsn(CHECKCAST, fieldType.getInternalName());
@@ -193,8 +205,7 @@ protected static void autoUnBoxing2(MethodVisitor mv, Type fieldType) {
193205
/**
194206
* return a array of new Label (used for switch/case generation)
195207
*
196-
* @param cnt
197-
* number of label to return
208+
* @param cnt number of label to return
198209
*/
199210
public static Label[] newLabels(int cnt) {
200211
Label[] r = new Label[cnt];
@@ -203,6 +214,10 @@ public static Label[] newLabels(int cnt) {
203214
return r;
204215
}
205216

217+
/**
218+
* @param key the field name
219+
* @return setter name
220+
*/
206221
public static String getSetterName(String key) {
207222
int len = key.length();
208223
char[] b = new char[len + 3];
@@ -219,6 +234,10 @@ public static String getSetterName(String key) {
219234
return new String(b);
220235
}
221236

237+
/**
238+
* @param key the field name
239+
* @return getter name
240+
*/
222241
public static String getGetterName(String key) {
223242
int len = key.length();
224243
char[] b = new char[len + 3];
@@ -235,6 +254,10 @@ public static String getGetterName(String key) {
235254
return new String(b);
236255
}
237256

257+
/**
258+
* @param key the boolean field name
259+
* @return boolean getter name
260+
*/
238261
public static String getIsName(String key) {
239262
int len = key.length();
240263
char[] b = new char[len + 2];

accessors-smart/src/main/java/net/minidev/asm/BeansAccess.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ static public <P> BeansAccess<P> get(Class<P> type) {
7373
* to be access
7474
* @return the BeansAccess
7575
*/
76+
@SuppressWarnings("deprecation")
7677
static public <P> BeansAccess<P> get(Class<P> type, FieldFilter filter) {
7778
{
7879
@SuppressWarnings("unchecked")

accessors-smart/src/main/java/net/minidev/asm/BeansAccessBuilder.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public Class<?> bulid() {
117117
mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
118118
mv.visitCode();
119119
mv.visitVarInsn(ALOAD, 0);
120-
mv.visitMethodInsn(INVOKESPECIAL, METHOD_ACCESS_NAME, "<init>", "()V");
120+
mv.visitMethodInsn(INVOKESPECIAL, METHOD_ACCESS_NAME, "<init>", "()V", false);
121121
mv.visitInsn(RETURN);
122122
mv.visitMaxs(1, 1);
123123
mv.visitEnd();
@@ -192,7 +192,7 @@ public Class<?> bulid() {
192192
mv.visitFieldInsn(GETFIELD, classNameInternal, acc.getName(), fieldType.getDescriptor());
193193
} else {
194194
String sig = Type.getMethodDescriptor(acc.getter);
195-
mv.visitMethodInsn(INVOKEVIRTUAL, classNameInternal, acc.getter.getName(), sig);
195+
mv.visitMethodInsn(INVOKEVIRTUAL, classNameInternal, acc.getter.getName(), sig, false);
196196
}
197197
ASMUtil.autoBoxing(mv, fieldType);
198198
mv.visitInsn(ARETURN);
@@ -213,7 +213,7 @@ public Class<?> bulid() {
213213
if (acc.getter == null)
214214
throw new RuntimeException("no Getter for field " + acc.getName() + " in class " + this.className);
215215
String sig = Type.getMethodDescriptor(acc.getter);
216-
mv.visitMethodInsn(INVOKEVIRTUAL, classNameInternal, acc.getter.getName(), sig);
216+
mv.visitMethodInsn(INVOKEVIRTUAL, classNameInternal, acc.getter.getName(), sig, false);
217217
}
218218
ASMUtil.autoBoxing(mv, fieldType);
219219
mv.visitInsn(ARETURN);
@@ -244,7 +244,7 @@ public Class<?> bulid() {
244244
for (Accessor acc : accs) {
245245
mv.visitVarInsn(ALOAD, 2);
246246
mv.visitLdcInsn(acc.fieldName);
247-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z");
247+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
248248
mv.visitJumpInsn(IFEQ, labels[i]);
249249
internalSetFiled(mv, acc);
250250
mv.visitLabel(labels[i]);
@@ -270,7 +270,7 @@ public Class<?> bulid() {
270270
for (Accessor acc : accs) {
271271
mv.visitVarInsn(ALOAD, 2); // methodName
272272
mv.visitLdcInsn(acc.fieldName);
273-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z");
273+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
274274
mv.visitJumpInsn(IFEQ, labels[i]);
275275
mv.visitVarInsn(ALOAD, 1); // object
276276
mv.visitTypeInsn(CHECKCAST, classNameInternal);
@@ -279,7 +279,7 @@ public Class<?> bulid() {
279279
mv.visitFieldInsn(GETFIELD, classNameInternal, acc.getName(), fieldType.getDescriptor());
280280
} else {
281281
String sig = Type.getMethodDescriptor(acc.getter);
282-
mv.visitMethodInsn(INVOKEVIRTUAL, classNameInternal, acc.getter.getName(), sig);
282+
mv.visitMethodInsn(INVOKEVIRTUAL, classNameInternal, acc.getter.getName(), sig, false);
283283
}
284284
ASMUtil.autoBoxing(mv, fieldType);
285285
mv.visitInsn(ARETURN);
@@ -302,7 +302,7 @@ public Class<?> bulid() {
302302
mv.visitCode();
303303
mv.visitTypeInsn(NEW, classNameInternal);
304304
mv.visitInsn(DUP);
305-
mv.visitMethodInsn(INVOKESPECIAL, classNameInternal, "<init>", "()V");
305+
mv.visitMethodInsn(INVOKESPECIAL, classNameInternal, "<init>", "()V", false);
306306
mv.visitInsn(ARETURN);
307307
mv.visitMaxs(2, 1);
308308
mv.visitEnd();
@@ -359,15 +359,15 @@ private void internalSetFiled(MethodVisitor mv, Accessor acc) {
359359
String clsSig = Type.getInternalName(conMtd.getDeclaringClass());
360360
String mtdName = conMtd.getName();
361361
String mtdSig = Type.getMethodDescriptor(conMtd);
362-
mv.visitMethodInsn(INVOKESTATIC, clsSig, mtdName, mtdSig);
362+
mv.visitMethodInsn(INVOKESTATIC, clsSig, mtdName, mtdSig, false);
363363
} else if (acc.isEnum()) {
364364
// builtIn Enum Conversion
365365
Label isNull = new Label();
366366
mv.visitJumpInsn(IFNULL, isNull);
367367
mv.visitVarInsn(ALOAD, 3);
368368
// mv.visitTypeInsn(CHECKCAST, "java/lang/String");
369-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "toString", "()Ljava/lang/String;");
370-
mv.visitMethodInsn(INVOKESTATIC, destClsName, "valueOf", "(Ljava/lang/String;)L" + destClsName + ";");
369+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "toString", "()Ljava/lang/String;", false);
370+
mv.visitMethodInsn(INVOKESTATIC, destClsName, "valueOf", "(Ljava/lang/String;)L" + destClsName + ";", false);
371371
mv.visitVarInsn(ASTORE, 3);
372372
mv.visitLabel(isNull);
373373
mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null);
@@ -380,7 +380,7 @@ private void internalSetFiled(MethodVisitor mv, Accessor acc) {
380380
Label isNull = new Label();
381381
mv.visitJumpInsn(IFNULL, isNull);
382382
mv.visitVarInsn(ALOAD, 3);
383-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "toString", "()Ljava/lang/String;");
383+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "toString", "()Ljava/lang/String;", false);
384384
mv.visitVarInsn(ASTORE, 3);
385385
mv.visitLabel(isNull);
386386
mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null);
@@ -396,7 +396,7 @@ private void internalSetFiled(MethodVisitor mv, Accessor acc) {
396396
mv.visitFieldInsn(PUTFIELD, classNameInternal, acc.getName(), fieldType.getDescriptor());
397397
} else {
398398
String sig = Type.getMethodDescriptor(acc.setter);
399-
mv.visitMethodInsn(INVOKEVIRTUAL, classNameInternal, acc.setter.getName(), sig);
399+
mv.visitMethodInsn(INVOKEVIRTUAL, classNameInternal, acc.setter.getName(), sig, false);
400400
}
401401
mv.visitInsn(RETURN);
402402
}
@@ -410,9 +410,9 @@ private void throwExIntParam(MethodVisitor mv, Class<?> exCls) {
410410
mv.visitInsn(DUP);
411411
mv.visitLdcInsn("mapping " + this.className + " failed to map field:");
412412
mv.visitVarInsn(ILOAD, 2);
413-
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "toString", "(I)Ljava/lang/String;");
414-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "concat", "(Ljava/lang/String;)Ljava/lang/String;");
415-
mv.visitMethodInsn(INVOKESPECIAL, exSig, "<init>", "(Ljava/lang/String;)V");
413+
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "toString", "(I)Ljava/lang/String;", false);
414+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "concat", "(Ljava/lang/String;)Ljava/lang/String;", false);
415+
mv.visitMethodInsn(INVOKESPECIAL, exSig, "<init>", "(Ljava/lang/String;)V", false);
416416
mv.visitInsn(ATHROW);
417417
}
418418

@@ -425,8 +425,8 @@ private void throwExStrParam(MethodVisitor mv, Class<?> exCls) {
425425
mv.visitInsn(DUP);
426426
mv.visitLdcInsn("mapping " + this.className + " failed to map field:");
427427
mv.visitVarInsn(ALOAD, 2);
428-
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "concat", "(Ljava/lang/String;)Ljava/lang/String;");
429-
mv.visitMethodInsn(INVOKESPECIAL, exSig, "<init>", "(Ljava/lang/String;)V");
428+
mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "concat", "(Ljava/lang/String;)Ljava/lang/String;", false);
429+
mv.visitMethodInsn(INVOKESPECIAL, exSig, "<init>", "(Ljava/lang/String;)V", false);
430430
mv.visitInsn(ATHROW);
431431
}
432432

accessors-smart/src/main/java/net/minidev/asm/DynamicClassLoader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public static <T> Class<T> directLoad(Class<? extends T> parent, String clsName,
5050
return clzz;
5151
}
5252

53+
@SuppressWarnings("deprecation")
5354
public static <T> T directInstance(Class<? extends T> parent, String clsName, byte[] clsData) throws InstantiationException, IllegalAccessException {
5455
Class<T> clzz = directLoad(parent, clsName, clsData);
5556
return clzz.newInstance();

accessors-smart/src/test/java/net/minidev/asm/ASMTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@
66

77
import org.junit.jupiter.api.Test;
88

9-
// import junit.framework.TestCase;
109
import net.minidev.asm.bean.BTest;
1110

1211
public class ASMTest {
1312

1413
@Test
1514
public void testGet() throws Exception {
16-
long T1;
15+
// long T1;
1716

1817
BeansAccess<BTest> acBT = BeansAccess.get(BTest.class);
1918
// BeansAccess acHand = new BTestBeansAccessB();
@@ -28,7 +27,7 @@ public void testGet() throws Exception {
2827
// String clsPath = FastMap1Builder.getName(m.size());
2928
// String clsName = clsPath.replace("/", ".");
3029

31-
byte[] data;
30+
// byte[] data;
3231

3332
// data = FastMap1Builder.dump(m.size());
3433
// data = FastMap2Builder.dump(m);

0 commit comments

Comments
 (0)