Repository: incubator-juneau
Updated Branches:
  refs/heads/master e6998a7ea -> 6dccf6039


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
index 234cabf..3845e2c 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
@@ -107,8 +107,8 @@ public class RestConfig implements ServletConfig {
        Object favIcon;
        List<Object> staticFiles;
        RestContext parentContext;
-       String path, htmlTitle, htmlDescription, htmlLinks, htmlHeader, 
htmlNav, htmlAside, htmlFooter, htmlCss, htmlCssUrl,
-               htmlNoResultsMessage;
+       String path, htmlTitle, htmlDescription, htmlBranding, htmlLinks, 
htmlHeader, htmlNav, htmlAside, htmlFooter,
+               htmlCss, htmlCssUrl, htmlNoResultsMessage;
        String clientVersionHeader = "X-Client-Version";
 
        Object resourceResolver = RestResourceResolver.class;
@@ -221,6 +221,8 @@ public class RestConfig implements ServletConfig {
                                        setHtmlTitle(hd.title());
                                if (! hd.description().isEmpty())
                                        setHtmlDescription(hd.description());
+                               if (! hd.branding().isEmpty())
+                                       setHtmlBranding(hd.branding());
                                if (! hd.header().isEmpty())
                                        setHtmlHeader(hd.header());
                                if (! hd.links().isEmpty())
@@ -1132,6 +1134,27 @@ public class RestConfig implements ServletConfig {
        }
 
        /**
+        * Sets the HTML page branding in the header section of the page 
generated by the default HTML doc template.
+        * <p>
+        * The format of this value is HTML.
+        * <p>
+        * This is arbitrary HTML that can be added to the header section to 
provide basic custom branding on the page.
+        * <p>
+        * This field can contain variables (e.g. 
<js>"$L{my.localized.variable}"</js>).
+        * <p>
+        * A value of <js>"NONE"</js> can be used to force no value.
+        * <p>
+        * This is the programmatic equivalent to the {@link HtmlDoc#branding() 
@HtmlDoc.branding()} annotation.
+        *
+        * @param value The HTML page branding.
+        * @return This object (for method chaining).
+        */
+       public RestConfig setHtmlBranding(String value) {
+               this.htmlBranding = value;
+               return this;
+       }
+
+       /**
         * Sets the HTML header section contents.
         * <p>
         * The format of this value is HTML.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java
index 7fc0a94..f14a271 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -304,6 +304,7 @@ public final class RestContext extends Context {
                fullPath,
                htmlTitle,
                htmlDescription,
+               htmlBranding,
                htmlHeader,
                htmlLinks,
                htmlNav,
@@ -417,6 +418,7 @@ public final class RestContext extends Context {
 
                        this.htmlTitle = b.htmlTitle;
                        this.htmlDescription = b.htmlDescription;
+                       this.htmlBranding = b.htmlBranding;
                        this.htmlHeader = b.htmlHeader;
                        this.htmlLinks = b.htmlLinks;
                        this.htmlNav = b.htmlNav;
@@ -600,8 +602,8 @@ public final class RestContext extends Context {
                UrlEncodingSerializer urlEncodingSerializer;
                UrlEncodingParser urlEncodingParser;
                EncoderGroup encoders;
-               String clientVersionHeader = "", defaultCharset, paramFormat, 
htmlTitle, htmlDescription, htmlHeader, htmlLinks,
-                       htmlNav, htmlAside, htmlCss, htmlCssUrl, htmlFooter, 
htmlNoResultsMessage;
+               String clientVersionHeader = "", defaultCharset, paramFormat, 
htmlTitle, htmlDescription, htmlBranding,
+                       htmlHeader, htmlLinks, htmlNav, htmlAside, htmlCss, 
htmlCssUrl, htmlFooter, htmlNoResultsMessage;
                boolean htmlNoWrap;
                HtmlDocTemplate htmlTemplate;
 
@@ -753,6 +755,7 @@ public final class RestContext extends Context {
 
                        htmlTitle = sc.htmlTitle;
                        htmlDescription = sc.htmlDescription;
+                       htmlBranding = sc.htmlBranding;
                        htmlHeader = sc.htmlHeader;
                        htmlLinks = sc.htmlLinks;
                        htmlNav = sc.htmlNav;
@@ -1006,6 +1009,17 @@ public final class RestContext extends Context {
        }
 
        /**
+        * The HTML page branding.
+        * <p>
+        * Defined by the {@link HtmlDoc#branding()} annotation or {@link 
RestConfig#setHtmlBranding(String)} method.
+        *
+        * @return The HTML page description.
+        */
+       public String getHtmlBranding() {
+               return htmlBranding;
+       }
+
+       /**
         * The HTML page header contents.
         * <p>
         * Defined by the {@link HtmlDoc#header()} annotation or {@link 
RestConfig#setHtmlHeader(String)} method.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/RestParamDefaults.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
index d75e613..dafc17e 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
@@ -108,6 +108,8 @@ class RestParamDefaults {
                        RequestPathMatchObject.class,
                        RequestBodyObject.class,
                        ConfigFileObject.class,
+                       UriContextObject.class,
+                       UriResolverObject.class,
                };
 
                for (Class<?> c : r) {
@@ -938,6 +940,30 @@ class RestParamDefaults {
                }
        }
 
+       static final class UriContextObject extends RestParam {
+
+               protected UriContextObject() {
+                       super(OTHER, null, UriContext.class);
+               }
+
+               @Override /* RestParam */
+               public Object resolve(RestRequest req, RestResponse res) throws 
Exception {
+                       return req.getUriContext();
+               }
+       }
+
+       static final class UriResolverObject extends RestParam {
+
+               protected UriResolverObject() {
+                       super(OTHER, null, UriResolver.class);
+               }
+
+               @Override /* RestParam */
+               public Object resolve(RestRequest req, RestResponse res) throws 
Exception {
+                       return req.getUriResolver();
+               }
+       }
+
        private static boolean isCollection(Type t) {
                return 
BeanContext.DEFAULT.getClassMeta(t).isCollectionOrArray();
        }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java
index 74fa22c..58d3d81 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -479,6 +479,15 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
        }
 
        /**
+        * Shortcut for calling {@link #getUriResolver()} using {@link 
UriResolution#ROOT_RELATIVE} and {@link UriRelativity#RESOURCE}
+        *
+        * @return The URI resolver for this request.
+        */
+       public UriResolver getUriResolver() {
+               return new UriResolver(UriResolution.ROOT_RELATIVE, 
UriRelativity.RESOURCE, getUriContext());
+       }
+
+       /**
         * Same as {@link HttpServletRequest#getPathInfo()} except returns the 
path undecoded.
         *
         * @return The undecoded portion of the URL after the resource URL path 
pattern match.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/RestResponse.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestResponse.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/RestResponse.java
index e14771a..94ec328 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestResponse.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -516,6 +516,27 @@ public final class RestResponse extends 
HttpServletResponseWrapper {
        }
 
        /**
+        * Sets the HTML page branding in the header section of the page 
generated by the default HTML doc template.
+        * <p>
+        * The format of this value is HTML.
+        * <p>
+        * This is arbitrary HTML that can be added to the header section to 
provide basic custom branding on the page.
+        * <p>
+        * This field can contain variables (e.g. 
<js>"$L{my.localized.variable}"</js>).
+        * <p>
+        * A value of <js>"NONE"</js> can be used to force no value.
+        * <p>
+        * This is the programmatic equivalent to the {@link HtmlDoc#branding() 
@HtmlDoc.branding()} annotation.
+        *
+        * @param value The HTML page branding.
+        *      Object will be converted to a string using {@link 
Object#toString()}.
+        * @return This object (for method chaining).
+        */
+       public RestResponse setHtmlBranding(Object value) {
+               return setProperty(HtmlDocSerializerContext.HTMLDOC_branding, 
value);
+       }
+
+       /**
         * Sets the HTML header section contents.
         * <p>
         * The format of this value is HTML.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/RestServletDefault.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/RestServletDefault.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/RestServletDefault.java
index 050ad0e..c2c0d29 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestServletDefault.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestServletDefault.java
@@ -183,7 +183,10 @@ import org.apache.juneau.xml.*;
                @Property(name=REST_allowMethodParam, value="OPTIONS"),
        },
        stylesheet="styles/juneau.css",
-       favicon="juneau.png",
+       htmldoc=@HtmlDoc(
+               branding="<img src='$U{servlet:/htdocs/juneau.png}' 
style='position:absolute;top:5;right:5;background-color:transparent;height:30px'>"
+       ),
+       favicon="htdocs/juneau.png",
        staticFiles="{htdocs:'htdocs'}"
 )
 public abstract class RestServletDefault extends RestServlet {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
index 80ddf10..ed84224 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
@@ -72,7 +72,7 @@ import org.apache.juneau.rest.*;
 public @interface HtmlDoc {
 
        /**
-        * Sets the HTML page title.
+        * Sets the HTML page title in the header section of the page generated 
by the default HTML doc template.
         * <p>
         * The format of this value is plain text.
         * <p>
@@ -105,7 +105,7 @@ public @interface HtmlDoc {
        String title() default "";
 
        /**
-        * Sets the HTML page description.
+        * Sets the HTML page subtitle in the header section of the page 
generated by the default HTML doc template.
         * <p>
         * The format of this value is plain text.
         * <p>
@@ -140,6 +140,21 @@ public @interface HtmlDoc {
        String description() default "";
 
        /**
+        * Sets the HTML page branding in the header section of the page 
generated by the default HTML doc template.
+        * <p>
+        * The format of this value is HTML.
+        * <p>
+        * This is arbitrary HTML that can be added to the header section to 
provide basic custom branding on the page.
+        * <p>
+        * This field can contain variables (e.g. 
<js>"$L{my.localized.variable}"</js>).
+        * <p>
+        * A value of <js>"NONE"</js> can be used to force no value.
+        * <p>
+        * The programmatic equivalent to this annotation are the {@link 
RestConfig#setHtmlBranding(String)}/{@link 
RestResponse#setHtmlBranding(Object)} methods.
+        */
+       String branding() default "";
+
+       /**
         * Sets the HTML header section contents.
         * <p>
         * The format of this value is HTML.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/vars/UrlVar.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/vars/UrlVar.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/vars/UrlVar.java
index 8e0ddc8..065978b 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/vars/UrlVar.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/vars/UrlVar.java
@@ -54,6 +54,6 @@ public class UrlVar extends SimpleVar {
        @Override /* Parameter */
        public String resolve(VarResolverSession session, String key) {
                RestRequest req = session.getSessionObject(RestRequest.class, 
SESSION_req);
-               return req.getUriResolver(UriResolution.ROOT_RELATIVE, 
UriRelativity.RESOURCE).resolve(key);
+               return req.getUriResolver().resolve(key);
        }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeLinksWidget.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeLinksWidget.java
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeLinksWidget.java
index 23aabb5..67dee3f 100644
--- 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeLinksWidget.java
+++ 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeLinksWidget.java
@@ -36,7 +36,7 @@ public class ContentTypeLinksWidget extends Widget {
 
        @Override /* Widget */
        public String resolve(RestRequest req) throws Exception {
-               UriResolver uriResolver = 
req.getUriResolver(UriResolution.ROOT_RELATIVE, UriRelativity.RESOURCE);
+               UriResolver uriResolver = req.getUriResolver();
                P p = p();
                List<MediaType> l = new 
ArrayList<MediaType>(req.getSerializerGroup().getSupportedMediaTypes());
                Collections.sort(l);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByApacheWidget.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByApacheWidget.java
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByApacheWidget.java
new file mode 100644
index 0000000..205dae3
--- /dev/null
+++ 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByApacheWidget.java
@@ -0,0 +1,35 @@
+// 
***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
+// * to you 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 org.apache.juneau.rest.widget;
+
+import org.apache.juneau.rest.*;
+
+/**
+ * Widget that places a powered-by-Apache message on the page.
+ * <p>
+ * The variable it resolves is <js>"$W{poweredByApache}"</js>.
+ */
+public class PoweredByApacheWidget extends Widget {
+
+       @Override /* Widget */
+       public String getName() {
+               return "poweredByApache";
+       }
+
+       @Override /* Widget */
+       public String resolve(RestRequest req) throws Exception {
+               return "<a href='http://apache.org'><img 
style='float:right;padding-right:20px;height:32px' 
src='"+req.getUriResolver().resolve("servlet:/htdocs/asf.png")+"'>";
+       }
+}
+
+

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneauWidget.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneauWidget.java
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneauWidget.java
index 4878f26..4ae2898 100644
--- 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneauWidget.java
+++ 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneauWidget.java
@@ -28,7 +28,7 @@ public class PoweredByJuneauWidget extends Widget {
 
        @Override /* Widget */
        public String resolve(RestRequest req) throws Exception {
-               return "<a href='http://juneau.apache.org'><img 
style='float:right;padding-right:20px;' 
src='data:image/png;base64,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'></a>";
+               return "<a href='http://apache.org'><img 
style='float:right;padding-right:20px;height:32px' 
src='"+req.getUriResolver().resolve("servlet:/htdocs/juneau.png")+"'>";
        }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/resources/org/apache/juneau/rest/htdocs/asf.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/htdocs/asf.png 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/htdocs/asf.png
new file mode 100644
index 0000000..ce28113
Binary files /dev/null and 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/htdocs/asf.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/6dccf603/juneau-rest/src/main/resources/org/apache/juneau/rest/htdocs/juneau.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/htdocs/juneau.png 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/htdocs/juneau.png
new file mode 100644
index 0000000..42a1656
Binary files /dev/null and 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/htdocs/juneau.png differ

Reply via email to