Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Mule Meets Zuul: A Centralized Properties Management – Part II, Client-Side

DZone's Guide to

Mule Meets Zuul: A Centralized Properties Management – Part II, Client-Side

· Integration Zone ·
Free Resource

The State of API Integration 2018: Get Cloud Elements’ report for the most comprehensive breakdown of the API integration industry’s past, present, and future.

[This article originally written by Eugene Berman.]

Before reading on, please take a look at Part 1 of this post.

Connecting Mule application to Zuul server requires two additional jars in the application class path. One of them is jasypt library which can be downloaded here. The second one is zuul-spring-client. You can download the source and build the jar using Maven.

To configure Zuul client, first add zuul namespace to the mule tag. You will also need spring and context namespaces.

<mule xmlns:context="http://www.springframework.org/schema/context"
	xmlns="http://www.mulesoft.org/schema/mule/core" 
	xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.2"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:zuul="http://www.devnull.org/schema/zuul-spring-client"
	xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-current.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.devnull.org/schema/zuul-spring-client http://www.devnull.org/schema/zuul-spring-client.xsd">

Next, configure zuul spring bean and spring context referencing this bean:

<context:property-placeholder properties-ref="MuleMeetZuul"/>
  	
<spring:beans>
    <zuul:properties id="MuleMeetZuul" config="AcmeProperties" host="localhost"  port="8080" 
                     context="/zuul-web-1.5" environment="#{environment['env_name']}">
        <zuul:file-store/>
	<zuul:pbe-decryptor password="#{environment['mule.password']}" algorithm="PBEWITHSHA256AND128BITAES-CBC-BC"/>
    </zuul:properties>
</spring:beans>

Note that the value of the config attribute – config="AcmeProperties" – is the name of the properties set that we created on the Zuul server.

Finally, edit the MULE_HOME/conf/wrapper.conf file on each environment and set the variables for environment name and the password used for encryption:

wrapper.java.additional.4=-Denv_name=prod
wrapper.java.additional.5=-Dmule.password=muleftw

Your API is not enough. Learn why (and how) leading SaaS providers are turning their products into platforms with API integration in the ebook, Build Platforms, Not Products from Cloud Elements.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}