This is an automated email from the ASF dual-hosted git repository.

aldettinger pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/master by this push:
     new 256ecad  bindy: created a test to show the locale issue in native and 
documented #2407
256ecad is described below

commit 256ecadace9882cf054034ace208acad66acce44
Author: aldettinger <aldettin...@gmail.com>
AuthorDate: Mon Mar 29 18:21:44 2021 +0200

    bindy: created a test to show the locale issue in native and documented 
#2407
---
 .../ROOT/pages/reference/extensions/bindy.adoc     | 12 ++++++++
 .../ROOT/pages/reference/extensions/core.adoc      |  2 +-
 .../bindy/runtime/src/main/doc/limitations.adoc    |  8 +++++
 .../quarkus/component/bindy/it/BindyResource.java  | 14 +++++++++
 .../quarkus/component/bindy/it/BindyTestRoute.java |  7 +++++
 .../bindy/it/model/FixedLengthWithLocale.java      | 36 ++++++++++++++++++++++
 .../bindy/it/FixedLengthWithLocaleIT.java          | 26 ++++++++++++++++
 .../bindy/it/FixedLengthWithLocaleTest.java        | 31 +++++++++++++++++++
 8 files changed, 135 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/bindy.adoc 
b/docs/modules/ROOT/pages/reference/extensions/bindy.adoc
index a21a51c..63651d9 100644
--- a/docs/modules/ROOT/pages/reference/extensions/bindy.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/bindy.adoc
@@ -34,3 +34,15 @@ Please refer to the above links for usage and configuration 
details.
 ----
 
 Check the xref:user-guide/index.adoc[User guide] for more information about 
writing Camel Quarkus applications.
+
+== Camel Quarkus limitations
+
+When using camel-quarkus-bindy in native mode, only the build machine's 
default locale is supported.
+
+For instance, on build machines with french default locale, the code below:
+```
+BindyDataFormat dataFormat = new BindyDataFormat();
+dataFormat.setLocale("ar");
+```
+formats numbers the arabic way in JVM mode as expected. However, it formats 
numbers the french way in native mode.
+
diff --git a/docs/modules/ROOT/pages/reference/extensions/core.adoc 
b/docs/modules/ROOT/pages/reference/extensions/core.adoc
index db75198..2879a4a 100644
--- a/docs/modules/ROOT/pages/reference/extensions/core.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/core.adoc
@@ -168,7 +168,7 @@ What to do if it is not possible to extract CSimple 
expressions from a route def
 
 |icon:lock[title=Fixed at build time] 
[[quarkus.camel.main.enabled]]`link:#quarkus.camel.main.enabled[quarkus.camel.main.enabled]`
 
-If `true` all `camel-main` features are enabled; otherwise no `camel-main` 
features are enabled. See described the 
xref:user-guide/bootstrap.adoc[Bootstrap] camel-main section of the 
documentation for more details.
+If `true` all `camel-main` features are enabled; otherwise no `camel-main` 
features are enabled. See described the 
link:https://camel.apache.org/camel-quarkus/latest/user-guide/bootstrap.html#_camel_main[Bootstrap]
 section of Camel Quarkus documentation for more details.
 | `boolean`
 | `true`
 
diff --git a/extensions/bindy/runtime/src/main/doc/limitations.adoc 
b/extensions/bindy/runtime/src/main/doc/limitations.adoc
new file mode 100644
index 0000000..4aa54ad
--- /dev/null
+++ b/extensions/bindy/runtime/src/main/doc/limitations.adoc
@@ -0,0 +1,8 @@
+When using camel-quarkus-bindy in native mode, only the build machine's 
default locale is supported.
+
+For instance, on build machines with french default locale, the code below:
+```
+BindyDataFormat dataFormat = new BindyDataFormat();
+dataFormat.setLocale("ar");
+```
+formats numbers the arabic way in JVM mode as expected. However, it formats 
numbers the french way in native mode.
\ No newline at end of file
diff --git 
a/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/BindyResource.java
 
b/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/BindyResource.java
index 994bf8f..f0d652c 100644
--- 
a/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/BindyResource.java
+++ 
b/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/BindyResource.java
@@ -29,6 +29,7 @@ import javax.ws.rs.Path;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.quarkus.component.bindy.it.model.CsvOrder;
 import org.apache.camel.quarkus.component.bindy.it.model.FixedLengthOrder;
+import org.apache.camel.quarkus.component.bindy.it.model.FixedLengthWithLocale;
 import org.apache.camel.quarkus.component.bindy.it.model.Header;
 import org.apache.camel.quarkus.component.bindy.it.model.MessageOrder;
 import org.apache.camel.quarkus.component.bindy.it.model.NameWithLengthSuffix;
