Author: hiranya
Date: Mon Aug 23 09:26:32 2010
New Revision: 988040
URL: http://svn.apache.org/viewvc?rev=988040&view=rev
Log:
input property support
Modified:
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/RewriteAction.java
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/URLRewriteMediator.java
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/xml/URLRewriteMediatorFactory.java
synapse/trunk/scratch/hiranya/urlrewrite/src/test/java/org/apache/synapse/mediators/URLRewriteTest.java
Modified:
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/RewriteAction.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/RewriteAction.java?rev=988040&r1=988039&r2=988040&view=diff
==============================================================================
---
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/RewriteAction.java
(original)
+++
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/RewriteAction.java
Mon Aug 23 09:26:32 2010
@@ -87,11 +87,14 @@ public class RewriteAction {
break;
case ACTION_PREPEND:
- fragments[fragmentIndex] = result +
fragments[fragmentIndex];
+ fragments[fragmentIndex] = result +
+ (fragments[fragmentIndex] != null ?
fragments[fragmentIndex] : "");
break;
case ACTION_APPEND:
- fragments[fragmentIndex] = fragments[fragmentIndex] +
result;
+ fragments[fragmentIndex] =
+ (fragments[fragmentIndex] != null ?
fragments[fragmentIndex] : "") +
+ result;
break;
}
}
Modified:
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/URLRewriteMediator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/URLRewriteMediator.java?rev=988040&r1=988039&r2=988040&view=diff
==============================================================================
---
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/URLRewriteMediator.java
(original)
+++
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/URLRewriteMediator.java
Mon Aug 23 09:26:32 2010
@@ -42,14 +42,16 @@ public class URLRewriteMediator extends
public static final int REF = 6;
private List<RewriteRule> rules = new ArrayList<RewriteRule>();
+ private String inputProperty;
public boolean mediate(MessageContext messageContext) {
Object[] fragments = newFragmentSet();
URI uri;
- if (messageContext.getTo() != null) {
+ String address = getInputAddress(messageContext);
+ if (address != null) {
try {
- uri = new URI(messageContext.getTo().getAddress());
+ uri = new URI(address);
fragments[0] = uri.getScheme();
fragments[1] = uri.getUserInfo();
fragments[2] = uri.getHost();
@@ -59,7 +61,7 @@ public class URLRewriteMediator extends
fragments[6] = uri.getFragment();
} catch (URISyntaxException e) {
- handleException("Malformed URI in the To header", e,
messageContext);
+ handleException("Malformed URI in the input address field", e,
messageContext);
return false;
}
} else {
@@ -76,6 +78,18 @@ public class URLRewriteMediator extends
return true;
}
+ private String getInputAddress(MessageContext messageContext) {
+ if (inputProperty != null) {
+ Object prop = messageContext.getProperty(inputProperty);
+ if (prop != null && prop instanceof String) {
+ return (String) prop;
+ }
+ } else if (messageContext.getTo() != null) {
+ return messageContext.getTo().getAddress();
+ }
+ return null;
+ }
+
private Object[] newFragmentSet() {
return new Object[] {
null, null, null, -1, null, null, null
@@ -120,4 +134,12 @@ public class URLRewriteMediator extends
public void addRule(RewriteRule rule) {
rules.add(rule);
}
+
+ public String getInputProperty() {
+ return inputProperty;
+ }
+
+ public void setInputProperty(String inputProperty) {
+ this.inputProperty = inputProperty;
+ }
}
Modified:
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/xml/URLRewriteMediatorFactory.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/xml/URLRewriteMediatorFactory.java?rev=988040&r1=988039&r2=988040&view=diff
==============================================================================
---
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/xml/URLRewriteMediatorFactory.java
(original)
+++
synapse/trunk/scratch/hiranya/urlrewrite/src/main/java/org/apache/synapse/mediators/xml/URLRewriteMediatorFactory.java
Mon Aug 23 09:26:32 2010
@@ -42,7 +42,13 @@ public class URLRewriteMediatorFactory e
public Mediator createMediator(OMElement element) {
Iterator rules = element.getChildrenWithName(new QName("rule"));
+ String inputProperty = element.getAttributeValue(new
QName("inProperty"));
+
URLRewriteMediator mediator = new URLRewriteMediator();
+ if (inputProperty != null) {
+ mediator.setInputProperty(inputProperty);
+ }
+
while (rules.hasNext()) {
RewriteRule rule = parseRule((OMElement) rules.next());
mediator.addRule(rule);
Modified:
synapse/trunk/scratch/hiranya/urlrewrite/src/test/java/org/apache/synapse/mediators/URLRewriteTest.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/urlrewrite/src/test/java/org/apache/synapse/mediators/URLRewriteTest.java?rev=988040&r1=988039&r2=988040&view=diff
==============================================================================
---
synapse/trunk/scratch/hiranya/urlrewrite/src/test/java/org/apache/synapse/mediators/URLRewriteTest.java
(original)
+++
synapse/trunk/scratch/hiranya/urlrewrite/src/test/java/org/apache/synapse/mediators/URLRewriteTest.java
Mon Aug 23 09:26:32 2010
@@ -35,7 +35,6 @@ import org.apache.axis2.addressing.Endpo
import java.net.URI;
import java.net.URISyntaxException;
-import java.io.InputStream;
public class URLRewriteTest extends TestCase {
@@ -60,10 +59,13 @@ public class URLRewriteTest extends Test
public void testMediateWithFactory() throws Exception {
String xml =
- "<rewrite
xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\">" +
+ "<rewrite
xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\"
inProperty=\"inputURL\">" +
" <rule>" +
" <condition>" +
- " <match type=\"url\" fragment=\"host\"
regex=\"wso2.org\"/>" +
+ " <and>" +
+ " <match type=\"url\" fragment=\"host\"
regex=\"wso2.org\"/>" +
+ " <match type=\"url\" fragment=\"port\"
regex=\"9763\"/>" +
+ " </and>" +
" </condition>" +
" <action fragment=\"host\" value=\"wso2.com\"/>" +
" <action fragment=\"port\" value=\"9443\"/>" +
@@ -82,7 +84,8 @@ public class URLRewriteTest extends Test
SynapseEnvironment env = new Axis2SynapseEnvironment(config);
MessageContext synMc = new Axis2MessageContext(mc, config, env);
synMc.setProperty("foo", "/esb");
- synMc.setTo(new
EndpointReference("http://wso2.org:9763/services/MyService"));
+ synMc.setProperty("inputURL",
"http://wso2.org:9763/services/MyService");
+ //synMc.setTo(new
EndpointReference("http://wso2.org:9763/services/MyService"));
mediator.mediate(synMc);
System.out.println(synMc.getTo().getAddress());