Skip to content

Commit 4be4205

Browse files
author
bsp
committed
1.2.2 ready
fix bugs
1 parent 558ecf5 commit 4be4205

File tree

4 files changed

+50
-30
lines changed

4 files changed

+50
-30
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ repositories {
2525
mavenCentral()
2626
}
2727
group = 'com.bryansharp'
28-
version = '1.2.1'
28+
version = '1.2.2'
2929
uploadArchives {
3030
version = version + '-SNAPSHOT'
3131
repositories {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.bryansharp.gradle.hibeaver
22

33
public class HiBeaverParams {
4-
String hiBeaverModifyName = null
4+
String hiBeaverModifyName = ''
55
boolean enableModify = true
66
boolean watchTimeConsume = false
77
boolean keepQuiet = false
88
boolean showHelp = true
9-
Map<String, List<Map<String, Object>>> modifyMatchMaps
9+
Map<String, List<Map<String, Object>>> modifyMatchMaps = [:]
1010
}

src/main/groovy/com/bryansharp/gradle/hibeaver/InjectTransform.groovy

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ public class InjectTransform extends Transform {
6767
// Log.info("flavorAndBuildType ${flavorAndBuildType}")
6868
targetClasses = [];
6969
Map<String, List<Map<String, Object>>> modifyMatchMaps = project.hiBeaver.modifyMatchMaps;
70-
targetClasses.addAll(modifyMatchMaps.keySet());
70+
if (modifyMatchMaps != null) {
71+
targetClasses.addAll(modifyMatchMaps.keySet());
72+
}
7173
/**
7274
* 获取所有依赖的classPaths
7375
*/
@@ -176,8 +178,9 @@ public class InjectTransform extends Transform {
176178
byte[] sourceClassBytes = IOUtils.toByteArray(inputStream);
177179
if (entryName.endsWith(".class")) {
178180
className = entryName.replace("/", ".").replace(".class", "")
179-
if (shouldModifyClass(className)) {
180-
modifiedClassBytes = ModifyClassUtil.modifyClasses(className, sourceClassBytes, project.hiBeaver.modifyMatchMaps.get(className));
181+
def modifyMatchMaps = project.hiBeaver.modifyMatchMaps
182+
if (modifyMatchMaps != null && shouldModifyClass(className)) {
183+
modifiedClassBytes = ModifyClassUtil.modifyClasses(className, sourceClassBytes, modifyMatchMaps.get(className));
181184
}
182185
}
183186
if (modifiedClassBytes == null) {
@@ -200,27 +203,29 @@ public class InjectTransform extends Transform {
200203
* @return
201204
*/
202205
public static boolean isJarNeedModify(File jarFile) {
203-
if (jarFile) {
204-
boolean modified = false;
205-
/**
206-
* 读取原jar
207-
*/
208-
def file = new JarFile(jarFile);
209-
Enumeration enumeration = file.entries();
210-
while (enumeration.hasMoreElements()) {
211-
JarEntry jarEntry = (JarEntry) enumeration.nextElement();
212-
String entryName = jarEntry.getName();
213-
String className
214-
if (entryName.endsWith(".class")) {
215-
className = entryName.replace("/", ".").replace(".class", "")
216-
if (shouldModifyClass(className)) {
217-
modified = true;
206+
boolean modified = false;
207+
if (targetClasses != null && targetClasses.size() > 0) {
208+
if (jarFile) {
209+
/**
210+
* 读取原jar
211+
*/
212+
def file = new JarFile(jarFile);
213+
Enumeration enumeration = file.entries();
214+
while (enumeration.hasMoreElements()) {
215+
JarEntry jarEntry = (JarEntry) enumeration.nextElement();
216+
String entryName = jarEntry.getName();
217+
String className
218+
if (entryName.endsWith(".class")) {
219+
className = entryName.replace("/", ".").replace(".class", "")
220+
if (shouldModifyClass(className)) {
221+
modified = true;
222+
}
218223
}
219224
}
225+
file.close();
220226
}
221-
file.close();
222-
return modified;
223227
}
228+
return modified;
224229
}
225230

226231
private static void writeStreamWithBuffer(InputStream inputStream, OutputStream out) {

src/main/groovy/com/bryansharp/gradle/hibeaver/utils/ModifyClassUtil.groovy

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public class ModifyClassUtil {
2424
} catch (Exception e) {
2525
e.printStackTrace();
2626
}
27+
if (classBytesCode == null) {
28+
classBytesCode = srcByteCode;
29+
}
2730
return classBytesCode;
2831
}
2932

@@ -79,16 +82,28 @@ public class ModifyClassUtil {
7982
String methodDesc = map.get('methodDesc');
8083
if (name.equals(metName)) {
8184
Closure visit = map.get('adapter');
82-
if (methodDesc != null) {
83-
if (methodDesc.equals(desc)) {
84-
if (onlyVisit) {
85-
myMv = new MethodLogAdapter(cv.visitMethod(access, name, desc, signature, exceptions));
86-
} else {
85+
if (visit != null) {
86+
if (methodDesc != null) {
87+
if (methodDesc.equals(desc)) {
88+
if (onlyVisit) {
89+
myMv = new MethodLogAdapter(cv.visitMethod(access, name, desc, signature, exceptions));
90+
} else {
91+
try {
92+
myMv = visit(cv, access, name, desc, signature, exceptions);
93+
} catch (Exception e) {
94+
e.printStackTrace();
95+
myMv = null
96+
}
97+
}
98+
}
99+
} else {
100+
try {
87101
myMv = visit(cv, access, name, desc, signature, exceptions);
102+
} catch (Exception e) {
103+
e.printStackTrace();
104+
myMv = null
88105
}
89106
}
90-
} else {
91-
myMv = visit(cv, access, name, desc, signature, exceptions);
92107
}
93108
}
94109
}

0 commit comments

Comments
 (0)