Skip to content

Commit 254575d

Browse files
committed
java/se: refine anno processor tutorial
1 parent 6121318 commit 254575d

File tree

302 files changed

+495
-525
lines changed

Some content is hidden

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

302 files changed

+495
-525
lines changed
Lines changed: 59 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,61 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
3-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4-
<parent>
5-
<artifactId>javase</artifactId>
6-
<groupId>cn.edu.ntu.java</groupId>
7-
<version>1.0-SNAPSHOT</version>
8-
</parent>
9-
<modelVersion>4.0.0</modelVersion>
10-
<artifactId>javase-agent</artifactId>
11-
<build>
12-
<plugins>
13-
<plugin>
14-
<artifactId>maven-jar-plugin</artifactId>
15-
<version>3.1.2</version>
16-
<configuration>
17-
<archive>
18-
<manifestEntries>
19-
<project-name>${project.name}</project-name>
20-
<project-version>${project.version}</project-version>
21-
<Premain-Class>cn.edu.ntu.javase.agent.IntegrationAgent</Premain-Class>
22-
<Can-Redefine-Classes>true</Can-Redefine-Classes>
23-
<Can-Retransform-Classes>true</Can-Retransform-Classes>
24-
<Boot-Class-Path>javassist-3.27.0-GA.jar</Boot-Class-Path>
25-
</manifestEntries>
26-
</archive>
27-
<skip>true</skip>
28-
</configuration>
29-
</plugin>
30-
<plugin>
31-
<artifactId>maven-shade-plugin</artifactId>
32-
<executions>
33-
<execution>
34-
<phase>package</phase>
35-
<goals>
36-
<goal>shade</goal>
37-
</goals>
38-
<configuration>
39-
<transformers>
40-
<transformer/>
41-
</transformers>
42-
</configuration>
43-
</execution>
44-
</executions>
45-
</plugin>
46-
</plugins>
47-
</build>
48-
<dependencies>
49-
<dependency>
50-
<groupId>org.eclipse.jetty.aggregate</groupId>
51-
<artifactId>jetty-all</artifactId>
52-
<version>9.2.11.v20150529</version>
53-
<scope>test</scope>
54-
<exclusions>
55-
<exclusion>
56-
<artifactId>javax.websocket-api</artifactId>
57-
<groupId>javax.websocket</groupId>
58-
</exclusion>
59-
</exclusions>
60-
</dependency>
61-
</dependencies>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<parent>
4+
<artifactId>javase</artifactId>
5+
<groupId>cn.edu.ntu.java</groupId>
6+
<version>1.0-SNAPSHOT</version>
7+
</parent>
8+
<modelVersion>4.0.0</modelVersion>
9+
<artifactId>javase-agent</artifactId>
10+
<build>
11+
<plugins>
12+
<plugin>
13+
<artifactId>maven-jar-plugin</artifactId>
14+
<version>3.1.2</version>
15+
<configuration>
16+
<archive>
17+
<manifestEntries>
18+
<project-name>${project.name}</project-name>
19+
<project-version>${project.version}</project-version>
20+
<Premain-Class>cn.edu.ntu.java.javase.agent.IntegrationAgent</Premain-Class>
21+
<Can-Redefine-Classes>true</Can-Redefine-Classes>
22+
<Can-Retransform-Classes>true</Can-Retransform-Classes>
23+
<Boot-Class-Path>javassist-3.27.0-GA.jar</Boot-Class-Path>
24+
</manifestEntries>
25+
</archive>
26+
<skip>true</skip>
27+
</configuration>
28+
</plugin>
29+
<plugin>
30+
<artifactId>maven-shade-plugin</artifactId>
31+
<executions>
32+
<execution>
33+
<phase>package</phase>
34+
<goals>
35+
<goal>shade</goal>
36+
</goals>
37+
<configuration>
38+
<transformers>
39+
<transformer />
40+
</transformers>
41+
</configuration>
42+
</execution>
43+
</executions>
44+
</plugin>
45+
</plugins>
46+
</build>
47+
<dependencies>
48+
<dependency>
49+
<groupId>org.eclipse.jetty.aggregate</groupId>
50+
<artifactId>jetty-all</artifactId>
51+
<version>9.2.11.v20150529</version>
52+
<scope>test</scope>
53+
<exclusions>
54+
<exclusion>
55+
<artifactId>javax.websocket-api</artifactId>
56+
<groupId>javax.websocket</groupId>
57+
</exclusion>
58+
</exclusions>
59+
</dependency>
60+
</dependencies>
6261
</project>

