Diferencia entre revisiones de «Spring Integration con Pivotal Tracker»
De Dos Ideas.
(Página creada con 'El ejemplo demuestra como integrar aplicaciones propias con la herramienta [https://www.pivotaltracker.com Pivotal Tracker] utilizando Spring Integration. == Conmponentes …') |
(→Configuración) |
||
(No se muestran 4 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
El ejemplo demuestra como integrar aplicaciones propias con la herramienta [https://www.pivotaltracker.com Pivotal Tracker] utilizando [[Spring Integration]]. | El ejemplo demuestra como integrar aplicaciones propias con la herramienta [https://www.pivotaltracker.com Pivotal Tracker] utilizando [[Spring Integration]]. | ||
− | == | + | == Componentes utilizados == |
*Http gateways de entrada y salida | *Http gateways de entrada y salida | ||
− | **Uno de entrada que expone un servicio para atender las peticiones de las aplicaciones y el de salida | + | **Uno de entrada que expone un servicio para atender las peticiones de las aplicaciones y el de salida para realizar un POST al API de [https://www.pivotaltracker.com Pivotal Tracker] |
*Cadena: | *Cadena: | ||
**Se utiliza para encadenar las operaciones de procesamiento del mensaje. | **Se utiliza para encadenar las operaciones de procesamiento del mensaje. | ||
Línea 40: | Línea 40: | ||
<int:header-enricher> | <int:header-enricher> | ||
<int:header name="Content-Type" value="application/xml"/> | <int:header name="Content-Type" value="application/xml"/> | ||
− | <int:header name="X-TrackerToken" value="${ | + | <int:header name="X-TrackerToken" value="${tracketToken}"/> |
</int:header-enricher> | </int:header-enricher> | ||
<!-- Serializa el mensaje --> | <!-- Serializa el mensaje --> | ||
Línea 64: | Línea 64: | ||
El proyecto de ejemplo se puede descargar de nuestro proyecto en [http://code.google.com/p/dosideas-aplicaciones-modelo/source/browse/ google-code]. | El proyecto de ejemplo se puede descargar de nuestro proyecto en [http://code.google.com/p/dosideas-aplicaciones-modelo/source/browse/ google-code]. | ||
+ | |||
+ | [[Category:Spring Framework]] |
Revisión actual del 12:53 6 mar 2012
El ejemplo demuestra como integrar aplicaciones propias con la herramienta Pivotal Tracker utilizando Spring Integration.
Componentes utilizados
- Http gateways de entrada y salida
- Uno de entrada que expone un servicio para atender las peticiones de las aplicaciones y el de salida para realizar un POST al API de Pivotal Tracker
- Cadena:
- Se utiliza para encadenar las operaciones de procesamiento del mensaje.
- Transformadores:
- Transformación de Json a objeto
- Transformación de objeto a xml
- Transformación de objeto a String
En este caso la entrada esperada es Json, esto se trasforma a la entidad Historia y luego se trasforma a xml para invocar el API de Pivotal Tracker. La entidad posee las anotaciones de JSON y XStream correspondientes para poder realizar los mapeos correctamente.
Configuración
<http:inbound-gateway id="gatewayHttpEntrada" request-channel="incomingPivotalBug" supported-methods="POST" reply-timeout="5000" path="/bug" reply-channel="outcomingPivotalBug" mapped-response-headers="Content-Type"/>
<int:chain id="cadenaPivotal" input-channel="incomingPivotalBug" output-channel="pivotalPost"> <int:json-to-object-transformer type="com.dosideas.pivotaltrackerintegration.domain.Historia"/> <int:enricher> <int:property name="usuarioPivotal" value="${usuarioPivotal}"/> <int:property name="propietario" value="${propietario}"/> <int:property name="tipo" value="bug"/> </int:enricher> <int:header-enricher> <int:header name="Content-Type" value="application/xml"/> <int:header name="X-TrackerToken" value="${tracketToken}"/> </int:header-enricher> <int-xml:marshalling-transformer marshaller="xstreamMarshaller" result-type="StringResult"/> <int:object-to-string-transformer/> </int:chain>
<http:outbound-gateway request-channel="pivotalPost" url="http://www.pivotaltracker.com/services/v3/projects/{project_id}/stories" http-method="POST" mapped-request-headers="Content-Type, X-TrackerToken" mapped-response-headers="Content-Type" extract-request-payload="true" expected-response-type="java.lang.String" charset="ISO-8859-1" reply-channel="outcomingPivotalBug"> <http:uri-variable name="project_id" expression="${project_id}"/> </http:outbound-gateway>
El proyecto de ejemplo se puede descargar de nuestro proyecto en google-code.