Author: hiranya
Date: Mon Aug 23 10:05:34 2010
New Revision: 988054
URL: http://svn.apache.org/viewvc?rev=988054&view=rev
Log:
Implemented remove 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=988054&r1=988053&r2=988054&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 10:05:34 2010
@@ -35,6 +35,7 @@ public class RewriteAction {
public static final int ACTION_APPEND = 1;
public static final int ACTION_PREPEND = 2;
public static final int ACTION_REPLACE = 3;
+ public static final int ACTION_REMOVE = 4;
private String value;
private SynapseXPath xpath;
@@ -83,29 +84,32 @@ public class RewriteAction {
fragments[fragmentIndex] = -1;
}
} else {
+ String str;
switch (actionType) {
- case ACTION_SET:
- fragments[fragmentIndex] = result;
- break;
-
case ACTION_PREPEND:
- fragments[fragmentIndex] = result +
+ str = result +
(fragments[fragmentIndex] != null ?
fragments[fragmentIndex] : "");
break;
case ACTION_APPEND:
- fragments[fragmentIndex] =
+ str =
(fragments[fragmentIndex] != null ?
fragments[fragmentIndex] : "") +
result;
break;
case ACTION_REPLACE:
- String str = (fragments[fragmentIndex] != null ?
- (String) fragments[fragmentIndex] : "");
+ str = (fragments[fragmentIndex] != null ? (String)
fragments[fragmentIndex] : "");
str = str.replaceAll(regex, result);
- fragments[fragmentIndex] = str;
break;
- }
+
+ case ACTION_REMOVE:
+ str = null;
+ break;
+
+ default:
+ str = result;
+ }
+ fragments[fragmentIndex] = str;
}
}
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=988054&r1=988053&r2=988054&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 10:05:34 2010
@@ -97,7 +97,7 @@ public class URLRewriteMediatorFactory e
String xpath = actionElt.getAttributeValue(new QName("xpath"));
String type = actionElt.getAttributeValue(new QName("type"));
- if (value == null && xpath == null) {
+ if (value == null && xpath == null && !"remove".equals(type)) {
handleException("value or xpath attribute is required on the
action element");
}
@@ -138,6 +138,11 @@ public class URLRewriteMediatorFactory e
}
if (type != null) {
+ if (action.getFragmentIndex() == URLRewriteMediator.FULL_URI ||
+ action.getFragmentIndex() == URLRewriteMediator.PORT) {
+ handleException("type attribute is not allowed for 'port' and
'full URI' rewrites");
+ }
+
if ("set".equals(type)) {
action.setActionType(RewriteAction.ACTION_SET);
} else if ("append".equals(type)) {
@@ -152,6 +157,8 @@ public class URLRewriteMediatorFactory e
} else {
handleException("regex attribute is required for replace
action");
}
+ } else if ("remove".equals(type)) {
+ action.setActionType(RewriteAction.ACTION_REMOVE);
} 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=988054&r1=988053&r2=988054&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 10:05:34 2010
@@ -79,6 +79,10 @@ public class URLRewriteTest extends Test
" <match type=\"url\" fragment=\"path\"
regex=\".*/MyService\"/>" +
" </condition>" +
" <action fragment=\"path\" value=\"StockQuoteService\"
regex=\"MyService\" type=\"replace\"/>" +
+ " <action fragment=\"ref\" value=\"summary\"/>" +
+ " </rule>" +
+ " <rule>" +
+ " <action fragment=\"ref\" type=\"remove\"/>" +
" </rule>" +
"</rewrite>";
URLRewriteMediatorFactory fac = new URLRewriteMediatorFactory();