Skip to content

Commit

Permalink
Add AnnotationKeyMatchers
Browse files Browse the repository at this point in the history
  • Loading branch information
lioolli committed Sep 10, 2015
1 parent f906198 commit aef9c76
Show file tree
Hide file tree
Showing 16 changed files with 109 additions and 87 deletions.
Expand Up @@ -21,46 +21,4 @@
public interface AnnotationKeyMatcher {

public boolean matches(int code);

public static class ExactMatcher implements AnnotationKeyMatcher {
private final int code;

public ExactMatcher(AnnotationKey key) {
this.code = key.getCode();
}

@Override
public boolean matches(int code) {
return this.code == code;
}

@Override
public String toString() {
return "ExactMatcher(" + code + ")";
}
}

public static final AnnotationKeyMatcher NOTHING_MATCHER = new AnnotationKeyMatcher() {
@Override
public boolean matches(int code) {
return false;
}

@Override
public String toString() {
return "NOTHING_MATCHER";
}
};

public static final AnnotationKeyMatcher ARGS_MATCHER = new AnnotationKeyMatcher() {
@Override
public boolean matches(int code) {
return AnnotationKey.isArgsKey(code);
}

@Override
public String toString() {
return "ARGS_MATCHER";
}
};
}
@@ -0,0 +1,72 @@
/**
* Copyright 2014 NAVER Corp.
* Licensed 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 com.navercorp.pinpoint.common.trace;


/**
* @author Jongho Moon
*
*/
public final class AnnotationKeyMatchers {

private static class ExactMatcher implements AnnotationKeyMatcher {
private final int code;

public ExactMatcher(AnnotationKey key) {
this.code = key.getCode();
}

@Override
public boolean matches(int code) {
return this.code == code;
}

@Override
public String toString() {
return "ExactMatcher(" + code + ")";
}
}

public static final AnnotationKeyMatcher NOTHING_MATCHER = new AnnotationKeyMatcher() {
@Override
public boolean matches(int code) {
return false;
}

@Override
public String toString() {
return "NOTHING_MATCHER";
}
};
public static final AnnotationKeyMatcher ARGS_MATCHER = new AnnotationKeyMatcher() {
@Override
public boolean matches(int code) {
return AnnotationKey.isArgsKey(code);
}

@Override
public String toString() {
return "ARGS_MATCHER";
}
};

private AnnotationKeyMatchers() { }

public static AnnotationKeyMatcher exact(AnnotationKey key) {
return new AnnotationKeyMatchers.ExactMatcher(key);
}


}
Expand Up @@ -16,10 +16,9 @@

package com.navercorp.pinpoint.common.util;

import static com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher.*;

import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.ServiceType;

/**
Expand All @@ -33,16 +32,13 @@ public class DefaultDisplayArgument {
// FIXME replaced with IBATIS_SPRING under IBatis Plugin - kept for backwards compatibility
public static final DisplayArgumentMatcher SPRING_ORM_IBATIS_MATCHER = createArgumentMatcher(ServiceType.SPRING_ORM_IBATIS, AnnotationKey.ARGS0);

public static final DisplayArgumentMatcher MEMCACHED_MATCHER = createArgumentMatcher(ServiceType.MEMCACHED, ARGS_MATCHER);
public static final DisplayArgumentMatcher MEMCACHED_MATCHER = createArgumentMatcher(ServiceType.MEMCACHED, AnnotationKeyMatchers.ARGS_MATCHER);

public static final DisplayArgumentMatcher HTTP_CLIENT_MATCHER = createArgumentMatcher(ServiceType.ASYNC_HTTP_CLIENT, AnnotationKey.HTTP_URL);
public static final DisplayArgumentMatcher HTTP_CLIENT_INTERNAL_MATCHER = createArgumentMatcher(ServiceType.ASYNC_HTTP_CLIENT_INTERNAL, AnnotationKey.HTTP_INTERNAL_DISPLAY);

public static final DisplayArgumentMatcher COLLECTOR_MATCHER = createArgumentMatcher(ServiceType.COLLECTOR, AnnotationKey.ARGS0);


private static AnnotationKeyMatcher createMatcher(AnnotationKey displayArgument) {
return new AnnotationKeyMatcher.ExactMatcher(displayArgument);
return AnnotationKeyMatchers.exact(displayArgument);
}

private static DisplayArgumentMatcher createArgumentMatcher(ServiceType serviceType, AnnotationKey annotationKey) {
Expand Down
Expand Up @@ -21,7 +21,7 @@
import org.junit.Assert;
import org.junit.Test;

import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.HistogramSchema;
import com.navercorp.pinpoint.common.trace.ServiceType;

Expand Down Expand Up @@ -60,7 +60,7 @@ public void testNotFindDisplayArgumentMatcher() throws IllegalAccessException {
StaticFieldLookUp<DisplayArgumentMatcher> staticFieldLookUp = new StaticFieldLookUp<DisplayArgumentMatcher>(DefaultDisplayArgument.class, DisplayArgumentMatcher.class);
List<DisplayArgumentMatcher> lookup = staticFieldLookUp.lookup();

DisplayArgumentMatcher notExist = new DisplayArgumentMatcher(ServiceType.UNDEFINED, AnnotationKeyMatcher.NOTHING_MATCHER);
DisplayArgumentMatcher notExist = new DisplayArgumentMatcher(ServiceType.UNDEFINED, AnnotationKeyMatchers.NOTHING_MATCHER);
Assert.assertFalse(findType(lookup, notExist));
}

Expand Down
Expand Up @@ -14,11 +14,10 @@
*/
package com.navercorp.pinpoint.plugin.arcus;

