Here are the examples of the java api com.alibaba.chaosblade.exec.common.model.matcher.MatcherModel.add() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
9 Examples
19
View Complete Implementation : MethodEnhancerForAfter.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
@Override
public EnhancerModel doAfterAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments, Object returnObject) throws Exception {
MatcherModel matcherModel = new MatcherModel();
matcherModel.add(MethodConstant.CLreplaced_MATCHER_NAME, clreplacedName);
matcherModel.add(MethodConstant.METHOD_MATCHER_NAME, method.getName());
matcherModel.add(MethodConstant.AFTER_METHOD_FLAG, "true");
EnhancerModel model = new EnhancerModel(clreplacedLoader, matcherModel);
model.setTarget(ModelConstant.JVM_TARGET).setClreplacedLoader(clreplacedLoader).setObject(object).setMethod(method).setMethodArguments(methodArguments).setReturnValue(returnObject);
return model;
}
19
View Complete Implementation : MethodEnhancerForBefore.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
@Override
public EnhancerModel doBeforeAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments) throws Exception {
MatcherModel matcherModel = new MatcherModel();
matcherModel.add(MethodConstant.CLreplaced_MATCHER_NAME, clreplacedName);
matcherModel.add(MethodConstant.METHOD_MATCHER_NAME, method.getName());
EnhancerModel model = new EnhancerModel(clreplacedLoader, matcherModel);
model.setTarget(ModelConstant.JVM_TARGET).setClreplacedLoader(clreplacedLoader).setObject(object).setMethod(method).setMethodArguments(methodArguments);
return model;
}
19
View Complete Implementation : DubboEnhancer.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
@Override
public EnhancerModel doBeforeAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments) throws Exception {
if (method.getName().equals(RECEIVED_METHOD)) {
// received method for thread pool experiment
DubboThreadPoolFullExecutor.INSTANCE.setWrappedChannelHandler(object);
return null;
}
Object invocation = methodArguments[0];
if (object == null || invocation == null) {
LOGGER.warn("The necessary parameter is null.");
return null;
}
Object url = getUrl(object, invocation);
if (url == null) {
LOGGER.warn("Url is null, can not get necessary values.");
return null;
}
String appName = ReflectUtil.invokeMethod(url, GET_PARAMETER, new Object[] { APPLICATION_KEY }, false);
String methodName = ReflectUtil.invokeMethod(invocation, GET_METHOD_NAME, new Object[0], false);
String[] serviceAndVersionGroup = getServiceNameWithVersionGroup(invocation, url);
MatcherModel matcherModel = new MatcherModel();
matcherModel.add(DubboConstant.APP_KEY, appName);
matcherModel.add(DubboConstant.SERVICE_KEY, serviceAndVersionGroup[0]);
matcherModel.add(DubboConstant.VERSION_KEY, serviceAndVersionGroup[1]);
if (2 < serviceAndVersionGroup.length && null != serviceAndVersionGroup[2]) {
matcherModel.add(DubboConstant.GROUP_KEY, serviceAndVersionGroup[2]);
}
matcherModel.add(DubboConstant.METHOD_KEY, methodName);
int timeout = getTimeout(methodName, object, invocation);
matcherModel.add(DubboConstant.TIMEOUT_KEY, timeout + "");
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("dubbo matchers: {}", JSON.toJSONString(matcherModel));
}
EnhancerModel enhancerModel = new EnhancerModel(clreplacedLoader, matcherModel);
enhancerModel.setTimeoutExecutor(createTimeoutExecutor(clreplacedLoader, timeout, clreplacedName));
postDoBeforeAdvice(enhancerModel);
return enhancerModel;
}
19
View Complete Implementation : HttpEnhancer.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
@Override
public EnhancerModel doBeforeAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments) throws Exception {
MatcherModel matcherModel = new MatcherModel();
matcherModel.add(HttpConstant.URI_KEY, getUrl(methodArguments));
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("http matchers: {}", JSON.toJSONString(matcherModel));
}
EnhancerModel enhancerModel = new EnhancerModel(clreplacedLoader, matcherModel);
postDoBeforeAdvice(enhancerModel);
return new EnhancerModel(clreplacedLoader, matcherModel);
}
19
View Complete Implementation : JedisEnhancer.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
/**
* final RedisOutputStream os,
* final byte[] command,
* final byte[]... args
*/
@Override
public EnhancerModel doBeforeAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments) throws Exception {
if (methodArguments == null || methodArguments.length != 3) {
LOGGER.info("The necessary parameters is null or length is not equal 3, {}", methodArguments != null ? methodArguments.length : null);
return null;
}
Object command = methodArguments[1];
if (!(command instanceof byte[])) {
return null;
}
Object args = methodArguments[2];
if (!args.getClreplaced().isArray() || !(args instanceof byte[][])) {
return null;
}
String cmd = new String((byte[]) command, CHARSET);
List<String> sargs = new ArrayList<String>();
byte[][] bargs = (byte[][]) args;
for (int i = 0; i < bargs.length; i++) {
sargs.add(new String(bargs[i], CHARSET));
}
String key = null;
if (sargs.size() > 0) {
key = sargs.get(0);
}
MatcherModel matcherModel = new MatcherModel();
matcherModel.add(JedisConstant.COMMAND_TYPE_MATCHER_NAME, cmd.toLowerCase());
if (key != null) {
matcherModel.add(JedisConstant.KEY_MATCHER_NAME, key);
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("jedis matchers: {}", JSON.toJSONString(matcherModel));
}
return new EnhancerModel(clreplacedLoader, matcherModel);
}
19
View Complete Implementation : MysqlEnhancer.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
@Override
public EnhancerModel doBeforeAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments) throws Exception {
if (methodArguments == null || object == null || methodArguments.length != 10) {
LOGGER.warn("The necessary parameters is null or length is not equal 10, {}", methodArguments != null ? methodArguments.length : null);
return null;
}
Object statement = methodArguments[0];
Object query = methodArguments[1];
Object catalog = methodArguments[8];
String host = ReflectUtil.getFieldValue(object, "host", false);
Integer port = ReflectUtil.getFieldValue(object, "port", false);
String sql = null;
String database = null;
String table = null;
if (query == null) {
boolean isPreparedStatement = ReflectUtil.isreplacedignableFrom(clreplacedLoader, statement.getClreplaced(), "com.mysql.jdbc.PreparedStatement");
if (isPreparedStatement) {
sql = ReflectUtil.invokeMethod(statement, "getPreparedSql", new Object[0], false);
}
} else {
sql = (String) query;
}
if (catalog == null && table != null) {
String[] dbAndTable = table.split(".");
if (dbAndTable.length == 2) {
database = dbAndTable[0];
}
} else {
database = (String) catalog;
}
table = SQLParserUtil.findTableName(sql);
SqlType type = SQLParserUtil.getSqlType(sql);
MatcherModel matcherModel = new MatcherModel();
matcherModel.add(MysqlConstant.HOST_MATCHER_NAME, host);
matcherModel.add(MysqlConstant.TABLE_MATCHER_NAME, table);
matcherModel.add(MysqlConstant.DATABASE_MATCHER_NAME, database);
if (type != null) {
matcherModel.add(MysqlConstant.SQL_TYPE_MATCHER_NAME, type.name());
}
if (port != null) {
matcherModel.add(MysqlConstant.PORT_MATCHER_NAME, port.toString());
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("mysql matchers: {}", JSON.toJSONString(matcherModel));
}
return new EnhancerModel(clreplacedLoader, matcherModel);
}
19
View Complete Implementation : PostgrelsqlEnhancer.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
/**
* Object[] methodArguments
* Query query,
* ParameterList parameters,
* ResultHandler handler,
* int maxRows,
* int fetchSize,
* int flags
*/
@Override
public EnhancerModel doBeforeAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments) throws Exception {
if (methodArguments == null || object == null || methodArguments.length != 6) {
LOGGER.info("The necessary parameters is null or length is not equal 6, {}", methodArguments != null ? methodArguments.length : null);
return null;
}
Object query = methodArguments[0];
Object pgStream = ReflectUtil.getSuperclreplacedFieldValue(object, "pgStream", false);
Object hostSpec = ReflectUtil.getFieldValue(pgStream, "hostSpec", false);
String host = ReflectUtil.getFieldValue(hostSpec, "host", false);
Integer port = ReflectUtil.getFieldValue(hostSpec, "port", false);
String sql = null;
if (query != null) {
// 获取执行的sql
boolean isPreparedStatement = ReflectUtil.isreplacedignableFrom(clreplacedLoader, query.getClreplaced(), "org.postgresql.core.Query");
if (isPreparedStatement) {
sql = ReflectUtil.invokeMethod(query, "getNativeSql", new Object[0], false);
}
} else {
// sql = (String)query;
}
String table = SQLParserUtil.findTableName(sql);
SqlType type = SQLParserUtil.getSqlType(sql);
String database = ReflectUtil.getFieldValue(object, "database", false);
MatcherModel matcherModel = new MatcherModel();
matcherModel.add(PostgrelsqlConstant.HOST_MATCHER_NAME, host);
matcherModel.add(PostgrelsqlConstant.TABLE_MATCHER_NAME, table);
matcherModel.add(PostgrelsqlConstant.DATABASE_MATCHER_NAME, database);
if (type != null) {
matcherModel.add(PostgrelsqlConstant.SQL_TYPE_MATCHER_NAME, type.name());
}
if (port != null) {
matcherModel.add(PostgrelsqlConstant.PORT_MATCHER_NAME, port.toString());
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("postgrelsql matchers: {}", JSON.toJSONString(matcherModel));
}
return new EnhancerModel(clreplacedLoader, matcherModel);
}
19
View Complete Implementation : RocketMqEnhancer.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
@Override
public EnhancerModel doBeforeAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments) throws Exception {
MatcherModel matcherModel = new MatcherModel();
Object remoteingCommnadRequest = selectParamByClreplacedName(clreplacedLoader, methodArguments, CLreplaced_REMOTEING_COMMAND_CLreplaced);
if (remoteingCommnadRequest == null) {
return new EnhancerModel(clreplacedLoader, matcherModel);
} else {
Object header = ReflectUtil.getFieldValue(remoteingCommnadRequest, FIELD_CUSTOM_HEADER, false);
if (header == null) {
return new EnhancerModel(clreplacedLoader, matcherModel);
}
String topic = null;
String consumerGroup = null;
String producerGroup = null;
if (isPullMessageHeader(clreplacedLoader, header)) {
topic = ReflectUtil.getFieldValue(header, FLAG_NAME_TOPIC, false);
consumerGroup = ReflectUtil.getFieldValue(header, FLAG_CONSUMER_GROUP, false);
} else if (isSendMessageHeader(clreplacedLoader, header)) {
topic = ReflectUtil.getFieldValue(header, FLAG_NAME_TOPIC, false);
producerGroup = ReflectUtil.getFieldValue(header, FLAG_PRODUCER_GROUP, false);
} else if (isSendMessageHeaderV2(clreplacedLoader, header)) {
topic = ReflectUtil.getFieldValue(header, "b", false);
producerGroup = ReflectUtil.getFieldValue(header, "a", false);
}
matcherModel.add(FLAG_NAME_TOPIC, topic);
matcherModel.add(FLAG_CONSUMER_GROUP, consumerGroup);
matcherModel.add(FLAG_PRODUCER_GROUP, producerGroup);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("rocketmq matchers: {}", JSON.toJSONString(matcherModel));
}
return new EnhancerModel(clreplacedLoader, matcherModel);
}
}
19
View Complete Implementation : ServletEnhancer.java
Copyright Apache License 2.0
Author : chaosblade-io
Copyright Apache License 2.0
Author : chaosblade-io
@Override
public EnhancerModel doBeforeAdvice(ClreplacedLoader clreplacedLoader, String clreplacedName, Object object, Method method, Object[] methodArguments) throws Exception {
Object request = methodArguments[0];
String pathInfo = ReflectUtil.invokeMethod(request, "getPathInfo", new Object[] {}, false);
String queryString = ReflectUtil.invokeMethod(request, "getQueryString", new Object[] {}, false);
String servletPath = ReflectUtil.invokeMethod(request, "getServletPath", new Object[] {}, false);
String requestMethod = ReflectUtil.invokeMethod(request, "getMethod", new Object[] {}, false);
// RequestUri without ContextPath
String requestPath = StringUtils.isNotBlank(pathInfo) ? servletPath + pathInfo : servletPath;
MatcherModel matcherModel = new MatcherModel();
matcherModel.add(ServletConstant.PATH_INFO_KEY, pathInfo);
matcherModel.add(ServletConstant.QUERY_STRING_KEY, queryString);
matcherModel.add(ServletConstant.SERVLET_PATH_KEY, servletPath);
matcherModel.add(ServletConstant.METHOD_KEY, requestMethod);
matcherModel.add(ServletConstant.REQUEST_PATH_KEY, requestPath);
LOOGER.debug("servlet matchers: {}", JSON.toJSONString(matcherModel));
return new EnhancerModel(clreplacedLoader, matcherModel);
}