KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openejb > server > httpd > HttpListenerRegistry


1 package org.openejb.server.httpd;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.Map JavaDoc;
6
7 /**
8  * @version $Revision$ $Date$
9  */

10 public class HttpListenerRegistry implements HttpListener {
11
12     private final HashMap JavaDoc registry = new HashMap JavaDoc();
13
14     public HttpListenerRegistry() {
15     }
16
17     public void onMessage(HttpRequest request, HttpResponse response) throws Exception JavaDoc {
18         HashMap JavaDoc listeners;
19
20         synchronized (registry) {
21             listeners = new HashMap JavaDoc(registry);
22         }
23
24         String JavaDoc path = request.getURI().getPath();
25
26         for (Iterator JavaDoc iterator = listeners.entrySet().iterator(); iterator.hasNext();) {
27             Map.Entry JavaDoc entry = (Map.Entry JavaDoc) iterator.next();
28             String JavaDoc pattern = (String JavaDoc) entry.getKey();
29             HttpListener listener = (HttpListener) entry.getValue();
30             if (path.matches(pattern)) {
31                 listener.onMessage(request, response);
32                 break;
33             }
34         }
35     }
36
37     public void addHttpListener(HttpListener listener, String JavaDoc regex) {
38         synchronized (registry) {
39             registry.put(regex, listener);
40         }
41     }
42 }
43
Popular Tags