import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

import static com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher.*;

/**
* @author Jongho Moon
*
Expand All @@ -27,7 +26,7 @@ public class ArcusTypeProvider implements TraceMetadataProvider, ArcusConstants

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(ARCUS, ARGS_MATCHER);
context.addServiceType(ARCUS, AnnotationKeyMatchers.ARGS_MATCHER);
context.addServiceType(ARCUS_FUTURE_GET);
context.addServiceType(ARCUS_EHCACHE_FUTURE_GET);
}
Expand Down
Expand Up @@ -15,7 +15,7 @@
package com.navercorp.pinpoint.plugin.jdbc.cubrid;

import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

Expand All @@ -27,8 +27,8 @@ public class CubridTypeProvider implements TraceMetadataProvider, CubridConstant

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(CUBRID, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.ARGS0));
context.addServiceType(CUBRID_EXECUTE_QUERY, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.ARGS0));
context.addServiceType(CUBRID, AnnotationKeyMatchers.exact(AnnotationKey.ARGS0));
context.addServiceType(CUBRID_EXECUTE_QUERY, AnnotationKeyMatchers.exact(AnnotationKey.ARGS0));
}

}
Expand Up @@ -16,7 +16,7 @@
package com.navercorp.pinpoint.plugin.google.httpclient;

import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

Expand All @@ -29,6 +29,6 @@ public class HttpClientTypeProvider implements TraceMetadataProvider, HttpClient

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(HTTP_CLIENT_INTERNAL, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.HTTP_INTERNAL_DISPLAY));
context.addServiceType(HTTP_CLIENT_INTERNAL, AnnotationKeyMatchers.exact(AnnotationKey.HTTP_INTERNAL_DISPLAY));
}
}
Expand Up @@ -16,7 +16,7 @@
package com.navercorp.pinpoint.plugin.httpclient3;

import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

Expand All @@ -29,7 +29,7 @@ public class HttpClient3TypeProvider implements TraceMetadataProvider, HttpClien

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(HTTP_CLIENT_3, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.HTTP_URL));
context.addServiceType(HTTP_CLIENT_3_INTERNAL, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.HTTP_INTERNAL_DISPLAY));
context.addServiceType(HTTP_CLIENT_3, AnnotationKeyMatchers.exact(AnnotationKey.HTTP_URL));
context.addServiceType(HTTP_CLIENT_3_INTERNAL, AnnotationKeyMatchers.exact(AnnotationKey.HTTP_INTERNAL_DISPLAY));
}
}
Expand Up @@ -16,7 +16,7 @@
package com.navercorp.pinpoint.plugin.httpclient4;

import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

Expand All @@ -29,7 +29,7 @@ public class HttpClient4TypeProvider implements TraceMetadataProvider, HttpClien

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(HTTP_CLIENT_4, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.HTTP_URL));
context.addServiceType(HTTP_CLIENT_4_INTERNAL, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.HTTP_INTERNAL_DISPLAY));
context.addServiceType(HTTP_CLIENT_4, AnnotationKeyMatchers.exact(AnnotationKey.HTTP_URL));
context.addServiceType(HTTP_CLIENT_4_INTERNAL, AnnotationKeyMatchers.exact(AnnotationKey.HTTP_INTERNAL_DISPLAY));
}
}
Expand Up @@ -16,8 +16,7 @@

package com.navercorp.pinpoint.plugin.ibatis;

import static com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher.*;

import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

Expand All @@ -28,7 +27,7 @@ public class IBatisMetadataProvider implements TraceMetadataProvider {

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(IBatisPlugin.IBATIS, ARGS_MATCHER);
context.addServiceType(IBatisPlugin.IBATIS_SPRING, ARGS_MATCHER);
context.addServiceType(IBatisPlugin.IBATIS, AnnotationKeyMatchers.ARGS_MATCHER);
context.addServiceType(IBatisPlugin.IBATIS_SPRING, AnnotationKeyMatchers.ARGS_MATCHER);
}
}
Expand Up @@ -15,9 +15,9 @@
package com.navercorp.pinpoint.plugin.jdk.http;

import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher.ExactMatcher;

/**
* @author Jongho Moon
Expand All @@ -27,7 +27,7 @@ public class JdkHttpTypeProvider implements TraceMetadataProvider, JdkHttpConsta

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(SERVICE_TYPE, new ExactMatcher(AnnotationKey.HTTP_URL));
context.addServiceType(SERVICE_TYPE, AnnotationKeyMatchers.exact(AnnotationKey.HTTP_URL));
}

}
Expand Up @@ -15,7 +15,7 @@
package com.navercorp.pinpoint.plugin.jdbc.jtds;

import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

Expand All @@ -27,8 +27,8 @@ public class JtdsTypeProvider implements TraceMetadataProvider, JtdsConstants {

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(MSSQL, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.ARGS0));
context.addServiceType(MSSQL_EXECUTE_QUERY, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.ARGS0));
context.addServiceType(MSSQL, AnnotationKeyMatchers.exact(AnnotationKey.ARGS0));
context.addServiceType(MSSQL_EXECUTE_QUERY, AnnotationKeyMatchers.exact(AnnotationKey.ARGS0));
}

}
Expand Up @@ -18,6 +18,7 @@

import static com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher.*;

import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

Expand All @@ -28,7 +29,7 @@ public class MyBatisMetadataProvider implements TraceMetadataProvider {

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(MyBatisPlugin.MYBATIS, ARGS_MATCHER);
context.addServiceType(MyBatisPlugin.MYBATIS, AnnotationKeyMatchers.ARGS_MATCHER);
}

}
Expand Up @@ -15,7 +15,7 @@
package com.navercorp.pinpoint.plugin.jdbc.mysql;

import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher;
import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

Expand All @@ -27,8 +27,8 @@ public class MySqlTypeProvider implements TraceMetadataProvider, MySqlConstants

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(MYSQL, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.ARGS0));
context.addServiceType(MYSQL_EXECUTE_QUERY, new AnnotationKeyMatcher.ExactMatcher(AnnotationKey.ARGS0));
context.addServiceType(MYSQL, AnnotationKeyMatchers.exact(AnnotationKey.ARGS0));
context.addServiceType(MYSQL_EXECUTE_QUERY, AnnotationKeyMatchers.exact(AnnotationKey.ARGS0));
}

}
Expand Up @@ -15,15 +15,14 @@
*/
package com.navercorp.pinpoint.plugin.redis;

import com.navercorp.pinpoint.common.trace.AnnotationKeyMatchers;
import com.navercorp.pinpoint.common.trace.TraceMetadataProvider;
import com.navercorp.pinpoint.common.trace.TraceMetadataSetupContext;

import static com.navercorp.pinpoint.common.trace.AnnotationKeyMatcher.*;

public class RedisTypeProvider implements TraceMetadataProvider, RedisConstants{

@Override
public void setup(TraceMetadataSetupContext context) {
context.addServiceType(REDIS, ARGS_MATCHER);
context.addServiceType(REDIS, AnnotationKeyMatchers.ARGS_MATCHER);
}
}

0 comments on commit aef9c76

Please sign in to comment.