16
16
17
17
package za .co .absa .spline .harvester .plugin .embedded
18
18
19
- import java .lang .reflect .Method
20
- import java .lang .reflect .Modifier .isStatic
21
- import java .util .Optional
22
-
23
19
import io .github .classgraph .ClassGraph
24
- import javax .annotation .Priority
25
20
import org .apache .hadoop .conf .Configuration
26
21
import org .apache .spark .sql .SparkSession
27
22
import org .apache .spark .sql .execution .datasources .{LogicalRelation , SaveIntoDataSourceCommand }
@@ -36,6 +31,10 @@ import za.co.absa.spline.harvester.plugin.embedded.BigQueryPlugin.SparkBigQueryC
36
31
import za .co .absa .spline .harvester .plugin .embedded .BigQueryPlugin ._
37
32
import za .co .absa .spline .harvester .plugin .{BaseRelationProcessing , Plugin , RelationProviderProcessing }
38
33
34
+ import java .lang .reflect .Method
35
+ import java .lang .reflect .Modifier .isStatic
36
+ import java .util .Optional
37
+ import javax .annotation .Priority
39
38
import scala .collection .JavaConverters ._
40
39
import scala .language .reflectiveCalls
41
40
@@ -143,33 +142,14 @@ object BigQueryPlugin {
143
142
def getParentProjectId : String
144
143
}
145
144
private val clazz = findPossiblyShadedClass(" com.google.cloud" , " com.google.cloud.spark.bigquery.SparkBigQueryConfig" )
146
- private val methodFrom7 : Option [Method ] = clazz
147
- .getMethods
148
- .find(
149
- m => m.getName == " from"
150
- && isStatic(m.getModifiers)
151
- && m.getParameterTypes.length == 7
152
- && m.getReturnType.getSimpleName == " SparkBigQueryConfig"
153
- )
154
- private val methodFrom8 : Option [Method ] = clazz
155
- .getMethods
156
- .find(
157
- m => m.getName == " from"
158
- && isStatic(m.getModifiers)
159
- && m.getParameterTypes.length == 8
160
- && m.getReturnType.getSimpleName == " SparkBigQueryConfig"
161
- )
162
- private val methodFrom9 : Option [Method ] = clazz
145
+ private val methodFrom : Method = clazz
163
146
.getMethods
164
147
.find(
165
148
m => m.getName == " from"
166
149
&& isStatic(m.getModifiers)
167
- && m.getParameterTypes.length == 9
150
+ && ( m.getParameterTypes.length == 7 || m.getParameterTypes.length == 8 || m.getParameterTypes.length == 9 )
168
151
&& m.getReturnType.getSimpleName == " SparkBigQueryConfig"
169
152
)
170
- private val methodFrom : Method = methodFrom7
171
- .orElse(methodFrom8)
172
- .orElse(methodFrom9)
173
153
.getOrElse(sys.error(s " Cannot find method `public static SparkBigQueryConfig from(... {7|8|9 args} ...)` in the class ` $clazz` " ))
174
154
175
155
object ImmutableMap {
0 commit comments