@Override
    public Connection getConnection() throws SQLException {
        final Connection innerConnection = this.innerConnection;
        if (innerConnection != null) {
            return wrapUnclosedConnection(innerConnection);
        }

        this.innerConnection = this.dataSource.getConnection();
        return wrapUnclosedConnection(this.innerConnection);
    }
for test only
WARNING Not thread safe
agent-module/plugins-test-module/plugins-it-utils-jdbc/src/main/java/com/navercorp/pinpoint/it/plugin/utils/jdbc/template/TransactionDataSource.java