1+ /*
2+ * Licensed to the Apache Software Foundation (ASF) under one or more
3+ * contributor license agreements. See the NOTICE file distributed with
4+ * this work for additional information regarding copyright ownership.
5+ * The ASF licenses this file to You under the Apache License, Version 2.0
6+ * (the "License"); you may not use this file except in compliance with
7+ * the License. You may obtain a copy of the License at
8+ *
9+ * http://www.apache.org/licenses/LICENSE-2.0
10+ *
11+ * Unless required by applicable law or agreed to in writing, software
12+ * distributed under the License is distributed on an "AS IS" BASIS,
13+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+ * See the License for the specific language governing permissions and
15+ * limitations under the License.
16+ *
17+ */
18+
19+ package org .apache .skywalking .apm .plugin .mongodb .v3 .define .readOperation ;
20+
21+ import net .bytebuddy .description .method .MethodDescription ;
22+ import net .bytebuddy .matcher .ElementMatcher ;
23+ import org .apache .skywalking .apm .agent .core .plugin .interceptor .ConstructorInterceptPoint ;
24+ import org .apache .skywalking .apm .agent .core .plugin .interceptor .InstanceMethodsInterceptPoint ;
25+ import org .apache .skywalking .apm .agent .core .plugin .interceptor .enhance .ClassInstanceMethodsEnhancePluginDefine ;
26+ import org .apache .skywalking .apm .agent .core .plugin .match .ClassMatch ;
27+ import org .apache .skywalking .apm .agent .core .plugin .match .NameMatch ;
28+
29+ import static net .bytebuddy .matcher .ElementMatchers .takesArguments ;
30+
31+ public class ChangeStreamOperationInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
32+
33+ private static final String ENHANCE_CLASS = "com.mongodb.operation.ChangeStreamOperation" ;
34+
35+ private static final String INTERCEPTOR_CLASS = "org.apache.skywalking.apm.plugin.mongodb.v3.interceptor.operation.OperationNamespaceConstructInterceptor" ;
36+
37+ @ Override
38+ protected ClassMatch enhanceClass () {
39+ return NameMatch .byName (ENHANCE_CLASS );
40+ }
41+
42+ @ Override
43+ public ConstructorInterceptPoint [] getConstructorsInterceptPoints () {
44+ return new ConstructorInterceptPoint [] {
45+ new ConstructorInterceptPoint () {
46+
47+ @ Override
48+ public ElementMatcher <MethodDescription > getConstructorMatcher () {
49+ return takesArguments (5 );
50+ }
51+
52+ @ Override
53+ public String getConstructorInterceptor () {
54+ return INTERCEPTOR_CLASS ;
55+ }
56+ }
57+ };
58+ }
59+
60+ @ Override
61+ public InstanceMethodsInterceptPoint [] getInstanceMethodsInterceptPoints () {
62+ return new InstanceMethodsInterceptPoint [0 ];
63+ }
64+
65+ }
0 commit comments