Skip to content

Commit f14546c

Browse files
Merge pull request #317 from data-integrations/fix/no-class-def-found-error
[PLUGIN-1436] fix StringUtils exception
2 parents c57aadb + 8a14008 commit f14546c

File tree

6 files changed

+36
-22
lines changed

6 files changed

+36
-22
lines changed

cloudsql-mysql-plugin/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@
4242
<groupId>io.cdap.plugin</groupId>
4343
<artifactId>hydrator-common</artifactId>
4444
</dependency>
45+
<dependency>
46+
<groupId>io.cdap.plugin</groupId>
47+
<artifactId>mysql-plugin</artifactId>
48+
<version>1.10.0-SNAPSHOT</version>
49+
</dependency>
4550

4651
<!-- test dependencies -->
4752
<dependency>
@@ -126,6 +131,7 @@
126131
io.cdap.plugin.cloudsql.mysql.*;
127132
io.cdap.plugin.db.batch.source.*;
128133
io.cdap.plugin.db.batch.sink.*;
134+
io.cdap.plugin.mysql.*;
129135
org.apache.commons.lang.*;
130136
org.apache.commons.logging.*;
131137
org.codehaus.jackson.*

cloudsql-mysql-plugin/src/main/java/io/cdap/plugin/cloudsql/mysql/CloudSQLMySQLConnector.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,10 @@
3131
import io.cdap.plugin.common.ReferenceNames;
3232
import io.cdap.plugin.common.db.DBConnectorPath;
3333
import io.cdap.plugin.db.ConnectionConfig;
34-
import io.cdap.plugin.db.DBRecord;
34+
import io.cdap.plugin.db.SchemaReader;
3535
import io.cdap.plugin.db.connector.AbstractDBSpecificConnector;
36+
import io.cdap.plugin.mysql.MysqlDBRecord;
37+
import io.cdap.plugin.mysql.MysqlSchemaReader;
3638
import org.apache.hadoop.io.LongWritable;
3739
import org.apache.hadoop.mapreduce.lib.db.DBWritable;
3840

