This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch kezhenxu94-patch-1
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit 445ae6c43ae2a0b79fc10d8ac6364bc887a5fe87
Author: kezhenxu94 <kezhenx...@apache.org>
AuthorDate: Sun Aug 11 12:32:57 2019 +0800

    Add attention note to plugin development guide
---
 docs/en/guides/Java-Plugin-Development-Guide.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/docs/en/guides/Java-Plugin-Development-Guide.md 
b/docs/en/guides/Java-Plugin-Development-Guide.md
index e5ee13a..fe08dbb 100644
--- a/docs/en/guides/Java-Plugin-Development-Guide.md
+++ b/docs/en/guides/Java-Plugin-Development-Guide.md
@@ -225,7 +225,8 @@ ClassMatch represents how to match the target classes, 
there are 4 ways:
 * byHierarchyMatch, through the class's parent classes or interfaces
 
 **Attentions**:
-* Forbid to use `*.class.getName()` to get the class String name. Recommend 
you to use literal String. This is for 
+* Never use `ThirdPartyClass.class` in the instrumentation definitions, such 
as `takesArguments(ThirdPartyClass.class)`, or 
`byName(ThirdPartyClass.class.getName())`, because of the fact that 
`ThirdPartyClass` dose not necessarily exist in the target application and this 
will break the agent; we have `import` checks to help on checking this in CI, 
but it doesn't cover all scenarios of this limitation, so never try to work 
around this limitation by something like using full-qualified-clas [...]
+* Even you are perfectly sure that the class to be intercepted exists in the 
target application (such as JDK classes), still, don't use `*.class.getName()` 
to get the class String name. Recommend you to use literal String. This is for 
 avoiding ClassLoader issues.
 * `by*AnnotationMatch` doesn't support the inherited annotations.
 * Don't recommend to use `byHierarchyMatch`, unless it is really necessary. 
Because using it may trigger intercepting 

Reply via email to