Author: vdichev
Date: Tue Oct 27 21:53:17 2009
New Revision: 830354
URL: http://svn.apache.org/viewvc?rev=830354&view=rev
Log:
ESME-26 Add anchors in accordance with RFC 1630
Modified:
incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala
Modified:
incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala
URL:
http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala?rev=830354&r1=830353&r2=830354&view=diff
==============================================================================
---
incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala
(original)
+++
incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala
Tue Oct 27 21:53:17 2009
@@ -46,7 +46,7 @@
lazy val startSpace = rep(' ')
- lazy val url: Parser[URL] = httpUrl ^^ {url => URL(UrlStore.make(url))}
+ lazy val url: Parser[URL] = fragmentAddress ^^ {url =>
URL(UrlStore.make(url))}
lazy val userNameStr: Parser[String] = alpha ~ rep(alpha | digit | '_') ^^ {
case first ~ more => first + more.mkString
@@ -134,6 +134,13 @@
lazy val scheme: Parser[String] = (accept("http://") | accept("https://"))
^^ {_ mkString}
+ lazy val fragmentAddress: Parser[String] = httpUrl ~ opt( '#' ~> fragmentid
) ^^ {
+ case uri ~ None => uri
+ case uri ~ Some(fragmentid) => uri + "#" + fragmentid
+ }
+
+ lazy val fragmentid: Parser[String] = rep( uchar ) ^^ {_ mkString}
+
lazy val httpUrl: Parser[String] = scheme ~ login ~ urlpart ^^ {
case front ~ login ~ urlpart => front + login + urlpart
}