Skip to content

Commit bbfb9d1

Browse files
add AvoidArgumentAssessment and mark all the connectors
1 parent 063b663 commit bbfb9d1

27 files changed

+204
-41
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* Copyright 2022-2025 Google LLC
3+
* Copyright 2013-2021 CompilerWorks
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package com.google.edwmigration.dumper.application.dumper.annotations;
18+
19+
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
20+
import java.lang.annotation.*;
21+
22+
@Target(ElementType.TYPE)
23+
@Retention(RetentionPolicy.RUNTIME)
24+
@Documented
25+
@Inherited
26+
@AvoidInput(
27+
arg = ConnectorArguments.OPT_ASSESSMENT,
28+
description = AvoidArgumentAssessment.DESCRIPTION)
29+
public @interface AvoidArgumentAssessment {
30+
31+
String DESCRIPTION = "The argument must not be used with this connector.";
32+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Copyright 2022-2025 Google LLC
3+
* Copyright 2013-2021 CompilerWorks
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package com.google.edwmigration.dumper.application.dumper.annotations;
18+
19+
import java.lang.annotation.*;
20+
import javax.annotation.Nonnull;
21+
22+
@Target(ElementType.TYPE)
23+
@Retention(RetentionPolicy.RUNTIME)
24+
@Documented
25+
@Inherited
26+
@Repeatable(AvoidInputs.class)
27+
public @interface AvoidInput {
28+
29+
@Nonnull
30+
String arg() default "";
31+
32+
@Nonnull
33+
String description();
34+
35+
@Nonnull
36+
String defaultValue() default "";
37+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright 2022-2025 Google LLC
3+
* Copyright 2013-2021 CompilerWorks
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package com.google.edwmigration.dumper.application.dumper.annotations;
18+
19+
import java.lang.annotation.*;
20+
import javax.annotation.Nonnull;
21+
22+
@Target(ElementType.TYPE)
23+
@Retention(RetentionPolicy.RUNTIME)
24+
@Documented
25+
@Inherited
26+
public @interface AvoidInputs {
27+
28+
@Nonnull
29+
AvoidInput[] value();
30+
}

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/annotations/RespectsInput.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,19 @@
3434
public @interface RespectsInput {
3535

3636
@Nonnull
37-
public String arg() default "";
37+
String arg() default "";
3838

3939
@Nonnull
40-
public String env() default "";
40+
String env() default "";
4141

4242
@Nonnull
43-
public String description();
43+
String description();
4444

4545
@Nonnull
46-
public String defaultValue() default "";
46+
String defaultValue() default "";
4747

48-
public int order() default Integer.MAX_VALUE;
48+
int order() default Integer.MAX_VALUE;
4949

5050
@Nonnull
51-
public String required() default "";
51+
String required() default "";
5252
}

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,7 @@
3131
import com.google.cloud.bigquery.TableId;
3232
import com.google.common.collect.ImmutableList;
3333
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
34-
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsArgumentQueryLogDays;
35-
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsArgumentQueryLogEnd;
36-
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsArgumentQueryLogStart;
37-
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsInput;
34+
import com.google.edwmigration.dumper.application.dumper.annotations.*;
3835
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
3936
import com.google.edwmigration.dumper.application.dumper.connector.LogsConnector;
4037
import com.google.edwmigration.dumper.application.dumper.connector.ZonedInterval;
@@ -69,6 +66,7 @@
6966
@RespectsArgumentQueryLogDays
7067
@RespectsArgumentQueryLogStart
7168
@RespectsArgumentQueryLogEnd
69+
@AvoidArgumentAssessment
7270
public class BigQueryLogsConnector extends AbstractBigQueryConnector
7371
implements LogsConnector, BigQueryLogsDumpFormat {
7472

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import com.google.common.base.Preconditions;
3838
import com.google.common.collect.ImmutableList;
3939
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
40+
import com.google.edwmigration.dumper.application.dumper.annotations.AvoidArgumentAssessment;
4041
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsInput;
4142
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
4243
import com.google.edwmigration.dumper.application.dumper.connector.MetadataConnector;
@@ -77,6 +78,7 @@
7778
order = 2000,
7879
arg = ConnectorArguments.OPT_SCHEMA,
7980
description = "The list of datasets to dump, separated by commas.")
81+
@AvoidArgumentAssessment
8082
public class BigQueryMetadataConnector extends AbstractBigQueryConnector
8183
implements BigQueryMetadataDumpFormat, MetadataConnector {
8284

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.auto.service.AutoService;
2424
import com.google.common.base.Preconditions;
2525
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
26+
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsArgumentAssessment;
2627
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsInput;
2728
import com.google.edwmigration.dumper.application.dumper.connector.AbstractConnector;
2829
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
@@ -64,6 +65,7 @@
6465
arg = ConnectorArguments.OPT_CLUSTER,
6566
description = "The name of Cloudera's cluster.",
6667
required = "Only if you need to dump data for a single Cloudera cluster")
68+
@RespectsArgumentAssessment
6769
public class ClouderaManagerConnector extends AbstractConnector {
6870

6971
private static final String FORMAT_NAME = "cloudera-manager.dump.zip";

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.auto.service.AutoService;
2020
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
2121
import com.google.edwmigration.dumper.application.dumper.MetadataDumperUsageException;
22+
import com.google.edwmigration.dumper.application.dumper.annotations.AvoidArgumentAssessment;
2223
import com.google.edwmigration.dumper.application.dumper.connector.AbstractJdbcConnector;
2324
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
2425
import com.google.edwmigration.dumper.application.dumper.connector.LogsConnector;
@@ -48,6 +49,7 @@
4849
* generates multiple queries and is like 'logs' mode.
4950
*/
5051
@AutoService({Connector.class, LogsConnector.class})
52+
@AvoidArgumentAssessment
5153
public class GenericConnector extends AbstractJdbcConnector implements LogsConnector {
5254

5355
private static final Logger logger = LoggerFactory.getLogger(GenericConnector.class);

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import com.google.auto.service.AutoService;
2020
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
21+
import com.google.edwmigration.dumper.application.dumper.annotations.AvoidArgumentAssessment;
2122
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsArgumentDatabaseForConnection;
2223
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsInput;
2324
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
@@ -39,6 +40,7 @@
3940
required = ConnectorArguments.OPT_REQUIRED_IF_NOT_URL,
4041
defaultValue = "" + GreenplumMetadataConnector.OPT_PORT_DEFAULT)
4142
@RespectsArgumentDatabaseForConnection
43+
@AvoidArgumentAssessment
4244
public class GreenplumMetadataConnector extends AbstractGreenplumConnector
4345
implements MetadataConnector, GreenplumMetadataDumpFormat {
4446

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.common.annotations.VisibleForTesting;
2525
import com.google.common.collect.ImmutableList;
2626
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
27+
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsArgumentAssessment;
2728
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
2829
import com.google.edwmigration.dumper.application.dumper.connector.ConnectorProperty;
2930
import com.google.edwmigration.dumper.application.dumper.connector.MetadataConnector;
@@ -41,6 +42,7 @@
4142

4243
@AutoService({Connector.class, MetadataConnector.class})
4344
@Description("Dumps metadata from the Hadoop cluster via bash commands.")
45+
@RespectsArgumentAssessment
4446
public class HadoopMetadataConnector implements MetadataConnector {
4547

4648
@VisibleForTesting

0 commit comments

Comments
 (0)