Skip to content

Commit

Permalink
camel-quarkus-dozer Error when running native executable #2449
Browse files Browse the repository at this point in the history
  • Loading branch information
JiriOndrusek committed Apr 8, 2021
1 parent ddf4d9f commit ccdfcc0
Show file tree
Hide file tree
Showing 6 changed files with 149 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ void configureCamelDozer(BuildProducer<ReflectiveClassBuildItem> reflectiveClass
Time[].class,
Timestamp[].class,
URL[].class,
Date.class,
File.class,
URL.class,
DozerThreadContextClassLoader.class,
ExpressionFactoryImpl.class));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
*/
package org.apache.camel.quarkus.component.dozer.it;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;

Expand All @@ -41,7 +43,9 @@ public class DozerResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public CustomerB dozerMap() {
return producerTemplate.requestBody("direct:mapWithEndpoint", createCustomerA(), CustomerB.class);
CustomerB cb = producerTemplate.requestBody("direct:mapWithEndpoint", createCustomerA(), CustomerB.class);
cb.setInternalsAsString();
return cb;
}

@Path("/map/using/converter")
Expand Down Expand Up @@ -69,6 +73,7 @@ public CustomerB dozerMapWithExpression() {
}

private CustomerA createCustomerA() {
return new CustomerA("Peter", "Post", "Camel Street", "12345");
return new CustomerA("Peter", "Post", "Camel Street", "12345",
new GregorianCalendar(1990, Calendar.DECEMBER, 15).getTime());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,29 @@
*/
package org.apache.camel.quarkus.component.dozer.it.model;

import java.util.Date;

public class CustomerA {

private String firstName;
private String lastName;
private String street;
private String zip;
private Date joined;
private String internalUrl = "http://customer";
private String internalFile = "/test";
private String internalClass = "java.lang.String";
private String internal = "internal";

public CustomerA() {
}

public CustomerA(String firstName, String lastName, String street, String zip) {
public CustomerA(String firstName, String lastName, String street, String zip, Date joined) {
this.firstName = firstName;
this.lastName = lastName;
this.street = street;
this.zip = zip;
this.joined = joined;
}

public String getFirstName() {
Expand Down Expand Up @@ -65,4 +73,43 @@ public void setZip(String zip) {
this.zip = zip;
}

public Date getJoined() {
return joined;
}

public void setJoined(Date joined) {
this.joined = joined;
}

public String getInternalUrl() {
return internalUrl;
}

public void setInternalUrl(String internalUrl) {
this.internalUrl = internalUrl;
}

public String getInternalFile() {
return internalFile;
}

public void setInternalFile(String internalFile) {
this.internalFile = internalFile;
}

public String getInternalClass() {
return internalClass;
}

public void setInternalClass(String internalClass) {
this.internalClass = internalClass;
}

public String getInternal() {
return internal;
}

public void setInternal(String internal) {
this.internal = internal;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,22 @@
*/
package org.apache.camel.quarkus.component.dozer.it.model;

import java.io.File;
import java.net.URL;
import java.util.Date;

public class CustomerB {

private String firstName;
private String lastName;
private Address address;
private Date created;
private URL internalUrl;
private File internalFile;
private String internalFileAsString;
private Class internalClass;
private String internalClassAsString;
private Custom internal;

public CustomerB() {
}
Expand All @@ -31,6 +42,15 @@ public CustomerB(String firstName, String lastName, Address address) {
this.address = address;
}

public void setInternalsAsString() {
if (internalClass != null) {
internalClassAsString = internalClass.getCanonicalName();
}
if (internalFile != null) {
internalFileAsString = internalFile.toString();
}
}

public String getFirstName() {
return firstName;
}
Expand All @@ -55,6 +75,46 @@ public void setAddress(Address address) {
this.address = address;
}

public Date getCreated() {
return created;
}

public void setCreated(Date created) {
this.created = created;
}

public URL getInternalUrl() {
return internalUrl;
}

public void setInternalUrl(URL internalUrl) {
this.internalUrl = internalUrl;
}

public void setInternalFile(File internalFile) {
this.internalFile = internalFile;
}

public void setInternalClass(Class internalClass) {
this.internalClass = internalClass;
}

public String getInternalFileAsString() {
return internalFileAsString;
}

public String getInternalClassAsString() {
return internalClassAsString;
}

public Custom getInternal() {
return internal;
}

public void setInternal(Custom internal) {
this.internal = internal;
}

public static class Address {

private String street;
Expand Down Expand Up @@ -84,4 +144,23 @@ public void setZip(String zip) {
this.zip = zip;
}
}

public static class Custom {

private String text;

public Custom(String text) {
this.text = "hello " + text;
}

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}

}

}
5 changes: 5 additions & 0 deletions integration-tests/dozer/src/main/resources/simple-mapping.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@
<a>zip</a>
<b>address.zip</b>
</field>
<field>
<a>joined</a>
<b>created</b>
</field>

</mapping>

</mappings>
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;

import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;

Expand All @@ -43,7 +44,12 @@ public void testDozerEndpoint() {
.statusCode(200)
.body("address", notNullValue(),
"address.zip", is("12345"),
"address.street", is("Camel Street"));
"address.street", is("Camel Street"),
"created", containsString("1990"),
"internalFileAsString", is("/test"),
"internalClassAsString", is("java.lang.String"),
"internalUrl", is("http://customer"),
"internal.text", is("hello internal"));
}

@Test
Expand Down

0 comments on commit ccdfcc0

Please sign in to comment.