@@ -110,6 +111,19 @@ public class BindyResource {
         assertEquals("Spa", order.getCountry());
     }
 
+    @Path("/marshalFixedLengthWithLocaleShouldSucceed")
+    @GET
+    public void marshalFixedLengthWithLocaleShouldSucceed() {
+        LOG.debugf("Invoking marshalFixedLengthWithLocaleShouldSucceed()");
+
+        FixedLengthWithLocale object = new FixedLengthWithLocale();
+        object.setNumber(3.2);
+
+        String marshalled = 
template.requestBody("direct:marshal-fixed-length-with-locale", object, 
String.class);
+
+        assertEquals("٣٫٢٠٠\r\n", marshalled);
+    }
+
     @Path("/marshalMessageShouldSucceed")
     @GET
     public void marshalMessageShouldSucceed() {
diff --git 
a/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/BindyTestRoute.java
 
b/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/BindyTestRoute.java
index d5eed75..c2da507 100644
--- 
a/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/BindyTestRoute.java
+++ 
b/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/BindyTestRoute.java
@@ -22,6 +22,7 @@ import org.apache.camel.model.dataformat.BindyDataFormat;
 import org.apache.camel.model.dataformat.BindyType;
 import org.apache.camel.quarkus.component.bindy.it.model.CsvOrder;
 import org.apache.camel.quarkus.component.bindy.it.model.FixedLengthOrder;
+import org.apache.camel.quarkus.component.bindy.it.model.FixedLengthWithLocale;
 import org.apache.camel.quarkus.component.bindy.it.model.MessageOrder;
 
 public class BindyTestRoute extends RouteBuilder {
@@ -40,6 +41,12 @@ public class BindyTestRoute extends RouteBuilder {
         
from("direct:marshal-fixed-length-record").marshal(bindyFixedLengthDataFormat);
         
from("direct:unmarshal-fixed-length-record").unmarshal(bindyFixedLengthDataFormat);
 
+        BindyDataFormat bindyFixedLengthWithLocaleDataFormat = new 
BindyDataFormat();
+        
bindyFixedLengthWithLocaleDataFormat.setClassType(FixedLengthWithLocale.class);
+        bindyFixedLengthWithLocaleDataFormat.setType(BindyType.Fixed.name());
+        bindyFixedLengthWithLocaleDataFormat.setLocale("ar");
+        
from("direct:marshal-fixed-length-with-locale").marshal(bindyFixedLengthWithLocaleDataFormat);
+
         BindyKeyValuePairDataFormat bindyMessageDataFormat = new 
BindyKeyValuePairDataFormat(MessageOrder.class);
         from("direct:marshal-message").marshal(bindyMessageDataFormat);
         from("direct:unmarshal-message").unmarshal(bindyMessageDataFormat);
diff --git 
a/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/model/FixedLengthWithLocale.java
 
b/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/model/FixedLengthWithLocale.java
new file mode 100644
index 0000000..8bc4dce
--- /dev/null
+++ 
b/integration-tests/bindy/src/main/java/org/apache/camel/quarkus/component/bindy/it/model/FixedLengthWithLocale.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.bindy.it.model;
+
+import org.apache.camel.dataformat.bindy.annotation.DataField;
+import org.apache.camel.dataformat.bindy.annotation.FixedLengthRecord;
+
+@FixedLengthRecord(length = 5)
+public class FixedLengthWithLocale {
+
+    @DataField(pos = 1, length = 5, precision = 3)
+    private double number;
+
+    public double getNumber() {
+        return number;
+    }
+
+    public void setNumber(double number) {
+        this.number = number;
+    }
+
+}
diff --git 
a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleIT.java
 
b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleIT.java
new file mode 100644
index 0000000..2e1bc7b
--- /dev/null
+++ 
b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleIT.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.bindy.it;
+
+import io.quarkus.test.junit.NativeImageTest;
+import org.junit.jupiter.api.Disabled;
+
+@Disabled("https://github.com/apache/camel-quarkus/issues/2407";)
+@NativeImageTest
+class FixedLengthWithLocaleIT extends FixedLengthWithLocaleTest {
+
+}
diff --git 
a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleTest.java
 
b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleTest.java
new file mode 100644
index 0000000..a6ca32d
--- /dev/null
+++ 
b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleTest.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.bindy.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class FixedLengthWithLocaleTest {
+
+    @Test
+    public void marshalFixedLengthWithLocaleShouldSucceed() {
+        
RestAssured.get("/bindy/marshalFixedLengthWithLocaleShouldSucceed").then().statusCode(204);
+    }
+
+}

Reply via email to