diff options
author | Egil Moeller <egil.moller@freecode.no> | 2010-03-22 00:16:53 +0100 |
---|---|---|
committer | Egil Moeller <egil.moller@freecode.no> | 2010-03-22 00:16:53 +0100 |
commit | fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7 (patch) | |
tree | 928419d6bfe794865e4b8f0634bd792f795c4b8a /trunk/infrastructure/net.appjet.oui/util.scala | |
parent | 0fdab3db005c4fa31fb8306b573c0b35073d3e56 (diff) | |
parent | d56b9b3b82cdebcaeb00eec0fcb4326ad21adaa8 (diff) | |
download | etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.tar.gz etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.tar.xz etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.zip |
Merge branch 'master' into plugin-framework
Diffstat (limited to 'trunk/infrastructure/net.appjet.oui/util.scala')
-rw-r--r-- | trunk/infrastructure/net.appjet.oui/util.scala | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/trunk/infrastructure/net.appjet.oui/util.scala b/trunk/infrastructure/net.appjet.oui/util.scala deleted file mode 100644 index ba8a736..0000000 --- a/trunk/infrastructure/net.appjet.oui/util.scala +++ /dev/null @@ -1,153 +0,0 @@ -/** - * Copyright 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS-IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.appjet.oui; - -import scala.collection.mutable.HashMap; - -import java.util.Enumeration; -import java.util.zip.GZIPOutputStream; -import java.io.ByteArrayOutputStream; - -object Util { - def noCacheHeaders = - Map("Expires" -> "Sat, 5 Feb 1983 07:07:07 GMT", - "Last-Modified" -> (new java.util.Date()).toGMTString(), - "Cache-Control" -> "no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0", - "Pragma" -> "no-cache"); - - - class RichEnumeration[T](enumeration: Enumeration[T]) extends Iterator[T] { - def hasNext: Boolean = enumeration.hasMoreElements(); - def next: T = enumeration.nextElement(); - } - class RichIterator[T](iterator: java.util.Iterator[T]) extends Iterator[T] { - def hasNext: Boolean = iterator.hasNext(); - def next: T = iterator.next(); - } - implicit def enumerationToRichEnumeration[T]( - enumeration: Enumeration[T]): RichEnumeration[T] = { - new RichEnumeration(enumeration) - } - implicit def iteratorToRichIterator[T]( - iterator: java.util.Iterator[T]): RichIterator[T] = { - new RichIterator(iterator); - } - - def enumerationToArray[T](e: Enumeration[T]): Array[T] = - enumerationToRichEnumeration(e).toList.toArray; - - def stringToHTML(str: String): String = { - val result = new StringBuilder(str.length); - var lastCharBlank = false; - for(i <- 0 until str.length) { - val c = str.charAt(i); - if (c == ' ') { - // every second consecutive space becomes a - if (lastCharBlank) { - lastCharBlank = false; - result.append(" "); - } - else { - lastCharBlank = true; - result.append(' '); - } - } else { - lastCharBlank = false; - if (c == '&') result.append("&"); - else if (c == '<') result.append("<"); - else if (c == '>') result.append(">"); - else if (c == '\n') result.append("<br/>\n"); - else if (c == '\t') { - for(j <- 1 to 7) { - result.append(" "); - } - result.append(' '); - } - else { - val code = c.toInt; - if (code < 127) { - result.append(c); - } - else { - // use character code - result.append("&#"); - result.append(code); - result.append(';'); - } - } - } - } - return result.toString; - } - - def gzip(bytes: Array[Byte]): Array[Byte] = { - val baos = new ByteArrayOutputStream(); - val gzos = new GZIPOutputStream(baos); - gzos.write(bytes, 0, bytes.length); - gzos.close(); - baos.toByteArray(); - } -} - -object timekeeper { - var timestamp: Long = 0; - def time: Long = { - val t = System.currentTimeMillis(); - synchronized { - if (t <= timestamp) { - timestamp += 1 - } else { - timestamp = t - } - timestamp - } - } - def update(t: Long) = synchronized { - if (t > timestamp) - timestamp = t+1; - } -} - -trait LoggingHandler extends org.mortbay.jetty.handler.AbstractHandler { - abstract override def handle(target: String, req: javax.servlet.http.HttpServletRequest, res: javax.servlet.http.HttpServletResponse, dispatch: Int) { - println("all ("+isStarted+") handling: "+(this match { - case hc: org.mortbay.jetty.handler.HandlerCollection => hc.getHandlers.mkString(", "); - case ahc: org.mortbay.jetty.handler.AbstractHandlerContainer => ahc.getChildHandlers.mkString(", "); - case x => "(unknown)"; - })); - super.handle(target, req, res, dispatch); - } - override def doStart() { - println("all started."); - // Thread.dumpStack(); - try { - super.doStart(); - } catch { - case e: Exception => { - e.printStackTrace(); - throw e; - } - } finally { - println("and: "+isStarted); - } - } - override def doStop() { - println("all stopped."); - // Thread.dumpStack(); - super.doStop(); - } -} |