@@ -46,7 +48,7 @@
4648
@Name(CloudSQLMySQLConnector.NAME)
4749
@Description("Connection to access data in CloudSQL MySQL Server databases using JDBC.")
4850
@Category("Database")
49-
public class CloudSQLMySQLConnector extends AbstractDBSpecificConnector<DBRecord> {
51+
public class CloudSQLMySQLConnector extends AbstractDBSpecificConnector<MysqlDBRecord> {
5052

5153
public static final String NAME = CloudSQLMySQLConstants.PLUGIN_NAME;
5254
private final CloudSQLMySQLConnectorConfig config;
@@ -63,12 +65,17 @@ public boolean supportSchema() {
6365

6466
@Override
6567
protected Class<? extends DBWritable> getDBRecordType() {
66-
return DBRecord.class;
68+
return MysqlDBRecord.class;
6769
}
6870

6971
@Override
70-
public StructuredRecord transform(LongWritable longWritable, DBRecord dbRecord) {
71-
return dbRecord.getRecord();
72+
public StructuredRecord transform(LongWritable longWritable, MysqlDBRecord mysqlDBRecord) {
73+
return mysqlDBRecord.getRecord();
74+
}
75+
76+
@Override
77+
protected SchemaReader getSchemaReader(String sessionID) {
78+
return new MysqlSchemaReader(sessionID);
7279
}
7380

7481
@Override

cloudsql-mysql-plugin/src/main/java/io/cdap/plugin/cloudsql/mysql/CloudSQLMySQLSink.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616

1717
package io.cdap.plugin.cloudsql.mysql;
1818

19+
import com.google.common.base.Strings;
1920
import com.google.common.collect.ImmutableMap;
2021
import io.cdap.cdap.api.annotation.Description;
2122
import io.cdap.cdap.api.annotation.Macro;
2223
import io.cdap.cdap.api.annotation.Metadata;
2324
import io.cdap.cdap.api.annotation.MetadataProperty;
2425
import io.cdap.cdap.api.annotation.Name;
2526
import io.cdap.cdap.api.annotation.Plugin;
27+
import io.cdap.cdap.api.data.format.StructuredRecord;
2628
import io.cdap.cdap.etl.api.FailureCollector;
2729
import io.cdap.cdap.etl.api.PipelineConfigurer;
2830
import io.cdap.cdap.etl.api.batch.BatchSink;
@@ -31,13 +33,12 @@
3133
import io.cdap.plugin.common.Asset;
3234
import io.cdap.plugin.common.ConfigUtil;
3335
import io.cdap.plugin.common.LineageRecorder;
34-
import io.cdap.plugin.db.CommonSchemaReader;
35-
import io.cdap.plugin.db.SchemaReader;
36+
import io.cdap.plugin.db.DBRecord;
3637
import io.cdap.plugin.db.batch.config.AbstractDBSpecificSinkConfig;
3738
import io.cdap.plugin.db.batch.sink.AbstractDBSink;
39+
import io.cdap.plugin.mysql.MysqlDBRecord;
3840
import io.cdap.plugin.util.CloudSQLUtil;
3941
import io.cdap.plugin.util.DBUtils;
40-
import org.apache.commons.lang.StringUtils;
4142

4243
import java.util.Map;
4344
import javax.annotation.Nullable;
@@ -71,10 +72,10 @@ public void configurePipeline(PipelineConfigurer pipelineConfigurer) {
7172

7273
super.configurePipeline(pipelineConfigurer);
7374
}
74-
75+
7576
@Override
76-
protected SchemaReader getSchemaReader() {
77-
return new CommonSchemaReader();
77+
protected DBRecord getDBRecord(StructuredRecord output) {
78+
return new MysqlDBRecord(output, columnTypes);
7879
}
7980

8081
@Override
@@ -94,7 +95,7 @@ protected LineageRecorder getLineageRecorder(BatchSinkContext context) {
9495
cloudsqlMysqlSinkConfig.getConnection().getDatabase(),
9596
cloudsqlMysqlSinkConfig.getReferenceName());
9697
Asset.Builder assetBuilder = Asset.builder(cloudsqlMysqlSinkConfig.getReferenceName()).setFqn(fqn);
97-
if (!StringUtils.isEmpty(location)) {
98+
if (!Strings.isNullOrEmpty(location)) {
9899
assetBuilder.setLocation(location);
99100
}
100101
return new LineageRecorder(context, assetBuilder.build());

cloudsql-mysql-plugin/src/main/java/io/cdap/plugin/cloudsql/mysql/CloudSQLMySQLSource.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package io.cdap.plugin.cloudsql.mysql;
1818

19+
import com.google.common.base.Strings;
1920
import io.cdap.cdap.api.annotation.Description;
2021
import io.cdap.cdap.api.annotation.Macro;
2122
import io.cdap.cdap.api.annotation.Metadata;
@@ -30,13 +31,12 @@
3031
import io.cdap.plugin.common.Asset;
3132
import io.cdap.plugin.common.ConfigUtil;
3233
import io.cdap.plugin.common.LineageRecorder;
33-
import io.cdap.plugin.db.CommonSchemaReader;
34-
import io.cdap.plugin.db.SchemaReader;
3534
import io.cdap.plugin.db.batch.config.AbstractDBSpecificSourceConfig;
3635
import io.cdap.plugin.db.batch.source.AbstractDBSource;
36+
import io.cdap.plugin.mysql.MysqlDBRecord;
3737
import io.cdap.plugin.util.CloudSQLUtil;
3838
import io.cdap.plugin.util.DBUtils;
39-
import org.apache.commons.lang.StringUtils;
39+
import org.apache.hadoop.mapreduce.lib.db.DBWritable;
4040

4141
import java.util.Collections;
4242
import java.util.HashMap;
@@ -75,8 +75,8 @@ public void configurePipeline(PipelineConfigurer pipelineConfigurer) {
7575
}
7676

7777
@Override
78-
protected SchemaReader getSchemaReader() {
79-
return new CommonSchemaReader();
78+
protected Class<? extends DBWritable> getDBRecordType() {
79+
return MysqlDBRecord.class;
8080
}
8181

8282
@Override
@@ -112,7 +112,7 @@ protected LineageRecorder getLineageRecorder(BatchSourceContext context) {
112112
cloudsqlMysqlSourceConfig.getConnection().getDatabase(),
113113
cloudsqlMysqlSourceConfig.getReferenceName());
114114
Asset.Builder assetBuilder = Asset.builder(cloudsqlMysqlSourceConfig.getReferenceName()).setFqn(fqn);
115-
if (!StringUtils.isEmpty(location)) {
115+
if (!Strings.isNullOrEmpty(location)) {
116116
assetBuilder.setLocation(location);
117117
}
118118
return new LineageRecorder(context, assetBuilder.build());

cloudsql-postgresql-plugin/src/main/java/io/cdap/plugin/cloudsql/postgres/CloudSQLPostgreSQLSink.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package io.cdap.plugin.cloudsql.postgres;
1818

19+
import com.google.common.base.Strings;
1920
import com.google.common.collect.ImmutableMap;
2021
import io.cdap.cdap.api.annotation.Description;
2122
import io.cdap.cdap.api.annotation.Macro;
@@ -43,7 +44,6 @@
4344
import io.cdap.plugin.postgres.PostgresSchemaReader;
4445
import io.cdap.plugin.util.CloudSQLUtil;
4546
import io.cdap.plugin.util.DBUtils;
46-
import org.apache.commons.lang.StringUtils;
4747

4848
import java.util.ArrayList;
4949
import java.util.Collections;
@@ -130,7 +130,7 @@ protected LineageRecorder getLineageRecorder(BatchSinkContext context) {
130130
cloudsqlPostgresqlSinkConfig.getConnection().getDatabase(),
131131
cloudsqlPostgresqlSinkConfig.getReferenceName());
132132
Asset.Builder assetBuilder = Asset.builder(cloudsqlPostgresqlSinkConfig.getReferenceName()).setFqn(fqn);
133-
if (!StringUtils.isEmpty(location)) {
133+
if (!Strings.isNullOrEmpty(location)) {
134134
assetBuilder.setLocation(location);
135135
}
136136
return new LineageRecorder(context, assetBuilder.build());

cloudsql-postgresql-plugin/src/main/java/io/cdap/plugin/cloudsql/postgres/CloudSQLPostgreSQLSource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package io.cdap.plugin.cloudsql.postgres;
1818

19+
import com.google.common.base.Strings;
1920
import io.cdap.cdap.api.annotation.Description;
2021
import io.cdap.cdap.api.annotation.Macro;
2122
import io.cdap.cdap.api.annotation.Metadata;
@@ -37,7 +38,6 @@
3738
import io.cdap.plugin.postgres.PostgresSchemaReader;
3839
import io.cdap.plugin.util.CloudSQLUtil;
3940
import io.cdap.plugin.util.DBUtils;
40-
import org.apache.commons.lang.StringUtils;
4141
import org.apache.hadoop.mapreduce.lib.db.DBWritable;
4242

4343
import java.util.Collections;
@@ -120,7 +120,7 @@ protected LineageRecorder getLineageRecorder(BatchSourceContext context) {
120120
cloudsqlPostgresqlSourceConfig.getConnection().getDatabase(),
121121
cloudsqlPostgresqlSourceConfig.getReferenceName());
122122
Asset.Builder assetBuilder = Asset.builder(cloudsqlPostgresqlSourceConfig.getReferenceName()).setFqn(fqn);
123-
if (!StringUtils.isEmpty(location)) {
123+
if (!Strings.isNullOrEmpty(location)) {
124124
assetBuilder.setLocation(location);
125125
}
126126
return new LineageRecorder(context, assetBuilder.build());

0 commit comments

Comments
 (0)