SlideShare uma empresa Scribd logo
Usando seu codigo Java no Mule – Part 2
Message Transformer
Vamos configurar a nossa classe de transformação que irá devolver o POJO
"Animal" . Neste caso , temos que se estendem "
org.mule.transformer.AbstractMessageTransformer " , utilizando a operação
transformMessage que recebe o MuleMessage como um parâmetro .
No exemplo abaixo temos o nome de uma variável de fluxo e retornar um novo
animal com este nome :
public class AnimalTransformer extends AbstractMessageTransformer{
public Object transformMessage(MuleMessage message, String outputEncoding) throws
TransformerException {
String flowVarName = message.getProperty("flowVarName", PropertyScope.INVOCA
Animal animal=new Animal(flowVarName);
return animal;
}
}
Vamos fazê-lo funcionar ! usando o <custom-transformer> nos podemos
especificar quais tipos de objetos que irá receber e a classe que irá lidar com a
transformação.
<flow name="usingTransformer">
<http:listener config-ref="HTTP_Listener_Configuration" path="/transformer" allowedMeth
doc:name="HTTP"/>
<set-variable variableName="flowVarName" value="#['Max the Mule']" doc:name="Variab
<custom-transformer returnClass="model.Animal" class="javacall.AnimalTransformer"
doc:name="Java"/>
<object-to-string-transformer doc:name="Object to String"/>
</flow>
Transforming via Annotation
Temos a opção de usar Anotações ao implementar nossa solução de
transformação. Para atingir este objetivo , primeiro anotar a classe com
@ContainsTransformerMethods ( "
org.mule.api.annotations.ContainsTransformerMethods ") que marca a classe
como um recipiente de um transformador Mule . O método deve ser anotado
com @Transformer ( " org.mule.api.annotations.Transformer " ) , o que significa
que serão disponibilizados na mula Container.
No exemplo abaixo , estamos usando o @Payload anotação ( "
org.mule.api.annotations.param.Payload " ) para injetar nossa carga útil em
nosso parâmetro String nome e devolver um animal com este nome.
@ContainsTransformerMethods
public class AnimalTransformerAnnotation {
@Transformer
public Animal returnAnimal(@Payload String name){
return new Animal(name);
}
}
Nosso teste do fluxo Mule:
<flow name="usingTransformerAnnotation">
<http:listener config-ref="HTTP_Listener_Configuration" path="/transformerAnnotation"
doc:name="HTTP" allowedMethods="GET"/>
<set-payload value="#['Annotated Max!']" doc:name="Set Payload"/>
<component class="javacall.AnimalTransformerAnnotation" doc:name="Java"/>
<object-to-string-transformer doc:name="Object to String"/>
</flow>
Importando livrarias Java no Dataweave e MEL
Por último, mas não menos importante, vamos definir uma função global que
importa diferentes bibliotecas e pode ser usado via DataWeave , isso não é
legal!
Primeiro de tudo, precisamos definir nossa função global. Neste exemplo ,
vamos calcular o número de dias de um mês previsto como um parâmetro.
Vamos fazer uso do Calendário e SimpleDateFormat bibliotecas.
<configuration doc:name="Configuration">
<expression-language>
<global-functions>
def dayOfTheMonth(date){
import java.util.Calendar;
import java.text.SimpleDateFormat;
cal = Calendar.getInstance();
sdf = new SimpleDateFormat('yyyyMMdd');
cal.setTime(sdf.parse(date));
return cal.getActualMaximum(Calendar.DAY_OF_MONTH).toString();
}
</global-functions>
</expression-language>
</configuration>
Nossa nova função está pronto para ser usado! Podemos agora usar uma
expressão MEL ou incluir nossa função no Dataweave !
MEL: #[dayOfTheMonth(‘20151027’)]
DataWeave: day: dayOfTheMonth(‘20140302’)
Espero que estas várias opções de ajudar a melhorar a sua flexibilidade
durante a utilização da mula !

Mais conteúdo relacionado

PDF
Usando seu codigo java no mule part 1
PDF
Substituindo o request message no mule
PDF
Exemplo caso de uso(Mulesoft)
PDF
Java Web 2 - Ferramentas e configuração
PDF
Novas APIs do Java EE 7: JMS e Web Services
PDF
De Web Services RESTful a Aplicações Mashup
PDF
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
Usando seu codigo java no mule part 1
Substituindo o request message no mule
Exemplo caso de uso(Mulesoft)
Java Web 2 - Ferramentas e configuração
Novas APIs do Java EE 7: JMS e Web Services
De Web Services RESTful a Aplicações Mashup
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010

Mais procurados (14)

PDF
PHP e Mysql - INSERT
ODP
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
PDF
PHP e Mysql - UPDATE
PDF
Java Web 3 - Servlets e JSP 1
PDF
Integração do Flex com PHP através do AMFPHP
PDF
Java web 6 JSP Expression Language Taglib parte 2
PPTX
Android webservice
PDF
Java Web 4 - Servlets e JSP 2
PDF
Web 2.0 e AJAX - Parte 2 / 3
PPT
PHP Básico - Parte 4
PDF
Alo mundojpa
PPTX
Aula de Node
PDF
Doctrine2 Seminário PHP
PDF
Java Web 5 - JSP, Expression Language e Taglibs
PHP e Mysql - INSERT
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
PHP e Mysql - UPDATE
Java Web 3 - Servlets e JSP 1
Integração do Flex com PHP através do AMFPHP
Java web 6 JSP Expression Language Taglib parte 2
Android webservice
Java Web 4 - Servlets e JSP 2
Web 2.0 e AJAX - Parte 2 / 3
PHP Básico - Parte 4
Alo mundojpa
Aula de Node
Doctrine2 Seminário PHP
Java Web 5 - JSP, Expression Language e Taglibs
Anúncio

Destaque (18)

PDF
Compilação de tutoriais blog MulePE
PDF
Restful considerada prejudicial - parte 1
PPTX
My disabled film
PDF
Smuggle Ideas To Real World
PDF
final indian journal paper 123
PPTX
PPT
IEEE Grant Opportunities for Young Scientists and Students
PPTX
Shipping your logs to elk from mule app/cloudhub part 1
PPTX
Mulesoft salesforce connector to update Object.
PDF
Novedades en el tratamiento no farmacológico
PPTX
Sessió 2. tema i títol
PPTX
Αβορίγινες
PPTX
PPTX
Mule concepts
PPTX
Xslt attributes
PPTX
φαγητα της ρωσιας
PPTX
Transform Message
PPTX
Mule parsing with json
Compilação de tutoriais blog MulePE
Restful considerada prejudicial - parte 1
My disabled film
Smuggle Ideas To Real World
final indian journal paper 123
IEEE Grant Opportunities for Young Scientists and Students
Shipping your logs to elk from mule app/cloudhub part 1
Mulesoft salesforce connector to update Object.
Novedades en el tratamiento no farmacológico
Sessió 2. tema i títol
Αβορίγινες
Mule concepts
Xslt attributes
φαγητα της ρωσιας
Transform Message
Mule parsing with json
Anúncio

Mais de Jeison Barros (20)

PDF
Pdfteste
PDF
Introdução a RAML - parte 1
PDF
O básico do uso de rest vs soap
PDF
Restful considerada prejudicial parte 2
PDF
Estratégia api e design
PDF
Transformando eficientemente resultados de uma consulta jdbc para json
PDF
Como criar um http proxy dinamico com mule parte 3
PDF
Como criar um http proxy dinamico com mule parte 1
PDF
Rest api vs SOAP
PDF
Conectando seu banco de dados usando jdbc
PDF
Habilidades necessárias para integrar aplicativos e dados
PDF
Qual integration framework você deve usar parte 2
PDF
Qual integration framework você deve usar parte 1
PDF
Consumindo soap wsdl
PDF
Trabalhando com anexos soap usando módulo cxf do mule
PDF
Começando com mulesoft e maven
PDF
Estudo de caso: Mule como um transporte JMS Comum
PDF
Mule esb com framework cucumber part 1
PDF
Mule esb com framework cucumber part 2
PDF
Explorando mule esb sftp adapter
Pdfteste
Introdução a RAML - parte 1
O básico do uso de rest vs soap
Restful considerada prejudicial parte 2
Estratégia api e design
Transformando eficientemente resultados de uma consulta jdbc para json
Como criar um http proxy dinamico com mule parte 3
Como criar um http proxy dinamico com mule parte 1
Rest api vs SOAP
Conectando seu banco de dados usando jdbc
Habilidades necessárias para integrar aplicativos e dados
Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 1
Consumindo soap wsdl
Trabalhando com anexos soap usando módulo cxf do mule
Começando com mulesoft e maven
Estudo de caso: Mule como um transporte JMS Comum
Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 2
Explorando mule esb sftp adapter

Último (10)

PDF
PROJETO DE PESQUISA PRONTO FONOAUDIOLOGIA 2025 ABNT.pdf
PDF
PROJETO DE PESQUISA PRONTO ESTÉTICA 2025 ABNT.pdf
PDF
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
PDF
Certificado de Conclusão Jornada Inteligência Artificial
PPTX
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
PPTX
TURMA modelo de modelo apresentação 4DE.pptx
PPTX
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
PDF
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
PDF
Metodologias ágeis - Slides - aulas 1 a 5.pdf
PDF
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
PROJETO DE PESQUISA PRONTO FONOAUDIOLOGIA 2025 ABNT.pdf
PROJETO DE PESQUISA PRONTO ESTÉTICA 2025 ABNT.pdf
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
Certificado de Conclusão Jornada Inteligência Artificial
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
TURMA modelo de modelo apresentação 4DE.pptx
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
Metodologias ágeis - Slides - aulas 1 a 5.pdf
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf

Usando seu codigo java no mule part 2

  • 1. Usando seu codigo Java no Mule – Part 2 Message Transformer Vamos configurar a nossa classe de transformação que irá devolver o POJO "Animal" . Neste caso , temos que se estendem " org.mule.transformer.AbstractMessageTransformer " , utilizando a operação transformMessage que recebe o MuleMessage como um parâmetro . No exemplo abaixo temos o nome de uma variável de fluxo e retornar um novo animal com este nome : public class AnimalTransformer extends AbstractMessageTransformer{ public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException { String flowVarName = message.getProperty("flowVarName", PropertyScope.INVOCA Animal animal=new Animal(flowVarName); return animal; } } Vamos fazê-lo funcionar ! usando o <custom-transformer> nos podemos especificar quais tipos de objetos que irá receber e a classe que irá lidar com a transformação. <flow name="usingTransformer"> <http:listener config-ref="HTTP_Listener_Configuration" path="/transformer" allowedMeth doc:name="HTTP"/> <set-variable variableName="flowVarName" value="#['Max the Mule']" doc:name="Variab <custom-transformer returnClass="model.Animal" class="javacall.AnimalTransformer" doc:name="Java"/>
  • 2. <object-to-string-transformer doc:name="Object to String"/> </flow> Transforming via Annotation Temos a opção de usar Anotações ao implementar nossa solução de transformação. Para atingir este objetivo , primeiro anotar a classe com @ContainsTransformerMethods ( " org.mule.api.annotations.ContainsTransformerMethods ") que marca a classe como um recipiente de um transformador Mule . O método deve ser anotado com @Transformer ( " org.mule.api.annotations.Transformer " ) , o que significa que serão disponibilizados na mula Container. No exemplo abaixo , estamos usando o @Payload anotação ( " org.mule.api.annotations.param.Payload " ) para injetar nossa carga útil em nosso parâmetro String nome e devolver um animal com este nome. @ContainsTransformerMethods public class AnimalTransformerAnnotation { @Transformer public Animal returnAnimal(@Payload String name){ return new Animal(name); } } Nosso teste do fluxo Mule: <flow name="usingTransformerAnnotation"> <http:listener config-ref="HTTP_Listener_Configuration" path="/transformerAnnotation" doc:name="HTTP" allowedMethods="GET"/> <set-payload value="#['Annotated Max!']" doc:name="Set Payload"/>
  • 3. <component class="javacall.AnimalTransformerAnnotation" doc:name="Java"/> <object-to-string-transformer doc:name="Object to String"/> </flow> Importando livrarias Java no Dataweave e MEL Por último, mas não menos importante, vamos definir uma função global que importa diferentes bibliotecas e pode ser usado via DataWeave , isso não é legal! Primeiro de tudo, precisamos definir nossa função global. Neste exemplo , vamos calcular o número de dias de um mês previsto como um parâmetro. Vamos fazer uso do Calendário e SimpleDateFormat bibliotecas. <configuration doc:name="Configuration"> <expression-language> <global-functions> def dayOfTheMonth(date){ import java.util.Calendar; import java.text.SimpleDateFormat; cal = Calendar.getInstance(); sdf = new SimpleDateFormat('yyyyMMdd'); cal.setTime(sdf.parse(date)); return cal.getActualMaximum(Calendar.DAY_OF_MONTH).toString();
  • 4. } </global-functions> </expression-language> </configuration> Nossa nova função está pronto para ser usado! Podemos agora usar uma expressão MEL ou incluir nossa função no Dataweave ! MEL: #[dayOfTheMonth(‘20151027’)] DataWeave: day: dayOfTheMonth(‘20140302’) Espero que estas várias opções de ajudar a melhorar a sua flexibilidade durante a utilização da mula !