Skip to content

Commit e732aa1

Browse files
add a Rename annotation separate from JsonProperty (#213)
1 parent fcf7668 commit e732aa1

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

crd-generator/api/src/main/java/io/fabric8/crd/generator/AbstractJsonSchema.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ public abstract class AbstractJsonSchema<T, B> {
129129
public static final String ANNOTATION_SCHEMA_SWAPS = "io.fabric8.crd.generator.annotation.SchemaSwaps";
130130
public static final String ANNOTATION_VALIDATION_RULE = "io.fabric8.generator.annotation.ValidationRule";
131131
public static final String ANNOTATION_VALIDATION_RULES = "io.fabric8.generator.annotation.ValidationRules";
132+
public static final String ANNOTATION_RENAME = "io.fabric8.crd.generator.annotation.Rename";
132133

133134
public static final String JSON_NODE_TYPE = "com.fasterxml.jackson.databind.JsonNode";
134135
public static final String ANY_TYPE = "io.fabric8.kubernetes.api.model.AnyType";
@@ -516,6 +517,7 @@ public void process() {
516517
}
517518
break;
518519
case ANNOTATION_JSON_PROPERTY:
520+
case ANNOTATION_RENAME:
519521
final String nameFromAnnotation = (String) a.getParameters().get(VALUE);
520522
if (!Strings.isNullOrEmpty(nameFromAnnotation)) {
521523
renamedTo = nameFromAnnotation;

crd-generator/api/src/test/java/io/fabric8/crd/example/annotated/AnnotatedSpec.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import com.fasterxml.jackson.annotation.JsonIgnore;
2020
import com.fasterxml.jackson.annotation.JsonProperty;
2121
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
22+
23+
import io.fabric8.crd.generator.annotation.Rename;
2224
import io.fabric8.generator.annotation.Default;
2325
import io.fabric8.generator.annotation.Max;
2426
import io.fabric8.generator.annotation.Min;
@@ -180,4 +182,7 @@ public void setOne(AnotherEnum one) {
180182
public enum AnotherEnum {
181183
ONE
182184
}
185+
186+
@Rename("renamedField")
187+
private String fieldToRename;
183188
}

crd-generator/api/src/test/java/io/fabric8/crd/generator/v1/JsonSchemaTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ void shouldAugmentPropertiesSchemaFromAnnotations() throws JsonProcessingExcepti
109109
assertNotNull(schema);
110110
Map<String, JSONSchemaProps> properties = assertSchemaHasNumberOfProperties(schema, 2);
111111
final JSONSchemaProps specSchema = properties.get("spec");
112-
Map<String, JSONSchemaProps> spec = assertSchemaHasNumberOfProperties(specSchema, 20);
112+
Map<String, JSONSchemaProps> spec = assertSchemaHasNumberOfProperties(specSchema, 21);
113113

114114
// check descriptions are present
115115
assertTrue(spec.containsKey("from-field"));
@@ -178,6 +178,10 @@ void shouldAugmentPropertiesSchemaFromAnnotations() throws JsonProcessingExcepti
178178
assertNull(kubernetesValidationsRepeatedRules.get(1).getMessage());
179179
assertNull(kubernetesValidationsRepeatedRules.get(1).getMessageExpression());
180180
assertNull(kubernetesValidationsRepeatedRules.get(1).getOptionalOldSelf());
181+
182+
// check descriptions are present
183+
assertTrue(spec.containsKey("renamedField"));
184+
assertFalse(spec.containsKey("fieldToRename"));
181185
}
182186

183187
@Test
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package io.fabric8.crd.generator.annotation;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
@Target({ ElementType.FIELD, ElementType.METHOD })
9+
@Retention(RetentionPolicy.RUNTIME)
10+
public @interface Rename {
11+
String value();
12+
}

0 commit comments

Comments
 (0)