http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/d35b70d1/content/site/apidocs/src-html/org/apache/juneau/rest/RestResponse.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/RestResponse.html b/content/site/apidocs/src-html/org/apache/juneau/rest/RestResponse.html index a984e9b..d80c5f6 100644 --- a/content/site/apidocs/src-html/org/apache/juneau/rest/RestResponse.html +++ b/content/site/apidocs/src-html/org/apache/juneau/rest/RestResponse.html @@ -810,7 +810,7 @@ <span class="sourceLineNo">802</span> * by {@link UriResolver}.<a name="line.802"></a> <span class="sourceLineNo">803</span> *<a name="line.803"></a> <span class="sourceLineNo">804</span> * <p><a name="line.804"></a> -<span class="sourceLineNo">805</span> * This is the programmatic equivalent to the {@link HtmlDoc#styleImport() @HtmlDoc.styleImport()} annotation.<a name="line.805"></a> +<span class="sourceLineNo">805</span> * This is the programmatic equivalent to the {@link HtmlDoc#stylesheet() @HtmlDoc.stylesheet()} annotation.<a name="line.805"></a> <span class="sourceLineNo">806</span> *<a name="line.806"></a> <span class="sourceLineNo">807</span> * @param value<a name="line.807"></a> <span class="sourceLineNo">808</span> * The CSS URL in the HTML CSS style section.<a name="line.808"></a> @@ -823,8 +823,8 @@ <span class="sourceLineNo">815</span> * </ul><a name="line.815"></a> <span class="sourceLineNo">816</span> * @return This object (for method chaining).<a name="line.816"></a> <span class="sourceLineNo">817</span> */<a name="line.817"></a> -<span class="sourceLineNo">818</span> public RestResponse setHtmlStyleImport(Object value) {<a name="line.818"></a> -<span class="sourceLineNo">819</span> properties.put(HtmlDocSerializerContext.HTMLDOC_styleImport, value);<a name="line.819"></a> +<span class="sourceLineNo">818</span> public RestResponse setHtmlStylesheet(Object value) {<a name="line.818"></a> +<span class="sourceLineNo">819</span> properties.put(HtmlDocSerializerContext.HTMLDOC_stylesheet, value);<a name="line.819"></a> <span class="sourceLineNo">820</span> return this;<a name="line.820"></a> <span class="sourceLineNo">821</span> }<a name="line.821"></a> <span class="sourceLineNo">822</span><a name="line.822"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/d35b70d1/content/site/apidocs/src-html/org/apache/juneau/rest/RestServletDefault.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/RestServletDefault.html b/content/site/apidocs/src-html/org/apache/juneau/rest/RestServletDefault.html index 221910a..ff1792e 100644 --- a/content/site/apidocs/src-html/org/apache/juneau/rest/RestServletDefault.html +++ b/content/site/apidocs/src-html/org/apache/juneau/rest/RestServletDefault.html @@ -156,7 +156,7 @@ <span class="sourceLineNo">148</span> * <h6 class='topic'>Other Notes</h6><a name="line.148"></a> <span class="sourceLineNo">149</span> * <ul class='spaced-list'><a name="line.149"></a> <span class="sourceLineNo">150</span> * <li><a name="line.150"></a> -<span class="sourceLineNo">151</span> * Provides a default HTML stylesheet by setting {@link HtmlDoc#styleImport() @HtmlDoc.styleImport()}<a name="line.151"></a> +<span class="sourceLineNo">151</span> * Provides a default HTML stylesheet by setting {@link HtmlDoc#stylesheet() @HtmlDoc.stylesheet()}<a name="line.151"></a> <span class="sourceLineNo">152</span> * to <js>"styles/juneau.css"</js>.<a name="line.152"></a> <span class="sourceLineNo">153</span> * <li><a name="line.153"></a> <span class="sourceLineNo">154</span> * Provides a default favicon by setting {@link RestResource#favicon() @RestResource.favicon()} to<a name="line.154"></a> @@ -199,12 +199,12 @@ <span class="sourceLineNo">191</span> },<a name="line.191"></a> <span class="sourceLineNo">192</span> htmldoc=@HtmlDoc(<a name="line.192"></a> <span class="sourceLineNo">193</span> branding="<a href='http://juneau.apache.org'><img src='$U{servlet:/htdocs/juneau.png}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'></a>",<a name="line.193"></a> -<span class="sourceLineNo">194</span> styleImport="servlet:/styles/devops.css"<a name="line.194"></a> +<span class="sourceLineNo">194</span> stylesheet="servlet:/styles/devops.css"<a name="line.194"></a> <span class="sourceLineNo">195</span> ),<a name="line.195"></a> -<span class="sourceLineNo">196</span> <a name="line.196"></a> +<span class="sourceLineNo">196</span><a name="line.196"></a> <span class="sourceLineNo">197</span> // The location on the classpath or file system of the fav-icon.<a name="line.197"></a> <span class="sourceLineNo">198</span> favicon="htdocs/juneau.png",<a name="line.198"></a> -<span class="sourceLineNo">199</span> <a name="line.199"></a> +<span class="sourceLineNo">199</span><a name="line.199"></a> <span class="sourceLineNo">200</span> // These are static files that are served up by the servlet under the specified sub-paths.<a name="line.200"></a> <span class="sourceLineNo">201</span> staticFiles="{htdocs:'htdocs',styles:'styles'}"<a name="line.201"></a> <span class="sourceLineNo">202</span>)<a name="line.202"></a> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/d35b70d1/content/site/apidocs/src-html/org/apache/juneau/rest/RestUtils.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/RestUtils.html b/content/site/apidocs/src-html/org/apache/juneau/rest/RestUtils.html index afd463e..3c6efad 100644 --- a/content/site/apidocs/src-html/org/apache/juneau/rest/RestUtils.html +++ b/content/site/apidocs/src-html/org/apache/juneau/rest/RestUtils.html @@ -24,172 +24,173 @@ <span class="sourceLineNo">016</span><a name="line.16"></a> <span class="sourceLineNo">017</span>import javax.servlet.http.*;<a name="line.17"></a> <span class="sourceLineNo">018</span><a name="line.18"></a> -<span class="sourceLineNo">019</span>import org.apache.juneau.utils.*;<a name="line.19"></a> -<span class="sourceLineNo">020</span><a name="line.20"></a> -<span class="sourceLineNo">021</span>/**<a name="line.21"></a> -<span class="sourceLineNo">022</span> * Various reusable utility methods.<a name="line.22"></a> -<span class="sourceLineNo">023</span> */<a name="line.23"></a> -<span class="sourceLineNo">024</span>public final class RestUtils {<a name="line.24"></a> -<span class="sourceLineNo">025</span><a name="line.25"></a> -<span class="sourceLineNo">026</span> /**<a name="line.26"></a> -<span class="sourceLineNo">027</span> * Returns readable text for an HTTP response code.<a name="line.27"></a> -<span class="sourceLineNo">028</span> *<a name="line.28"></a> -<span class="sourceLineNo">029</span> * @param rc The HTTP response code.<a name="line.29"></a> -<span class="sourceLineNo">030</span> * @return Readable text for an HTTP response code, or <jk>null</jk> if it's an invalid code.<a name="line.30"></a> -<span class="sourceLineNo">031</span> */<a name="line.31"></a> -<span class="sourceLineNo">032</span> public static String getHttpResponseText(int rc) {<a name="line.32"></a> -<span class="sourceLineNo">033</span> return httpMsgs.get(rc);<a name="line.33"></a> -<span class="sourceLineNo">034</span> }<a name="line.34"></a> -<span class="sourceLineNo">035</span><a name="line.35"></a> -<span class="sourceLineNo">036</span> private static Map<Integer,String> httpMsgs = new AMap<Integer,String>()<a name="line.36"></a> -<span class="sourceLineNo">037</span> .append(200, "OK")<a name="line.37"></a> -<span class="sourceLineNo">038</span> .append(201, "Created")<a name="line.38"></a> -<span class="sourceLineNo">039</span> .append(202, "Accepted")<a name="line.39"></a> -<span class="sourceLineNo">040</span> .append(203, "Non-Authoritative Information")<a name="line.40"></a> -<span class="sourceLineNo">041</span> .append(204, "No Content")<a name="line.41"></a> -<span class="sourceLineNo">042</span> .append(205, "Reset Content")<a name="line.42"></a> -<span class="sourceLineNo">043</span> .append(206, "Partial Content")<a name="line.43"></a> -<span class="sourceLineNo">044</span> .append(300, "Multiple Choices")<a name="line.44"></a> -<span class="sourceLineNo">045</span> .append(301, "Moved Permanently")<a name="line.45"></a> -<span class="sourceLineNo">046</span> .append(302, "Temporary Redirect")<a name="line.46"></a> -<span class="sourceLineNo">047</span> .append(303, "See Other")<a name="line.47"></a> -<span class="sourceLineNo">048</span> .append(304, "Not Modified")<a name="line.48"></a> -<span class="sourceLineNo">049</span> .append(305, "Use Proxy")<a name="line.49"></a> -<span class="sourceLineNo">050</span> .append(307, "Temporary Redirect")<a name="line.50"></a> -<span class="sourceLineNo">051</span> .append(400, "Bad Request")<a name="line.51"></a> -<span class="sourceLineNo">052</span> .append(401, "Unauthorized")<a name="line.52"></a> -<span class="sourceLineNo">053</span> .append(402, "Payment Required")<a name="line.53"></a> -<span class="sourceLineNo">054</span> .append(403, "Forbidden")<a name="line.54"></a> -<span class="sourceLineNo">055</span> .append(404, "Not Found")<a name="line.55"></a> -<span class="sourceLineNo">056</span> .append(405, "Method Not Allowed")<a name="line.56"></a> -<span class="sourceLineNo">057</span> .append(406, "Not Acceptable")<a name="line.57"></a> -<span class="sourceLineNo">058</span> .append(407, "Proxy Authentication Required")<a name="line.58"></a> -<span class="sourceLineNo">059</span> .append(408, "Request Time-Out")<a name="line.59"></a> -<span class="sourceLineNo">060</span> .append(409, "Conflict")<a name="line.60"></a> -<span class="sourceLineNo">061</span> .append(410, "Gone")<a name="line.61"></a> -<span class="sourceLineNo">062</span> .append(411, "Length Required")<a name="line.62"></a> -<span class="sourceLineNo">063</span> .append(412, "Precondition Failed")<a name="line.63"></a> -<span class="sourceLineNo">064</span> .append(413, "Request Entity Too Large")<a name="line.64"></a> -<span class="sourceLineNo">065</span> .append(414, "Request-URI Too Large")<a name="line.65"></a> -<span class="sourceLineNo">066</span> .append(415, "Unsupported Media Type")<a name="line.66"></a> -<span class="sourceLineNo">067</span> .append(500, "Internal Server Error")<a name="line.67"></a> -<span class="sourceLineNo">068</span> .append(501, "Not Implemented")<a name="line.68"></a> -<span class="sourceLineNo">069</span> .append(502, "Bad Gateway")<a name="line.69"></a> -<span class="sourceLineNo">070</span> .append(503, "Service Unavailable")<a name="line.70"></a> -<span class="sourceLineNo">071</span> .append(504, "Gateway Timeout")<a name="line.71"></a> -<span class="sourceLineNo">072</span> .append(505, "HTTP Version Not Supported")<a name="line.72"></a> -<span class="sourceLineNo">073</span> ;<a name="line.73"></a> -<span class="sourceLineNo">074</span><a name="line.74"></a> -<span class="sourceLineNo">075</span> /**<a name="line.75"></a> -<span class="sourceLineNo">076</span> * Identical to {@link HttpServletRequest#getPathInfo()} but doesn't decode encoded characters.<a name="line.76"></a> -<span class="sourceLineNo">077</span> *<a name="line.77"></a> -<span class="sourceLineNo">078</span> * @param req The HTTP request<a name="line.78"></a> -<span class="sourceLineNo">079</span> * @return The un-decoded path info.<a name="line.79"></a> -<span class="sourceLineNo">080</span> */<a name="line.80"></a> -<span class="sourceLineNo">081</span> public static String getPathInfoUndecoded(HttpServletRequest req) {<a name="line.81"></a> -<span class="sourceLineNo">082</span> String requestURI = req.getRequestURI();<a name="line.82"></a> -<span class="sourceLineNo">083</span> String contextPath = req.getContextPath();<a name="line.83"></a> -<span class="sourceLineNo">084</span> String servletPath = req.getServletPath();<a name="line.84"></a> -<span class="sourceLineNo">085</span> int l = contextPath.length() + servletPath.length();<a name="line.85"></a> -<span class="sourceLineNo">086</span> if (requestURI.length() == l)<a name="line.86"></a> -<span class="sourceLineNo">087</span> return null;<a name="line.87"></a> -<span class="sourceLineNo">088</span> return requestURI.substring(l);<a name="line.88"></a> -<span class="sourceLineNo">089</span> }<a name="line.89"></a> -<span class="sourceLineNo">090</span><a name="line.90"></a> -<span class="sourceLineNo">091</span> /**<a name="line.91"></a> -<span class="sourceLineNo">092</span> * Efficiently trims the path info part from a request URI.<a name="line.92"></a> -<span class="sourceLineNo">093</span> *<a name="line.93"></a> -<span class="sourceLineNo">094</span> * <p><a name="line.94"></a> -<span class="sourceLineNo">095</span> * The result is the URI of the servlet itself.<a name="line.95"></a> -<span class="sourceLineNo">096</span> *<a name="line.96"></a> -<span class="sourceLineNo">097</span> * @param requestURI The value returned by {@link HttpServletRequest#getRequestURL()}<a name="line.97"></a> -<span class="sourceLineNo">098</span> * @param contextPath The value returned by {@link HttpServletRequest#getContextPath()}<a name="line.98"></a> -<span class="sourceLineNo">099</span> * @param servletPath The value returned by {@link HttpServletRequest#getServletPath()}<a name="line.99"></a> -<span class="sourceLineNo">100</span> * @return The same StringBuilder with remainder trimmed.<a name="line.100"></a> -<span class="sourceLineNo">101</span> */<a name="line.101"></a> -<span class="sourceLineNo">102</span> public static StringBuffer trimPathInfo(StringBuffer requestURI, String contextPath, String servletPath) {<a name="line.102"></a> -<span class="sourceLineNo">103</span> if (servletPath.equals("/"))<a name="line.103"></a> -<span class="sourceLineNo">104</span> servletPath = "";<a name="line.104"></a> -<span class="sourceLineNo">105</span> if (contextPath.equals("/"))<a name="line.105"></a> -<span class="sourceLineNo">106</span> contextPath = "";<a name="line.106"></a> -<span class="sourceLineNo">107</span><a name="line.107"></a> -<span class="sourceLineNo">108</span> try {<a name="line.108"></a> -<span class="sourceLineNo">109</span> // Given URL: http://hostname:port/servletPath/extra<a name="line.109"></a> -<span class="sourceLineNo">110</span> // We want: http://hostname:port/servletPath<a name="line.110"></a> -<span class="sourceLineNo">111</span> int sc = 0;<a name="line.111"></a> -<span class="sourceLineNo">112</span> for (int i = 0; i < requestURI.length(); i++) {<a name="line.112"></a> -<span class="sourceLineNo">113</span> char c = requestURI.charAt(i);<a name="line.113"></a> -<span class="sourceLineNo">114</span> if (c == '/') {<a name="line.114"></a> -<span class="sourceLineNo">115</span> sc++;<a name="line.115"></a> -<span class="sourceLineNo">116</span> if (sc == 3) {<a name="line.116"></a> -<span class="sourceLineNo">117</span> if (servletPath.isEmpty()) {<a name="line.117"></a> -<span class="sourceLineNo">118</span> requestURI.setLength(i);<a name="line.118"></a> -<span class="sourceLineNo">119</span> return requestURI;<a name="line.119"></a> -<span class="sourceLineNo">120</span> }<a name="line.120"></a> -<span class="sourceLineNo">121</span><a name="line.121"></a> -<span class="sourceLineNo">122</span> // Make sure context path follows the authority.<a name="line.122"></a> -<span class="sourceLineNo">123</span> for (int j = 0; j < contextPath.length(); i++, j++)<a name="line.123"></a> -<span class="sourceLineNo">124</span> if (requestURI.charAt(i) != contextPath.charAt(j))<a name="line.124"></a> -<span class="sourceLineNo">125</span> throw new Exception("case=1");<a name="line.125"></a> -<span class="sourceLineNo">126</span><a name="line.126"></a> -<span class="sourceLineNo">127</span> // Make sure servlet path follows the authority.<a name="line.127"></a> -<span class="sourceLineNo">128</span> for (int j = 0; j < servletPath.length(); i++, j++)<a name="line.128"></a> -<span class="sourceLineNo">129</span> if (requestURI.charAt(i) != servletPath.charAt(j))<a name="line.129"></a> -<span class="sourceLineNo">130</span> throw new Exception("case=2");<a name="line.130"></a> -<span class="sourceLineNo">131</span><a name="line.131"></a> -<span class="sourceLineNo">132</span> // Make sure servlet path isn't a false match (e.g. /foo2 should not match /foo)<a name="line.132"></a> -<span class="sourceLineNo">133</span> c = (requestURI.length() == i ? '/' : requestURI.charAt(i));<a name="line.133"></a> -<span class="sourceLineNo">134</span> if (c == '/' || c == '?') {<a name="line.134"></a> -<span class="sourceLineNo">135</span> requestURI.setLength(i);<a name="line.135"></a> -<span class="sourceLineNo">136</span> return requestURI;<a name="line.136"></a> -<span class="sourceLineNo">137</span> }<a name="line.137"></a> -<span class="sourceLineNo">138</span><a name="line.138"></a> -<span class="sourceLineNo">139</span> throw new Exception("case=3");<a name="line.139"></a> -<span class="sourceLineNo">140</span> }<a name="line.140"></a> -<span class="sourceLineNo">141</span> } else if (c == '?') {<a name="line.141"></a> -<span class="sourceLineNo">142</span> if (sc != 2)<a name="line.142"></a> -<span class="sourceLineNo">143</span> throw new Exception("case=4");<a name="line.143"></a> -<span class="sourceLineNo">144</span> if (servletPath.isEmpty()) {<a name="line.144"></a> -<span class="sourceLineNo">145</span> requestURI.setLength(i);<a name="line.145"></a> -<span class="sourceLineNo">146</span> return requestURI;<a name="line.146"></a> -<span class="sourceLineNo">147</span> }<a name="line.147"></a> -<span class="sourceLineNo">148</span> throw new Exception("case=5");<a name="line.148"></a> -<span class="sourceLineNo">149</span> }<a name="line.149"></a> -<span class="sourceLineNo">150</span> }<a name="line.150"></a> -<span class="sourceLineNo">151</span> if (servletPath.isEmpty())<a name="line.151"></a> -<span class="sourceLineNo">152</span> return requestURI;<a name="line.152"></a> -<span class="sourceLineNo">153</span> throw new Exception("case=6");<a name="line.153"></a> -<span class="sourceLineNo">154</span> } catch (Exception e) {<a name="line.154"></a> -<span class="sourceLineNo">155</span> throw new RuntimeException("Could not find servlet path in request URI. URI=["+requestURI+"], servletPath=["+servletPath+"]", e);<a name="line.155"></a> -<span class="sourceLineNo">156</span> }<a name="line.156"></a> -<span class="sourceLineNo">157</span> }<a name="line.157"></a> -<span class="sourceLineNo">158</span><a name="line.158"></a> -<span class="sourceLineNo">159</span> static String[] parseHeader(String s) {<a name="line.159"></a> -<span class="sourceLineNo">160</span> int i = s.indexOf(':');<a name="line.160"></a> -<span class="sourceLineNo">161</span> if (i == -1)<a name="line.161"></a> -<span class="sourceLineNo">162</span> return null;<a name="line.162"></a> -<span class="sourceLineNo">163</span> String name = s.substring(0, i).trim().toLowerCase(Locale.ENGLISH);<a name="line.163"></a> -<span class="sourceLineNo">164</span> String val = s.substring(i+1).trim();<a name="line.164"></a> -<span class="sourceLineNo">165</span> return new String[]{name,val};<a name="line.165"></a> -<span class="sourceLineNo">166</span> }<a name="line.166"></a> -<span class="sourceLineNo">167</span><a name="line.167"></a> -<span class="sourceLineNo">168</span> /**<a name="line.168"></a> -<span class="sourceLineNo">169</span> * Parses key/value pairs separated by either : or =<a name="line.169"></a> -<span class="sourceLineNo">170</span> */<a name="line.170"></a> -<span class="sourceLineNo">171</span> static String[] parseKeyValuePair(String s) {<a name="line.171"></a> -<span class="sourceLineNo">172</span> int i = -1;<a name="line.172"></a> -<span class="sourceLineNo">173</span> for (int j = 0; j < s.length() && i < 0; j++) { s.indexOf(':');<a name="line.173"></a> -<span class="sourceLineNo">174</span> char c = s.charAt(j);<a name="line.174"></a> -<span class="sourceLineNo">175</span> if (c == '=' || c == ':')<a name="line.175"></a> -<span class="sourceLineNo">176</span> i = j;<a name="line.176"></a> -<span class="sourceLineNo">177</span> }<a name="line.177"></a> -<span class="sourceLineNo">178</span> if (i == -1)<a name="line.178"></a> -<span class="sourceLineNo">179</span> return null;<a name="line.179"></a> -<span class="sourceLineNo">180</span> String name = s.substring(0, i).trim();<a name="line.180"></a> -<span class="sourceLineNo">181</span> String val = s.substring(i+1).trim();<a name="line.181"></a> -<span class="sourceLineNo">182</span> return new String[]{name,val};<a name="line.182"></a> -<span class="sourceLineNo">183</span> }<a name="line.183"></a> -<span class="sourceLineNo">184</span>}<a name="line.184"></a> +<span class="sourceLineNo">019</span>import org.apache.juneau.*;<a name="line.19"></a> +<span class="sourceLineNo">020</span>import org.apache.juneau.utils.*;<a name="line.20"></a> +<span class="sourceLineNo">021</span><a name="line.21"></a> +<span class="sourceLineNo">022</span>/**<a name="line.22"></a> +<span class="sourceLineNo">023</span> * Various reusable utility methods.<a name="line.23"></a> +<span class="sourceLineNo">024</span> */<a name="line.24"></a> +<span class="sourceLineNo">025</span>public final class RestUtils {<a name="line.25"></a> +<span class="sourceLineNo">026</span><a name="line.26"></a> +<span class="sourceLineNo">027</span> /**<a name="line.27"></a> +<span class="sourceLineNo">028</span> * Returns readable text for an HTTP response code.<a name="line.28"></a> +<span class="sourceLineNo">029</span> *<a name="line.29"></a> +<span class="sourceLineNo">030</span> * @param rc The HTTP response code.<a name="line.30"></a> +<span class="sourceLineNo">031</span> * @return Readable text for an HTTP response code, or <jk>null</jk> if it's an invalid code.<a name="line.31"></a> +<span class="sourceLineNo">032</span> */<a name="line.32"></a> +<span class="sourceLineNo">033</span> public static String getHttpResponseText(int rc) {<a name="line.33"></a> +<span class="sourceLineNo">034</span> return httpMsgs.get(rc);<a name="line.34"></a> +<span class="sourceLineNo">035</span> }<a name="line.35"></a> +<span class="sourceLineNo">036</span><a name="line.36"></a> +<span class="sourceLineNo">037</span> private static Map<Integer,String> httpMsgs = new AMap<Integer,String>()<a name="line.37"></a> +<span class="sourceLineNo">038</span> .append(200, "OK")<a name="line.38"></a> +<span class="sourceLineNo">039</span> .append(201, "Created")<a name="line.39"></a> +<span class="sourceLineNo">040</span> .append(202, "Accepted")<a name="line.40"></a> +<span class="sourceLineNo">041</span> .append(203, "Non-Authoritative Information")<a name="line.41"></a> +<span class="sourceLineNo">042</span> .append(204, "No Content")<a name="line.42"></a> +<span class="sourceLineNo">043</span> .append(205, "Reset Content")<a name="line.43"></a> +<span class="sourceLineNo">044</span> .append(206, "Partial Content")<a name="line.44"></a> +<span class="sourceLineNo">045</span> .append(300, "Multiple Choices")<a name="line.45"></a> +<span class="sourceLineNo">046</span> .append(301, "Moved Permanently")<a name="line.46"></a> +<span class="sourceLineNo">047</span> .append(302, "Temporary Redirect")<a name="line.47"></a> +<span class="sourceLineNo">048</span> .append(303, "See Other")<a name="line.48"></a> +<span class="sourceLineNo">049</span> .append(304, "Not Modified")<a name="line.49"></a> +<span class="sourceLineNo">050</span> .append(305, "Use Proxy")<a name="line.50"></a> +<span class="sourceLineNo">051</span> .append(307, "Temporary Redirect")<a name="line.51"></a> +<span class="sourceLineNo">052</span> .append(400, "Bad Request")<a name="line.52"></a> +<span class="sourceLineNo">053</span> .append(401, "Unauthorized")<a name="line.53"></a> +<span class="sourceLineNo">054</span> .append(402, "Payment Required")<a name="line.54"></a> +<span class="sourceLineNo">055</span> .append(403, "Forbidden")<a name="line.55"></a> +<span class="sourceLineNo">056</span> .append(404, "Not Found")<a name="line.56"></a> +<span class="sourceLineNo">057</span> .append(405, "Method Not Allowed")<a name="line.57"></a> +<span class="sourceLineNo">058</span> .append(406, "Not Acceptable")<a name="line.58"></a> +<span class="sourceLineNo">059</span> .append(407, "Proxy Authentication Required")<a name="line.59"></a> +<span class="sourceLineNo">060</span> .append(408, "Request Time-Out")<a name="line.60"></a> +<span class="sourceLineNo">061</span> .append(409, "Conflict")<a name="line.61"></a> +<span class="sourceLineNo">062</span> .append(410, "Gone")<a name="line.62"></a> +<span class="sourceLineNo">063</span> .append(411, "Length Required")<a name="line.63"></a> +<span class="sourceLineNo">064</span> .append(412, "Precondition Failed")<a name="line.64"></a> +<span class="sourceLineNo">065</span> .append(413, "Request Entity Too Large")<a name="line.65"></a> +<span class="sourceLineNo">066</span> .append(414, "Request-URI Too Large")<a name="line.66"></a> +<span class="sourceLineNo">067</span> .append(415, "Unsupported Media Type")<a name="line.67"></a> +<span class="sourceLineNo">068</span> .append(500, "Internal Server Error")<a name="line.68"></a> +<span class="sourceLineNo">069</span> .append(501, "Not Implemented")<a name="line.69"></a> +<span class="sourceLineNo">070</span> .append(502, "Bad Gateway")<a name="line.70"></a> +<span class="sourceLineNo">071</span> .append(503, "Service Unavailable")<a name="line.71"></a> +<span class="sourceLineNo">072</span> .append(504, "Gateway Timeout")<a name="line.72"></a> +<span class="sourceLineNo">073</span> .append(505, "HTTP Version Not Supported")<a name="line.73"></a> +<span class="sourceLineNo">074</span> ;<a name="line.74"></a> +<span class="sourceLineNo">075</span><a name="line.75"></a> +<span class="sourceLineNo">076</span> /**<a name="line.76"></a> +<span class="sourceLineNo">077</span> * Identical to {@link HttpServletRequest#getPathInfo()} but doesn't decode encoded characters.<a name="line.77"></a> +<span class="sourceLineNo">078</span> *<a name="line.78"></a> +<span class="sourceLineNo">079</span> * @param req The HTTP request<a name="line.79"></a> +<span class="sourceLineNo">080</span> * @return The un-decoded path info.<a name="line.80"></a> +<span class="sourceLineNo">081</span> */<a name="line.81"></a> +<span class="sourceLineNo">082</span> public static String getPathInfoUndecoded(HttpServletRequest req) {<a name="line.82"></a> +<span class="sourceLineNo">083</span> String requestURI = req.getRequestURI();<a name="line.83"></a> +<span class="sourceLineNo">084</span> String contextPath = req.getContextPath();<a name="line.84"></a> +<span class="sourceLineNo">085</span> String servletPath = req.getServletPath();<a name="line.85"></a> +<span class="sourceLineNo">086</span> int l = contextPath.length() + servletPath.length();<a name="line.86"></a> +<span class="sourceLineNo">087</span> if (requestURI.length() == l)<a name="line.87"></a> +<span class="sourceLineNo">088</span> return null;<a name="line.88"></a> +<span class="sourceLineNo">089</span> return requestURI.substring(l);<a name="line.89"></a> +<span class="sourceLineNo">090</span> }<a name="line.90"></a> +<span class="sourceLineNo">091</span><a name="line.91"></a> +<span class="sourceLineNo">092</span> /**<a name="line.92"></a> +<span class="sourceLineNo">093</span> * Efficiently trims the path info part from a request URI.<a name="line.93"></a> +<span class="sourceLineNo">094</span> *<a name="line.94"></a> +<span class="sourceLineNo">095</span> * <p><a name="line.95"></a> +<span class="sourceLineNo">096</span> * The result is the URI of the servlet itself.<a name="line.96"></a> +<span class="sourceLineNo">097</span> *<a name="line.97"></a> +<span class="sourceLineNo">098</span> * @param requestURI The value returned by {@link HttpServletRequest#getRequestURL()}<a name="line.98"></a> +<span class="sourceLineNo">099</span> * @param contextPath The value returned by {@link HttpServletRequest#getContextPath()}<a name="line.99"></a> +<span class="sourceLineNo">100</span> * @param servletPath The value returned by {@link HttpServletRequest#getServletPath()}<a name="line.100"></a> +<span class="sourceLineNo">101</span> * @return The same StringBuilder with remainder trimmed.<a name="line.101"></a> +<span class="sourceLineNo">102</span> */<a name="line.102"></a> +<span class="sourceLineNo">103</span> public static StringBuffer trimPathInfo(StringBuffer requestURI, String contextPath, String servletPath) {<a name="line.103"></a> +<span class="sourceLineNo">104</span> if (servletPath.equals("/"))<a name="line.104"></a> +<span class="sourceLineNo">105</span> servletPath = "";<a name="line.105"></a> +<span class="sourceLineNo">106</span> if (contextPath.equals("/"))<a name="line.106"></a> +<span class="sourceLineNo">107</span> contextPath = "";<a name="line.107"></a> +<span class="sourceLineNo">108</span><a name="line.108"></a> +<span class="sourceLineNo">109</span> try {<a name="line.109"></a> +<span class="sourceLineNo">110</span> // Given URL: http://hostname:port/servletPath/extra<a name="line.110"></a> +<span class="sourceLineNo">111</span> // We want: http://hostname:port/servletPath<a name="line.111"></a> +<span class="sourceLineNo">112</span> int sc = 0;<a name="line.112"></a> +<span class="sourceLineNo">113</span> for (int i = 0; i < requestURI.length(); i++) {<a name="line.113"></a> +<span class="sourceLineNo">114</span> char c = requestURI.charAt(i);<a name="line.114"></a> +<span class="sourceLineNo">115</span> if (c == '/') {<a name="line.115"></a> +<span class="sourceLineNo">116</span> sc++;<a name="line.116"></a> +<span class="sourceLineNo">117</span> if (sc == 3) {<a name="line.117"></a> +<span class="sourceLineNo">118</span> if (servletPath.isEmpty()) {<a name="line.118"></a> +<span class="sourceLineNo">119</span> requestURI.setLength(i);<a name="line.119"></a> +<span class="sourceLineNo">120</span> return requestURI;<a name="line.120"></a> +<span class="sourceLineNo">121</span> }<a name="line.121"></a> +<span class="sourceLineNo">122</span><a name="line.122"></a> +<span class="sourceLineNo">123</span> // Make sure context path follows the authority.<a name="line.123"></a> +<span class="sourceLineNo">124</span> for (int j = 0; j < contextPath.length(); i++, j++)<a name="line.124"></a> +<span class="sourceLineNo">125</span> if (requestURI.charAt(i) != contextPath.charAt(j))<a name="line.125"></a> +<span class="sourceLineNo">126</span> throw new Exception("case=1");<a name="line.126"></a> +<span class="sourceLineNo">127</span><a name="line.127"></a> +<span class="sourceLineNo">128</span> // Make sure servlet path follows the authority.<a name="line.128"></a> +<span class="sourceLineNo">129</span> for (int j = 0; j < servletPath.length(); i++, j++)<a name="line.129"></a> +<span class="sourceLineNo">130</span> if (requestURI.charAt(i) != servletPath.charAt(j))<a name="line.130"></a> +<span class="sourceLineNo">131</span> throw new Exception("case=2");<a name="line.131"></a> +<span class="sourceLineNo">132</span><a name="line.132"></a> +<span class="sourceLineNo">133</span> // Make sure servlet path isn't a false match (e.g. /foo2 should not match /foo)<a name="line.133"></a> +<span class="sourceLineNo">134</span> c = (requestURI.length() == i ? '/' : requestURI.charAt(i));<a name="line.134"></a> +<span class="sourceLineNo">135</span> if (c == '/' || c == '?') {<a name="line.135"></a> +<span class="sourceLineNo">136</span> requestURI.setLength(i);<a name="line.136"></a> +<span class="sourceLineNo">137</span> return requestURI;<a name="line.137"></a> +<span class="sourceLineNo">138</span> }<a name="line.138"></a> +<span class="sourceLineNo">139</span><a name="line.139"></a> +<span class="sourceLineNo">140</span> throw new Exception("case=3");<a name="line.140"></a> +<span class="sourceLineNo">141</span> }<a name="line.141"></a> +<span class="sourceLineNo">142</span> } else if (c == '?') {<a name="line.142"></a> +<span class="sourceLineNo">143</span> if (sc != 2)<a name="line.143"></a> +<span class="sourceLineNo">144</span> throw new Exception("case=4");<a name="line.144"></a> +<span class="sourceLineNo">145</span> if (servletPath.isEmpty()) {<a name="line.145"></a> +<span class="sourceLineNo">146</span> requestURI.setLength(i);<a name="line.146"></a> +<span class="sourceLineNo">147</span> return requestURI;<a name="line.147"></a> +<span class="sourceLineNo">148</span> }<a name="line.148"></a> +<span class="sourceLineNo">149</span> throw new Exception("case=5");<a name="line.149"></a> +<span class="sourceLineNo">150</span> }<a name="line.150"></a> +<span class="sourceLineNo">151</span> }<a name="line.151"></a> +<span class="sourceLineNo">152</span> if (servletPath.isEmpty())<a name="line.152"></a> +<span class="sourceLineNo">153</span> return requestURI;<a name="line.153"></a> +<span class="sourceLineNo">154</span> throw new Exception("case=6");<a name="line.154"></a> +<span class="sourceLineNo">155</span> } catch (Exception e) {<a name="line.155"></a> +<span class="sourceLineNo">156</span> throw new FormattedRuntimeException(e, "Could not find servlet path in request URI. URI=''{0}'', servletPath=''{1}''", requestURI, servletPath);<a name="line.156"></a> +<span class="sourceLineNo">157</span> }<a name="line.157"></a> +<span class="sourceLineNo">158</span> }<a name="line.158"></a> +<span class="sourceLineNo">159</span><a name="line.159"></a> +<span class="sourceLineNo">160</span> static String[] parseHeader(String s) {<a name="line.160"></a> +<span class="sourceLineNo">161</span> int i = s.indexOf(':');<a name="line.161"></a> +<span class="sourceLineNo">162</span> if (i == -1)<a name="line.162"></a> +<span class="sourceLineNo">163</span> return null;<a name="line.163"></a> +<span class="sourceLineNo">164</span> String name = s.substring(0, i).trim().toLowerCase(Locale.ENGLISH);<a name="line.164"></a> +<span class="sourceLineNo">165</span> String val = s.substring(i+1).trim();<a name="line.165"></a> +<span class="sourceLineNo">166</span> return new String[]{name,val};<a name="line.166"></a> +<span class="sourceLineNo">167</span> }<a name="line.167"></a> +<span class="sourceLineNo">168</span><a name="line.168"></a> +<span class="sourceLineNo">169</span> /**<a name="line.169"></a> +<span class="sourceLineNo">170</span> * Parses key/value pairs separated by either : or =<a name="line.170"></a> +<span class="sourceLineNo">171</span> */<a name="line.171"></a> +<span class="sourceLineNo">172</span> static String[] parseKeyValuePair(String s) {<a name="line.172"></a> +<span class="sourceLineNo">173</span> int i = -1;<a name="line.173"></a> +<span class="sourceLineNo">174</span> for (int j = 0; j < s.length() && i < 0; j++) { s.indexOf(':');<a name="line.174"></a> +<span class="sourceLineNo">175</span> char c = s.charAt(j);<a name="line.175"></a> +<span class="sourceLineNo">176</span> if (c == '=' || c == ':')<a name="line.176"></a> +<span class="sourceLineNo">177</span> i = j;<a name="line.177"></a> +<span class="sourceLineNo">178</span> }<a name="line.178"></a> +<span class="sourceLineNo">179</span> if (i == -1)<a name="line.179"></a> +<span class="sourceLineNo">180</span> return null;<a name="line.180"></a> +<span class="sourceLineNo">181</span> String name = s.substring(0, i).trim();<a name="line.181"></a> +<span class="sourceLineNo">182</span> String val = s.substring(i+1).trim();<a name="line.182"></a> +<span class="sourceLineNo">183</span> return new String[]{name,val};<a name="line.183"></a> +<span class="sourceLineNo">184</span> }<a name="line.184"></a> +<span class="sourceLineNo">185</span>}<a name="line.185"></a> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/d35b70d1/content/site/apidocs/src-html/org/apache/juneau/rest/annotation/HtmlDoc.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/annotation/HtmlDoc.html b/content/site/apidocs/src-html/org/apache/juneau/rest/annotation/HtmlDoc.html index c0f36fa..b53b05f 100644 --- a/content/site/apidocs/src-html/org/apache/juneau/rest/annotation/HtmlDoc.html +++ b/content/site/apidocs/src-html/org/apache/juneau/rest/annotation/HtmlDoc.html @@ -401,7 +401,7 @@ <span class="sourceLineNo">393</span> * <p class='bcode'><a name="line.393"></a> <span class="sourceLineNo">394</span> * <ja>@RestResource</ja>(<a name="line.394"></a> <span class="sourceLineNo">395</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.395"></a> -<span class="sourceLineNo">396</span> * cssUrl=<js>"http://someOtherHost/stealTheir.css"</js><a name="line.396"></a> +<span class="sourceLineNo">396</span> * stylesheet=<js>"http://someOtherHost/stealTheir.css"</js><a name="line.396"></a> <span class="sourceLineNo">397</span> * )<a name="line.397"></a> <span class="sourceLineNo">398</span> * )<a name="line.398"></a> <span class="sourceLineNo">399</span> * </p><a name="line.399"></a> @@ -412,9 +412,9 @@ <span class="sourceLineNo">404</span> *<a name="line.404"></a> <span class="sourceLineNo">405</span> * <p><a name="line.405"></a> <span class="sourceLineNo">406</span> * The programmatic equivalent to this annotation are the<a name="line.406"></a> -<span class="sourceLineNo">407</span> * {@link RestConfig#setHtmlStyleImport(String)}/{@link RestResponse#setHtmlStyleImport(Object)} methods.<a name="line.407"></a> +<span class="sourceLineNo">407</span> * {@link RestConfig#setHtmlStylesheet(String)}/{@link RestResponse#setHtmlStylesheet(Object)} methods.<a name="line.407"></a> <span class="sourceLineNo">408</span> */<a name="line.408"></a> -<span class="sourceLineNo">409</span> String styleImport() default "";<a name="line.409"></a> +<span class="sourceLineNo">409</span> String stylesheet() default "";<a name="line.409"></a> <span class="sourceLineNo">410</span><a name="line.410"></a> <span class="sourceLineNo">411</span> /**<a name="line.411"></a> <span class="sourceLineNo">412</span> * Sets the HTML script section contents.<a name="line.412"></a> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/d35b70d1/content/site/apidocs/src-html/org/apache/juneau/rest/jena/RestServletJenaDefault.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/jena/RestServletJenaDefault.html b/content/site/apidocs/src-html/org/apache/juneau/rest/jena/RestServletJenaDefault.html index d2f48e7..5930055 100644 --- a/content/site/apidocs/src-html/org/apache/juneau/rest/jena/RestServletJenaDefault.html +++ b/content/site/apidocs/src-html/org/apache/juneau/rest/jena/RestServletJenaDefault.html @@ -254,7 +254,7 @@ <span class="sourceLineNo">246</span> },<a name="line.246"></a> <span class="sourceLineNo">247</span> htmldoc=@HtmlDoc(<a name="line.247"></a> <span class="sourceLineNo">248</span> branding="<a href='http://juneau.apache.org'><img src='$U{servlet:/htdocs/juneau.png}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'></a>",<a name="line.248"></a> -<span class="sourceLineNo">249</span> styleImport="servlet:/styles/devops.css"<a name="line.249"></a> +<span class="sourceLineNo">249</span> stylesheet="servlet:/styles/devops.css"<a name="line.249"></a> <span class="sourceLineNo">250</span> ),<a name="line.250"></a> <span class="sourceLineNo">251</span> favicon="htdocs/juneau.png",<a name="line.251"></a> <span class="sourceLineNo">252</span> staticFiles="{htdocs:'htdocs',styles:'styles'}"<a name="line.252"></a> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/d35b70d1/content/site/apidocs/src-html/org/apache/juneau/rest/widget/StyleMenuItem.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/widget/StyleMenuItem.html b/content/site/apidocs/src-html/org/apache/juneau/rest/widget/StyleMenuItem.html new file mode 100644 index 0000000..0905f66 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/rest/widget/StyleMenuItem.html @@ -0,0 +1,148 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> +<head> +<title>Source code</title> +<link rel="stylesheet" type="text/css" href="../../../../../../javadoc.css" title="Style"> +</head> +<body> +<div class="sourceContainer"> +<pre><span class="sourceLineNo">001</span>// ***************************************************************************************************************************<a name="line.1"></a> +<span class="sourceLineNo">002</span>// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *<a name="line.2"></a> +<span class="sourceLineNo">003</span>// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *<a name="line.3"></a> +<span class="sourceLineNo">004</span>// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance *<a name="line.4"></a> +<span class="sourceLineNo">005</span>// * with the License. You may obtain a copy of the License at *<a name="line.5"></a> +<span class="sourceLineNo">006</span>// * *<a name="line.6"></a> +<span class="sourceLineNo">007</span>// * http://www.apache.org/licenses/LICENSE-2.0 *<a name="line.7"></a> +<span class="sourceLineNo">008</span>// * *<a name="line.8"></a> +<span class="sourceLineNo">009</span>// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an *<a name="line.9"></a> +<span class="sourceLineNo">010</span>// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the *<a name="line.10"></a> +<span class="sourceLineNo">011</span>// * specific language governing permissions and limitations under the License. *<a name="line.11"></a> +<span class="sourceLineNo">012</span>// ***************************************************************************************************************************<a name="line.12"></a> +<span class="sourceLineNo">013</span>package org.apache.juneau.rest.widget;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>import org.apache.juneau.*;<a name="line.15"></a> +<span class="sourceLineNo">016</span>import org.apache.juneau.rest.*;<a name="line.16"></a> +<span class="sourceLineNo">017</span><a name="line.17"></a> +<span class="sourceLineNo">018</span>/**<a name="line.18"></a> +<span class="sourceLineNo">019</span> * Widget that returns back a list of hyperlinks for rendering the contents of a page in the various default styles.<a name="line.19"></a> +<span class="sourceLineNo">020</span> *<a name="line.20"></a> +<span class="sourceLineNo">021</span> * <p><a name="line.21"></a> +<span class="sourceLineNo">022</span> * The variable it resolves is <js>"$W{styleMenuItem}"</js>.<a name="line.22"></a> +<span class="sourceLineNo">023</span> *<a name="line.23"></a> +<span class="sourceLineNo">024</span> * <p><a name="line.24"></a> +<span class="sourceLineNo">025</span> * An example of this widget can be found in the <code>PetStoreResource</code> in the examples that provides<a name="line.25"></a> +<span class="sourceLineNo">026</span> * a drop-down menu item for rendering all other supported content types in plain text:<a name="line.26"></a> +<span class="sourceLineNo">027</span> * <p class='bcode'><a name="line.27"></a> +<span class="sourceLineNo">028</span> * <ja>@RestMethod</ja>(<a name="line.28"></a> +<span class="sourceLineNo">029</span> * name=<js>"GET"</js>,<a name="line.29"></a> +<span class="sourceLineNo">030</span> * path=<js>"/"</js>,<a name="line.30"></a> +<span class="sourceLineNo">031</span> * widgets={<a name="line.31"></a> +<span class="sourceLineNo">032</span> * StyleMenuItem.<jk>class</jk>,<a name="line.32"></a> +<span class="sourceLineNo">033</span> * },<a name="line.33"></a> +<span class="sourceLineNo">034</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.34"></a> +<span class="sourceLineNo">035</span> * links=<js>"{up:'...',options:'...',query:'...',contentTypes:'...',style='$W{styleMenuItem}',source:'...'}"</js><a name="line.35"></a> +<span class="sourceLineNo">036</span> * )<a name="line.36"></a> +<span class="sourceLineNo">037</span> * )<a name="line.37"></a> +<span class="sourceLineNo">038</span> * <jk>public</jk> Collection&lt;Pet&gt; getPets() {<a name="line.38"></a> +<span class="sourceLineNo">039</span> * </p><a name="line.39"></a> +<span class="sourceLineNo">040</span> */<a name="line.40"></a> +<span class="sourceLineNo">041</span>public class StyleMenuItem extends MenuItemWidget {<a name="line.41"></a> +<span class="sourceLineNo">042</span><a name="line.42"></a> +<span class="sourceLineNo">043</span> private static final String[] BUILT_IN_STYLES = {"devops", "light", "original"};<a name="line.43"></a> +<span class="sourceLineNo">044</span><a name="line.44"></a> +<span class="sourceLineNo">045</span> /**<a name="line.45"></a> +<span class="sourceLineNo">046</span> * Returns <js>"styleMenuItem"</js>.<a name="line.46"></a> +<span class="sourceLineNo">047</span> */<a name="line.47"></a> +<span class="sourceLineNo">048</span> @Override /* Widget */<a name="line.48"></a> +<span class="sourceLineNo">049</span> public String getName() {<a name="line.49"></a> +<span class="sourceLineNo">050</span> return "styleMenuItem";<a name="line.50"></a> +<span class="sourceLineNo">051</span> }<a name="line.51"></a> +<span class="sourceLineNo">052</span><a name="line.52"></a> +<span class="sourceLineNo">053</span> /**<a name="line.53"></a> +<span class="sourceLineNo">054</span> * Looks at the supported media types from the request and constructs a list of hyperlinks to render the data<a name="line.54"></a> +<span class="sourceLineNo">055</span> * as plain-text.<a name="line.55"></a> +<span class="sourceLineNo">056</span> */<a name="line.56"></a> +<span class="sourceLineNo">057</span> @Override /* Widget */<a name="line.57"></a> +<span class="sourceLineNo">058</span> public String getHtml(RestRequest req) throws Exception {<a name="line.58"></a> +<span class="sourceLineNo">059</span> UriResolver r = req.getUriResolver();<a name="line.59"></a> +<span class="sourceLineNo">060</span> StringBuilder sb = new StringBuilder();<a name="line.60"></a> +<span class="sourceLineNo">061</span> sb.append(""<a name="line.61"></a> +<span class="sourceLineNo">062</span> + "<div class='menu-item'>"<a name="line.62"></a> +<span class="sourceLineNo">063</span> + "\n\t<a class='link' onclick='menuClick(this)'>styles</a>"<a name="line.63"></a> +<span class="sourceLineNo">064</span> + "\n\t<div class='popup-content'>"<a name="line.64"></a> +<span class="sourceLineNo">065</span> );<a name="line.65"></a> +<span class="sourceLineNo">066</span> for (String s : BUILT_IN_STYLES) {<a name="line.66"></a> +<span class="sourceLineNo">067</span> sb.append("\n\t\t<a class='link' href='").append(r.resolve("request:/?stylesheet=styles/"+s+".css"))<a name="line.67"></a> +<span class="sourceLineNo">068</span> .append("'>").append(s).append("</a><br>");<a name="line.68"></a> +<span class="sourceLineNo">069</span> }<a name="line.69"></a> +<span class="sourceLineNo">070</span> sb.append(""<a name="line.70"></a> +<span class="sourceLineNo">071</span> + "\n\t</div>"<a name="line.71"></a> +<span class="sourceLineNo">072</span> + "\n</div>"<a name="line.72"></a> +<span class="sourceLineNo">073</span> );<a name="line.73"></a> +<span class="sourceLineNo">074</span> return sb.toString();<a name="line.74"></a> +<span class="sourceLineNo">075</span> }<a name="line.75"></a> +<span class="sourceLineNo">076</span>}<a name="line.76"></a> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/d35b70d1/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html b/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html index 3ded1bb..0528abf 100644 --- a/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html +++ b/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html @@ -132,111 +132,101 @@ <span class="sourceLineNo">124</span> * </p><a name="line.124"></a> <span class="sourceLineNo">125</span> *<a name="line.125"></a> <span class="sourceLineNo">126</span> * <p><a name="line.126"></a> -<span class="sourceLineNo">127</span> * The general idea behind having the serializer resolution be a two-step process is so that the matched media type<a name="line.127"></a> -<span class="sourceLineNo">128</span> * can be passed in to the {@link WriterSerializer#doSerialize(SerializerSession, Object)} method.<a name="line.128"></a> -<span class="sourceLineNo">129</span> * <br>For example...<a name="line.129"></a> -<span class="sourceLineNo">130</span> * <p class='bcode'><a name="line.130"></a> -<span class="sourceLineNo">131</span> * String acceptHeaderValue = request.getHeader(<js>"Accept"</js>);<a name="line.131"></a> -<span class="sourceLineNo">132</span> * String matchingMediaType = group.findMatch(acceptHeaderValue);<a name="line.132"></a> -<span class="sourceLineNo">133</span> * if (matchingMediaType == <jk>null</jk>)<a name="line.133"></a> -<span class="sourceLineNo">134</span> * <jk>throw new</jk> RestException(<jsf>SC_NOT_ACCEPTABLE</jsf>);<a name="line.134"></a> -<span class="sourceLineNo">135</span> * WriterSerializer s = (WriterSerializer)group.getSerializer(matchingMediaType);<a name="line.135"></a> -<span class="sourceLineNo">136</span> * s.serialize(getPojo(), response.getWriter(), response.getProperties(), matchingMediaType);<a name="line.136"></a> -<span class="sourceLineNo">137</span> * </p><a name="line.137"></a> -<span class="sourceLineNo">138</span> *<a name="line.138"></a> -<span class="sourceLineNo">139</span> * @param acceptHeader The HTTP <l>Accept</l> header string.<a name="line.139"></a> -<span class="sourceLineNo">140</span> * @return The serializer and media type that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.140"></a> -<span class="sourceLineNo">141</span> */<a name="line.141"></a> -<span class="sourceLineNo">142</span> public SerializerMatch getSerializerMatch(String acceptHeader) {<a name="line.142"></a> -<span class="sourceLineNo">143</span> SerializerMatch sm = cache.get(acceptHeader);<a name="line.143"></a> -<span class="sourceLineNo">144</span> if (sm != null)<a name="line.144"></a> -<span class="sourceLineNo">145</span> return sm;<a name="line.145"></a> +<span class="sourceLineNo">127</span> * The returned object includes both the serializer and media type that matched.<a name="line.127"></a> +<span class="sourceLineNo">128</span> *<a name="line.128"></a> +<span class="sourceLineNo">129</span> * @param acceptHeader The HTTP <l>Accept</l> header string.<a name="line.129"></a> +<span class="sourceLineNo">130</span> * @return The serializer and media type that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.130"></a> +<span class="sourceLineNo">131</span> */<a name="line.131"></a> +<span class="sourceLineNo">132</span> public SerializerMatch getSerializerMatch(String acceptHeader) {<a name="line.132"></a> +<span class="sourceLineNo">133</span> SerializerMatch sm = cache.get(acceptHeader);<a name="line.133"></a> +<span class="sourceLineNo">134</span> if (sm != null)<a name="line.134"></a> +<span class="sourceLineNo">135</span> return sm;<a name="line.135"></a> +<span class="sourceLineNo">136</span><a name="line.136"></a> +<span class="sourceLineNo">137</span> Accept a = Accept.forString(acceptHeader);<a name="line.137"></a> +<span class="sourceLineNo">138</span> int match = a.findMatch(mediaTypes);<a name="line.138"></a> +<span class="sourceLineNo">139</span> if (match >= 0) {<a name="line.139"></a> +<span class="sourceLineNo">140</span> sm = new SerializerMatch(mediaTypes[match], mediaTypeSerializers[match]);<a name="line.140"></a> +<span class="sourceLineNo">141</span> cache.putIfAbsent(acceptHeader, sm);<a name="line.141"></a> +<span class="sourceLineNo">142</span> }<a name="line.142"></a> +<span class="sourceLineNo">143</span><a name="line.143"></a> +<span class="sourceLineNo">144</span> return cache.get(acceptHeader);<a name="line.144"></a> +<span class="sourceLineNo">145</span> }<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> -<span class="sourceLineNo">147</span> Accept a = Accept.forString(acceptHeader);<a name="line.147"></a> -<span class="sourceLineNo">148</span> int match = a.findMatch(mediaTypes);<a name="line.148"></a> -<span class="sourceLineNo">149</span> if (match >= 0) {<a name="line.149"></a> -<span class="sourceLineNo">150</span> sm = new SerializerMatch(mediaTypes[match], mediaTypeSerializers[match]);<a name="line.150"></a> -<span class="sourceLineNo">151</span> cache.putIfAbsent(acceptHeader, sm);<a name="line.151"></a> -<span class="sourceLineNo">152</span> }<a name="line.152"></a> -<span class="sourceLineNo">153</span><a name="line.153"></a> -<span class="sourceLineNo">154</span> return cache.get(acceptHeader);<a name="line.154"></a> +<span class="sourceLineNo">147</span> /**<a name="line.147"></a> +<span class="sourceLineNo">148</span> * Same as {@link #getSerializerMatch(String)} but matches using a {@link MediaType} instance.<a name="line.148"></a> +<span class="sourceLineNo">149</span> *<a name="line.149"></a> +<span class="sourceLineNo">150</span> * @param mediaType The HTTP media type.<a name="line.150"></a> +<span class="sourceLineNo">151</span> * @return The serializer and media type that matched the media type, or <jk>null</jk> if no match was made.<a name="line.151"></a> +<span class="sourceLineNo">152</span> */<a name="line.152"></a> +<span class="sourceLineNo">153</span> public SerializerMatch getSerializerMatch(MediaType mediaType) {<a name="line.153"></a> +<span class="sourceLineNo">154</span> return getSerializerMatch(mediaType.toString());<a name="line.154"></a> <span class="sourceLineNo">155</span> }<a name="line.155"></a> <span class="sourceLineNo">156</span><a name="line.156"></a> <span class="sourceLineNo">157</span> /**<a name="line.157"></a> -<span class="sourceLineNo">158</span> * Same as {@link #getSerializerMatch(String)} but matches using a {@link MediaType} instance.<a name="line.158"></a> +<span class="sourceLineNo">158</span> * Same as {@link #getSerializerMatch(String)} but returns just the matched serializer.<a name="line.158"></a> <span class="sourceLineNo">159</span> *<a name="line.159"></a> -<span class="sourceLineNo">160</span> * @param mediaType The HTTP media type.<a name="line.160"></a> -<span class="sourceLineNo">161</span> * @return The serializer and media type that matched the media type, or <jk>null</jk> if no match was made.<a name="line.161"></a> +<span class="sourceLineNo">160</span> * @param acceptHeader The HTTP <l>Accept</l> header string.<a name="line.160"></a> +<span class="sourceLineNo">161</span> * @return The serializer that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.161"></a> <span class="sourceLineNo">162</span> */<a name="line.162"></a> -<span class="sourceLineNo">163</span> public SerializerMatch getSerializerMatch(MediaType mediaType) {<a name="line.163"></a> -<span class="sourceLineNo">164</span> return getSerializerMatch(mediaType.toString());<a name="line.164"></a> -<span class="sourceLineNo">165</span> }<a name="line.165"></a> -<span class="sourceLineNo">166</span><a name="line.166"></a> -<span class="sourceLineNo">167</span> /**<a name="line.167"></a> -<span class="sourceLineNo">168</span> * Same as {@link #getSerializerMatch(String)} but returns just the matched serializer.<a name="line.168"></a> -<span class="sourceLineNo">169</span> *<a name="line.169"></a> -<span class="sourceLineNo">170</span> * @param acceptHeader The HTTP <l>Accept</l> header string.<a name="line.170"></a> -<span class="sourceLineNo">171</span> * @return The serializer that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.171"></a> -<span class="sourceLineNo">172</span> */<a name="line.172"></a> -<span class="sourceLineNo">173</span> public Serializer getSerializer(String acceptHeader) {<a name="line.173"></a> -<span class="sourceLineNo">174</span> SerializerMatch sm = getSerializerMatch(acceptHeader);<a name="line.174"></a> -<span class="sourceLineNo">175</span> return sm == null ? null : sm.getSerializer();<a name="line.175"></a> -<span class="sourceLineNo">176</span> }<a name="line.176"></a> -<span class="sourceLineNo">177</span><a name="line.177"></a> -<span class="sourceLineNo">178</span> /**<a name="line.178"></a> -<span class="sourceLineNo">179</span> * Same as {@link #getSerializerMatch(MediaType)} but returns just the matched serializer.<a name="line.179"></a> -<span class="sourceLineNo">180</span> *<a name="line.180"></a> -<span class="sourceLineNo">181</span> * @param mediaType The HTTP media type.<a name="line.181"></a> -<span class="sourceLineNo">182</span> * @return The serializer that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.182"></a> -<span class="sourceLineNo">183</span> */<a name="line.183"></a> -<span class="sourceLineNo">184</span> public Serializer getSerializer(MediaType mediaType) {<a name="line.184"></a> -<span class="sourceLineNo">185</span> if (mediaType == null)<a name="line.185"></a> -<span class="sourceLineNo">186</span> return null;<a name="line.186"></a> -<span class="sourceLineNo">187</span> return getSerializer(mediaType.toString());<a name="line.187"></a> -<span class="sourceLineNo">188</span> }<a name="line.188"></a> -<span class="sourceLineNo">189</span><a name="line.189"></a> -<span class="sourceLineNo">190</span> /**<a name="line.190"></a> -<span class="sourceLineNo">191</span> * Returns the media types that all serializers in this group can handle.<a name="line.191"></a> -<span class="sourceLineNo">192</span> *<a name="line.192"></a> -<span class="sourceLineNo">193</span> * <p><a name="line.193"></a> -<span class="sourceLineNo">194</span> * Entries are ordered in the same order as the serializers in the group.<a name="line.194"></a> -<span class="sourceLineNo">195</span> *<a name="line.195"></a> -<span class="sourceLineNo">196</span> * @return An unmodifiable list of media types.<a name="line.196"></a> -<span class="sourceLineNo">197</span> */<a name="line.197"></a> -<span class="sourceLineNo">198</span> public List<MediaType> getSupportedMediaTypes() {<a name="line.198"></a> -<span class="sourceLineNo">199</span> return mediaTypesList;<a name="line.199"></a> -<span class="sourceLineNo">200</span> }<a name="line.200"></a> -<span class="sourceLineNo">201</span><a name="line.201"></a> -<span class="sourceLineNo">202</span> /**<a name="line.202"></a> -<span class="sourceLineNo">203</span> * Returns a copy of the property store that was used to create the serializers in this group.<a name="line.203"></a> -<span class="sourceLineNo">204</span> *<a name="line.204"></a> -<span class="sourceLineNo">205</span> * <p><a name="line.205"></a> -<span class="sourceLineNo">206</span> * This method returns a new factory each time so is somewhat expensive.<a name="line.206"></a> -<span class="sourceLineNo">207</span> *<a name="line.207"></a> -<span class="sourceLineNo">208</span> * @return A new copy of the property store passed in to the constructor.<a name="line.208"></a> -<span class="sourceLineNo">209</span> */<a name="line.209"></a> -<span class="sourceLineNo">210</span> public PropertyStore createPropertyStore() {<a name="line.210"></a> -<span class="sourceLineNo">211</span> return PropertyStore.create(propertyStore);<a name="line.211"></a> -<span class="sourceLineNo">212</span> }<a name="line.212"></a> -<span class="sourceLineNo">213</span><a name="line.213"></a> -<span class="sourceLineNo">214</span> /**<a name="line.214"></a> -<span class="sourceLineNo">215</span> * Returns a copy of the serializers in this group.<a name="line.215"></a> -<span class="sourceLineNo">216</span> *<a name="line.216"></a> -<span class="sourceLineNo">217</span> * @return An unmodifiable list of serializers in this group.<a name="line.217"></a> -<span class="sourceLineNo">218</span> */<a name="line.218"></a> -<span class="sourceLineNo">219</span> public List<Serializer> getSerializers() {<a name="line.219"></a> -<span class="sourceLineNo">220</span> return serializers;<a name="line.220"></a> -<span class="sourceLineNo">221</span> }<a name="line.221"></a> -<span class="sourceLineNo">222</span><a name="line.222"></a> -<span class="sourceLineNo">223</span> /**<a name="line.223"></a> -<span class="sourceLineNo">224</span> * Returns a bean context with the same properties as this group.<a name="line.224"></a> -<span class="sourceLineNo">225</span> *<a name="line.225"></a> -<span class="sourceLineNo">226</span> * @return The bean context.<a name="line.226"></a> -<span class="sourceLineNo">227</span> */<a name="line.227"></a> -<span class="sourceLineNo">228</span> public BeanContext getBeanContext() {<a name="line.228"></a> -<span class="sourceLineNo">229</span> return beanContext;<a name="line.229"></a> -<span class="sourceLineNo">230</span> }<a name="line.230"></a> -<span class="sourceLineNo">231</span>}<a name="line.231"></a> +<span class="sourceLineNo">163</span> public Serializer getSerializer(String acceptHeader) {<a name="line.163"></a> +<span class="sourceLineNo">164</span> SerializerMatch sm = getSerializerMatch(acceptHeader);<a name="line.164"></a> +<span class="sourceLineNo">165</span> return sm == null ? null : sm.getSerializer();<a name="line.165"></a> +<span class="sourceLineNo">166</span> }<a name="line.166"></a> +<span class="sourceLineNo">167</span><a name="line.167"></a> +<span class="sourceLineNo">168</span> /**<a name="line.168"></a> +<span class="sourceLineNo">169</span> * Same as {@link #getSerializerMatch(MediaType)} but returns just the matched serializer.<a name="line.169"></a> +<span class="sourceLineNo">170</span> *<a name="line.170"></a> +<span class="sourceLineNo">171</span> * @param mediaType The HTTP media type.<a name="line.171"></a> +<span class="sourceLineNo">172</span> * @return The serializer that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.172"></a> +<span class="sourceLineNo">173</span> */<a name="line.173"></a> +<span class="sourceLineNo">174</span> public Serializer getSerializer(MediaType mediaType) {<a name="line.174"></a> +<span class="sourceLineNo">175</span> if (mediaType == null)<a name="line.175"></a> +<span class="sourceLineNo">176</span> return null;<a name="line.176"></a> +<span class="sourceLineNo">177</span> return getSerializer(mediaType.toString());<a name="line.177"></a> +<span class="sourceLineNo">178</span> }<a name="line.178"></a> +<span class="sourceLineNo">179</span><a name="line.179"></a> +<span class="sourceLineNo">180</span> /**<a name="line.180"></a> +<span class="sourceLineNo">181</span> * Returns the media types that all serializers in this group can handle.<a name="line.181"></a> +<span class="sourceLineNo">182</span> *<a name="line.182"></a> +<span class="sourceLineNo">183</span> * <p><a name="line.183"></a> +<span class="sourceLineNo">184</span> * Entries are ordered in the same order as the serializers in the group.<a name="line.184"></a> +<span class="sourceLineNo">185</span> *<a name="line.185"></a> +<span class="sourceLineNo">186</span> * @return An unmodifiable list of media types.<a name="line.186"></a> +<span class="sourceLineNo">187</span> */<a name="line.187"></a> +<span class="sourceLineNo">188</span> public List<MediaType> getSupportedMediaTypes() {<a name="line.188"></a> +<span class="sourceLineNo">189</span> return mediaTypesList;<a name="line.189"></a> +<span class="sourceLineNo">190</span> }<a name="line.190"></a> +<span class="sourceLineNo">191</span><a name="line.191"></a> +<span class="sourceLineNo">192</span> /**<a name="line.192"></a> +<span class="sourceLineNo">193</span> * Returns a copy of the property store that was used to create the serializers in this group.<a name="line.193"></a> +<span class="sourceLineNo">194</span> *<a name="line.194"></a> +<span class="sourceLineNo">195</span> * <p><a name="line.195"></a> +<span class="sourceLineNo">196</span> * This method returns a new factory each time so is somewhat expensive.<a name="line.196"></a> +<span class="sourceLineNo">197</span> *<a name="line.197"></a> +<span class="sourceLineNo">198</span> * @return A new copy of the property store passed in to the constructor.<a name="line.198"></a> +<span class="sourceLineNo">199</span> */<a name="line.199"></a> +<span class="sourceLineNo">200</span> public PropertyStore createPropertyStore() {<a name="line.200"></a> +<span class="sourceLineNo">201</span> return PropertyStore.create(propertyStore);<a name="line.201"></a> +<span class="sourceLineNo">202</span> }<a name="line.202"></a> +<span class="sourceLineNo">203</span><a name="line.203"></a> +<span class="sourceLineNo">204</span> /**<a name="line.204"></a> +<span class="sourceLineNo">205</span> * Returns a copy of the serializers in this group.<a name="line.205"></a> +<span class="sourceLineNo">206</span> *<a name="line.206"></a> +<span class="sourceLineNo">207</span> * @return An unmodifiable list of serializers in this group.<a name="line.207"></a> +<span class="sourceLineNo">208</span> */<a name="line.208"></a> +<span class="sourceLineNo">209</span> public List<Serializer> getSerializers() {<a name="line.209"></a> +<span class="sourceLineNo">210</span> return serializers;<a name="line.210"></a> +<span class="sourceLineNo">211</span> }<a name="line.211"></a> +<span class="sourceLineNo">212</span><a name="line.212"></a> +<span class="sourceLineNo">213</span> /**<a name="line.213"></a> +<span class="sourceLineNo">214</span> * Returns a bean context with the same properties as this group.<a name="line.214"></a> +<span class="sourceLineNo">215</span> *<a name="line.215"></a> +<span class="sourceLineNo">216</span> * @return The bean context.<a name="line.216"></a> +<span class="sourceLineNo">217</span> */<a name="line.217"></a> +<span class="sourceLineNo">218</span> public BeanContext getBeanContext() {<a name="line.218"></a> +<span class="sourceLineNo">219</span> return beanContext;<a name="line.219"></a> +<span class="sourceLineNo">220</span> }<a name="line.220"></a> +<span class="sourceLineNo">221</span>}<a name="line.221"></a> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/d35b70d1/content/site/apidocs/src-html/org/apache/juneau/utils/Args.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/utils/Args.html b/content/site/apidocs/src-html/org/apache/juneau/utils/Args.html index 3e51164..b2cd065 100644 --- a/content/site/apidocs/src-html/org/apache/juneau/utils/Args.html +++ b/content/site/apidocs/src-html/org/apache/juneau/utils/Args.html @@ -138,7 +138,7 @@ <span class="sourceLineNo">130</span> if (startsWith(s, '-')) {<a name="line.130"></a> <span class="sourceLineNo">131</span> key = s.substring(1);<a name="line.131"></a> <span class="sourceLineNo">132</span> if (key.matches("\\d*"))<a name="line.132"></a> -<span class="sourceLineNo">133</span> throw new RuntimeException("Invalid optional key name '"+key+"'");<a name="line.133"></a> +<span class="sourceLineNo">133</span> throw new FormattedRuntimeException("Invalid optional key name ''{0}''", key);<a name="line.133"></a> <span class="sourceLineNo">134</span> if (! containsKey(key))<a name="line.134"></a> <span class="sourceLineNo">135</span> put(key, new ObjectList());<a name="line.135"></a> <span class="sourceLineNo">136</span> } else {<a name="line.136"></a>
