Return-Path: X-Original-To: apmail-esme-commits-archive@www.apache.org Delivered-To: apmail-esme-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9D5FE2BBB for ; Tue, 3 May 2011 14:42:33 +0000 (UTC) Received: (qmail 15586 invoked by uid 500); 3 May 2011 14:42:33 -0000 Delivered-To: apmail-esme-commits-archive@esme.apache.org Received: (qmail 15558 invoked by uid 500); 3 May 2011 14:42:33 -0000 Mailing-List: contact commits-help@esme.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@esme.apache.org Delivered-To: mailing list commits@esme.apache.org Received: (qmail 15550 invoked by uid 99); 3 May 2011 14:42:33 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 May 2011 14:42:33 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,WEIRD_QUOTING X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 May 2011 14:42:30 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D4F72238896F; Tue, 3 May 2011 14:42:08 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1099082 - in /esme/trunk/server/src/main/scala/org/apache/esme: lib/MsgParser.scala model/Message.scala Date: Tue, 03 May 2011 14:42:08 -0000 To: commits@esme.apache.org From: vdichev@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110503144208.D4F72238896F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: vdichev Date: Tue May 3 14:42:08 2011 New Revision: 1099082 URL: http://svn.apache.org/viewvc?rev=1099082&view=rev Log: Integrate Textile and ESME urls Modified: esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala esme/trunk/server/src/main/scala/org/apache/esme/model/Message.scala Modified: esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala URL: http://svn.apache.org/viewvc/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala?rev=1099082&r1=1099081&r2=1099082&view=diff ============================================================================== --- esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala (original) +++ esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala Tue May 3 14:42:08 2011 @@ -69,7 +69,7 @@ object MsgParser extends TextileParsers( cite | span | code | delete | insert | sup | sub | strong | html | single_quote | quote | acronym | - shortUrl | atName | hashTag | charBlock) + atName | hashTag | charBlock) } val punctRegex = java.util.regex.Pattern.compile("""\p{Punct}""") @@ -80,8 +80,6 @@ object MsgParser extends TextileParsers( lazy val startSpace = rep(' ') - lazy val shortUrl: Parser[URL] = fragmentAddress ^^ {url => URL(UrlStore.make(url))} - lazy val userNameStr: Parser[String] = alpha ~ rep(alpha | digit | '_') ^^ { case first ~ more => first + more.mkString } @@ -168,11 +166,26 @@ object MsgParser extends TextileParsers( lazy val scheme: Parser[String] = (accept("http://") | accept("https://")) ^^ {_ mkString} - lazy val fragmentAddress: Parser[String] = httpUrl ~ opt( '#' ~> fragmentid ) ^^ { + override lazy val httpStr: Parser[String] = httpUrl ~ opt( '#' ~> fragmentid ) ^^ { case uri ~ None => uri case uri ~ Some(fragmentid) => uri + "#" + fragmentid } - + + def truncateUrl(urlString: String, len: Int) = + if (urlString.length <= len) + urlString + else + urlString.substring(0, len - 3) + "..." + + override lazy val url: Parser[Textile] = httpStr ^^ { u => + URL(UrlStore.make(u), truncateUrl(u, 20)) + } + + override lazy val quote_url: Parser[Textile] = ('"' ~> rep(attribute) ~ chrsExcept('"', '\n')) ~ ('"' ~> ':' ~> httpStr) ^^ { + case attr ~ fs ~ url => + URL(UrlStore.make(url), fs) + } + lazy val fragmentid: Parser[String] = rep( uchar ) ^^ {_ mkString} lazy val httpUrl: Parser[String] = scheme ~ login ~ urlpart ^^ { @@ -462,10 +475,11 @@ case class HashTag(tag: Tag) extends Msg def toHtml = tag.toXml } -case class URL(url: UrlStore) extends MsgInfo { +case class URL(url: UrlStore, name: String) extends MsgInfo { def toHtml: NodeSeq = {url.url.toString} } Modified: esme/trunk/server/src/main/scala/org/apache/esme/model/Message.scala URL: http://svn.apache.org/viewvc/esme/trunk/server/src/main/scala/org/apache/esme/model/Message.scala?rev=1099082&r1=1099081&r2=1099082&view=diff ============================================================================== --- esme/trunk/server/src/main/scala/org/apache/esme/model/Message.scala (original) +++ esme/trunk/server/src/main/scala/org/apache/esme/model/Message.scala Tue May 3 14:42:08 2011 @@ -401,20 +401,17 @@ class Message extends LongKeyedMapper[Me case e: Elem if e.label == "url" => e.attribute("url").flatMap(url => - e.attribute("uniqueId").map { id => - val href = - if (pool.defined_?) - // disable shortener to avoid popularity statistics - url.toString - else - "/u/" + id - def truncateUrl(urlString: String, len: Int) = - if (urlString.length <= len) - urlString - else - urlString.substring(0, len - 3) + "..." - {truncateUrl(url.toString, 20)} - } + e.attribute("name").flatMap(name => + e.attribute("uniqueId").map { id => + val href = + if (pool.defined_?) + // disable shortener to avoid popularity statistics + url.toString + else + root + "/u/" + id + {name} + } + ) ).getOrElse(Text("") ) case x => x