Skip to content

Commit 4bc001e

Browse files
rohanKanojiamanusa
authored andcommitted
Extension Model Generator should convert byte[] to String
Right now Extensions Generator is converting a byte array to an array of integers. This is because there is not explicit reflect type for byte. In Golang, reflection type of byte is reflect.Uint8 Handle this case of byte[] and convert it to String Signed-off-by: Rohan Kumar <[email protected]>
1 parent 658b2f8 commit 4bc001e

File tree

5 files changed

+56
-132
lines changed

5 files changed

+56
-132
lines changed

extensions/certmanager/model-v1/src/main/resources/schema/certmanager-schema.json

+12-33
Original file line numberDiff line numberDiff line change
@@ -753,10 +753,7 @@
753753
"existingJavaType": "io.fabric8.certmanager.api.model.meta.v1.ObjectReference"
754754
},
755755
"request": {
756-
"type": "array",
757-
"items": {
758-
"type": "integer"
759-
}
756+
"type": "string"
760757
}
761758
},
762759
"javaType": "io.fabric8.certmanager.api.model.acme.v1.OrderSpec",
@@ -776,11 +773,8 @@
776773
}
777774
},
778775
"certificate": {
779-
"type": "array",
780-
"javaOmitEmpty": true,
781-
"items": {
782-
"type": "integer"
783-
}
776+
"type": "string",
777+
"javaOmitEmpty": true
784778
},
785779
"failureTime": {
786780
"existingJavaType": "java.lang.String"
@@ -1044,10 +1038,7 @@
10441038
"existingJavaType": "io.fabric8.certmanager.api.model.meta.v1.ObjectReference"
10451039
},
10461040
"request": {
1047-
"type": "array",
1048-
"items": {
1049-
"type": "integer"
1050-
}
1041+
"type": "string"
10511042
},
10521043
"usages": {
10531044
"type": "array",
@@ -1066,18 +1057,12 @@
10661057
"type": "object",
10671058
"properties": {
10681059
"ca": {
1069-
"type": "array",
1070-
"javaOmitEmpty": true,
1071-
"items": {
1072-
"type": "integer"
1073-
}
1060+
"type": "string",
1061+
"javaOmitEmpty": true
10741062
},
10751063
"certificate": {
1076-
"type": "array",
1077-
"javaOmitEmpty": true,
1078-
"items": {
1079-
"type": "integer"
1080-
}
1064+
"type": "string",
1065+
"javaOmitEmpty": true
10811066
},
10821067
"conditions": {
10831068
"type": "array",
@@ -1503,11 +1488,8 @@
15031488
"existingJavaType": "io.fabric8.certmanager.api.model.v1.VaultAuth"
15041489
},
15051490
"caBundle": {
1506-
"type": "array",
1507-
"javaOmitEmpty": true,
1508-
"items": {
1509-
"type": "integer"
1510-
}
1491+
"type": "string",
1492+
"javaOmitEmpty": true
15111493
},
15121494
"namespace": {
15131495
"type": "string"
@@ -1583,11 +1565,8 @@
15831565
"type": "object",
15841566
"properties": {
15851567
"caBundle": {
1586-
"type": "array",
1587-
"javaOmitEmpty": true,
1588-
"items": {
1589-
"type": "integer"
1590-
}
1568+
"type": "string",
1569+
"javaOmitEmpty": true
15911570
},
15921571
"credentialsRef": {
15931572
"$ref": "#/definitions/github_com_jetstack_cert-manager_pkg_apis_meta_v1_LocalObjectReference",

extensions/certmanager/model-v1alpha2/src/main/resources/schema/certmanager-schema.json

+12-33
Original file line numberDiff line numberDiff line change
@@ -732,10 +732,7 @@
732732
"type": "string"
733733
},
734734
"csr": {
735-
"type": "array",
736-
"items": {
737-
"type": "integer"
738-
}
735+
"type": "string"
739736
},
740737
"dnsNames": {
741738
"type": "array",
@@ -776,11 +773,8 @@
776773
}
777774
},
778775
"certificate": {
779-
"type": "array",
780-
"javaOmitEmpty": true,
781-
"items": {
782-
"type": "integer"
783-
}
776+
"type": "string",
777+
"javaOmitEmpty": true
784778
},
785779
"failureTime": {
786780
"existingJavaType": "java.lang.String"
@@ -1025,10 +1019,7 @@
10251019
"type": "object",
10261020
"properties": {
10271021
"csr": {
1028-
"type": "array",
1029-
"items": {
1030-
"type": "integer"
1031-
}
1022+
"type": "string"
10321023
},
10331024
"duration": {
10341025
"existingJavaType": "io.fabric8.kubernetes.api.model.Duration"
@@ -1057,18 +1048,12 @@
10571048
"type": "object",
10581049
"properties": {
10591050
"ca": {
1060-
"type": "array",
1061-
"javaOmitEmpty": true,
1062-
"items": {
1063-
"type": "integer"
1064-
}
1051+
"type": "string",
1052+
"javaOmitEmpty": true
10651053
},
10661054
"certificate": {
1067-
"type": "array",
1068-
"javaOmitEmpty": true,
1069-
"items": {
1070-
"type": "integer"
1071-
}
1055+
"type": "string",
1056+
"javaOmitEmpty": true
10721057
},
10731058
"conditions": {
10741059
"type": "array",
@@ -1510,11 +1495,8 @@
15101495
"existingJavaType": "io.fabric8.certmanager.api.model.v1alpha2.VaultAuth"
15111496
},
15121497
"caBundle": {
1513-
"type": "array",
1514-
"javaOmitEmpty": true,
1515-
"items": {
1516-
"type": "integer"
1517-
}
1498+
"type": "string",
1499+
"javaOmitEmpty": true
15181500
},
15191501
"namespace": {
15201502
"type": "string"
@@ -1590,11 +1572,8 @@
15901572
"type": "object",
15911573
"properties": {
15921574
"caBundle": {
1593-
"type": "array",
1594-
"javaOmitEmpty": true,
1595-
"items": {
1596-
"type": "integer"
1597-
}
1575+
"type": "string",
1576+
"javaOmitEmpty": true
15981577
},
15991578
"credentialsRef": {
16001579
"$ref": "#/definitions/github_com_jetstack_cert-manager_pkg_apis_meta_v1_LocalObjectReference",

extensions/certmanager/model-v1alpha3/src/main/resources/schema/certmanager-schema.json

+12-33
Original file line numberDiff line numberDiff line change
@@ -732,10 +732,7 @@
732732
"type": "string"
733733
},
734734
"csr": {
735-
"type": "array",
736-
"items": {
737-
"type": "integer"
738-
}
735+
"type": "string"
739736
},
740737
"dnsNames": {
741738
"type": "array",
@@ -776,11 +773,8 @@
776773
}
777774
},
778775
"certificate": {
779-
"type": "array",
780-
"javaOmitEmpty": true,
781-
"items": {
782-
"type": "integer"
783-
}
776+
"type": "string",
777+
"javaOmitEmpty": true
784778
},
785779
"failureTime": {
786780
"existingJavaType": "java.lang.String"
@@ -1025,10 +1019,7 @@
10251019
"type": "object",
10261020
"properties": {
10271021
"csr": {
1028-
"type": "array",
1029-
"items": {
1030-
"type": "integer"
1031-
}
1022+
"type": "string"
10321023
},
10331024
"duration": {
10341025
"existingJavaType": "io.fabric8.kubernetes.api.model.Duration"
@@ -1057,18 +1048,12 @@
10571048
"type": "object",
10581049
"properties": {
10591050
"ca": {
1060-
"type": "array",
1061-
"javaOmitEmpty": true,
1062-
"items": {
1063-
"type": "integer"
1064-
}
1051+
"type": "string",
1052+
"javaOmitEmpty": true
10651053
},
10661054
"certificate": {
1067-
"type": "array",
1068-
"javaOmitEmpty": true,
1069-
"items": {
1070-
"type": "integer"
1071-
}
1055+
"type": "string",
1056+
"javaOmitEmpty": true
10721057
},
10731058
"conditions": {
10741059
"type": "array",
@@ -1503,11 +1488,8 @@
15031488
"existingJavaType": "io.fabric8.certmanager.api.model.v1alpha3.VaultAuth"
15041489
},
15051490
"caBundle": {
1506-
"type": "array",
1507-
"javaOmitEmpty": true,
1508-
"items": {
1509-
"type": "integer"
1510-
}
1491+
"type": "string",
1492+
"javaOmitEmpty": true
15111493
},
15121494
"namespace": {
15131495
"type": "string"
@@ -1583,11 +1565,8 @@
15831565
"type": "object",
15841566
"properties": {
15851567
"caBundle": {
1586-
"type": "array",
1587-
"javaOmitEmpty": true,
1588-
"items": {
1589-
"type": "integer"
1590-
}
1568+
"type": "string",
1569+
"javaOmitEmpty": true
15911570
},
15921571
"credentialsRef": {
15931572
"$ref": "#/definitions/github_com_jetstack_cert-manager_pkg_apis_meta_v1_LocalObjectReference",

extensions/certmanager/model-v1beta1/src/main/resources/schema/certmanager-schema.json

+12-33
Original file line numberDiff line numberDiff line change
@@ -753,10 +753,7 @@
753753
"existingJavaType": "io.fabric8.certmanager.api.model.meta.v1.ObjectReference"
754754
},
755755
"request": {
756-
"type": "array",
757-
"items": {
758-
"type": "integer"
759-
}
756+
"type": "string"
760757
}
761758
},
762759
"javaType": "io.fabric8.certmanager.api.model.acme.v1beta1.OrderSpec",
@@ -776,11 +773,8 @@
776773
}
777774
},
778775
"certificate": {
779-
"type": "array",
780-
"javaOmitEmpty": true,
781-
"items": {
782-
"type": "integer"
783-
}
776+
"type": "string",
777+
"javaOmitEmpty": true
784778
},
785779
"failureTime": {
786780
"existingJavaType": "java.lang.String"
@@ -1044,10 +1038,7 @@
10441038
"existingJavaType": "io.fabric8.certmanager.api.model.meta.v1.ObjectReference"
10451039
},
10461040
"request": {
1047-
"type": "array",
1048-
"items": {
1049-
"type": "integer"
1050-
}
1041+
"type": "string"
10511042
},
10521043
"usages": {
10531044
"type": "array",
@@ -1066,18 +1057,12 @@
10661057
"type": "object",
10671058
"properties": {
10681059
"ca": {
1069-
"type": "array",
1070-
"javaOmitEmpty": true,
1071-
"items": {
1072-
"type": "integer"
1073-
}
1060+
"type": "string",
1061+
"javaOmitEmpty": true
10741062
},
10751063
"certificate": {
1076-
"type": "array",
1077-
"javaOmitEmpty": true,
1078-
"items": {
1079-
"type": "integer"
1080-
}
1064+
"type": "string",
1065+
"javaOmitEmpty": true
10811066
},
10821067
"conditions": {
10831068
"type": "array",
@@ -1503,11 +1488,8 @@
15031488
"existingJavaType": "io.fabric8.certmanager.api.model.v1beta1.VaultAuth"
15041489
},
15051490
"caBundle": {
1506-
"type": "array",
1507-
"javaOmitEmpty": true,
1508-
"items": {
1509-
"type": "integer"
1510-
}
1491+
"type": "string",
1492+
"javaOmitEmpty": true
15111493
},
15121494
"namespace": {
15131495
"type": "string"
@@ -1583,11 +1565,8 @@
15831565
"type": "object",
15841566
"properties": {
15851567
"caBundle": {
1586-
"type": "array",
1587-
"javaOmitEmpty": true,
1588-
"items": {
1589-
"type": "integer"
1590-
}
1568+
"type": "string",
1569+
"javaOmitEmpty": true
15911570
},
15921571
"credentialsRef": {
15931572
"$ref": "#/definitions/github_com_jetstack_cert-manager_pkg_apis_meta_v1_LocalObjectReference",

generator/pkg/schemagen/generate.go

+8
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,14 @@ func (g *schemaGenerator) propertyDescriptorForList(field reflect.StructField) J
951951
omitIfEmpty := g.isOmitEmpty(field)
952952

953953
if isSimpleJavaType(listValueType) {
954+
if listValueType.Kind() == reflect.Uint8 { // Handle case for byte[]
955+
return JSONPropertyDescriptor{
956+
JSONDescriptor: &JSONDescriptor{
957+
Type: "string",
958+
JavaOmitEmpty: omitIfEmpty,
959+
},
960+
}
961+
}
954962
return JSONPropertyDescriptor{
955963
JSONDescriptor: &JSONDescriptor{
956964
Type: "array",

0 commit comments

Comments
 (0)