You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2023/08/16 08:25:14 UTC
[dubbo] branch 3.3.0-beta.1-release updated: Revert "Add Dubbo Annotation Processor (Add deprecated method warn when called by user, #10850) (#11513)" (#12871)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch 3.3.0-beta.1-release
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.3.0-beta.1-release by this push:
new 56de12127b Revert "Add Dubbo Annotation Processor (Add deprecated method warn when called by user, #10850) (#11513)" (#12871)
56de12127b is described below
commit 56de12127b62362b3572a27c556f687bff3cfc0a
Author: Ken Liu <ke...@gmail.com>
AuthorDate: Wed Aug 16 16:25:08 2023 +0800
Revert "Add Dubbo Annotation Processor (Add deprecated method warn when called by user, #10850) (#11513)" (#12871)
This reverts commit 0b6f2e4a8d045e137ce2b440e7fdd79941c57ec5.
---
.licenserc.yaml | 1 -
NOTICE | 2 +-
dubbo-annotation-processor/pom.xml | 165 --------
.../annotation/AnnotationProcessingHandler.java | 44 ---
.../annotation/AnnotationProcessorContext.java | 139 -------
.../annotation/DispatchingAnnotationProcessor.java | 162 --------
.../annotation/handler/DeprecatedHandler.java | 110 ------
.../org/apache/dubbo/annotation/permit/Permit.java | 429 ---------------------
.../dubbo/annotation/permit/dummy/Child.java | 33 --
.../dubbo/annotation/permit/dummy/GrandChild.java | 43 ---
.../dubbo/annotation/permit/dummy/Parent.java | 36 --
.../annotation/permit/dummy/package-info.java | 32 --
.../dubbo/annotation/permit/package-info.java | 32 --
.../org/apache/dubbo/annotation/util/ASTUtils.java | 111 ------
.../apache/dubbo/annotation/util/FileUtils.java | 155 --------
.../services/javax.annotation.processing.Processor | 1 -
.../src/main/resources/handlers.cfg | 17 -
.../dubbo/annotation/RealInvocationTest.java | 64 ---
.../apache/dubbo/annotation/TestingCommons.java | 71 ----
.../common/DeprecatedMethodInvocationCounter.java | 36 --
.../apache/dubbo/eci/extractor/JavassistUtils.java | 151 --------
.../org/apache/dubbo/eci/util/ReflectUtils.java | 51 ---
.../org/testing/dm/TestConstructorMethod.java | 28 --
.../dm/TestConstructorMethodParentClass.java | 27 --
.../testing/dm/TestConstructorMethodSubClass.java | 30 --
.../org/testing/dm/TestDeprecatedMethod.java | 26 --
.../testing/dm/TestInterfaceDeprecatedMethod.java | 24 --
dubbo-build-tools/pom.xml | 8 +-
.../common/DeprecatedMethodInvocationCounter.java | 83 ----
...DeprecatedMethodInvocationCounterConstants.java | 35 --
.../common/constants/LoggerCodeConstants.java | 5 -
.../DeprecatedMethodInvocationCounterTest.java | 59 ---
dubbo-config/dubbo-config-api/pom.xml | 1 -
dubbo-metadata/dubbo-metadata-processor/pom.xml | 13 -
.../java/org/apache/dubbo/dependency/FileTest.java | 2 -
pom.xml | 11 +-
36 files changed, 6 insertions(+), 2231 deletions(-)
diff --git a/.licenserc.yaml b/.licenserc.yaml
index 0e8b7409d8..3935786a0e 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -101,7 +101,6 @@ header:
- 'dubbo-native/src/main/java/org/apache/dubbo/aot/api/MemberCategory.java'
- 'dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/aggregate/DubboMergingDigest.java'
- 'dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/aggregate/DubboAbstractTDigest.java'
- - 'dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/**'
- 'dubbo-common/src/main/java/org/apache/dubbo/common/logger/helpers/FormattingTuple.java'
- 'dubbo-common/src/main/java/org/apache/dubbo/common/logger/helpers/MessageFormatter.java'
diff --git a/NOTICE b/NOTICE
index b862c0f833..fb9cb50141 100644
--- a/NOTICE
+++ b/NOTICE
@@ -4,7 +4,7 @@ Copyright 2018-2023 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
-This product contains code from the Netty Project:
+This product contains code form the Netty Project:
The Netty Project
=================
diff --git a/dubbo-annotation-processor/pom.xml b/dubbo-annotation-processor/pom.xml
deleted file mode 100644
index 8a89f1bf74..0000000000
--- a/dubbo-annotation-processor/pom.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://maven.apache.org/POM/4.0.0"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-annotation-processor</artifactId>
- <version>1.0.0</version>
-
- <properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
- <!-- System dependencies may cause problems in checkstyle. -->
- <checkstyle.skip>true</checkstyle.skip>
- <checkstyle_unix.skip>true</checkstyle_unix.skip>
- <rat.skip>true</rat.skip>
- <jacoco.skip>true</jacoco.skip>
-
- <maven.deploy.skip>true</maven.deploy.skip>
-
- <junit_jupiter_version>5.9.0</junit_jupiter_version>
- <javassist_version>3.29.2-GA</javassist_version>
- </properties>
-
- <packaging>jar</packaging>
-
- <dependencies>
- <!-- JUnit Jupiter Engine to depend on the JUnit5 engine and JUnit 5 API -->
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-engine</artifactId>
- <version>${junit_jupiter_version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-api</artifactId>
- <version>${junit_jupiter_version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-params</artifactId>
- <version>${junit_jupiter_version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>${javassist_version}</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.10.1</version>
- <configuration>
- <proc>none</proc>
- <fork>true</fork>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <profiles>
- <profile>
- <id>default-profile-in-jdk-8</id>
- <activation>
- <file>
- <exists>${java.home}/../lib/tools.jar</exists>
- </file>
- <jdk>(, 9)</jdk>
- </activation>
- <properties>
- <toolsjar>${java.home}/../lib/tools.jar</toolsjar>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>javac</groupId>
- <artifactId>javac</artifactId>
- <version>1.0</version>
- <scope>system</scope>
- <systemPath>${toolsjar}</systemPath>
- </dependency>
- </dependencies>
- </profile>
-
- <profile>
- <id>legacy-apple-jdk-profile</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- <file>
- <exists>${java.home}/../Classes/classes.jar</exists>
- </file>
- <jdk>(, 9)</jdk>
- </activation>
-
- <properties>
- <toolsjar>${java.home}/../Classes/classes.jar</toolsjar>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>javac</groupId>
- <artifactId>javac</artifactId>
- <version>1.0</version>
- <scope>system</scope>
- <systemPath>${toolsjar}</systemPath>
- </dependency>
- </dependencies>
- </profile>
-
- <profile>
- <id>add-export-greater-than-9</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- <jdk>[9, )</jdk>
- </activation>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.10.1</version>
- <configuration>
- <fork>true</fork>
- <proc>none</proc>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/AnnotationProcessingHandler.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/AnnotationProcessingHandler.java
deleted file mode 100644
index 4830e32704..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/AnnotationProcessingHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.annotation;
-
-import javax.lang.model.element.Element;
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-/**
- * Represents an annotation processing handler, which is invoked by DispatchingAnnotationProcessor.
- */
-public interface AnnotationProcessingHandler {
-
- /**
- * Set the annotations that this handler will handle.
- *
- * @return annotations to handle
- */
- Set<Class<? extends Annotation>> getAnnotationsToHandle();
-
- /**
- * Formal processing method.
- *
- * @param elements the elements that annotated by the annotations of getAnnotationsToHandle()
- * @param annotationProcessorContext the annotation processor context object (Javac object encapsulation)
- */
- void process(Set<Element> elements,
- AnnotationProcessorContext annotationProcessorContext);
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/AnnotationProcessorContext.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/AnnotationProcessorContext.java
deleted file mode 100644
index 958385aba6..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/AnnotationProcessorContext.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.annotation;
-
-import com.sun.source.util.Trees;
-import com.sun.tools.javac.api.JavacTrees;
-import com.sun.tools.javac.processing.JavacProcessingEnvironment;
-import com.sun.tools.javac.tree.TreeMaker;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.Names;
-
-import javax.annotation.processing.ProcessingEnvironment;
-import java.lang.reflect.Method;
-import java.util.Objects;
-
-/**
- * The Context Object of Annotation Processor, which stores objects related to javac.
- */
-public class AnnotationProcessorContext {
- private JavacProcessingEnvironment javacProcessingEnvironment;
- private JavacTrees javacTrees;
- private TreeMaker treeMaker;
- private Names names;
- private Context javacContext;
- private Trees trees;
-
- private AnnotationProcessorContext() { }
-
- private static <T> T jbUnwrap(Class<? extends T> iface, T wrapper) {
- T unwrapped = null;
- try {
- final Class<?> apiWrappers = wrapper.getClass().getClassLoader().loadClass("org.jetbrains.jps.javac.APIWrappers");
- final Method unwrapMethod = apiWrappers.getDeclaredMethod("unwrap", Class.class, Object.class);
- unwrapped = iface.cast(unwrapMethod.invoke(null, iface, wrapper));
- } catch (Throwable ignored) {
- }
-
- return unwrapped != null ? unwrapped : wrapper;
- }
-
- public static AnnotationProcessorContext fromProcessingEnvironment(ProcessingEnvironment processingEnv) {
- AnnotationProcessorContext apContext = new AnnotationProcessorContext();
-
- Object procEnvToUnwrap = processingEnv.getClass() == JavacProcessingEnvironment.class ?
- processingEnv : jbUnwrap(JavacProcessingEnvironment.class, processingEnv);
-
- JavacProcessingEnvironment jcProcessingEnvironment = (JavacProcessingEnvironment) procEnvToUnwrap;
-
- Context context = jcProcessingEnvironment.getContext();
-
- apContext.javacProcessingEnvironment = jcProcessingEnvironment;
-
- apContext.javacContext = context;
- apContext.javacTrees = JavacTrees.instance(jcProcessingEnvironment);
- apContext.treeMaker = TreeMaker.instance(context);
- apContext.names = Names.instance(context);
-
- apContext.trees = Trees.instance(jcProcessingEnvironment);
-
- return apContext;
- }
-
- // Auto-generated methods.
-
- public JavacTrees getJavacTrees() {
- return javacTrees;
- }
-
- public TreeMaker getTreeMaker() {
- return treeMaker;
- }
-
- public Names getNames() {
- return names;
- }
-
- public Context getJavacContext() {
- return javacContext;
- }
-
- public Trees getTrees() {
- return trees;
- }
-
- public JavacProcessingEnvironment getJavacProcessingEnvironment() {
- return javacProcessingEnvironment;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- AnnotationProcessorContext context = (AnnotationProcessorContext) o;
-
- if (!Objects.equals(javacTrees, context.javacTrees)) return false;
- if (!Objects.equals(treeMaker, context.treeMaker)) return false;
- if (!Objects.equals(names, context.names)) return false;
- if (!Objects.equals(javacContext, context.javacContext))
- return false;
- return Objects.equals(trees, context.trees);
- }
-
- @Override
- public int hashCode() {
- int result = javacTrees != null ? javacTrees.hashCode() : 0;
- result = 31 * result + (treeMaker != null ? treeMaker.hashCode() : 0);
- result = 31 * result + (names != null ? names.hashCode() : 0);
- result = 31 * result + (javacContext != null ? javacContext.hashCode() : 0);
- result = 31 * result + (trees != null ? trees.hashCode() : 0);
- return result;
- }
-
- @Override
- public String toString() {
- return "AnnotationProcessorContext{" +
- "javacTrees=" + javacTrees +
- ", treeMaker=" + treeMaker +
- ", names=" + names +
- ", javacContext=" + javacContext +
- ", trees=" + trees +
- '}';
- }
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/DispatchingAnnotationProcessor.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/DispatchingAnnotationProcessor.java
deleted file mode 100644
index 8c11d72eff..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/DispatchingAnnotationProcessor.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.annotation;
-
-import org.apache.dubbo.annotation.permit.Permit;
-import org.apache.dubbo.annotation.util.FileUtils;
-
-import com.sun.tools.javac.code.Symbol;
-import com.sun.tools.javac.processing.JavacRoundEnvironment;
-
-import javax.annotation.processing.AbstractProcessor;
-import javax.annotation.processing.ProcessingEnvironment;
-import javax.annotation.processing.RoundEnvironment;
-import javax.annotation.processing.SupportedAnnotationTypes;
-import javax.lang.model.SourceVersion;
-import javax.lang.model.element.Element;
-import javax.lang.model.element.TypeElement;
-import javax.tools.Diagnostic;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * Dispatching annotation processor, which uses a file to locate handlers and invoke them.
- */
-@SupportedAnnotationTypes("*")
-public class DispatchingAnnotationProcessor extends AbstractProcessor {
-
- private static Set<AnnotationProcessingHandler> handlers;
-
- private static Set<AnnotationProcessingHandler> loadHandlers() {
- List<String> classNames = FileUtils.loadConfigurationFileInResources("handlers.cfg");
- Set<AnnotationProcessingHandler> tempHandlers = new HashSet<>();
-
- for (String clsName : classNames) {
- try {
- Class<? extends AnnotationProcessingHandler> cls = (Class<? extends AnnotationProcessingHandler>) Class.forName(clsName);
- AnnotationProcessingHandler r = cls.getConstructor().newInstance();
-
- tempHandlers.add(r);
-
- } catch (InstantiationException | NoSuchMethodException | InvocationTargetException |
- IllegalAccessException | ClassNotFoundException e) {
- throw new RuntimeException(e);
- }
- }
-
- return Collections.unmodifiableSet(tempHandlers);
- }
-
- private AnnotationProcessorContext apContext;
-
- @Override
- public synchronized void init(ProcessingEnvironment processingEnv) {
- Permit.addOpens();
- super.init(processingEnv);
-
- if (processingEnv.getClass().getName().startsWith("org.eclipse.jdt.")) {
- // Don't run on ECJ, since this processor is javac based.
- processingEnv
- .getMessager()
- .printMessage(Diagnostic.Kind.WARNING, "The Annotation processor doesn't support ECJ.");
-
- return;
- }
-
- if (handlers == null) {
- handlers = loadHandlers();
- }
-
- apContext = AnnotationProcessorContext.fromProcessingEnvironment(processingEnv);
- }
-
- @Override
- public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
-
- if (processingEnv.getClass().getName().startsWith("org.eclipse.jdt.")) {
- // Don't run on ECJ, since this processor is javac based.
- return false;
- }
-
- for (AnnotationProcessingHandler i : handlers) {
- Set<Element> elements = new HashSet<>(16);
-
- for (Class<? extends Annotation> annotationClass : i.getAnnotationsToHandle()) {
- elements.addAll(getElementsAnnotatedWith(annotationClass, roundEnv));
- }
-
- i.process(elements, apContext);
- }
-
- return false;
- }
-
- /**
- * A hack to make comment only .java file pass the compilation by skipping package symbol scan.
- *
- * @param annotationClass the annotation class to find
- * @param roundEnvironment the javac's round environment
- * @return the elements annotated with specified annotation
- */
- private Set<? extends Element> getElementsAnnotatedWith(Class<? extends Annotation> annotationClass, RoundEnvironment roundEnvironment) {
-
- TypeElement a = processingEnv.getElementUtils().getTypeElement(annotationClass.getCanonicalName());
-
- // Detect the Javac's version.
- if (Integer.parseInt(SourceVersion.latest().name().split("_")[1]) > 8) {
- return roundEnvironment.getElementsAnnotatedWith(a);
- }
-
- Set<Element> result = Collections.emptySet();
-
- try {
- Class annotationSetScannerClass = Class.forName("com.sun.tools.javac.processing.JavacRoundEnvironment$AnnotationSetScanner");
- Constructor scannerConstructor = Permit.getConstructor(annotationSetScannerClass, JavacRoundEnvironment.class, Set.class);
- Object scanner = scannerConstructor.newInstance(roundEnvironment, result);
-
- Set<? extends Element> rootElements1 = roundEnvironment
- .getRootElements()
- .stream()
- .filter(x -> x.getClass() != Symbol.PackageSymbol.class)
- .collect(Collectors.toSet());
-
- for (Element element : rootElements1) {
- Method scanningMethod = Permit.getMethod(annotationSetScannerClass, "scan", Element.class, TypeElement.class);
- result = (Set<Element>) scanningMethod.invoke(scanner, element, a);
- }
-
- } catch (InstantiationException | NoSuchMethodException | ClassNotFoundException | InvocationTargetException |
- IllegalAccessException e) {
- throw new RuntimeException(e);
- }
-
- return result;
- }
-
- @Override
- public SourceVersion getSupportedSourceVersion() {
- return SourceVersion.latestSupported();
- }
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/handler/DeprecatedHandler.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/handler/DeprecatedHandler.java
deleted file mode 100644
index c87cb8f6c9..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/handler/DeprecatedHandler.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.annotation.handler;
-
-import org.apache.dubbo.annotation.AnnotationProcessingHandler;
-import org.apache.dubbo.annotation.AnnotationProcessorContext;
-import org.apache.dubbo.annotation.util.ASTUtils;
-
-import com.sun.tools.javac.code.Symbol;
-import com.sun.tools.javac.tree.JCTree;
-import com.sun.tools.javac.tree.TreeTranslator;
-
-import javax.lang.model.element.Element;
-import java.lang.annotation.Annotation;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Handles @Deprecated annotation and adds logger warn call to the methods that are annotated with it.
- */
-public class DeprecatedHandler implements AnnotationProcessingHandler {
-
- @Override
- public Set<Class<? extends Annotation>> getAnnotationsToHandle() {
- return new HashSet<>(
- Collections.singletonList(Deprecated.class)
- );
- }
-
- @Override
- public void process(Set<Element> elements, AnnotationProcessorContext apContext) {
- for (Element element : elements) {
- // Only interested in methods.
- if (!(element instanceof Symbol.MethodSymbol)) {
- continue;
- }
-
- Symbol.ClassSymbol classSymbol = (Symbol.ClassSymbol) element.getEnclosingElement();
-
- ASTUtils.addImportStatement(apContext, classSymbol, "org.apache.dubbo.common", "DeprecatedMethodInvocationCounter");
-
- JCTree methodTree = apContext.getJavacTrees().getTree(element);
-
- methodTree.accept(new TreeTranslator() {
- @Override
- public void visitMethodDef(JCTree.JCMethodDecl jcMethodDecl) {
-
- JCTree.JCBlock block = jcMethodDecl.body;
-
- if (block == null) {
- // No method body. (i.e. interface method declaration.)
- return;
- }
-
- ASTUtils.insertStatementToHeadOfMethod(block, jcMethodDecl, generateCounterStatement(apContext, classSymbol, jcMethodDecl));
- }
- });
- }
- }
-
- /**
- * Generate an expression statement like this:
- * <code>DeprecatedMethodInvocationCounter.onDeprecatedMethodCalled("....");
- *
- * @param originalMethodDecl the method declaration that will add logger statement
- * @param apContext annotation processor context
- * @param classSymbol the enclosing class that will be the logger's name
- * @return generated expression statement
- */
- private JCTree.JCExpressionStatement generateCounterStatement(AnnotationProcessorContext apContext,
- Symbol.ClassSymbol classSymbol,
- JCTree.JCMethodDecl originalMethodDecl) {
-
- JCTree.JCExpression fullStatement = apContext.getTreeMaker().Apply(
- com.sun.tools.javac.util.List.nil(),
-
- apContext.getTreeMaker().Select(
- apContext.getTreeMaker().Ident(apContext.getNames().fromString("DeprecatedMethodInvocationCounter")),
- apContext.getNames().fromString("onDeprecatedMethodCalled")
- ),
-
- com.sun.tools.javac.util.List.of(
- apContext.getTreeMaker().Literal(getMethodDefinition(classSymbol, originalMethodDecl))
- )
- );
-
- return apContext.getTreeMaker().Exec(fullStatement);
- }
-
- private String getMethodDefinition(Symbol.ClassSymbol classSymbol, JCTree.JCMethodDecl originalMethodDecl) {
- return classSymbol.getQualifiedName() + "."
- + originalMethodDecl.name.toString() + "(" + originalMethodDecl.params.toString() + ")";
- }
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/Permit.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/Permit.java
deleted file mode 100644
index 3d5c941764..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/Permit.java
+++ /dev/null
@@ -1,429 +0,0 @@
-/*
- * Authored by Project Lombok and licensed by MIT License, which is attached below:
- *
- * Copyright (C) 2018-2021 The Project Lombok Authors.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.apache.dubbo.annotation.permit;
-
-import org.apache.dubbo.annotation.permit.dummy.Parent;
-
-import sun.misc.Unsafe;
-
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-// sunapi suppresses javac's warning about using Unsafe; 'all' suppresses eclipse's warning about the unspecified 'sunapi' key. Leave them both.
-// Yes, javac's definition of the word 'all' is quite contrary to what the dictionary says it means. 'all' does NOT include 'sunapi' according to javac.
-@SuppressWarnings({"sunapi", "all"})
-public class Permit {
- private Permit() {
- }
-
-
- private static final long ACCESSIBLE_OVERRIDE_FIELD_OFFSET;
- private static final IllegalAccessException INIT_ERROR;
- private static final sun.misc.Unsafe UNSAFE = (sun.misc.Unsafe) reflectiveStaticFieldAccess(sun.misc.Unsafe.class, "theUnsafe");
-
- static {
- Field f;
- long g;
- Throwable ex;
-
- try {
- g = getOverrideFieldOffset();
- ex = null;
- } catch (Throwable t) {
- f = null;
- g = -1L;
- ex = t;
- }
-
- ACCESSIBLE_OVERRIDE_FIELD_OFFSET = g;
- if (ex == null) INIT_ERROR = null;
- else if (ex instanceof IllegalAccessException) INIT_ERROR = (IllegalAccessException) ex;
- else {
- INIT_ERROR = new IllegalAccessException("Cannot initialize Unsafe-based permit");
- INIT_ERROR.initCause(ex);
- }
- }
-
- public static <T extends AccessibleObject> T setAccessible(T accessor) {
- if (INIT_ERROR == null) {
- UNSAFE.putBoolean(accessor, ACCESSIBLE_OVERRIDE_FIELD_OFFSET, true);
- } else {
- accessor.setAccessible(true);
- }
-
- return accessor;
- }
-
- private static long getOverrideFieldOffset() throws Throwable {
- Field f = null;
- Throwable saved = null;
- try {
- f = AccessibleObject.class.getDeclaredField("override");
- } catch (Throwable t) {
- saved = t;
- }
-
- if (f != null) {
- return UNSAFE.objectFieldOffset(f);
- }
- // The below seems very risky, but for all AccessibleObjects in java today it does work, and starting with JDK12, making the field accessible is no longer possible.
- try {
- return UNSAFE.objectFieldOffset(Fake.class.getDeclaredField("override"));
- } catch (Throwable t) {
- throw saved;
- }
- }
-
- static class Fake {
- boolean override;
- Object accessCheckCache;
- }
-
- public static Method getMethod(Class<?> c, String mName, Class<?>... parameterTypes) throws NoSuchMethodException {
- Method m = null;
- Class<?> oc = c;
- while (c != null) {
- try {
- m = c.getDeclaredMethod(mName, parameterTypes);
- break;
- } catch (NoSuchMethodException e) {
- }
- c = c.getSuperclass();
- }
-
- if (m == null) throw new NoSuchMethodException(oc.getName() + " :: " + mName + "(args)");
- return setAccessible(m);
- }
-
- public static Method permissiveGetMethod(Class<?> c, String mName, Class<?>... parameterTypes) {
- try {
- return getMethod(c, mName, parameterTypes);
- } catch (Exception ignore) {
- return null;
- }
- }
-
- public static Field getField(Class<?> c, String fName) throws NoSuchFieldException {
- Field f = null;
- Class<?> oc = c;
- while (c != null) {
- try {
- f = c.getDeclaredField(fName);
- break;
- } catch (NoSuchFieldException e) {
- }
- c = c.getSuperclass();
- }
-
- if (f == null) throw new NoSuchFieldException(oc.getName() + " :: " + fName);
-
- return setAccessible(f);
- }
-
- public static Field permissiveGetField(Class<?> c, String fName) {
- try {
- return getField(c, fName);
- } catch (Exception ignore) {
- return null;
- }
- }
-
- public static <T> T permissiveReadField(Class<T> type, Field f, Object instance) {
- try {
- return type.cast(f.get(instance));
- } catch (Exception ignore) {
- return null;
- }
- }
-
- public static <T> Constructor<T> getConstructor(Class<T> c, Class<?>... parameterTypes) throws NoSuchMethodException {
- return setAccessible(c.getDeclaredConstructor(parameterTypes));
- }
-
- private static Object reflectiveStaticFieldAccess(Class<?> c, String fName) {
- try {
- Field f = c.getDeclaredField(fName);
- f.setAccessible(true);
- return f.get(null);
- } catch (Exception e) {
- return null;
- }
- }
-
- public static boolean isDebugReflection() {
- return !"false".equals(System.getProperty("lombok.debug.reflection", "false"));
- }
-
- public static void handleReflectionDebug(Throwable t, Throwable initError) {
- if (!isDebugReflection()) return;
-
- System.err.println("** LOMBOK REFLECTION exception: " + t.getClass() + ": " + (t.getMessage() == null ? "(no message)" : t.getMessage()));
- t.printStackTrace(System.err);
- if (initError != null) {
- System.err.println("*** ADDITIONALLY, exception occurred setting up reflection: ");
- initError.printStackTrace(System.err);
- }
- }
-
- public static Object invoke(Method m, Object receiver, Object... args) throws IllegalAccessException, InvocationTargetException {
- return invoke(null, m, receiver, args);
- }
-
- public static Object invoke(Throwable initError, Method m, Object receiver, Object... args) throws IllegalAccessException, InvocationTargetException {
- try {
- return m.invoke(receiver, args);
- } catch (IllegalAccessException e) {
- handleReflectionDebug(e, initError);
- throw e;
- } catch (RuntimeException e) {
- handleReflectionDebug(e, initError);
- throw e;
- } catch (Error e) {
- handleReflectionDebug(e, initError);
- throw e;
- }
- }
-
- public static Object invokeSneaky(Method m, Object receiver, Object... args) {
- return invokeSneaky(null, m, receiver, args);
- }
-
- public static Object invokeSneaky(Throwable initError, Method m, Object receiver, Object... args) {
- try {
- return m.invoke(receiver, args);
- } catch (NoClassDefFoundError e) {
- handleReflectionDebug(e, initError);
- //ignore, we don't have access to the correct ECJ classes, so lombok can't possibly
- //do anything useful here.
- return null;
- } catch (NullPointerException e) {
- handleReflectionDebug(e, initError);
- //ignore, we don't have access to the correct ECJ classes, so lombok can't possibly
- //do anything useful here.
- return null;
- } catch (IllegalAccessException e) {
- handleReflectionDebug(e, initError);
- throw sneakyThrow(e);
- } catch (InvocationTargetException e) {
- throw sneakyThrow(e.getCause());
- } catch (RuntimeException e) {
- handleReflectionDebug(e, initError);
- throw e;
- } catch (Error e) {
- handleReflectionDebug(e, initError);
- throw e;
- }
- }
-
- public static <T> T newInstance(Constructor<T> c, Object... args) throws IllegalAccessException, InvocationTargetException, InstantiationException {
- return newInstance(null, c, args);
- }
-
- public static <T> T newInstance(Throwable initError, Constructor<T> c, Object... args) throws IllegalAccessException, InvocationTargetException, InstantiationException {
- try {
- return c.newInstance(args);
- } catch (IllegalAccessException e) {
- handleReflectionDebug(e, initError);
- throw e;
- } catch (InstantiationException e) {
- handleReflectionDebug(e, initError);
- throw e;
- } catch (RuntimeException e) {
- handleReflectionDebug(e, initError);
- throw e;
- } catch (Error e) {
- handleReflectionDebug(e, initError);
- throw e;
- }
- }
-
- public static <T> T newInstanceSneaky(Constructor<T> c, Object... args) {
- return newInstanceSneaky(null, c, args);
- }
-
- public static <T> T newInstanceSneaky(Throwable initError, Constructor<T> c, Object... args) {
- try {
- return c.newInstance(args);
- } catch (NoClassDefFoundError e) {
- handleReflectionDebug(e, initError);
- //ignore, we don't have access to the correct ECJ classes, so lombok can't possibly
- //do anything useful here.
- return null;
- } catch (NullPointerException e) {
- handleReflectionDebug(e, initError);
- //ignore, we don't have access to the correct ECJ classes, so lombok can't possibly
- //do anything useful here.
- return null;
- } catch (IllegalAccessException e) {
- handleReflectionDebug(e, initError);
- throw sneakyThrow(e);
- } catch (InstantiationException e) {
- handleReflectionDebug(e, initError);
- throw sneakyThrow(e);
- } catch (InvocationTargetException e) {
- throw sneakyThrow(e.getCause());
- } catch (RuntimeException e) {
- handleReflectionDebug(e, initError);
- throw e;
- } catch (Error e) {
- handleReflectionDebug(e, initError);
- throw e;
- }
- }
-
- public static Object get(Field f, Object receiver) throws IllegalAccessException {
- try {
- return f.get(receiver);
- } catch (IllegalAccessException e) {
- handleReflectionDebug(e, null);
- throw e;
- } catch (RuntimeException e) {
- handleReflectionDebug(e, null);
- throw e;
- } catch (Error e) {
- handleReflectionDebug(e, null);
- throw e;
- }
- }
-
- public static void set(Field f, Object receiver, Object newValue) throws IllegalAccessException {
- try {
- f.set(receiver, newValue);
- } catch (IllegalAccessException e) {
- handleReflectionDebug(e, null);
- throw e;
- } catch (RuntimeException e) {
- handleReflectionDebug(e, null);
- throw e;
- } catch (Error e) {
- handleReflectionDebug(e, null);
- throw e;
- }
- }
-
- public static void reportReflectionProblem(Throwable initError, String msg) {
- if (!isDebugReflection()) return;
- System.err.println("** LOMBOK REFLECTION issue: " + msg);
- if (initError != null) {
- System.err.println("*** ADDITIONALLY, exception occurred setting up reflection: ");
- initError.printStackTrace(System.err);
- }
- }
-
- public static RuntimeException sneakyThrow(Throwable t) {
- if (t == null) throw new NullPointerException("t");
- return Permit.<RuntimeException>sneakyThrow0(t);
- }
-
- @SuppressWarnings("unchecked")
- private static <T extends Throwable> T sneakyThrow0(Throwable t) throws T {
- throw (T) t;
- }
-
- private static Object getJdkCompilerModule() {
- /* call public api: ModuleLayer.boot().findModule("jdk.compiler").get();
- but use reflection because we don't want this code to crash on jdk1.7 and below.
- In that case, none of this stuff was needed in the first place, so we just exit via
- the catch block and do nothing.
- */
-
- try {
- Class<?> cModuleLayer = Class.forName("java.lang.ModuleLayer");
- Method mBoot = cModuleLayer.getDeclaredMethod("boot");
- Object bootLayer = mBoot.invoke(null);
- Class<?> cOptional = Class.forName("java.util.Optional");
- Method mFindModule = cModuleLayer.getDeclaredMethod("findModule", String.class);
- Object oCompilerO = mFindModule.invoke(bootLayer, "jdk.compiler");
- return cOptional.getDeclaredMethod("get").invoke(oCompilerO);
- } catch (Exception e) {
- return null;
- }
- }
-
- private static Object getOwnModule() {
- try {
- Method m = Permit.getMethod(Class.class, "getModule");
- return m.invoke(Permit.class);
- } catch (Exception e) {
- return null;
- }
- }
-
- private static long getFirstFieldOffset(Unsafe unsafe) {
- try {
- return unsafe.objectFieldOffset(Parent.class.getDeclaredField("first"));
- } catch (NoSuchFieldException e) {
- // can't happen.
- throw new RuntimeException(e);
- } catch (SecurityException e) {
- // can't happen
- throw new RuntimeException(e);
- }
- }
-
- public static void addOpens() {
- Class<?> cModule;
- try {
- cModule = Class.forName("java.lang.Module");
- } catch (ClassNotFoundException e) {
- return; //jdk8-; this is not needed.
- }
-
- Unsafe unsafe = UNSAFE;
-
- Object jdkCompilerModule = getJdkCompilerModule();
- Object ownModule = getOwnModule();
- String[] allPkgs = {
- "com.sun.tools.javac.code",
- "com.sun.tools.javac.comp",
- "com.sun.tools.javac.file",
- "com.sun.tools.javac.main",
- "com.sun.tools.javac.model",
- "com.sun.tools.javac.parser",
- "com.sun.tools.javac.processing",
- "com.sun.tools.javac.tree",
- "com.sun.tools.javac.util",
- "com.sun.tools.javac.jvm",
- "com.sun.tools.javac.api"
- };
-
- try {
- Method m = cModule.getDeclaredMethod("implAddOpens", String.class, cModule);
- long firstFieldOffset = getFirstFieldOffset(unsafe);
- unsafe.putBooleanVolatile(m, firstFieldOffset, true);
- for (String p : allPkgs) m.invoke(jdkCompilerModule, p, ownModule);
- } catch (Exception ignore) {}
-
- try {
- Method m = cModule.getDeclaredMethod("implAddExports", String.class, cModule);
- long firstFieldOffset = getFirstFieldOffset(unsafe);
- unsafe.putBooleanVolatile(m, firstFieldOffset, true);
- for (String p : allPkgs) m.invoke(jdkCompilerModule, p, ownModule);
- } catch (Exception ignore) {}
- }
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/Child.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/Child.java
deleted file mode 100644
index 46c647bedc..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/Child.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Authored by Project Lombok and licensed by MIT License, which is attached below:
- *
- * Copyright (C) 2018-2021 The Project Lombok Authors.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.apache.dubbo.annotation.permit.dummy;
-
-@SuppressWarnings("all")
-public abstract class Child extends Parent {
- private transient volatile boolean foo;
- private transient volatile Object[] bar;
- private transient volatile Object baz;
-
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/GrandChild.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/GrandChild.java
deleted file mode 100644
index c2bf737629..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/GrandChild.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Authored by Project Lombok and licensed by MIT License, which is attached below:
- *
- * Copyright (C) 2018-2021 The Project Lombok Authors.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.apache.dubbo.annotation.permit.dummy;
-
-@SuppressWarnings("all")
-public final class GrandChild extends Child {
- private Class<?> a;
- private int b;
- private String c;
- private Class<?> d;
- private Class<?>[] e;
- private Class<?>[] f;
- private int g;
- private transient String h;
- private transient Object i;
- private byte[] j;
- private byte[] k;
- private byte[] l;
- private volatile Object m;
- private Object n;
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/Parent.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/Parent.java
deleted file mode 100644
index 53cb8c8ce5..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/Parent.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Authored by Project Lombok and licensed by MIT License, which is attached below:
- *
- * Copyright (C) 2018-2021 The Project Lombok Authors.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.apache.dubbo.annotation.permit.dummy;
-
-import java.io.OutputStream;
-
-@SuppressWarnings("all")
-public class Parent {
- boolean first;
- static final Object staticObj = OutputStream.class;
- volatile Object second;
- private static volatile boolean staticSecond;
- private static volatile boolean staticThird;
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/package-info.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/package-info.java
deleted file mode 100644
index dcbf5a58a0..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/dummy/package-info.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Authored by Project Lombok and licensed by MIT License, which is attached below:
- *
- * Copyright (C) 2018-2021 The Project Lombok Authors.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * This package recreates the type hierarchy of {@code java.lang.reflect.AccessibleObject} and friends (such as {@code java.lang.reflect.Method});
- * its purpose is to allow us to ask {@code sun.misc.internal.Unsafe} about the exact offset of the {@code override} field of {@code AccessibleObject};
- * asking about that field directly doesn't work after jdk14, presumably because the fields of AO are expressly hidden somehow.
- * <p>
- * NB: It's usually 12, on the vast majority of OS, VM, and architecture combos.
- */
-package org.apache.dubbo.annotation.permit.dummy;
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/package-info.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/package-info.java
deleted file mode 100644
index 95b72451c6..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/permit/package-info.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Authored by Project Lombok and licensed by MIT License, which is attached below:
- *
- * Copyright (C) 2018-2021 The Project Lombok Authors.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * This is a reduced copy of the nqzero Permit-reflect project.
- * https://github.com/nqzero/permit-reflect
- * <p>
- * Many thanks to nqzero. The permit-reflect project is, like lombok itself, licensed under the MIT license.
- * See https://github.com/nqzero/permit-reflect/blob/master/License for license info.
- */
-package org.apache.dubbo.annotation.permit;
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/util/ASTUtils.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/util/ASTUtils.java
deleted file mode 100644
index bfd463785f..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/util/ASTUtils.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.annotation.util;
-
-import org.apache.dubbo.annotation.AnnotationProcessorContext;
-
-import com.sun.source.util.TreePath;
-import com.sun.tools.javac.code.Symbol;
-import com.sun.tools.javac.tree.JCTree;
-import com.sun.tools.javac.util.ListBuffer;
-
-import java.util.List;
-
-/**
- * Some utils about AST manipulating.
- */
-public final class ASTUtils {
-
- private ASTUtils() {
- throw new UnsupportedOperationException("No instance of 'ASTUtils' for you! ");
- }
-
- public static void addImportStatement(AnnotationProcessorContext apContext,
- Symbol.ClassSymbol classSymbol,
- String packageName,
- String className) {
-
- JCTree.JCImport jcImport = apContext.getTreeMaker().Import(
- apContext.getTreeMaker().Select(
- apContext.getTreeMaker().Ident(apContext.getNames().fromString(packageName)),
- apContext.getNames().fromString(className)
- ), false);
-
- TreePath treePath = apContext.getTrees().getPath(classSymbol);
- TreePath parentPath = treePath.getParentPath();
- JCTree.JCCompilationUnit compilationUnit = (JCTree.JCCompilationUnit) parentPath.getCompilationUnit();
-
- List<JCTree.JCImport> imports = compilationUnit.getImports();
- if (imports.stream().noneMatch(x -> x.qualid.toString().contains(packageName + "." + className))) {
-
- compilationUnit.accept(new JCTree.Visitor() {
- @Override
- public void visitTopLevel(JCTree.JCCompilationUnit that) {
-
- List<JCTree> defs = compilationUnit.defs;
-
- ListBuffer<JCTree> newDefs = new ListBuffer<>();
-
- newDefs.add(defs.get(0));
- newDefs.add(jcImport);
- newDefs.addAll(defs.subList(1, defs.size()));
-
- compilationUnit.defs = newDefs.toList();
- }
- });
- }
- }
-
- /**
- * Insert statement to head of the method.
- *
- * @param block the method body
- * @param originalMethodDecl the method declaration that will add logger statement
- * @param fullExpressionStatement the statement to insert.
- */
- public static void insertStatementToHeadOfMethod(JCTree.JCBlock block,
- JCTree.JCMethodDecl originalMethodDecl,
- JCTree.JCStatement fullExpressionStatement) {
-
- boolean isConstructor = originalMethodDecl.name.toString().equals("<init>");
- ListBuffer<JCTree.JCStatement> statements = new ListBuffer<>();
-
- // In constructor, super(...) or this(...) should be the first statement.
-
- if (isConstructor && !block.stats.isEmpty()) {
-
- boolean startsWithSuper = block.stats.get(0).toString().startsWith("super(");
- boolean startsWithThis = block.stats.get(0).toString().startsWith("this(");
-
- if (startsWithSuper || startsWithThis) {
- statements.add(block.stats.get(0));
- statements.add(fullExpressionStatement);
- statements.addAll(block.stats.subList(1, block.stats.size()));
- } else {
- statements.add(fullExpressionStatement);
- statements.addAll(block.stats);
- }
-
- } else {
- statements.add(fullExpressionStatement);
- statements.addAll(block.stats);
- }
-
- block.stats = statements.toList();
- }
-}
diff --git a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/util/FileUtils.java b/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/util/FileUtils.java
deleted file mode 100644
index 66a897913a..0000000000
--- a/dubbo-annotation-processor/src/main/java/org/apache/dubbo/annotation/util/FileUtils.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.annotation.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.channels.Channels;
-import java.nio.channels.FileChannel;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-import java.util.Scanner;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-/**
- * Utilities of iterating file.
- */
-public final class FileUtils {
-
- private static final Pattern WINDOWS_PATH_PATTERN = Pattern.compile("file:/\\w:/.*");
-
-
- private FileUtils() {
- throw new UnsupportedOperationException("No instance of FileUtils for you! ");
- }
-
- public static List<Path> getAllClassFilePaths(String rootPath) {
- List<Path> targetFolders;
-
- try (Stream<Path> filesStream = Files.walk(Paths.get(rootPath))) {
- targetFolders = filesStream.filter(x -> !x.toFile().isFile())
- .filter(x -> x.toString().contains("classes") && !x.toString().contains("test-classes"))
- .filter(x -> x.toString().contains("\\org\\apache\\dubbo".replace('\\', File.separatorChar)))
- .collect(Collectors.toList());
-
- return targetFolders;
-
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- public static byte[] openFileAsByteArray(String filePath) {
- try (FileChannel fileChannel = FileChannel.open(Paths.get(filePath))) {
-
- ByteBuffer byteBuffer = ByteBuffer.allocate((int) fileChannel.size());
- fileChannel.read(byteBuffer);
-
- return byteBuffer.array();
-
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- public static String openFileAsString(String filePath) {
- return new String(openFileAsByteArray(filePath));
- }
-
- public static String getSourceFilePathFromClassFilePath(String classFilePath) {
-
- String classesPathString = "\\target\\classes\\".replace("\\", File.separator);
- String sourcesPathString = "\\src\\main\\java\\".replace("\\", File.separator);
-
- String sourceFilePathByReplace = classFilePath.replace(classesPathString, sourcesPathString)
- .replace(".class", ".java");
-
- // Inner classes.
- if (sourceFilePathByReplace.lastIndexOf('$') != -1) {
- int dollarCharIndex = sourceFilePathByReplace.lastIndexOf('$');
- String outerClassPath = sourceFilePathByReplace.substring(0, dollarCharIndex);
-
- return outerClassPath + ".java";
- }
-
- return sourceFilePathByReplace;
- }
-
- public static List<String> loadConfigurationFileInResources(String path) {
-
- ReadableByteChannel resourceReadableByteChannel = Channels.newChannel(
- Objects.requireNonNull(FileUtils.class.getClassLoader().getResourceAsStream(path)));
-
- List<String> lines = new ArrayList<>();
-
- try (Scanner scanner = new Scanner(resourceReadableByteChannel)) {
-
- while (scanner.hasNextLine()) {
- String line = scanner.nextLine().trim();
-
- if (!line.startsWith("#") && !line.isEmpty()) {
- lines.add(line);
- }
- }
-
- return lines;
- }
- }
-
- /**
- * <p>Get absolute path of resource.
- *
- * <p>Retained for testing. It won't work in JAR.
- *
- * @param path relative path of resources folder.
- * @return absolute path of resource
- */
- public static String getResourceFilePath(String path) {
- String resourceFilePath = FileUtils.class.getClassLoader().getResource(path).toString();
-
- if (WINDOWS_PATH_PATTERN.matcher(resourceFilePath).matches()) {
- resourceFilePath = resourceFilePath.replace("file:/", "");
- } else {
- resourceFilePath = resourceFilePath.replace("file:", "");
- }
-
- return resourceFilePath;
- }
-
- public static List<Path> getAllFilesInDirectory(Path targetFolder) {
-
- try (Stream<Path> classFilesStream = Files.walk(targetFolder)) {
-
- return classFilesStream
- .filter(x -> x.toFile().isFile())
- .collect(Collectors.toList());
-
- } catch (IOException e) {
- return Collections.emptyList();
- }
- }
-}
diff --git a/dubbo-annotation-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/dubbo-annotation-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor
deleted file mode 100644
index fe51e15be0..0000000000
--- a/dubbo-annotation-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.dubbo.annotation.DispatchingAnnotationProcessor
diff --git a/dubbo-annotation-processor/src/main/resources/handlers.cfg b/dubbo-annotation-processor/src/main/resources/handlers.cfg
deleted file mode 100644
index bcdca71445..0000000000
--- a/dubbo-annotation-processor/src/main/resources/handlers.cfg
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-org.apache.dubbo.annotation.handler.DeprecatedHandler
diff --git a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/annotation/RealInvocationTest.java b/dubbo-annotation-processor/src/test/java/org/apache/dubbo/annotation/RealInvocationTest.java
deleted file mode 100644
index 9544990ffe..0000000000
--- a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/annotation/RealInvocationTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.annotation;
-
-import org.apache.dubbo.annotation.util.FileUtils;
-import org.apache.dubbo.eci.extractor.JavassistUtils;
-
-import javassist.bytecode.ClassFile;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Real invocation test of DispatchingAnnotationProcessor (and DeprecatedHandler).
- */
-class RealInvocationTest {
-
- /**
- * [File name, Should the counter exist in the class file? ]
- */
- private static final Map<String, Boolean> FILES = new HashMap<>(5, 1);
-
- static {
- FILES.put("TestConstructorMethod.java", true);
- FILES.put("TestDeprecatedMethod.java", true);
- FILES.put("TestInterfaceDeprecatedMethod.java", false);
- FILES.put("TestConstructorMethodParentClass.java", false);
- FILES.put("TestConstructorMethodSubClass.java", true);
- }
-
- @Test
- void test() {
-
- for (Map.Entry<String, Boolean> i : FILES.entrySet()) {
- String filePath = FileUtils.getResourceFilePath("org/testing/dm/" + i.getKey());
-
- Assertions.assertTrue(TestingCommons.compileTheSource(filePath), "Compile failed! ");
-
- String classFilePath = filePath.replace(".java", ".class");
- ClassFile classFile = JavassistUtils.openClassFile(classFilePath);
- List<String> stringItems = JavassistUtils.getConstPoolStringItems(classFile.getConstPool());
-
- Assertions.assertEquals(i.getValue(), stringItems.contains("org/apache/dubbo/common/DeprecatedMethodInvocationCounter"));
- }
- }
-}
diff --git a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/annotation/TestingCommons.java b/dubbo-annotation-processor/src/test/java/org/apache/dubbo/annotation/TestingCommons.java
deleted file mode 100644
index cca11f56e6..0000000000
--- a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/annotation/TestingCommons.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.annotation;
-
-import javax.tools.JavaCompiler;
-import javax.tools.JavaFileObject;
-import javax.tools.StandardJavaFileManager;
-import javax.tools.ToolProvider;
-import java.nio.charset.StandardCharsets;
-import java.util.Collections;
-import java.util.Locale;
-
-import static java.util.Arrays.asList;
-
-/**
- * Common code of annotation processor testing.
- */
-public final class TestingCommons {
- private TestingCommons() {
- throw new UnsupportedOperationException("No instance of TestingCommons for you! ");
- }
-
- private static class ObjectHolders {
- static final JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
-
- static final StandardJavaFileManager javaFileManager = javaCompiler.getStandardFileManager(
- null,
- Locale.ROOT,
- StandardCharsets.UTF_8
- );
- }
-
- public static boolean compileTheSource(String filePath) {
-
-
- JavaCompiler.CompilationTask compilationTask = ObjectHolders.javaCompiler.getTask(
- null,
- ObjectHolders.javaFileManager,
- null,
- asList("-parameters", "-Xlint:unchecked", "-nowarn", "-Xlint:deprecation"),
- null,
- getSourceFileJavaFileObject(filePath)
- );
-
- compilationTask.setProcessors(
- Collections.singletonList(new DispatchingAnnotationProcessor())
- );
-
- return compilationTask.call();
- }
-
- private static Iterable<? extends JavaFileObject> getSourceFileJavaFileObject(String filePath) {
-
- return ObjectHolders.javaFileManager.getJavaFileObjects(filePath);
- }
-}
diff --git a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounter.java b/dubbo-annotation-processor/src/test/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounter.java
deleted file mode 100644
index cc34299c81..0000000000
--- a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.common;
-
-/**
- * Reduced mock of Deprecated method invocation counter.
- */
-public final class DeprecatedMethodInvocationCounter {
- private DeprecatedMethodInvocationCounter() {
- throw new UnsupportedOperationException("No instance of DeprecatedMethodInvocationCounter for you! ");
- }
-
- /**
- * Invoked by (modified) deprecated method.
- *
- * @param methodDefinition filled by annotation processor. (like 'org.apache.dubbo.common.URL.getServiceName()')
- */
- public static void onDeprecatedMethodCalled(String methodDefinition) {
- // Intended to be empty.
- }
-}
diff --git a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/eci/extractor/JavassistUtils.java b/dubbo-annotation-processor/src/test/java/org/apache/dubbo/eci/extractor/JavassistUtils.java
deleted file mode 100644
index 3a2475591a..0000000000
--- a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/eci/extractor/JavassistUtils.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.eci.extractor;
-
-import org.apache.dubbo.annotation.util.FileUtils;
-
-import javassist.bytecode.ClassFile;
-import javassist.bytecode.ConstPool;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Utilities of Javassist.
- */
-public class JavassistUtils {
- private static final Map<Class, Field> stringFieldCache = new HashMap<>(2, 1);
-
- private static Method getItemMethodCache = null;
-
- private JavassistUtils() {
- throw new UnsupportedOperationException("No instance of JavassistUtils for you! ");
- }
-
- public static ClassFile openClassFile(String classFilePath) {
- try {
- byte[] clsB = FileUtils.openFileAsByteArray(classFilePath);
- return new ClassFile(new DataInputStream(new ByteArrayInputStream(clsB)));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- static List<Object> getConstPoolItems(ConstPool cp) {
- List<Object> objects = new ArrayList<>(cp.getSize());
-
- for (int i = 0; i < cp.getSize(); i++) {
- objects.add(getConstPoolItem(cp, i));
- }
-
- return objects;
- }
-
- /**
- * Calls ConstPool.getItem() method reflectively.
- *
- * @param cp The ConstPool object.
- * @param index The index of items.
- * @return The XXXInfo Object. Since it's invisible, return Object instead.
- */
- static Object getConstPoolItem(ConstPool cp, int index) {
-
- if (getItemMethodCache == null) {
- Class<ConstPool> cpc = ConstPool.class;
- Method getItemMethod;
- try {
- getItemMethod = cpc.getDeclaredMethod("getItem", int.class);
- getItemMethod.setAccessible(true);
-
- getItemMethodCache = getItemMethod;
-
- } catch (NoSuchMethodException e) {
- throw new RuntimeException("Javassist internal method changed.", e);
- }
- }
-
- try {
- return getItemMethodCache.invoke(cp, index);
- } catch (IllegalAccessException | InvocationTargetException e) {
- throw new RuntimeException("Javassist internal method changed.", e);
- }
- }
-
- public static List<String> getConstPoolStringItems(ConstPool cp) {
- List<Object> objects = getConstPoolItems(cp);
- List<String> stringItems = new ArrayList<>(cp.getSize());
-
- for (Object item : objects) {
-
- Field stringField;
-
- if (item != null) {
- stringField = getStringFieldInConstPoolItems(item);
-
- if (stringField == null) {
- continue;
- }
-
- Object fieldData;
-
- try {
- fieldData = stringField.get(item);
- } catch (IllegalAccessException e) {
- throw new RuntimeException("Javassist internal field changed.", e);
- }
-
- if (fieldData.getClass() == String.class) {
- stringItems.add((String) fieldData);
- }
- }
- }
-
- return stringItems;
- }
-
- /**
- * Obtain the 'string' field in Utf8Info and StringInfo.
- *
- * @param item The instance of Utf8Info and StringInfo.
- * @return 'string' field's value
- */
- static Field getStringFieldInConstPoolItems(Object item) {
- if (stringFieldCache.containsKey(item.getClass())) {
- return stringFieldCache.get(item.getClass());
- } else {
- try {
- Field stringField = item.getClass().getDeclaredField("string");
- stringField.setAccessible(true);
- stringFieldCache.put(item.getClass(), stringField);
-
- return stringField;
- } catch (NoSuchFieldException ignored) {
- }
- }
-
- return null;
- }
-}
diff --git a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/eci/util/ReflectUtils.java b/dubbo-annotation-processor/src/test/java/org/apache/dubbo/eci/util/ReflectUtils.java
deleted file mode 100644
index 681bdc0441..0000000000
--- a/dubbo-annotation-processor/src/test/java/org/apache/dubbo/eci/util/ReflectUtils.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.eci.util;
-
-import java.lang.reflect.Field;
-
-/**
- * Tools of reflective operations.
- */
-public final class ReflectUtils {
- private ReflectUtils() {
- throw new UnsupportedOperationException("No instance of ReflectUtils for you! ");
- }
-
- /**
- * Searches (a private) field in super classes recursively.
- *
- * @param cls the actual type
- * @param name the field name
- * @return the corresponding Field object, or null if the field does not exist.
- */
- public static Field getDeclaredFieldRecursively(Class cls, String name) {
- try {
- Field indexField = cls.getDeclaredField(name);
- indexField.setAccessible(true);
-
- return indexField;
- } catch (NoSuchFieldException e) {
- if (cls == Object.class) {
- return null;
- }
-
- return getDeclaredFieldRecursively(cls.getSuperclass(), name);
- }
- }
-}
diff --git a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethod.java b/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethod.java
deleted file mode 100644
index c705ca8d13..0000000000
--- a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethod.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.testing.dm;
-
-public class TestConstructorMethod {
- @Deprecated
- TestConstructorMethod() {
- this("1");
- }
-
- TestConstructorMethod(String s) {
- }
-}
diff --git a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethodParentClass.java b/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethodParentClass.java
deleted file mode 100644
index 8e14e67c51..0000000000
--- a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethodParentClass.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.testing.dm;
-
-public class TestConstructorMethodParentClass {
-
- public TestConstructorMethodParentClass() {
- }
-
- public TestConstructorMethodParentClass(String s) {
- }
-}
diff --git a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethodSubClass.java b/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethodSubClass.java
deleted file mode 100644
index 3b71626c9b..0000000000
--- a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestConstructorMethodSubClass.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.testing.dm;
-
-public class TestConstructorMethodSubClass extends TestConstructorMethodParentClass {
-
- @Deprecated
- public TestConstructorMethodSubClass(int i) {
- super();
- }
-
- public TestConstructorMethodSubClass(String s) {
- super(s);
- }
-}
diff --git a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestDeprecatedMethod.java b/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestDeprecatedMethod.java
deleted file mode 100644
index 6360c3e137..0000000000
--- a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestDeprecatedMethod.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.testing.dm;
-
-public class TestDeprecatedMethod {
-
- @Deprecated
- public void m1() {
- System.out.println("M1! ");
- }
-}
diff --git a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestInterfaceDeprecatedMethod.java b/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestInterfaceDeprecatedMethod.java
deleted file mode 100644
index a2ce7af598..0000000000
--- a/dubbo-annotation-processor/src/test/resources/org/testing/dm/TestInterfaceDeprecatedMethod.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.testing.dm;
-
-public interface TestInterfaceDeprecatedMethod {
-
- @Deprecated
- public void m1();
-}
diff --git a/dubbo-build-tools/pom.xml b/dubbo-build-tools/pom.xml
index 5c3b83e2dd..28bae806b1 100644
--- a/dubbo-build-tools/pom.xml
+++ b/dubbo-build-tools/pom.xml
@@ -13,8 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://maven.apache.org/POM/4.0.0"
+<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -24,7 +24,7 @@
<packaging>jar</packaging>
<properties>
- <maven.deploy.skip>true</maven.deploy.skip>
+ <maven.deploy.skip>true</maven.deploy.skip>
</properties>
-</project>
+</project>
\ No newline at end of file
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounter.java b/dubbo-common/src/main/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounter.java
deleted file mode 100644
index b4245c5bfa..0000000000
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.common;
-
-import org.apache.dubbo.common.constants.DeprecatedMethodInvocationCounterConstants;
-import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
-import org.apache.dubbo.common.logger.LoggerFactory;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.LongAdder;
-
-/**
- * Deprecated method invocation counter, which is used by annotation processor.
- * <p>
- * If an IDE says it is unused, just ignore it.
- */
-public final class DeprecatedMethodInvocationCounter {
- private DeprecatedMethodInvocationCounter() {
- throw new UnsupportedOperationException("No instance of DeprecatedMethodInvocationCounter for you! ");
- }
-
- private static final ConcurrentHashMap<String, LongAdder> COUNTERS = new ConcurrentHashMap<>();
-
- private static final ErrorTypeAwareLogger LOGGER = LoggerFactory.getErrorTypeAwareLogger(DeprecatedMethodInvocationCounter.class);
-
- /**
- * Invoked by (modified) deprecated method.
- *
- * @param methodDefinition filled by annotation processor. (like 'org.apache.dubbo.common.URL.getServiceName()')
- */
- public static void onDeprecatedMethodCalled(String methodDefinition) {
- if (!hasThisMethodInvoked(methodDefinition)) {
- LOGGER.warn(
- DeprecatedMethodInvocationCounterConstants.ERROR_CODE,
- DeprecatedMethodInvocationCounterConstants.POSSIBLE_CAUSE,
- DeprecatedMethodInvocationCounterConstants.EXTENDED_MESSAGE,
- DeprecatedMethodInvocationCounterConstants.LOGGER_MESSAGE_PREFIX + methodDefinition
- );
- }
-
- increaseInvocationCount(methodDefinition);
- }
-
- private static void increaseInvocationCount(String methodDefinition) {
- COUNTERS.computeIfAbsent(methodDefinition, k -> new LongAdder());
- LongAdder adder = COUNTERS.get(methodDefinition);
-
- adder.increment();
- }
-
- public static boolean hasThisMethodInvoked(String methodDefinition) {
- return COUNTERS.containsKey(methodDefinition);
- }
-
- public static Map<String, Integer> getInvocationRecord() {
- // Perform a deep-copy to avoid concurrent issues.
- HashMap<String, Integer> copyOfCounters = new HashMap<>();
-
- for (Map.Entry<String, LongAdder> entry : COUNTERS.entrySet()) {
- copyOfCounters.put(entry.getKey(), entry.getValue().intValue());
- }
-
- return Collections.unmodifiableMap(copyOfCounters);
- }
-}
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/DeprecatedMethodInvocationCounterConstants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/DeprecatedMethodInvocationCounterConstants.java
deleted file mode 100644
index f747568491..0000000000
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/DeprecatedMethodInvocationCounterConstants.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.common.constants;
-
-/**
- * Constants of Deprecated Method Invocation Counter.
- */
-public final class DeprecatedMethodInvocationCounterConstants {
- private DeprecatedMethodInvocationCounterConstants() {
- throw new UnsupportedOperationException("No instance of DeprecatedMethodInvocationCounterConstants for you! ");
- }
-
- public static final String ERROR_CODE = LoggerCodeConstants.COMMON_DEPRECATED_METHOD_INVOKED;
-
- public static final String POSSIBLE_CAUSE = "invocation of deprecated method";
-
- public static final String EXTENDED_MESSAGE = "";
-
- public static final String LOGGER_MESSAGE_PREFIX = "Deprecated method invoked. The method is ";
-}
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/LoggerCodeConstants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/LoggerCodeConstants.java
index fb66b5a8c9..7a598ddddf 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/LoggerCodeConstants.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/LoggerCodeConstants.java
@@ -94,11 +94,6 @@ public interface LoggerCodeConstants {
String COMMON_NOT_FOUND_TRACER_DEPENDENCY = "0-29";
- /**
- * Used in annotation processor to indicate a deprecated method is invoked.
- */
- String COMMON_DEPRECATED_METHOD_INVOKED = "0-99";
-
// Registry module
String REGISTRY_ADDRESS_INVALID = "1-1";
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounterTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounterTest.java
deleted file mode 100644
index b1ad0943a7..0000000000
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/DeprecatedMethodInvocationCounterTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.common;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Map;
-
-/**
- * Tests of DeprecatedMethodInvocationCounter.
- */
-class DeprecatedMethodInvocationCounterTest {
-
- private static final String METHOD_DEFINITION = "org.apache.dubbo.common.URL.getServiceName()";
-
- @Test
- void testRealInvocation() {
- Assertions.assertFalse(DeprecatedMethodInvocationCounter.hasThisMethodInvoked(METHOD_DEFINITION));
-
- // Invoke a deprecated method.
- URL url = URL.valueOf("dubbo://admin:hello1234@10.20.130.230:20880/context/path#index?version=1.0.0&id=org.apache.dubbo.config.RegistryConfig#0");
-
- // Not a typo, intentionally invoke twice.
- invokeDeprecatedMethod(url);
- invokeDeprecatedMethod(url);
-
- Assertions.assertTrue(DeprecatedMethodInvocationCounter.hasThisMethodInvoked(METHOD_DEFINITION));
-
- Map<String, Integer> record = DeprecatedMethodInvocationCounter.getInvocationRecord();
- Assertions.assertEquals(2, record.get(METHOD_DEFINITION));
- }
-
- private void invokeDeprecatedMethod(URL url) {
- try {
- Method m = URL.class.getMethod("getServiceName");
- m.invoke(url);
- } catch (InvocationTargetException | IllegalAccessException | NoSuchMethodException e) {
- throw new RuntimeException(e);
- }
- }
-}
diff --git a/dubbo-config/dubbo-config-api/pom.xml b/dubbo-config/dubbo-config-api/pom.xml
index d21d6e5f54..3b00dbb1a0 100644
--- a/dubbo-config/dubbo-config-api/pom.xml
+++ b/dubbo-config/dubbo-config-api/pom.xml
@@ -259,6 +259,5 @@
<scope>test</scope>
</dependency>
-
</dependencies>
</project>
diff --git a/dubbo-metadata/dubbo-metadata-processor/pom.xml b/dubbo-metadata/dubbo-metadata-processor/pom.xml
index 0945a6d434..859d057abc 100644
--- a/dubbo-metadata/dubbo-metadata-processor/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-processor/pom.xml
@@ -161,17 +161,4 @@
<scope>test</scope>
</dependency>
</dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <fork>true</fork>
- <proc>none</proc>
- </configuration>
- </plugin>
- </plugins>
- </build>
</project>
diff --git a/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java b/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java
index 806e7090b2..aa0a264b36 100644
--- a/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java
+++ b/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java
@@ -51,7 +51,6 @@ class FileTest {
ignoredModules.add(Pattern.compile("dubbo-parent"));
ignoredModules.add(Pattern.compile("dubbo-core-spi"));
ignoredModules.add(Pattern.compile("dubbo-demo.*"));
- ignoredModules.add(Pattern.compile("dubbo-annotation-processor"));
ignoredArtifacts.add(Pattern.compile("dubbo-demo.*"));
ignoredArtifacts.add(Pattern.compile("dubbo-test.*"));
@@ -67,7 +66,6 @@ class FileTest {
ignoredModulesInDubboAll.add(Pattern.compile("dubbo-native.*"));
ignoredModulesInDubboAll.add(Pattern.compile("dubbo-config-spring6.*"));
ignoredModulesInDubboAll.add(Pattern.compile(".*spring-boot.*"));
- ignoredModulesInDubboAll.add(Pattern.compile("dubbo-annotation-processor.*"));
ignoredModulesInDubboAll.add(Pattern.compile("dubbo-maven-plugin"));
}
diff --git a/pom.xml b/pom.xml
index 5801f45d56..8bcf596193 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,7 +125,6 @@
<maven_flatten_version>1.5.0</maven_flatten_version>
<maven_enforce_version>3.3.0</maven_enforce_version>
<maven_antrun_version>3.1.0</maven_antrun_version>
- <dubbo_annotation_processor_version>1.0.0</dubbo_annotation_processor_version>
<maven_os_plugin_version>1.7.1</maven_os_plugin_version>
<maven_protobuf_plugin_version>0.6.1</maven_protobuf_plugin_version>
<arguments />
@@ -141,7 +140,6 @@
</properties>
<modules>
- <module>dubbo-annotation-processor</module>
<module>dubbo-common</module>
<module>dubbo-container</module>
<module>dubbo-compiler</module>
@@ -184,14 +182,6 @@
</dependencyManagement>
<dependencies>
-
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-annotation-processor</artifactId>
- <version>${dubbo_annotation_processor_version}</version>
- <optional>true</optional>
- </dependency>
-
<!--JUnit Jupiter Engine to depend on the JUnit5 engine and JUnit 5 API -->
<dependency>
<groupId>org.junit.jupiter</groupId>
@@ -726,6 +716,7 @@
<version>${maven_compiler_version}</version>
<configuration>
<compilerArgs>
+ <compilerArg>-proc:none</compilerArg>
<compilerArg>-parameters</compilerArg>
</compilerArgs>
<fork>true</fork>