@Override
public void contributeService( DeploymentContext context, Service service ) throws URISyntaxException {
UrlRewriteRulesDescriptor rules = context.getDescriptor( "rewrite" );
UrlRewriteRuleDescriptor rule;
UrlRewriteActionRewriteDescriptorExt rewrite;
rule = rules.addRule( getRole() + "/" + getName() + "/templeton/request" )
.directions( "request" )
.pattern( "*://*:*/**" + TEMPLETON_EXTERNAL_PATH + "/{path=**}?{**}" );
rewrite = rule.addStep( "rewrite" );
rewrite.template( service.getUrl().toExternalForm() + "/{path=**}?{**}" );
ResourceDescriptor resource = context.getGatewayDescriptor().addResource();
resource.role( service.getRole() );
resource.pattern( TEMPLETON_EXTERNAL_PATH + "/**?**" );
if (topologyContainsProviderType(context, "authentication")) {