Usando seu codigo java no mule part 1

4
Usando seu codigo Java no Mule – Part 1 Mule oferece um conjunto incrível de ferramentas prontas para usar que torna a sua experiência no desenvolvimento de tão suave quanto possível. Enquanto na maioria dos cenários, você terá mais do que suficiente, o que acontece se você precisa dar um passo específico e você quiser personalizá-lo? Sou capaz de adicionar o meu próprio código Java em meu fluxo mule? Enquanto ele é altamente recomendável usar os componentes fornecidos pelo Mule (componentes já testados), você é livre para incorporar suas operações Java / POJOs / bibliotecas em mule! Abaixo descrevo uma lista de abordagens que eu espero responder a maioria das suas perguntas! Para estes exemplos que vamos usar uma classe POJO "Animal”. public class Animal { private String name; public Animal(){ name="maxMule"; } public Animal(String name){ this.name=name; } public String getName() {

Transcript of Usando seu codigo java no mule part 1

Page 1: Usando seu codigo java no mule part 1

Usando seu codigo Java no Mule – Part 1

Mule oferece um conjunto incrível de ferramentas prontas para usar que torna a

sua experiência no desenvolvimento de tão suave quanto possível. Enquanto

na maioria dos cenários, você terá mais do que suficiente, o que acontece se

você precisa dar um passo específico e você quiser personalizá-lo? Sou capaz

de adicionar o meu próprio código Java em meu fluxo mule? Enquanto ele é

altamente recomendável usar os componentes fornecidos pelo Mule

(componentes já testados), você é livre para incorporar suas operações Java /

POJOs / bibliotecas em mule! Abaixo descrevo uma lista de abordagens que eu

espero responder a maioria das suas perguntas! Para estes exemplos que

vamos usar uma classe POJO "Animal”.

public class Animal {

private String name;

public Animal(){

name="maxMule";

}

public Animal(String name){

this.name=name;

}

public String getName() {

Page 2: Usando seu codigo java no mule part 1

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public String toString() {

return "Animal [name=" + name + "]";

}

}

Implementing Callable Interface Uma abordagem comum é fazer com que a nossa classe Java implementa a interface org.mule.api.lifecycle.Callable . Nós apenas precisamos de substituir as OnCall método que recebe como parâmetro o MuleEventContext . Usando thisMuleEventContext objeto podemos acessar os nossos componentes de mula . Por exemplo, " eventContext.getMessage ()" irá retornar a mensagem da aplicação Mule . No exemplo abaixo, estamos adicionando uma nova propriedade de sessão e retornar um objeto "Animal" no Payload :

public class OnCallClass implements Callable {

Page 3: Usando seu codigo java no mule part 1

@Override

public Object onCall(MuleEventContext eventContext) throws Exception {

eventContext.getMessage().setProperty("surname", "Martinez", PropertyScope.SESSION);

System.out.println("Session Variable updated \n");

System.out.println("Returning Animal Object in the payload");

return new Animal();

}

}

view rawOnCallClass.java hosted with by GitHub

Agora vamos usar o <component class=””> para chamar nossa nova class no

mule app:

<flow name="usingCallable">

<http:listener config-ref="HTTP_Listener_Configuration" path="/onCall" doc:name="HTTP"

allowedMethods="GET" />

<component class="javacall.OnCallClass" doc:name="Java" />

<object-to-string-transformer doc:name="Object to String" />

</flow>

Usando uma Custom Message Processor Podemos descrever um aplicativo Mule como uma mensagem de Mula, desencadeada por qualquer forma, que passa por diferentes processadores (passos). A segunda abordagem define uma dessas etapas usando Java!

Page 4: Usando seu codigo java no mule part 1

A nossa nova classe deve implementar org.mule.api.processor.MessageProcessor . Essa classe tem o processo de operação que recebe o MuleEvent semelhante à nossa primeira abordagem . No exemplo abaixo , vamos receber este evento, definir uma carga diferente e retornar o evento com o nosso novo Payload .

public class MessageProcessorCall implements MessageProcessor{

@Override

public MuleEvent process(MuleEvent event) throws MuleException {

System.out.println("\n-------Process Executing, updating payload-------");

event.getMessage().setPayload("Payload Modified from Message processor");

System.out.println("\n-------Process executed, payload updated-------");

return event;

}

}

Agora, vamos adicionar no nosso mule app usando <custom-processor

class=””> component:

<flow name="usingCustomMessageProcessor">

<http:listener config-ref="HTTP_Listener_Configuration" path="/customMessage" doc:name="HTTP"

allowedMethods="GET"/>

<custom-processor class="javacall.MessageProcessorCall" doc:name="Custom Processor"/>

<object-to-string-transformer doc:name="Object to String"/>

</flow>