java/javase/javase-agent/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<manifestEntries>
4444
<project-name>${project.name}</project-name>
4545
<project-version>${project.version}</project-version>
46-
<Premain-Class>cn.edu.ntu.javase.agent.IntegrationAgent</Premain-Class>
46+
<Premain-Class>cn.edu.ntu.java.javase.agent.IntegrationAgent</Premain-Class>
4747
<Can-Redefine-Classes>true</Can-Redefine-Classes>
4848
<Can-Retransform-Classes>true</Can-Retransform-Classes>
4949
<Boot-Class-Path>javassist-3.27.0-GA.jar</Boot-Class-Path>

java/javase/javase-agent/src/main/java/cn/edu/ntu/javase/agent/Agent.java renamed to java/javase/javase-agent/src/main/java/cn/edu/ntu/java/javase/agent/Agent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
import sun.misc.IOUtils;
44

java/javase/javase-agent/src/main/java/cn/edu/ntu/javase/agent/Assist.java renamed to java/javase/javase-agent/src/main/java/cn/edu/ntu/java/javase/agent/Assist.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
import javassist.*;
44

java/javase/javase-agent/src/main/java/cn/edu/ntu/javase/agent/IntegrationAgent.java renamed to java/javase/javase-agent/src/main/java/cn/edu/ntu/java/javase/agent/IntegrationAgent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
import java.lang.instrument.Instrumentation;
44

