Unverified Commit 374517ca authored by 吴晟's avatar 吴晟 Committed by GitHub
Browse files

Merge pull request #646 from ascrutae/fix/mysql-5.0.x-plugin-issue

fix mysql 5.0.x plugin issue
parents 8779ac80 aa55121b
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_STATEMENT_
import static org.skywalking.apm.plugin.jdbc.define.Constants.RELEASE_SAVE_POINT_METHOD_NAME;
import static org.skywalking.apm.plugin.jdbc.define.Constants.ROLLBACK_METHOD_NAME;
import static org.skywalking.apm.plugin.jdbc.define.Constants.SERVICE_METHOD_INTERCEPT_CLASS;
import static org.skywalking.apm.plugin.jdbc.mysql.define.MultiClassNameMatch.byMultiClassMatch;

/**
 * {@link ConnectionInstrumentation} intercepts the following methods that the class which extend {@link
@@ -48,9 +47,7 @@ import static org.skywalking.apm.plugin.jdbc.mysql.define.MultiClassNameMatch.by
 *
 * @author zhangxin
 */
public class ConnectionInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {

    public static final String ENHANCE_CLASS = "com.mysql.jdbc.ConnectionImpl";
public abstract class ConnectionInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {

    @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
        return new ConstructorInterceptPoint[0];
@@ -114,7 +111,5 @@ public class ConnectionInstrumentation extends ClassInstanceMethodsEnhancePlugin

    }

    @Override protected ClassMatch enhanceClass() {
        return byMultiClassMatch(ENHANCE_CLASS, "com.mysql.cj.jdbc.ConnectionImpl", "com.mysql.jdbc.Connection");
    }
    @Override protected abstract ClassMatch enhanceClass();
}
+40 −0
Original line number Diff line number Diff line
/*
 * Copyright 2017, OpenSkywalking Organization All rights reserved.
 *
 * 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.
 *
 * Project repository: https://github.com/OpenSkywalking/skywalking
 */

package org.skywalking.apm.plugin.jdbc.mysql.define;

import org.skywalking.apm.agent.core.plugin.match.ClassMatch;

import static org.skywalking.apm.agent.core.plugin.match.NameMatch.byName;

/**
 * {@link Mysql50ConnectionInstrumentation} interceptor the {@link com.mysql.jdbc.Connection} class in the 5.0.x verison
 * of mysql driver jar.
 *
 * @author zhangxin
 */
public class Mysql50ConnectionInstrumentation extends ConnectionInstrumentation {
    @Override
    protected ClassMatch enhanceClass() {
        return byName("com.mysql.jdbc.Connection");
    }

    @Override protected String[] witnessClasses() {
        return new String[] {"com.mysql.jdbc.CursorRowProvider"};
    }
}
+39 −0
Original line number Diff line number Diff line
/*
 * Copyright 2017, OpenSkywalking Organization All rights reserved.
 *
 * 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.
 *
 * Project repository: https://github.com/OpenSkywalking/skywalking
 */

package org.skywalking.apm.plugin.jdbc.mysql.define;

import org.skywalking.apm.agent.core.plugin.match.ClassMatch;

import static org.skywalking.apm.plugin.jdbc.mysql.define.MultiClassNameMatch.byMultiClassMatch;

/**
 * {@link Mysql50ConnectionInstrumentation} interceptor the {@link com.mysql.cj.jdbc.ConnectionImpl} class above the
 * version 5.1+ of mysql jdbc driver jar.
 *
 * @author zhangxin
 */
public class Mysql5xConnectionInstrumentation extends ConnectionInstrumentation {
    public static final String ENHANCE_CLASS = "com.mysql.jdbc.ConnectionImpl";

    public static final String CJ_JDBC_ENHANCE_CLASS = "com.mysql.cj.jdbc.ConnectionImpl";

    @Override protected ClassMatch enhanceClass() {
        return byMultiClassMatch(ENHANCE_CLASS, CJ_JDBC_ENHANCE_CLASS);
    }
}
+2 −1
Original line number Diff line number Diff line
mysql-5.x=org.skywalking.apm.plugin.jdbc.mysql.define.DriverInstrumentation
mysql-5.x=org.skywalking.apm.plugin.jdbc.mysql.define.ConnectionInstrumentation
mysql-5.x=org.skywalking.apm.plugin.jdbc.mysql.define.Mysql5xConnectionInstrumentation
mysql-5.x=org.skywalking.apm.plugin.jdbc.mysql.define.Mysql50ConnectionInstrumentation
mysql-5.x=org.skywalking.apm.plugin.jdbc.mysql.define.CallableInstrumentation
mysql-5.x=org.skywalking.apm.plugin.jdbc.mysql.define.PreparedStatementInstrumentation
mysql-5.x=org.skywalking.apm.plugin.jdbc.mysql.define.StatementInstrumentation