Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save caisback/4fac8cde83d91cca5f34aa543eab8673 to your computer and use it in GitHub Desktop.

Select an option

Save caisback/4fac8cde83d91cca5f34aa543eab8673 to your computer and use it in GitHub Desktop.
Apache Camel - Data Mapping Ideas Scattered Over the Net
  • Small example to show a solution for your use-case with mixins:
class Data {
    int totalUsers;
    int totalBooks;
}

class DataMixin {
    @JsonProperty("Total Users")
    int totalUsers;
    @JsonProperty("Total Books")
    int totalBooks;
}

// Jackson 2.5+

ObjectMapper mapper = new ObjectMapper();
if (pretty) {
    mapper.addMixin(Data.class, DataMixin.class);
}
@caisback

caisback commented May 6, 2021

Copy link
Copy Markdown
Author
  • To be added on pom.xml when using jackson?

Class or .java:

import com.fasterxml.jackson.annotation.JsonProperty;

pox.xml

  <!--jackson for pom.xml -->
	<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-core</artifactId>
	    <version>2.11.1</version><!--$NO-MVN-MAN-VER$-->
	</dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.11.1</version><!--$NO-MVN-MAN-VER$-->
    </dependency>

@dlsu-biboyatienza

Copy link
Copy Markdown

@dlsu-biboyatienza

Copy link
Copy Markdown

@caisback

caisback commented May 9, 2021

Copy link
Copy Markdown
Author

Working code as of 06My2021:

<!-- Working code as of 06My2021 -->

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd                            http://camel.apache.org/schema/blueprint https://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    <cm:property-placeholder persistent-id="trial.blueprint" update-strategy="reload"/>
    <camelContext id="_context1" xmlns="http://camel.apache.org/schema/blueprint">
        <route id="_route1">
            <from id="_from_Request" uri="restlet:{{in.server.protocol}}:{{in.server.host}}:{{in.server.port}}/{{in.server.uri.pattern}}?restletMethod=POST"/>
            <log id="_logMsgInLog" message="Hi SLC Course {header.id}: ${header.id}, with {id} :  ${id} and body:${body} from BBoy!!!"/>
            <setHeader headerName="Content-Type" id="_setHeader_type">
                <constant>application/json</constant>
            </setHeader>
            <setHeader headerName="api-key" id="_setHeader_api_key">
                <simple>${header.api-key}</simple>
            </setHeader>
            <to id="_to1" uri="bean:ph.edu.dlsu.esb.trial.bpbeans.HelloBeans?method=hello(${body})"/>
            <setBody id="_setBody1">
                <simple>exchange.getIn().getBody()</simple>
            </setBody>
            <transform id="_transform1">
                <simple>${body}</simple>
            </transform>
        </route>
    </camelContext>
</blueprint>

<!-- END OF Working code as of 06My2021 -->

@dlsu-biboyatienza

Copy link
Copy Markdown

Setting http response status:

.setHeader(Exchange.HTTP_RESPONSE_CODE, constant(403))
.setHeader(Exchange.CONTENT_TYPE, constant("text/plain"))
.setBody(constant("Forbidden"))

@dlsu-biboyatienza

Copy link
Copy Markdown

@dlsu-biboyatienza

Copy link
Copy Markdown

For testing; if you need a quick beautiful json format

https://jsonformatter.curiousconcept.com/#

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment