Skip to content

Commit 77358fc

Browse files
committed
Replace the annotation with a SF-only method
1 parent faa7f86 commit 77358fc

File tree

8 files changed

+20
-24
lines changed

8 files changed

+20
-24
lines changed

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/Connector.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.time.ZonedDateTime;
2727
import java.util.List;
2828
import javax.annotation.Nonnull;
29-
import javax.annotation.OverridingMethodsMustInvokeSuper;
3029

3130
/** @author shevek */
3231
public interface Connector {
@@ -53,7 +52,6 @@ default String getDescription() {
5352
* @param arguments cli params
5453
* @throws RuntimeException if incorrect set of arguments passed to the particular connector
5554
*/
56-
@OverridingMethodsMustInvokeSuper
5755
default void validate(@Nonnull ConnectorArguments arguments) {}
5856

5957
static void validateDateRange(@Nonnull ConnectorArguments arguments) {

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/airflow/AirflowConnector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ private static void addQueryTask(
210210
}
211211

212212
@Override
213-
public void validate(@Nonnull ConnectorArguments arguments) {
213+
public final void validate(@Nonnull ConnectorArguments arguments) {
214214
Preconditions.checkState(arguments.isAssessment(), "--assessment flag is required");
215215
Preconditions.checkState(
216216
arguments.getDriverPaths() != null && !arguments.getDriverPaths().isEmpty(),

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaManagerConnector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public ClouderaManagerHandle open(@Nonnull ConnectorArguments arguments) throws
130130
}
131131

132132
@Override
133-
public void validate(@Nonnull ConnectorArguments arguments) {
133+
public final void validate(@Nonnull ConnectorArguments arguments) {
134134
String clouderaUri = arguments.getUri();
135135
Preconditions.checkNotNull(clouderaUri, "--url for Cloudera Manager API is required");
136136

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/hadoop/oozie/OozieConnector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public String getDefaultFileName(boolean isAssessment, Clock clock) {
8181
}
8282

8383
@Override
84-
public void validate(@Nonnull ConnectorArguments arguments) {
84+
public final void validate(@Nonnull ConnectorArguments arguments) {
8585
Preconditions.checkState(arguments.isAssessment(), "--assessment flag is required");
8686

8787
validateDateRange(arguments);

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/AbstractSnowflakeConnector.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,7 @@ public Handle open(@Nonnull ConnectorArguments arguments)
101101
}
102102

103103
@Override
104-
public void validate(@Nonnull ConnectorArguments arguments) {
105-
super.validate(arguments);
106-
104+
public final void validate(@Nonnull ConnectorArguments arguments) {
107105
ArrayList<String> messages = new ArrayList<>();
108106
MetadataDumperUsageException exception = null;
109107

@@ -133,8 +131,18 @@ public void validate(@Nonnull ConnectorArguments arguments) {
133131
exception = new MetadataDumperUsageException(unsupportedFilter, messages);
134132
}
135133
removeDuplicateMessageAndThrow(exception);
134+
validateForSnowflake(arguments);
136135
}
137136

137+
/**
138+
* Called by {@link #validate} to perform connector-specific checks.
139+
*
140+
* <p>Subclasses should override this with logic to run after the common validation for Snowflake.
141+
*
142+
* @param arguments User-provided arguments of the Dumper run.
143+
*/
144+
protected abstract void validateForSnowflake(@Nonnull ConnectorArguments arguments);
145+
138146
private static void removeDuplicateMessageAndThrow(
139147
@Nullable MetadataDumperUsageException exception) {
140148
if (exception != null) {

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakeLiteConnector.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@
2020
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
2121
import com.google.edwmigration.dumper.application.dumper.MetadataDumperUsageException;
2222
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
23-
import com.google.edwmigration.dumper.application.dumper.handle.Handle;
2423
import com.google.edwmigration.dumper.application.dumper.task.DumpMetadataTask;
2524
import com.google.edwmigration.dumper.application.dumper.task.FormatTask;
2625
import com.google.edwmigration.dumper.application.dumper.task.Task;
2726
import com.google.edwmigration.dumper.application.dumper.utils.ArchiveNameUtil;
28-
import java.sql.SQLException;
2927
import java.time.Clock;
3028
import java.util.List;
3129
import javax.annotation.Nonnull;
@@ -45,13 +43,6 @@ public SnowflakeLiteConnector() {
4543
super(NAME);
4644
}
4745

48-
@Override
49-
@Nonnull
50-
public Handle open(ConnectorArguments arguments)
51-
throws MetadataDumperUsageException, SQLException {
52-
return super.open(arguments);
53-
}
54-
5546
@Override
5647
@Nonnull
5748
public String getDefaultFileName(boolean isAssessment, @Nullable Clock clock) {
@@ -65,16 +56,14 @@ public String getDescription() {
6556
}
6657

6758
@Override
68-
public final void addTasksTo(List<? super Task<?>> out, ConnectorArguments arguments) {
59+
public void addTasksTo(List<? super Task<?>> out, ConnectorArguments arguments) {
6960
out.add(new DumpMetadataTask(arguments, FORMAT_NAME));
7061
out.add(new FormatTask(FORMAT_NAME));
7162
out.addAll(planner.generateLiteSpecificQueries());
7263
}
7364

7465
@Override
75-
public final void validate(ConnectorArguments arguments) {
76-
super.validate(arguments);
77-
66+
protected void validateForSnowflake(ConnectorArguments arguments) {
7867
if (!arguments.isAssessment()) {
7968
throw noAssessmentException();
8069
}

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakeLogsConnector.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,7 @@ private TaskDescription(
161161
}
162162

163163
@Override
164-
public final void validate(@Nonnull ConnectorArguments arguments) {
165-
super.validate(arguments);
166-
164+
protected final void validateForSnowflake(@Nonnull ConnectorArguments arguments) {
167165
if (arguments.isAssessment() && arguments.hasQueryLogEarliestTimestamp()) {
168166
throw unsupportedOption(ConnectorArguments.OPT_QUERY_LOG_EARLIEST_TIMESTAMP);
169167
}

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakeMetadataConnector.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ public Iterable<ConnectorProperty> getPropertyConstants() {
129129
return builder.build();
130130
}
131131

132+
@Override
133+
protected final void validateForSnowflake(@Nonnull ConnectorArguments arguments) {}
134+
132135
private void addSqlTasksWithInfoSchemaFallback(
133136
@Nonnull List<? super Task<?>> out,
134137
@Nonnull Class<? extends Enum<?>> header,

0 commit comments

Comments
 (0)