You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by hi...@apache.org on 2010/08/23 11:50:14 UTC
svn commit: r988050 - in /synapse/trunk/scratch/hiranya/urlrewrite/src:
main/java/org/apache/synapse/mediators/
main/java/org/apache/synapse/mediators/xml/
test/java/org/apache/synapse/mediators/
Author: hiranya
Date: Mon Aug 23 09:50:14 2010
New Revision: 988050
URL: http://svn.apache.org/viewvc?rev=988050&view=rev
Log:
Implemented replace action
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/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=988050&r1=988049&r2=988050&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:50:14 2010
@@ -34,9 +34,11 @@ public class RewriteAction {
public static final int ACTION_SET = 0;
public static final int ACTION_APPEND = 1;
public static final int ACTION_PREPEND = 2;
+ public static final int ACTION_REPLACE = 3;
private String value;
private SynapseXPath xpath;
+ private String regex;
private int fragmentIndex = URLRewriteMediator.FULL_URI;
private int actionType = ACTION_SET;
@@ -96,6 +98,13 @@ public class RewriteAction {
(fragments[fragmentIndex] != null ? fragments[fragmentIndex] : "") +
result;
break;
+
+ case ACTION_REPLACE:
+ String str = (fragments[fragmentIndex] != null ?
+ (String) fragments[fragmentIndex] : "");
+ str = str.replaceAll(regex, result);
+ fragments[fragmentIndex] = str;
+ break;
}
}
}
@@ -124,6 +133,14 @@ public class RewriteAction {
this.xpath = xpath;
}
+ public String getRegex() {
+ return regex;
+ }
+
+ public void setRegex(String regex) {
+ this.regex = regex;
+ }
+
public int getActionType() {
return actionType;
}
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=988050&r1=988049&r2=988050&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:50:14 2010
@@ -144,6 +144,14 @@ public class URLRewriteMediatorFactory e
action.setActionType(RewriteAction.ACTION_APPEND);
} else if ("prepend".equals(type)) {
action.setActionType(RewriteAction.ACTION_PREPEND);
+ } else if ("replace".equals(type)) {
+ action.setActionType(RewriteAction.ACTION_REPLACE);
+ String regex = actionElt.getAttributeValue(new QName("regex"));
+ if (regex != null) {
+ action.setRegex(regex);
+ } else {
+ handleException("regex attribute is required for replace action");
+ }
} else {
handleException("Unknown action type: " + type);
}
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=988050&r1=988049&r2=988050&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:50:14 2010
@@ -63,8 +63,8 @@ public class URLRewriteTest extends Test
" <rule>" +
" <condition>" +
" <and>" +
- " <match type=\"url\" fragment=\"host\" regex=\"wso2.org\"/>" +
- " <match type=\"url\" fragment=\"port\" regex=\"9763\"/>" +
+ " <equal type=\"url\" fragment=\"host\" value=\"wso2.org\"/>" +
+ " <equal type=\"url\" fragment=\"port\" value=\"9763\"/>" +
" </and>" +
" </condition>" +
" <action fragment=\"host\" value=\"wso2.com\"/>" +
@@ -74,6 +74,12 @@ public class URLRewriteTest extends Test
" <rule>" +
" <action fragment=\"path\" value=\"/esb\" type=\"prepend\"/>" +
" </rule>" +
+ " <rule>" +
+ " <condition>" +
+ " <match type=\"url\" fragment=\"path\" regex=\".*/MyService\"/>" +
+ " </condition>" +
+ " <action fragment=\"path\" value=\"StockQuoteService\" regex=\"MyService\" type=\"replace\"/>" +
+ " </rule>" +
"</rewrite>";
URLRewriteMediatorFactory fac = new URLRewriteMediatorFactory();
Mediator mediator = fac.createMediator(AXIOMUtil.stringToOM(xml));