1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.jelly.tags.jetty;
18
19 import org.apache.commons.jelly.JellyTagException;
20 import org.apache.commons.jelly.TagSupport;
21 import org.apache.commons.jelly.XMLOutput;
22
23 import org.mortbay.http.handler.ResourceHandler;
24
25 import java.util.StringTokenizer;
26
27 /***
28 * Declare a static file resource handler for a Jetty http server
29 *
30 * @author rtl
31 * @version $Id: ResourceHandlerTag.java,v 1.3 2002/07/14 12:38:22 dion Exp $
32 */
33 public class ResourceHandlerTag extends TagSupport {
34
35 /*** parameter allowed methods */
36 private String _allowedMethods;
37
38 /*** Creates a new instance of ResourceHandlerTag */
39 public ResourceHandlerTag() {
40 }
41
42 /***
43 * Perform the tag functionality. In this case, add a resource handler
44 * to the parent context, setting the allowed methods if required
45 *
46 * @param xmlOutput where to send output
47 * @throws Exception when an error occurs
48 */
49 public void doTag(XMLOutput xmlOutput) throws JellyTagException {
50 HttpContextTag httpContext = (HttpContextTag) findAncestorWithClass(
51 HttpContextTag.class);
52 if ( httpContext == null ) {
53 throw new JellyTagException( "<resourceHandler> tag must be enclosed inside a <httpContext> tag" );
54 }
55 ResourceHandler resourceHandler = new ResourceHandler();
56 if (getAllowedMethods() != null) {
57
58 StringTokenizer tokenizer =
59 new StringTokenizer( getAllowedMethods(), " ," );
60 String[] allowedMethods = new String[tokenizer.countTokens()];
61 for (int i = 0; i < allowedMethods.length; i++) {
62 allowedMethods[i] = tokenizer.nextToken();
63 }
64 resourceHandler.setAllowedMethods(allowedMethods);
65 }
66 httpContext.addHandler(resourceHandler);
67 invokeBody(xmlOutput);
68 }
69
70
71
72
73
74 /***
75 * Getter for property allowedMethods.
76 *
77 * @return value of property allowedMethods.
78 */
79 public String getAllowedMethods() {
80 return _allowedMethods;
81 }
82
83 /***
84 * Setter for property allowedMethods.
85 *
86 * @param allowedMethods Comma separated list of allowed methods.
87 */
88 public void setAllowedMethods(String allowedMethods) {
89 _allowedMethods = allowedMethods;
90 }
91
92
93 }