java/javase/javase-agent/src/main/java/cn/edu/ntu/javase/agent/Server.java renamed to java/javase/javase-agent/src/main/java/cn/edu/ntu/java/javase/agent/Server.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
/**
44
* @author zack <br>

java/javase/javase-agent/src/main/java/cn/edu/ntu/javase/agent/ServerAgent.java renamed to java/javase/javase-agent/src/main/java/cn/edu/ntu/java/javase/agent/ServerAgent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

3-
import cn.edu.ntu.javase.agent.common.TraceSession;
4-
import cn.edu.ntu.javase.agent.common.WildcardMatcher;
3+
import cn.edu.ntu.java.javase.agent.common.WildcardMatcher;
4+
import cn.edu.ntu.java.javase.agent.common.TraceSession;
55
import javassist.*;
66
import javassist.bytecode.AccessFlag;
77

java/javase/javase-agent/src/main/java/cn/edu/ntu/javase/agent/WebAgent.java renamed to java/javase/javase-agent/src/main/java/cn/edu/ntu/java/javase/agent/WebAgent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

3-
import cn.edu.ntu.javase.agent.common.TraceSession;
3+
import cn.edu.ntu.java.javase.agent.common.TraceSession;
44
import javassist.*;
55

66
import javax.servlet.http.Cookie;

java/javase/javase-agent/src/main/java/cn/edu/ntu/javase/agent/common/TraceSession.java renamed to java/javase/javase-agent/src/main/java/cn/edu/ntu/java/javase/agent/common/TraceSession.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent.common;
1+
package cn.edu.ntu.java.javase.agent.common;
22

33
/**
44
* @author zack <br>

java/javase/javase-agent/src/main/java/cn/edu/ntu/javase/agent/common/WildcardMatcher.java renamed to java/javase/javase-agent/src/main/java/cn/edu/ntu/java/javase/agent/common/WildcardMatcher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent.common;
1+
package cn.edu.ntu.java.javase.agent.common;
22

33
import java.util.regex.Pattern;
44

java/javase/javase-agent/src/test/java/cn/edu/ntu/javase/agent/HelloAgentTests.java renamed to java/javase/javase-agent/src/test/java/cn/edu/ntu/java/javase/agent/HelloAgentTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
/**
44
* @author zack <br>

java/javase/javase-agent/src/test/java/cn/edu/ntu/javase/agent/IntegrationTests.java renamed to java/javase/javase-agent/src/test/java/cn/edu/ntu/java/javase/agent/IntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
import org.eclipse.jetty.server.Server;
44
import org.eclipse.jetty.webapp.WebAppContext;

java/javase/javase-agent/src/test/java/cn/edu/ntu/javase/agent/ServerAgentTests.java renamed to java/javase/javase-agent/src/test/java/cn/edu/ntu/java/javase/agent/ServerAgentTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
/**
44
* @author zack <br>

java/javase/javase-agent/src/test/java/cn/edu/ntu/javase/agent/UserServlet.java renamed to java/javase/javase-agent/src/test/java/cn/edu/ntu/java/javase/agent/UserServlet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
import javax.servlet.ServletException;
44
import javax.servlet.annotation.WebServlet;

java/javase/javase-agent/src/test/java/cn/edu/ntu/javase/agent/WebAgentTests.java renamed to java/javase/javase-agent/src/test/java/cn/edu/ntu/java/javase/agent/WebAgentTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.edu.ntu.javase.agent;
1+
package cn.edu.ntu.java.javase.agent;
22

33
import org.eclipse.jetty.server.Server;
44
import org.eclipse.jetty.webapp.WebAppContext;

java/javase/javase-agent/src/test/resources/webapp/WEB-INF/web.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
id="WebApp_ID" version="3.0">
77
<servlet>
88
<servlet-name>user</servlet-name>
9-
<servlet-class>cn.edu.ntu.javase.agent.UserServlet</servlet-class>
9+
<servlet-class>cn.edu.ntu.java.javase.agent.UserServlet</servlet-class>
1010
</servlet>
1111
<servlet-mapping>
1212
<servlet-name>user</servlet-name>

java/javase/javase-annotation/annotation-processor/pom.xml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,23 @@
3030
<plugin>
3131
<groupId>org.apache.maven.plugins</groupId>
3232
<artifactId>maven-compiler-plugin</artifactId>
33+
<version>${maven.compiler.plugin}</version>
3334
<configuration>
34-
<source>1.8</source>
35-
<target>1.8</target>
35+
<source>${maven.compiler.source}</source>
36+
<target>${maven.compiler.target}</target>
3637
<encoding>UTF-8</encoding>
3738
<!-- 不加这一句编译会报找不到 processor 的异常-->
3839
<proc>none</proc>
40+
<!-- <compilerArgs>-->
41+
<!-- <arg>-parameters</arg>-->
42+
<!-- </compilerArgs>-->
43+
<!-- <annotationProcessorPaths>-->
44+
<!-- <path>-->
45+
<!-- <groupId>org.projectlombok</groupId>-->
46+
<!-- <artifactId>lombok</artifactId>-->
47+
<!-- <version>${lombok.version}</version>-->
48+
<!-- </path>-->
49+
<!-- </annotationProcessorPaths>-->
3950
</configuration>
4051
</plugin>
4152
</plugins>

java/javase/javase-annotation/annotation-processor/src/main/java/top/hubby/annotations/SeData.java renamed to java/javase/javase-annotation/annotation-processor/src/main/java/cn/edu/ntu/java/annotations/SeData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package top.hubby.annotations;
1+
package cn.edu.ntu.java.annotations;
22

33
import java.lang.annotation.ElementType;
44
import java.lang.annotation.Retention;

java/javase/javase-annotation/annotation-processor/src/main/java/top/hubby/annotations/Serial.java renamed to java/javase/javase-annotation/annotation-processor/src/main/java/cn/edu/ntu/java/annotations/Serial.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package top.hubby.annotations;
1+
package cn.edu.ntu.java.annotations;
22

33
import java.lang.annotation.*;
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package top.hubby.annotations;
1+
package cn.edu.ntu.java.annotations;
22

33
import org.slf4j.LoggerFactory;
44

java/javase/javase-annotation/annotation-processor/src/main/java/top/hubby/processor/BaseProcessor.java renamed to java/javase/javase-annotation/annotation-processor/src/main/java/cn/edu/ntu/java/processor/BaseProcessor.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package top.hubby.processor;
1+
package cn.edu.ntu.java.processor;
22

33
import com.sun.source.tree.Tree;
44
import com.sun.tools.javac.api.JavacTrees;
@@ -8,7 +8,6 @@
88
import com.sun.tools.javac.tree.TreeTranslator;
99
import com.sun.tools.javac.util.Context;
1010
import com.sun.tools.javac.util.Names;
11-
import lombok.extern.slf4j.Slf4j;
1211
import org.slf4j.Logger;
1312
import org.slf4j.LoggerFactory;
1413

java/javase/javase-annotation/annotation-processor/src/main/java/top/hubby/processor/DataProcessor.java renamed to java/javase/javase-annotation/annotation-processor/src/main/java/cn/edu/ntu/java/processor/DataProcessor.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package top.hubby.processor;
1+
package cn.edu.ntu.java.processor;
22

33

4+
import cn.edu.ntu.java.annotations.SeData;
45
import com.sun.source.tree.Tree;
56
import com.sun.tools.javac.api.JavacTrees;
67
import com.sun.tools.javac.code.Flags;
@@ -10,7 +11,6 @@
1011
import com.sun.tools.javac.tree.TreeMaker;
1112
import com.sun.tools.javac.tree.TreeTranslator;
1213
import com.sun.tools.javac.util.*;
13-
import top.hubby.annotations.SeData;
1414

1515
import javax.annotation.processing.*;
1616
import javax.lang.model.SourceVersion;
@@ -23,7 +23,7 @@
2323
* @author : cuixiuyin
2424
* @date : 2020/1/10
2525
*/
26-
@SupportedAnnotationTypes("org.jvm.processor.lombok.annotations.Data")
26+
@SupportedAnnotationTypes("cn.edu.ntu.java.annotations.SeData")
2727
@SupportedSourceVersion(SourceVersion.RELEASE_8)
2828
public class DataProcessor extends AbstractProcessor {
2929
private JavacTrees trees;
@@ -46,8 +46,9 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
4646
.forEach(jcTree -> jcTree.accept(new TreeTranslator() {
4747
@Override
4848
public void visitClassDef(JCTree.JCClassDecl jcClassDecl) {
49-
jcClassDecl.defs.stream().filter(jcTree1 -> jcTree1.getKind().equals(Tree.Kind.VARIABLE))
50-
.map(jcTree2 -> (JCTree.JCVariableDecl) jcTree2)
49+
jcClassDecl.defs.stream().filter(tree -> tree.getKind().equals(Tree.Kind.VARIABLE))
50+
.map(tree -> (JCTree.JCVariableDecl) tree)
51+
//.filter(x -> !x.getModifiers().getTree().toString().contains("final"))
5152
.forEach(jcVariableDecl -> {
5253
//添加get方法
5354
jcClassDecl.defs = jcClassDecl.defs.prepend(addGetterMethod(jcVariableDecl));

java/javase/javase-annotation/annotation-processor/src/main/java/top/hubby/processor/DataProcessorV2.java renamed to java/javase/javase-annotation/annotation-processor/src/main/java/cn/edu/ntu/java/processor/DataProcessorV2.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
1-
package top.hubby.processor;
1+
package cn.edu.ntu.java.processor;
22

3-
import com.sun.source.tree.Tree;
4-
import com.sun.tools.javac.api.JavacTrees;
3+
import cn.edu.ntu.java.annotations.SeData;
54
import com.sun.tools.javac.code.Flags;
65
import com.sun.tools.javac.code.Type;
7-
import com.sun.tools.javac.processing.JavacProcessingEnvironment;
86
import com.sun.tools.javac.tree.JCTree;
9-
import com.sun.tools.javac.tree.TreeMaker;
10-
import com.sun.tools.javac.tree.TreeTranslator;
117
import com.sun.tools.javac.util.*;
12-
import top.hubby.annotations.SeData;
138

14-
import javax.annotation.processing.*;
15-
import javax.lang.model.SourceVersion;
16-
import javax.lang.model.element.TypeElement;
179
import java.lang.annotation.Annotation;
18-
import java.util.Set;
1910

2011

2112
/**

java/javase/javase-annotation/annotation-processor/src/main/java/top/hubby/processor/SerialProcessor.java renamed to java/javase/javase-annotation/annotation-processor/src/main/java/cn/edu/ntu/java/processor/SerialProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package top.hubby.processor;
1+
package cn.edu.ntu.java.processor;
22

33

4+
import cn.edu.ntu.java.annotations.Serial;
45
import org.slf4j.Logger;
56
import org.slf4j.LoggerFactory;
6-
import top.hubby.annotations.Serial;
77

88
import javax.annotation.processing.AbstractProcessor;
99
import javax.annotation.processing.RoundEnvironment;
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
package top.hubby.processor;
1+
package cn.edu.ntu.java.processor;
22

3+
import cn.edu.ntu.java.annotations.TrisceliVersion;
34
import com.sun.tools.javac.api.JavacTrees;
45
import com.sun.tools.javac.processing.JavacProcessingEnvironment;
56
import com.sun.tools.javac.tree.JCTree;
67
import com.sun.tools.javac.tree.TreeMaker;
78
import com.sun.tools.javac.util.Context;
8-
import lombok.SneakyThrows;
9-
import top.hubby.annotations.TrisceliVersion;
109

1110
import javax.annotation.processing.AbstractProcessor;
1211
import javax.annotation.processing.ProcessingEnvironment;
@@ -31,7 +30,6 @@ public class TrisceliVersionProcessor extends AbstractProcessor {
3130
*
3231
* @param processingEnv 提供了一系列的实用工具
3332
*/
34-
@SneakyThrows
3533
@Override
3634
public synchronized void init(ProcessingEnvironment processingEnv) {
3735
super.init(processingEnv);
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
top.hubby.processor.DataProcessor
1+
cn.edu.ntu.java.processor.DataProcessor

0 commit comments

Comments
 (0)