--- /dev/null
+/*
+Copyright 2015 The Apache Software Foundation.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+/*
+ Created on : 13 nov. 2015, 13:47:57
+ Author : barboni
+*/
+/**
+ * html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
+ * v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark
+ * html5doctor.com/html-5-reset-stylesheet/
+ */
+
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
+small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+
+blockquote, q { quotes: none; }
+
+blockquote:before, blockquote:after,
+q:before, q:after { content: ""; content: none; }
+
+ins { background-color: #ff9; color: #000; text-decoration: none; }
+
+mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
+
+del { text-decoration: line-through; }
+
+abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
+
+table { border-collapse: collapse; border-spacing: 0; }
+
+hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
+
+input, select { vertical-align: middle; }
+
+
+/**
+ * Font normalization inspired by YUI Library's fonts.css: developer.yahoo.com/yui/
+ */
+
+body { font:13px/1.231 sans-serif; *font-size:small; } /* Hack retained to preserve specificity */
+select, input, textarea, button { font:99% sans-serif; }
+
+/* Normalize monospace sizing:
+ en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome */
+pre, code, kbd, samp { font-family: monospace, sans-serif; }
+
+
+/**
+ * Minimal base styles.
+ */
+
+/* Always force a scrollbar in non-IE */
+html { overflow-y: scroll; }
+
+/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */
+a:hover, a:active { outline: none; }
+
+ul, ol { margin-left: 2em; }
+ol { list-style-type: decimal; }
+
+/* Remove margins for navigation lists */
+nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
+
+small { font-size: 85%; }
+strong, th { font-weight: bold; }
+
+td { vertical-align: top; }
+
+/* Set sub, sup without affecting line-height: gist.github.com/413930 */
+sub, sup { font-size: 75%; line-height: 0; position: relative; }
+sup { top: -0.5em; }
+sub { bottom: -0.25em; }
+
+pre {
+ /* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */
+ padding: 15px;
+}
+
+textarea { overflow: auto; } /* www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/ */
+
+.ie6 legend, .ie7 legend { margin-left: -7px; }
+
+/* Align checkboxes, radios, text inputs with their label by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css */
+input[type="radio"] { vertical-align: text-bottom; }
+input[type="checkbox"] { vertical-align: bottom; }
+.ie7 input[type="checkbox"] { vertical-align: baseline; }
+.ie6 input { vertical-align: text-bottom; }
+
+/* Hand cursor on clickable input elements */
+label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
+
+/* Webkit browsers add a 2px margin outside the chrome of form elements */
+button, input, select, textarea { margin: 0; }
+
+/* Colors for form validity */
+input:valid, textarea:valid { }
+input:invalid, textarea:invalid {
+ border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red;
+}
+.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
+
+
+/* These selection declarations have to be separate
+ No text-shadow: twitter.com/miketaylr/status/12228805301
+ Also: hot pink! */
+::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; }
+::selection { background:#FF5E99; color:#fff; text-shadow: none; }
+
+/* j.mp/webkit-tap-highlight-color */
+a:link { -webkit-tap-highlight-color: #FF5E99; }
+
+/* Make buttons play nice in IE:
+ www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */
+button { width: auto; overflow: visible; }
+
+/* Bicubic resizing for non-native sized IMG:
+ code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
+.ie7 img { -ms-interpolation-mode: bicubic; }
+
+/**
+ * You might tweak these..
+ */
+
+body, select, input, textarea {
+ /* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */
+ color: #444;
+ /* Set your base font here, to apply evenly */
+ /* font-family: Georgia, serif; */
+}
+
+/* Headers (h1, h2, etc) have no default font-size or margin; define those yourself */
+h1, h2, h3, h4, h5, h6 { font-weight: bold; }
+
+a, a:active, a:visited { color: #607890; }
+a:hover { color: #036; }
+
+
+/**
+ * Primary styles
+ *
+ * Author:
+ */
+
+
+body{text-align:center;margin:0}
+.container{text-align:left;position:relative;padding:0;margin:0 auto;width:800px}
+.column{float:left;margin:0 5px 0 0;padding:0}
+* html .column{overflow-x:hidden}
+.border{padding-right:2px;margin-right:2px;border-right:1px solid #ddd}
+.span-1{width:35px}
+.span-2{width:75px}
+.span-3{width:115px}
+.span-4{width:155px}
+.span-5{width:195px}
+.span-6{width:235px}
+.span-7{width:275px}
+.span-8{width:315px}
+.span-9{width:355px}
+.span-10{width:395px}
+.span-11{width:435px}
+.span-12{width:475px}
+.span-13{width:515px}
+.span-14{width:555px}
+.span-15{width:595px}
+.span-16{width:635px}
+.span-17{width:675px}
+.span-18{width:715px}
+.span-19{width:755px}
+.span-20{width:795px}
+.span-21{width:835px}
+.span-22{width:875px}
+.span-23{width:915px}
+.span-24{width:955px;margin:0}
+.last{margin-right:0}
+.append-1{padding-right:40px}
+.append-2{padding-right:80px}
+.append-3{padding-right:120px}
+.append-4{padding-right:160px}
+.append-5{padding-right:200px}
+.prepend-1{padding-left:40px}
+.prepend-2{padding-left:80px}
+.prepend-3{padding-left:120px}
+.prepend-4{padding-left:160px}
+.prepend-5{padding-left:200px}
+.clear{display:inline-block}
+.clear:after,.container:after{content:".";display:block;height:0;clear:both;visibility:hidden}
+* html .clear{height:1%}
+.clear{display:block}
+h1,h2,h3,h4,h5,h6, p,ul,ol,dl,pre,form{padding-left:5px;padding-right:5px}
+table{margin-left:5px;margin-right:5px}
+img{margin:0 0 18px 0}
+.pull-1{margin-left:-70px}
+.pull-2{margin-left:-140px}
+.pull-3{margin-left:-210px}
+.push-0{margin:0 0 0 18px;float:right}
+.push-1{margin:0 -70px 0 18px;float:right}
+.push-2{margin:0 -140px 0 18px;float:right}
+.push-3{margin:0 -210px 0 18px;float:right}
+.deprecated{text-decoration: line-through}
+
+/* @end */
+
+/* @group typography.css */
+
+body {
+ font-size: 12px;
+ line-height: 18px; /* Do a complete find/replace on "18px" to change this */
+}
+
+
+/* Default fonts */
+h1,h2,h3,
+h4,h5,h6 { font-family: "Helvetica Neue", Helvetica, sans-serif; }
+body { font-family: "Lucida Grande", Calibri, Arial, sans-serif; }
+pre { font-family: Monaco, "Courier New", monospace; }
+code { font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Monaco, Courier, monospace; }
+
+
+/* Headings
+-------------------------------------------------------------- */
+
+h1,h2,h3,h4,h5,h6 {
+ color:#111;
+ clear:both;
+}
+
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: #111;
+ text-decoration: none;
+}
+
+h1 { font-size: 30px; line-height:36px; padding:10px 0 18px 0; }
+h2 { font-size: 20px; line-height:36px; }
+h3 { font-size: 12px; line-height:24px; }
+h4 { font-size: 12px; font-weight:bold; }
+h5 { font-size: 12px; font-weight:bold; }
+h6 { font-size: 12px; }
+
+
+/* Text elements
+-------------------------------------------------------------- */
+
+p { margin: 0 0 18px 0; text-align:justify; }
+p.last { margin-bottom:0; }
+p img { float: left; margin:18px 18px 18px 0; padding:0; }
+p img.top { margin-top:0; } /* Use this if the image is at the top of the <p>. */
+
+ul, ol { margin: 0 0 18px 0; }
+ul { list-style-type:circle; }
+ol { list-style-type: decimal; }
+dl { margin: 0 0 18px 0; }
+dl dt { font-weight: bold; }
+
+a { color: #A68000; text-decoration: underline; outline: none; }
+a:hover { color: #000; }
+
+blockquote { margin: 0 0 18px 18px; color: #666; font-style: italic; }
+strong { font-weight: bold; }
+em { font-style: italic; }
+pre { margin-bottom: 18px; background: #eee; border:1px solid #ddd; padding:16px; }
+code {
+ background: #eee;
+ border: 1px solid #ddd;
+ color: #555;
+ display: block;
+ font: normal 1.1em "Lucida Sans Unicode",serif;
+ margin-bottom: 12px;
+ padding: 8px 10px;
+ white-space: pre;
+ overflow: auto;
+ max-height: 300px;
+}
+
+/* Use this to create a horizontal ruler across a column. */
+hr {
+ background: #FFDF73;
+ color: #FFDF73;
+ clear: both;
+ float: none;
+ width: 100%;
+ height: 2px;
+ margin: 0 0 16px 0;
+ border: none;
+}
+
+
+/* Tables
+-------------------------------------------------------------- */
+
+table { margin-bottom: 16px; border-top:1px solid #ddd; border-left:1px solid #ddd; }
+th,td { height: 13px; padding:2px 4px; border-bottom:1px solid #ddd; border-right:1px solid #ddd; }
+th { font-weight:bold; }
+
+
+/* Some default classes
+-------------------------------------------------------------- */
+
+p.small { font-size: 10px; margin-bottom: 18px; }
+p.large { font-size: 14px; line-height:36px; }
+p.quiet { color: #666; }
+.hide { display: none; }
+
+
+.caps {
+ font-variant: small-caps;
+ letter-spacing: 1px;
+ text-transform: lowercase;
+}
+
+/* @end */
+
+/* @group styles */
+
+/* @group Header */
+
+#header {
+ padding-top: 1.8em;
+ margin-bottom: 1.8em;
+}
+#site-name {
+ line-height: 36px;
+}
+#site-name a {
+ font-variant: small-caps;
+ font-size: 3em;
+ letter-spacing: 3px;
+ text-decoration: none;
+ color: #444;
+}
+#site-name a:visited {
+ color: #444;
+ text-decoration: none;
+}
+#site-name a strong {
+ color: black;
+}
+#site-description {
+ padding-top: 1.4em;
+ padding-bottom: 1.4em;
+}
+#site-description h3 {
+ font-size: 2em;
+ margin: 0;
+ font-weight: normal;
+}
+#site-description p#read-more {
+ text-align: right;
+ margin: 6px 0 0;
+}
+#site-description p#read-more a, #site-description p#read-more a:visited {
+ font-size: 1.4em;
+ color: #515151;
+}
+#site-description p#read-more a:hover {
+ color: #919191;
+}
+#site-description {
+ background-color: #4188D2;
+ border-top: 2px solid #fff;
+ color: #444;
+}
+/* @end */
+
+/* @group Navigation */
+
+ul.navigation, ul.navigation li {
+ list-style: none;
+}
+ul.navigation li {
+ display: inline;
+ margin-right: 1.3em;
+}
+
+#primary {
+ line-height: 72px;
+ margin-bottom: -24px;
+ text-align: right;
+}
+#primary li {
+ padding-bottom: 5px;
+}
+#primary a {
+ color: #444;
+ text-decoration: none;
+ font-size: 1.2em;
+}
+#primary li:hover {
+ border-bottom: 6px solid #FFDF73;
+}
+#secondary {
+ padding-top: 7px;
+ background-color: #FFDF73;
+}
+#secondary ul {
+ list-style: none;
+ margin-bottom: 7px;
+}
+#secondary ul li {
+ display: inline;
+ list-style: none;
+ margin-right: 0;
+}
+#secondary ul li a {
+ color: #515151;
+ text-decoration: none;
+ padding: 8px 24px 8px 24px;
+ margin-left: -4px;
+}
+#secondary ul li a.selected {
+ background-color: #515151;
+ color: #fff;
+}
+#secondary ul a:hover {
+ background: #fff4d0;
+}
+/*
+ xBreadcrumbs (Extended Breadcrumbs) jQuery Plugin
+ � 2009 ajaxBlender.com
+ For any questions please visit www.ajaxblender.com
+ or email us at support@ajaxblender.com
+*/
+.xbreadcrumbs {
+ position: relative;
+ z-index: 1000;
+}
+.xbreadcrumbs LI UL {
+ position: absolute;
+ float: left;
+}
+.xbreadcrumbs, .xbreadcrumbs LI, .xbreadcrumbs UL, .xbreadcrumbs UL LI {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+.xbreadcrumbs { clear: both; }
+.xbreadcrumbs, .xbreadcrumbs LI {
+ float: left;
+}
+.xbreadcrumbs UL {
+ display: none;
+}
+
+/* Base style of xBreadcrumbs */
+/* Top Level */
+.xbreadcrumbs {
+ background: #FFDF73;
+ width: 100%;
+}
+.xbreadcrumbs LI {
+ border-right: none;
+ padding: 5px 15px 5px 10px;
+ height: 16px;
+}
+.xbreadcrumbs LI.current {
+ background: none;
+}
+.xbreadcrumbs LI UL LI {
+ background: none;
+}
+.xbreadcrumbs LI A {
+ font-size: 11px;
+ color: #515151;
+ text-decoration: none;
+ padding-right: 2em;
+}
+.xbreadcrumbs LI A.home {
+ background: url( home.gif ) no-repeat left center;
+ padding-left: 20px;
+}
+.xbreadcrumbs LI A:HOVER, .xbreadcrumbs LI.hover A {
+ color: #000;
+}
+/* Top Level - Current Page */
+.xbreadcrumbs LI.current A {
+ color: #333333;
+ font-weight: bold;
+}
+/* Sub-level */
+.xbreadcrumbs LI UL {
+ padding: 3px;
+ background: #fff4d0;
+ font-size: 11px;
+ min-width: 180px;
+ max-height: 500px;
+ overflow: auto;
+ top: 25px;
+}
+.xbreadcrumbs LI UL LI {
+ float: left;
+ width: 100%;
+ border-right: none;
+ height: auto;
+}
+.xbreadcrumbs LI UL LI A {
+ text-decoration: none;
+ color: #666666 !important;
+ display: block;
+ padding: 4px;
+ border-bottom: 1px dotted #666666;
+}
+.xbreadcrumbs LI UL LI:last-child A {
+ border-bottom: none;
+}
+.xbreadcrumbs LI UL LI A:HOVER {
+ background: #fffbee;
+}
+body.advisories #nav-advisories,body.community #nav-community,body.blog #nav-blog,body.code #nav-code,body.about #nav-about,body.documentation #nav-documentation{border-bottom: 6px solid #FFDF73;}
+/* @end */
+
+/* @group Main */
+
+#main {
+ font-size: 1.2em;
+ line-height: 1.5em;
+ color: #1E250D;
+}
+#main h2 {
+ font-size: 1.8em;
+ font-weight: normal;
+ border-bottom: 3px solid #c2b2d4;
+ padding-top: 10px;
+ padding-left: 0;
+ padding-right: 0;
+ margin-bottom: 6px;
+}
+#main h3 {
+ font-size: 1.4em;
+ font-weight: normal;
+ border-bottom: 4px solid #f7f7f7;
+ padding: 0 0 5px;
+ margin-bottom: 0.4em;
+}
+#main h3 .caps {
+ font-size: 1.3em;
+}
+#main .hfeed .hentry {
+ list-style: none;
+ list-style-type: none;
+ margin-bottom: 2em;
+ border-bottom: 4px solid #eee;
+ padding-bottom: 1em;
+ clear: both;
+}
+#main .hfeed .hentry:last-child {
+ border-bottom: none;
+}#main .hfeed .hentry .entry-title {
+ border-bottom: none;
+}
+#main hr {
+ color: #FFDF73;
+ background-color: #FFDF73;
+ border-color: #FFDF73;
+}
+#main p {
+ text-align: left;
+ padding-left: 0;
+ padding-right: 0;
+}
+#main img {
+ max-width: 740px;
+}
+#main ol {
+ margin-left: 1.5em;
+}
+#main ul {
+ margin-left: 1.2em;
+ list-style: disc;
+}
+#main .intro {
+ font-size: 1.2em;
+ color: #515151;
+ border-bottom: 3px solid #f8fbfd;
+}
+#main .get-started a {
+ text-align: center;
+ background-color: #8942D6;
+ color: #fff;
+ display: block;
+ border-radius: 12px;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ padding: 8px 6px;
+ width: 10em;
+ font-size: 1.4em;
+ margin-left: auto;
+ margin-right: auto;
+ text-decoration: none;
+}
+#main .get-started a:hover {
+ background-color: #9D69D6;
+}
+#main pre {
+ max-height: 600px;
+ overflow: auto;
+}
+
+/* @end */
+/* @group Footer */
+
+#footer {
+ color: #666;
+ font-size: 11px;
+ border-top: 4px double #e7e7e7;
+ margin-top: 2em;
+ padding-top: 1.2em;
+ text-align: center;
+}
+/*#footer a {
+ color: #787878;
+ text-decoration: none;
+ border-bottom: 1px dotted #787878;
+}
+#footer a:hover {
+ border-bottom: 1px solid #787878;
+}*/
+
+/* @end */
+
+.update, .note, .notice, .alert {
+margin: 10px 0 20px;
+padding: 5px 20px 5px 20px;
+clear: both;
+}
+.note {
+ background: #e6ecf2;
+ border-top: 2px solid #8996ad;
+ border-bottom: 2px solid #8996ad;
+}
+.update, .notice {
+ background: #92ED6B;
+ border-top: 2px solid #2B8E00;
+ border-bottom: 2px solid #2B8E00;
+}
+.alert {
+ background: #ffbfbf;
+ border-top: 2px solid #f33;
+ border-bottom: 2px solid #f33;
+}
+.alert a {
+ color:#f00;
+}
+.alert a:visited {
+ color: #f33;
+}
+
+/* JavaDoc-Specific Styles */
+.TableHeadingColor { text-align: left; border-width: 0 }
+.TableSubHeadingColor { text-align: left; border-width: 0 }
+.TableRowColor { text-align: left; border-width: 0 }
+.NavBarCell1 { text-align: left; border-width: 0 }
+.NavBarCell1Rev { text-align: left; border-width: 0 }
+.FrameItemFont { text-align: left; }
+
+/* @end */
+
+
+
+/**
+ * Non-semantic helper classes: please define your styles before this section.
+ */
+
+/* For image replacement */
+.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
+
+/* Hide for both screenreaders and browsers:
+ css-discuss.incutio.com/wiki/Screenreader_Visibility */
+.hidden { display: none; visibility: hidden; }
+
+/* Hide only visually, but have it available for screenreaders: by Jon Neal.
+ www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden */
+.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
+/* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: drupal.org/node/897638 */
+.visuallyhidden.focusable:active,
+.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
+
+/* Hide visually and from screenreaders, but maintain layout */
+.invisible { visibility: hidden; }
+
+/* The Magnificent Clearfix: Updated to prevent margin-collapsing on child elements.
+ j.mp/bestclearfix */
+.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
+.clearfix:after { clear: both; }
+/* Fix clearfix: blueprintcss.lighthouseapp.com/projects/15318/tickets/5-extra-margin-padding-bottom-of-page */
+.clearfix { zoom: 1; }
+
+
+
+/**
+ * Media queries for responsive design.
+ *
+ * These follow after primary styles so they will successfully override.
+ */
+
+@media all and (orientation:portrait) {
+ /* Style adjustments for portrait mode goes here */
+
+}
+
+@media all and (orientation:landscape) {
+ /* Style adjustments for landscape mode goes here */
+
+}
+
+/* Grade-A Mobile Browsers (Opera Mobile, Mobile Safari, Android Chrome)
+ consider this: www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ */
+@media screen and (max-device-width: 480px) {
+
+
+ /* Uncomment if you don't want iOS and WinMobile to mobile-optimize the text for you: j.mp/textsizeadjust */
+ /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
+}
+
+
+/**
+ * Print styles.
+ *
+ * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
+ */
+@media print {
+ * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
+ -ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */
+ a, a:visited { color: #444 !important; text-decoration: underline; }
+ a[href]:after { content: " (" attr(href) ")"; }
+ abbr[title]:after { content: " (" attr(title) ")"; }
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */
+ pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
+ thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
+ tr, img { page-break-inside: avoid; }
+ @page { margin: 0.5cm; }
+ p, h2, h3 { orphans: 3; widows: 3; }
+ h2, h3{ page-break-after: avoid; }
+}
+
--- /dev/null
+[#ftl]
+<#--
+Copyright 2015 The Apache Software Foundation.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+[#-- @ftlvariable name="resourceApis" type="java.util.List<com.webcohesion.enunciate.api.resources.ResourceApi>" --]
+[#-- @ftlvariable name="serviceApis" type="java.util.List<com.webcohesion.enunciate.api.services.ServiceApi>" --]
+[#-- @ftlvariable name="data" type="java.util.List<com.webcohesion.enunciate.api.datatype.Syntax>" --]
+[#-- @ftlvariable name="downloads" type="java.util.List<com.webcohesion.enunciate.api.Download>" --]
+[#-- @ftlvariable name="title" type="java.lang.String" --]
+[#-- @ftlvariable name="indexPageName" type="java.lang.String" --]
+[#-- @ftlvariable name="disableMountpoint" type="java.lang.Boolean" --]
+[#-- @ftlvariable name="apiRelativePath" type="java.lang.String" --]
+[#-- @ftlvariable name="cssFile" type="java.lang.String" --]
+[#-- @ftlvariable name="additionalCssFiles" type="java.util.List<java.lang.String>" --]
+[#-- @ftlvariable name="copyright" type="java.lang.String" --]
+[#-- @ftlvariable name="apiDoc" type="java.lang.String" --]
+[#-- @ftlvariable name="swaggerUI" type="com.webcohesion.enunciate.api.InterfaceDescriptionFile" --]
+[#--set up the subnavigation menus--]
+[#assign nav_sections = { } /]
+[#if resourceApis?size > 0]
+ [#assign nav_sections = nav_sections + { "Resources" : "resources.html" }/]
+[/#if]
+[#if serviceApis?size > 0]
+ [#assign nav_sections = nav_sections + { "Services" : "services.html" }/]
+[/#if]
+[#if data?size > 0]
+ [#list data as syntax]
+ [#assign nav_sections = { syntax.label : syntax.slug + ".html" } /]
+ [/#list]
+[/#if]
+[#if downloads?size > 0]
+ [#assign nav_sections = nav_sections + { "Files and Libraries" : "downloads.html"} /]
+[/#if]
+[#--Basic boilerplate macro.--]
+[#macro boilerplate title=title breadcrumbs=[{"title" : "Home", "href" : indexPageName}] pagenav=[] codeblocks=true]
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
+
+ <title>${title}</title>
+
+ <!-- Mobile viewport optimized: j.mp/bplateviewport -->
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <!-- Bootstrap core CSS -->
+ <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> -->
+
+ [#if cssFile??]
+ <!--custom css for these pages-->
+ <link rel="stylesheet" href="${cssFile}">
+ [/#if]
+ [#list additionalCssFiles as additionalCssFile]
+ <link rel="stylesheet" href="${additionalCssFile}">
+ [/#list]
+
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.css" type="text/css">
+
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+ <![endif]-->
+</head>
+
+<body class="home">
+ <div class="container">
+ <header>
+
+ <div id="header" class="column first last span-20">
+ <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="${indexPageName}">${title}</a></div>
+ <div id="primary" class="column span-18 append-1 prepend-1 first last">
+ <ul class="navigation">
+ <li id="nav-rest"><a href="resources.html">REST</a></li>
+ <li id="nav-data"><a href="data.html">Data Model</a></li>
+ </ul>
+ </div>
+ <div>
+ <ul class="xbreadcrumbs" id="breadcrumbs">
+[#list breadcrumbs as crumb]
+<li[#if !crumb_has_next] class="current"[/#if]>
+ <a href="${crumb.href}"[#if crumb_index = 0] class="home"[/#if]>${crumb.title}</a>[#if crumb_has_next] >[/#if]
+
+ </li>
+ [/#list]
+ </ul>
+ </div>
+ </div>
+ <!--<nav class="navbar navbar-inverse navbar-fixed-top">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="${indexPageName}">${title}</a>
+ </div>
+ <div id="navbar" class="navbar-collapse collapse">
+ <ul class="nav navbar-nav navbar-right">
+ [#if serviceApis?size > 0]
+ <li><a href="services.html">Services</a></li>
+ [/#if]
+ [#if resourceApis?size > 0]
+ <li><a href="resources.html">Resources</a></li>
+ [/#if]
+ [#if data?size > 0]
+ <li><a href="data.html">Data Types</a></li>
+ [/#if]
+ [#if downloads?size > 0]
+ <li><a href="downloads.html">Files and Libraries</a></li>
+ [/#if]
+ </ul>
+ </div>
+ </div>
+ </nav>-->
+ </header>
+ <div id="main" class="column first last span-20">
+
+ [#nested/]
+
+ <footer>
+ <div class="footer">
+ [#if copyright??]Copyright © <script type="text/javascript" language="javascript">d = new Date;document.write(d.getFullYear());</script> <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">${copyright}</span>. [/#if]Generated by <a href="http://enunciate.webcohesion.com">Enunciate</a>.
+ </div>
+ </footer>
+
+ </div>
+
+ </div>
+
+
+ <!-- JavaScript placed at the end of the document so the pages load faster. -->
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+
+
+ <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.js" type="text/javascript"></script>
+
+
+</body>
+</html>
+[/#macro]
+[#--Macro that wraps its text in a deprecated <s> tag if the element is deprecated.--]
+[#macro deprecation element]
+ [#assign deprecated=(element?? && element.deprecated??)/]
+ [#if deprecated]<s>[/#if][#nested/][#if deprecated]</s>[/#if]
+[/#macro]
+[@file name=indexPageName]
+ [#assign pagenav=[]/]
+ [#if resourceApis?size > 0]
+ [#assign pagenav=pagenav + [{ "href" : "#resources", "title" : "Resources" }]/]
+ [/#if]
+ [#if serviceApis?size > 0]
+ [#assign pagenav=pagenav + [{ "href" : "#services", "title" : "Services" }]/]
+ [/#if]
+ [#list data as syntax]
+ [#assign pagenav=pagenav + [{ "href" : "#" + syntax.slug, "title" : syntax.label }]/]
+ [/#list]
+ [@boilerplate pagenav=pagenav]
+ [#if apiDoc??]
+ <div class="jumbotron">
+ <div class="container">
+ ${apiDoc}
+ </div>
+ </div>
+ [/#if]
+ [#if resourceApis?size > 0]
+
+ <h1 class="page-header" id="resources">Resources</h1>
+ [#list resourceApis as resourceApi]
+ [#if downloads?size > 0]
+
+ <p>
+ The resources use a data model that is supported by a set of client-side libraries that are made available on the
+ <a href="downloads.html">files and libraries</a> page.
+ </p>
+ [/#if]
+ [#if resourceApi.wadlFile??]
+
+ <p>
+ There is a <a href="${resourceApi.wadlFile.href}">WADL document</a> available that describes the resources API.
+ </p>
+ [/#if]
+ [#if swaggerUI??]
+
+ <p>
+ You may also enjoy the <a href="${swaggerUI.href}">Swagger UI</a> provided for this API.
+ </p>
+ [/#if]
+ <ul>
+ [#list resourceApi.resourceGroups as resourceGroup]
+ [@processResourceGroup resourceGroup=resourceGroup/]
+<li><a href="${resourceGroup.slug}.html">${resourceGroup.label}</a></li>
+
+ [/#list]
+ </ul>
+
+ [/#list]
+ [/#if]
+ [#if serviceApis?size > 0]
+
+ <h1 class="page-header" id="services">Services</h1>
+ [#list serviceApis as serviceApi]
+ [#list serviceApi.serviceGroups as serviceGroup]
+
+ <table class="table table-hover">
+ <caption>Namespace <code>${serviceGroup.namespace!"(Default)"}</code>[#if serviceGroup.wsdlFile??] (<a href="${serviceGroup.wsdlFile.href}">wsdl</a>)[/#if]</caption>
+ <thead>
+ <tr>
+ <th align="center">name</th>
+ <th align="center">description</th>
+ </tr>
+ </thead>
+ <tbody data-link="row" class="rowlink">
+ [#list serviceGroup.services as service]
+ [@processService service=service/]
+ <tr class="clickable-row" data-href="${service.slug}.html">
+ <td>[@deprecation element=service]${service.label}[/@deprecation]</td>
+ <td>[@deprecation element=service]${service.description!" "}[/@deprecation]</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#list]
+ [/#list]
+ [#if downloads?size > 0]
+
+ <p>The services API is also accessible by a set of client-side libraries that can be downloaded from the <a href="downloads.html">files and libraries page</a>.</p>
+ [/#if]
+ [/#if]
+ [#if data?size > 0]
+
+ <h1 class="page-header" id="data">Data Types</h1>
+ [#list data as syntax]
+ [@processDataSyntax syntax=syntax/]
+
+ <h3 id="${syntax.slug}">${syntax.label}</h3>
+ [#list syntax.namespaces as ns]
+ [#if ns.types?size > 0]
+
+
+ [#if ns.uri?? && ns.uri?length > 0]
+ <p>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p>
+ [#else]
+ <p>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p>
+ [/#if]
+ <ul>
+ [#list ns.types?sort_by("label") as type]
+ <li><a href="${type.slug}.html">${type.label}</a></li>
+
+ [/#list]
+ </ul>
+
+ [/#if]
+ [/#list]
+ [/#list]
+ [/#if]
+ [/@boilerplate]
+[/@file]
+[@file name="data.html"]
+ [#assign pagenav=[]/]
+ [#list data as syntax]
+ [#assign pagenav=pagenav + [{ "href" : "#" + syntax.slug, "title" : syntax.label }]/]
+ [/#list]
+ [@boilerplate title=title + ": Data Types" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Types" , "href" : "data.html"}] pagenav=pagenav]
+ <h1 class="page-header" id="data">Data Types</h1>
+ [#list data as syntax]
+
+ <h3 id="${syntax.slug}">${syntax.label}</h3>
+ [#list syntax.namespaces as ns]
+ [#if ns.types?size > 0]
+
+
+ [#if ns.uri?? && ns.uri?length > 0]
+ <p>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p>
+ [#else]
+ <p>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p>
+ [/#if]
+
+ <ul>
+ [#list ns.types as type]
+ <li><a href="${type.slug}.html">${type.label}</a></li>
+
+ [/#list]
+ </ul>
+
+ [/#if]
+ [/#list]
+ [/#list]
+ [/@boilerplate]
+[/@file]
+[#if downloads?size > 0]
+ [@file name="downloads.html"]
+ [#assign pagenav=[]/]
+ [#list downloads as download]
+ [#assign pagenav=pagenav + [{ "href" : "#" + download.slug, "title" : download.name }]/]
+ [/#list]
+ [@boilerplate title=title + ": Files and Libraries" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, { "title" : "Files and Libraries" , "href" : "downloads.html"}] codeblocks=true pagenav=pagenav]
+ <h1 class="page-header">Files and Libraries</h1>
+
+ [#list downloads as download]
+ <h3 id="${download.slug}">${download.name}</h3>
+ [#if download.created??]
+ <p class="lead">Created ${download.created?date?string.long}</p>
+ [/#if]
+ [#if download.description??]
+ <p>${download.description}</p>
+ [/#if]
+ <table class="table table-hover">
+ <caption>Files</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>size</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody data-link="row" class="rowlink">
+ [#list download.files as file]
+ <tr class="clickable-row" data-href="${file.name}">
+ <td>${file.name}</td>
+ <td>${file.size}</td>
+ <td>${file.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#if resourceApis?size > 0]
+ [@file name="resources.html"]
+ [@boilerplate title=title + ": Resources" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Resources" , "href" : "resources.html"}]]
+ <h1 class="page-header" id="resources">Resources</h1>
+
+ [#list resourceApis as resourceApi]
+ [#if downloads?size > 0]
+ <p>
+ The resources use a data model that is supported by a set of client-side libraries that are made available on the
+ <a href="downloads.html">files and libraries</a> page.
+ </p>
+ [/#if]
+ [#if resourceApi.wadlFile??]
+ <p>
+ There is a <a href="${resourceApi.wadlFile.href}">WADL document</a> available that describes the resources API.
+ </p>
+ [/#if]
+ [#if swaggerUI??]
+ <p>
+ You may also enjoy the <a href="${swaggerUI.href}">Swagger UI</a> provided for this API.
+ </p>
+ [/#if]
+
+ <ul>
+ [#list resourceApi.resourceGroups as resourceGroup]
+<li><a href="${resourceGroup.slug}.html">${resourceGroup.label}</a></li>
+
+ [/#list]
+ </ul>
+
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#if serviceApis?size > 0]
+ [@file name="services.html"]
+ [@boilerplate title=title + ": Services" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Services" , "href" : "services.html"}]]
+ <h1 class="page-header" id="services">Services</h1>
+ [#list serviceApis as serviceApi]
+ [#list serviceApi.serviceGroups as serviceGroup]
+
+ <table class="table table-hover">
+ <caption>Namespace <code>${serviceGroup.namespace}</code>[#if serviceGroup.wsdlFile??] (<a href="${serviceGroup.wsdlFile.href}">wsdl</a>)[/#if]</caption>
+ <thead>
+ <tr>
+ <th align="center">name</th>
+ <th align="center">description</th>
+ </tr>
+ </thead>
+ <tbody data-link="row" class="rowlink">
+ [#list serviceGroup.services as service]
+ <tr class="clickable-row" data-href="${service.slug}.html">
+ <td>[@deprecation element=service]${service.label}[/@deprecation]</td>
+ <td>[@deprecation element=service]${service.description!" "}[/@deprecation]</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#list]
+ [/#list]
+ [#if downloads?size > 0]
+
+ <p>The services API is also accessible by a set of client-side libraries that can be downloaded from the <a href="downloads.html">files and libraries page</a>.</p>
+ [/#if]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#macro processResourceGroup resourceGroup]
+ [#assign pagenav=[]/]
+ [#list resourceGroup.resources as resource]
+ [#list resource.methods as method]
+ [#assign pagenav=pagenav + [{ "href" : "#" + method.slug, "title" : method.label + " " + resource.path }]/]
+ [/#list]
+ [/#list]
+ [#-- @ftlvariable name="resourceGroup" type="com.webcohesion.enunciate.api.resources.ResourceGroup" --]
+ [@file name=resourceGroup.slug + ".html"]
+ [@boilerplate title=title + ": " + resourceGroup.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Resources" , "href" : "resources.html"}, {"title" : resourceGroup.label , "href" : resourceGroup.slug + ".html"}] pagenav=pagenav]
+ <h1 class="page-header">${resourceGroup.label} <small>Resource</small></h1>
+ [#if resourceGroup.description??]
+
+ <p>${resourceGroup.description}</p>
+ [/#if]
+ <ul>
+ [#list resourceGroup.resources?sort_by("path") as resource]
+[#list resource.methods as method]
+<li><a href="#${method.slug}">${apiRelativePath}${resourceGroup.contextPath}${resource.path}</a></li>
+[/#list]
+ [/#list]
+ </ul>
+ [#list resourceGroup.resources?sort_by("path") as resource]
+ [#if resource.since?? || resource.version??]
+
+ <dl class="dl-horizontal">
+ [#if resource.since??]
+ <dt>Available Since</dt>
+ <dd>${resource.since}</dd>
+ [/#if]
+ [#if resource.version??]
+ <dt>Version</dt>
+ <dd>${resource.version}</dd>
+ [/#if]
+ </dl>
+ [/#if]
+ [#list resource.methods as method]
+
+ <div id="${method.slug}">
+ <h2>${method.label} <small>${resource.path} <a href="${apiRelativePath}${resourceGroup.contextPath}${resource.path}" class="glyphicon glyphicon-new-window" target="_blank"></a></small></h2>
+ [#if resourceGroup.deprecated?? || method.deprecated??]
+
+ <div class="alert alert-danger">This method has been deprecated. [#if method.deprecated??] ${method.deprecated!""}[#else] ${resource.deprecated!""}[/#if]</div>
+ [/#if]
+ [#if method.description??]
+
+ <p>${method.description}</p>
+ [/#if]
+ [#-- would be nice to enable a "Try it out" link to Swagger. See https://github.com/swagger-api/swagger-spec/issues/239
+ [#if swaggerUI??]
+
+ <p><a href="${swaggerUI.href}#!/${resourceGroup.label?url}/${method.slug}" class="btn btn-default">Try it out!</a></p>
+ [/#if]
+ --]
+ [#if (method.since?? || method.version??)]
+
+ <dl class="dl-horizontal">
+ [#if method.since??]
+ <dt>Available Since</dt>
+ <dd>${method.since}</dd>
+ [/#if]
+ [#if method.version??]
+ <dt>Version</dt>
+ <dd>${method.version}</dd>
+ [/#if]
+ </dl>
+ [/#if]
+ [#if method.parameters?size > 0]
+
+ <table class="table">
+ <caption>Request Parameters</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ <th>default</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.parameters as parameter]
+ <tr>
+ <td>${parameter.name}</td>
+ <td>${parameter.typeLabel}</td>
+ <td>${parameter.description!" "}</td>
+ <td>${parameter.defaultValue!"n/a"}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.requestEntity??]
+
+ <table class="table">
+ <caption>Request Body</caption>
+ <thead>
+ <tr>
+ <th>media type</th>
+ <th>data type</th>
+ [#if method.requestEntity.description??]
+ <th>description</th>
+ [/#if]
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.requestEntity.mediaTypes as io]
+ <tr>
+ <td><abbr data-toggle="tooltip" data-placement="top" title="Use the "Content-Type: ${io.mediaType}" HTTP header to specify this media type to the server.">${io.mediaType}</abbr></td>
+ <td>[@referenceDataType referenceType=io.dataType!{"label" : "(custom)"}/][#if io.syntax??] (${io.syntax})[/#if]</td>
+ [#if io_index = 0 && method.requestEntity.description??]
+ <td rowspan="${method.requestEntity.mediaTypes?size}">${method.requestEntity.description}</td>
+ [/#if]
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.responseCodes?size > 0]
+
+ <table class="table">
+ <caption>Response Codes</caption>
+ <thead>
+ <tr>
+ <th>code</th>
+ <th>condition</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.responseCodes as responseCode]
+ <tr>
+ <td>${responseCode.code}</td>
+ <td>${responseCode.condition}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.responseEntity??]
+
+ <table class="table">
+ <caption>Response Body</caption>
+ <thead>
+ <tr>
+ <th>media type</th>
+ <th>data type</th>
+ [#if method.responseEntity.description??]
+ <th>description</th>
+ [/#if]
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.responseEntity.mediaTypes as io]
+ <tr>
+ <td><abbr data-toggle="tooltip" data-placement="top" title="Use the "Accept: ${io.mediaType}" HTTP header to request that this media type be provided by the server.">${io.mediaType}</abbr></td>
+ <td>[@referenceDataType referenceType=io.dataType!{"label" : "(custom)"}/][#if io.syntax??] (${io.syntax})[/#if]</td>
+ [#if io_index = 0 && method.responseEntity.description??]
+ <td rowspan="${method.responseEntity.mediaTypes?size}">${method.responseEntity.description}</td>
+ [/#if]
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.warnings?size > 0]
+
+ <table class="table">
+ <caption>Response Warnings</caption>
+ <thead>
+ <tr>
+ <th>code</th>
+ <th>condition</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.warnings as responseCode]
+ <tr>
+ <td>${responseCode.code}</td>
+ <td>${responseCode.condition}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.responseHeaders?size > 0]
+
+ <table class="table">
+ <caption>Response Headers</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.responseHeaders as header]
+ <tr>
+ <td>${header.name}</td>
+ <td>${header.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ </div>
+ [/#list]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processService service]
+ [#assign pagenav=[]/]
+ [#list service.operations as operation]
+ [#assign pagenav=pagenav + [{ "href" : "#" + operation.slug, "title" : operation.name }]/]
+ [/#list]
+ [#-- @ftlvariable name="service" type="com.webcohesion.enunciate.api.services.Service" --]
+ [@file name=service.slug + ".html"]
+ [@boilerplate title=title + ": " + service.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : service.label , "href" : service.slug + ".html"}] pagenav=pagenav]
+ <h1 class="page-header">${service.label} <small>Service</small></h1>
+ [#if service.deprecated??]
+
+ <div class="alert alert-danger">This service has been deprecated. ${service.deprecated}</div>
+ [/#if]
+ [#if service.description??]
+
+ <p>${service.description}</p>
+ [/#if]
+
+ <dl class="dl-horizontal">
+ [#if service.namespace?? && service.namespace?length > 0]
+ <dt>Namespace</dt>
+ <dd>${service.namespace}</dd>
+ [/#if]
+ [#if service.group.wsdlFile??]
+ <dt>WSDL</dt>
+ <dd><a href="${service.group.wsdlFile.href}">${service.group.wsdlFile.href}</a></dd>
+ [/#if]
+ [#if service.path??]
+ <dt>Path</dt>
+ <dd><a href="${apiRelativePath}${service.path}">${service.path}</a></dd>
+ [/#if]
+ [#if service.since??]
+ <dt>Available Since</dt>
+ <dd>${service.since}</dd>
+ [/#if]
+ [#if service.version??]
+ <dt>Version</dt>
+ <dd>${service.version}</dd>
+ [/#if]
+ </dl>
+ [#list service.operations as operation]
+
+ <h2 id="${operation.slug}">${operation.name} <small>Operation</small></h2>
+ [#if operation.deprecated??]
+
+ <div class="alert alert-danger">This method has been deprecated. ${operation.deprecated}</div>
+ [/#if]
+ [#if operation.description??]
+
+ <p>${operation.description}</p>
+ [/#if]
+ [#if (operation.since?? || operation.version??)]
+
+ <dl class="dl-horizontal">
+ [#if operation.since??]
+ <dt>Available Since</dt>
+ <dd>${operation.since}</dd>
+ [/#if]
+ [#if operation.version??]
+ <dt>Version</dt>
+ <dd>${operation.version}</dd>
+ [/#if]
+ </dl>
+ [/#if]
+ [#if operation.inputParameters?size > 0]
+
+ <table class="table">
+ <caption>Input Parameters</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list operation.inputParameters as parameter]
+ <tr>
+ <td>${parameter.name}</td>
+ <td>[@referenceDataType referenceType=parameter.dataType/]</td>
+ <td>${parameter.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if operation.outputParameters?size > 0]
+
+ <table class="table">
+ <caption>Output Parameters</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list operation.outputParameters as parameter]
+ <tr>
+ <td>${parameter.name}</td>
+ <td>[@referenceDataType referenceType=parameter.dataType/]</td>
+ <td>${parameter.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if operation.returnType??]
+
+ <table class="table">
+ <caption>Return Value</caption>
+ <thead>
+ <tr>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>[#if operation.returnType.slug??]<a href="${operation.returnType.slug}.html">[/#if]${operation.returnType.label}[#if operation.returnType.slug??]</a>[/#if]</td>
+ <td>${operation.returnDescription!" "}</td>
+ </tr>
+ </tbody>
+ </table>
+ [/#if]
+ [#if operation.faults?size > 0]
+
+ <table class="table">
+ <caption>Faults</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list operation.faults as fault]
+ <tr>
+ <td>${fault.name}</td>
+ <td>[@referenceDataType referenceType=fault.dataType/]</td>
+ <td>${fault.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processDataSyntax syntax]
+ [#-- @ftlvariable name="syntax" type="com.webcohesion.enunciate.api.datatype.Syntax" --]
+ [@file name=syntax.slug + ".html"]
+ [@boilerplate title=title + ": " + syntax.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : syntax.label , "href" : syntax.slug + ".html"} ]]
+ <h1 class="page-header">${syntax.label}</h1>
+ [#list syntax.namespaces as ns]
+ [#if ns.types?size > 0]
+
+ <table class="table table-hover">
+ [#if ns.uri?? && ns.uri?length > 0]
+ <caption>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</caption>
+ [#else]
+ <caption>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</caption>
+ [/#if]
+ <thead>
+ <tr>
+ <th align="center">type</th>
+ <th align="center">description</th>
+ </tr>
+ </thead>
+ <tbody data-link="row" class="rowlink">
+ [#list ns.types as type]
+ [@processDataType type=type/]
+ <tr class="clickable-row" data-href="${type.slug}.html">
+ <td>[@deprecation element=type]${type.label}[/@deprecation]</td>
+ <td>[@deprecation element=type]${type.description}[/@deprecation]</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processDataType type]
+ [#-- @ftlvariable name="type" type="com.webcohesion.enunciate.api.datatype.DataType" --]
+ [@file name=type.slug + ".html"]
+ [@boilerplate title=title + ": " + type.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : type.syntax.label , "href" : type.syntax.slug + ".html"}, {"title" : type.label , "href" : type.slug + ".html"} ] codeblocks=true]
+ <h1 class="page-header">${type.label} <small>Data Type</small></h1>
+ [#if type.deprecated??]
+
+ <div class="alert alert-danger">This data type has been deprecated. ${type.deprecated}</div>
+ [/#if]
+ [#if type.description??]
+
+ <p>${type.description}</p>
+ [/#if]
+
+ <dl class="dl-horizontal">
+ [#if type.namespace.uri??]
+ <dt>Namespace</dt>
+ [#if type.namespace.uri?length > 0]
+ <dd><code>${type.namespace.uri}</code></dd>
+ [#else]
+ <dd>(Default)</dd>
+ [/#if]
+ [/#if]
+ [#if type.namespace.schemaFile??]
+ <dt>Schema</dt>
+ <dd><a href="${type.namespace.schemaFile.href}">${type.namespace.schemaFile.href}</a></dd>
+ [/#if]
+ [#if type.since??]
+ <dt>Available Since</dt>
+ <dd>${type.since}</dd>
+ [/#if]
+ [#if type.version??]
+ <dt>Version</dt>
+ <dd>${type.version}</dd>
+ [/#if]
+ </dl>
+ [#if type.values??]
+
+ <table class="table">
+ <caption>Values</caption>
+ <thead>
+ <tr>
+ <th>value</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list type.values as value]
+ <tr>
+ <td>${value.value}</td>
+ <td>${value.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if type.properties??]
+
+ <table class="table">
+ <caption>Properties</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>data type</th>
+ [#list type.propertyMetadata?keys as meta]
+ <th>${type.propertyMetadata[meta]}</th>
+ [/#list]
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list type.properties as property]
+ <tr>
+ <td>[@deprecation element=property]${property.name}[/@deprecation]</td>
+ <td>[@deprecation element=property][@referenceDataType referenceType=property.dataType/][/@deprecation]</td>
+ [#list type.propertyMetadata?keys as meta]
+ <td>[@deprecation element=property][@printPropertyMetadata property=property meta=meta/][/@deprecation]</td>
+ [/#list]
+ <td>[@deprecation element=property]${property.description!" "}[/@deprecation]</td>
+ </tr>
+ [/#list]
+ </tbody>
+ [#if type.supertypes??]
+ [#list type.supertypes as supertype]
+ [#if supertype.value?? && supertype.value.properties?? && supertype.value.properties?size > 0]
+ <tr>
+ <td colspan="${3 + type.propertyMetadata?size}"><h5 class="text-muted">Properties inherited from <a href="${supertype.slug}.html">${supertype.label}</a></h5></td>
+ </tr>
+ <tbody>
+ [#list supertype.value.properties as superProperty]
+ <tr>
+ <td>${superProperty.name}</td>
+ <td>[@referenceDataType referenceType=superProperty.dataType/]</td>
+ [#list type.propertyMetadata?keys as meta]
+ <td>[@printPropertyMetadata property=superProperty meta=meta/]</td>
+ [/#list]
+ <td>${superProperty.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ [/#if]
+ [/#list]
+ [/#if]
+ </table>
+ [/#if]
+ [#if type.example??]
+
+ <h2>Example</h2>
+
+ <pre class="prettyprint lang-${type.example.lang}">${type.example.body?xhtml}</pre>
+ [/#if]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro referenceDataType referenceType]
+[#-- @ftlvariable name="type" type="com.webcohesion.enunciate.api.datatype.DataTypeReference" --]
+[#if referenceType.containers??][#list referenceType.containers as container]${container?string} of [/#list][/#if][#if referenceType.slug??]<a href="${referenceType.slug}.html">[/#if]${referenceType.label!"(custom)"}[#if referenceType.slug??]</a>[/#if]
+[/#macro]
+[#macro printPropertyMetadata property meta]
+ [#assign metaValue=property[meta]!({ "structure" : true })/]
+ [#if metaValue?is_hash && metaValue.structure!false]
+[#if metaValue.href??]<a href="${metaValue.href}">[/#if][#if metaValue.title??]<abbr title="${metaValue.title}">[/#if]${metaValue.value!" "}[#if metaValue.title??]</abbr>[/#if][#if metaValue.href??]</a>[/#if]
+ [#else]
+${metaValue}
+ [/#if]
+[/#macro]
\ No newline at end of file
<jaxws-support disabled="true"/>
<docs disabled="false" title="Apache Archiva REST API" includeExampleXml="true" includeExampleJson="true"
- includeDefaultDownloads="false" docsSubdir="">
+ includeDefaultDownloads="false" docsSubdir="" freemarkerTemplate="${project.basedir}/src/enunciate/archiva.fmt" css="${project.basedir}/src/enunciate/archiva.css" >
<!--<war docsDir="apidocs" />-->
</docs>
--- /dev/null
+/*
+Copyright 2015 The Apache Software Foundation.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+/*
+ Created on : 13 nov. 2015, 13:47:57
+ Author : barboni
+*/
+/**
+ * html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
+ * v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark
+ * html5doctor.com/html-5-reset-stylesheet/
+ */
+
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
+small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+
+blockquote, q { quotes: none; }
+
+blockquote:before, blockquote:after,
+q:before, q:after { content: ""; content: none; }
+
+ins { background-color: #ff9; color: #000; text-decoration: none; }
+
+mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
+
+del { text-decoration: line-through; }
+
+abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
+
+table { border-collapse: collapse; border-spacing: 0; }
+
+hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
+
+input, select { vertical-align: middle; }
+
+
+/**
+ * Font normalization inspired by YUI Library's fonts.css: developer.yahoo.com/yui/
+ */
+
+body { font:13px/1.231 sans-serif; *font-size:small; } /* Hack retained to preserve specificity */
+select, input, textarea, button { font:99% sans-serif; }
+
+/* Normalize monospace sizing:
+ en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome */
+pre, code, kbd, samp { font-family: monospace, sans-serif; }
+
+
+/**
+ * Minimal base styles.
+ */
+
+/* Always force a scrollbar in non-IE */
+html { overflow-y: scroll; }
+
+/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */
+a:hover, a:active { outline: none; }
+
+ul, ol { margin-left: 2em; }
+ol { list-style-type: decimal; }
+
+/* Remove margins for navigation lists */
+nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
+
+small { font-size: 85%; }
+strong, th { font-weight: bold; }
+
+td { vertical-align: top; }
+
+/* Set sub, sup without affecting line-height: gist.github.com/413930 */
+sub, sup { font-size: 75%; line-height: 0; position: relative; }
+sup { top: -0.5em; }
+sub { bottom: -0.25em; }
+
+pre {
+ /* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */
+ padding: 15px;
+}
+
+textarea { overflow: auto; } /* www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/ */
+
+.ie6 legend, .ie7 legend { margin-left: -7px; }
+
+/* Align checkboxes, radios, text inputs with their label by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css */
+input[type="radio"] { vertical-align: text-bottom; }
+input[type="checkbox"] { vertical-align: bottom; }
+.ie7 input[type="checkbox"] { vertical-align: baseline; }
+.ie6 input { vertical-align: text-bottom; }
+
+/* Hand cursor on clickable input elements */
+label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
+
+/* Webkit browsers add a 2px margin outside the chrome of form elements */
+button, input, select, textarea { margin: 0; }
+
+/* Colors for form validity */
+input:valid, textarea:valid { }
+input:invalid, textarea:invalid {
+ border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red;
+}
+.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
+
+
+/* These selection declarations have to be separate
+ No text-shadow: twitter.com/miketaylr/status/12228805301
+ Also: hot pink! */
+::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; }
+::selection { background:#FF5E99; color:#fff; text-shadow: none; }
+
+/* j.mp/webkit-tap-highlight-color */
+a:link { -webkit-tap-highlight-color: #FF5E99; }
+
+/* Make buttons play nice in IE:
+ www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */
+button { width: auto; overflow: visible; }
+
+/* Bicubic resizing for non-native sized IMG:
+ code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
+.ie7 img { -ms-interpolation-mode: bicubic; }
+
+/**
+ * You might tweak these..
+ */
+
+body, select, input, textarea {
+ /* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */
+ color: #444;
+ /* Set your base font here, to apply evenly */
+ /* font-family: Georgia, serif; */
+}
+
+/* Headers (h1, h2, etc) have no default font-size or margin; define those yourself */
+h1, h2, h3, h4, h5, h6 { font-weight: bold; }
+
+a, a:active, a:visited { color: #607890; }
+a:hover { color: #036; }
+
+
+/**
+ * Primary styles
+ *
+ * Author:
+ */
+
+
+body{text-align:center;margin:0}
+.container{text-align:left;position:relative;padding:0;margin:0 auto;width:800px}
+.column{float:left;margin:0 5px 0 0;padding:0}
+* html .column{overflow-x:hidden}
+.border{padding-right:2px;margin-right:2px;border-right:1px solid #ddd}
+.span-1{width:35px}
+.span-2{width:75px}
+.span-3{width:115px}
+.span-4{width:155px}
+.span-5{width:195px}
+.span-6{width:235px}
+.span-7{width:275px}
+.span-8{width:315px}
+.span-9{width:355px}
+.span-10{width:395px}
+.span-11{width:435px}
+.span-12{width:475px}
+.span-13{width:515px}
+.span-14{width:555px}
+.span-15{width:595px}
+.span-16{width:635px}
+.span-17{width:675px}
+.span-18{width:715px}
+.span-19{width:755px}
+.span-20{width:795px}
+.span-21{width:835px}
+.span-22{width:875px}
+.span-23{width:915px}
+.span-24{width:955px;margin:0}
+.last{margin-right:0}
+.append-1{padding-right:40px}
+.append-2{padding-right:80px}
+.append-3{padding-right:120px}
+.append-4{padding-right:160px}
+.append-5{padding-right:200px}
+.prepend-1{padding-left:40px}
+.prepend-2{padding-left:80px}
+.prepend-3{padding-left:120px}
+.prepend-4{padding-left:160px}
+.prepend-5{padding-left:200px}
+.clear{display:inline-block}
+.clear:after,.container:after{content:".";display:block;height:0;clear:both;visibility:hidden}
+* html .clear{height:1%}
+.clear{display:block}
+h1,h2,h3,h4,h5,h6, p,ul,ol,dl,pre,form{padding-left:5px;padding-right:5px}
+table{margin-left:5px;margin-right:5px}
+img{margin:0 0 18px 0}
+.pull-1{margin-left:-70px}
+.pull-2{margin-left:-140px}
+.pull-3{margin-left:-210px}
+.push-0{margin:0 0 0 18px;float:right}
+.push-1{margin:0 -70px 0 18px;float:right}
+.push-2{margin:0 -140px 0 18px;float:right}
+.push-3{margin:0 -210px 0 18px;float:right}
+.deprecated{text-decoration: line-through}
+
+/* @end */
+
+/* @group typography.css */
+
+body {
+ font-size: 12px;
+ line-height: 18px; /* Do a complete find/replace on "18px" to change this */
+}
+
+
+/* Default fonts */
+h1,h2,h3,
+h4,h5,h6 { font-family: "Helvetica Neue", Helvetica, sans-serif; }
+body { font-family: "Lucida Grande", Calibri, Arial, sans-serif; }
+pre { font-family: Monaco, "Courier New", monospace; }
+code { font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Monaco, Courier, monospace; }
+
+
+/* Headings
+-------------------------------------------------------------- */
+
+h1,h2,h3,h4,h5,h6 {
+ color:#111;
+ clear:both;
+}
+
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: #111;
+ text-decoration: none;
+}
+
+h1 { font-size: 30px; line-height:36px; padding:10px 0 18px 0; }
+h2 { font-size: 20px; line-height:36px; }
+h3 { font-size: 12px; line-height:24px; }
+h4 { font-size: 12px; font-weight:bold; }
+h5 { font-size: 12px; font-weight:bold; }
+h6 { font-size: 12px; }
+
+
+/* Text elements
+-------------------------------------------------------------- */
+
+p { margin: 0 0 18px 0; text-align:justify; }
+p.last { margin-bottom:0; }
+p img { float: left; margin:18px 18px 18px 0; padding:0; }
+p img.top { margin-top:0; } /* Use this if the image is at the top of the <p>. */
+
+ul, ol { margin: 0 0 18px 0; }
+ul { list-style-type:circle; }
+ol { list-style-type: decimal; }
+dl { margin: 0 0 18px 0; }
+dl dt { font-weight: bold; }
+
+a { color: #A68000; text-decoration: underline; outline: none; }
+a:hover { color: #000; }
+
+blockquote { margin: 0 0 18px 18px; color: #666; font-style: italic; }
+strong { font-weight: bold; }
+em { font-style: italic; }
+pre { margin-bottom: 18px; background: #eee; border:1px solid #ddd; padding:16px; }
+code {
+ background: #eee;
+ border: 1px solid #ddd;
+ color: #555;
+ display: block;
+ font: normal 1.1em "Lucida Sans Unicode",serif;
+ margin-bottom: 12px;
+ padding: 8px 10px;
+ white-space: pre;
+ overflow: auto;
+ max-height: 300px;
+}
+
+/* Use this to create a horizontal ruler across a column. */
+hr {
+ background: #FFDF73;
+ color: #FFDF73;
+ clear: both;
+ float: none;
+ width: 100%;
+ height: 2px;
+ margin: 0 0 16px 0;
+ border: none;
+}
+
+
+/* Tables
+-------------------------------------------------------------- */
+
+table { margin-bottom: 16px; border-top:1px solid #ddd; border-left:1px solid #ddd; }
+th,td { height: 13px; padding:2px 4px; border-bottom:1px solid #ddd; border-right:1px solid #ddd; }
+th { font-weight:bold; }
+
+
+/* Some default classes
+-------------------------------------------------------------- */
+
+p.small { font-size: 10px; margin-bottom: 18px; }
+p.large { font-size: 14px; line-height:36px; }
+p.quiet { color: #666; }
+.hide { display: none; }
+
+
+.caps {
+ font-variant: small-caps;
+ letter-spacing: 1px;
+ text-transform: lowercase;
+}
+
+/* @end */
+
+/* @group styles */
+
+/* @group Header */
+
+#header {
+ padding-top: 1.8em;
+ margin-bottom: 1.8em;
+}
+#site-name {
+ line-height: 36px;
+}
+#site-name a {
+ font-variant: small-caps;
+ font-size: 3em;
+ letter-spacing: 3px;
+ text-decoration: none;
+ color: #444;
+}
+#site-name a:visited {
+ color: #444;
+ text-decoration: none;
+}
+#site-name a strong {
+ color: black;
+}
+#site-description {
+ padding-top: 1.4em;
+ padding-bottom: 1.4em;
+}
+#site-description h3 {
+ font-size: 2em;
+ margin: 0;
+ font-weight: normal;
+}
+#site-description p#read-more {
+ text-align: right;
+ margin: 6px 0 0;
+}
+#site-description p#read-more a, #site-description p#read-more a:visited {
+ font-size: 1.4em;
+ color: #515151;
+}
+#site-description p#read-more a:hover {
+ color: #919191;
+}
+#site-description {
+ background-color: #4188D2;
+ border-top: 2px solid #fff;
+ color: #444;
+}
+/* @end */
+
+/* @group Navigation */
+
+ul.navigation, ul.navigation li {
+ list-style: none;
+}
+ul.navigation li {
+ display: inline;
+ margin-right: 1.3em;
+}
+
+#primary {
+ line-height: 72px;
+ margin-bottom: -24px;
+ text-align: right;
+}
+#primary li {
+ padding-bottom: 5px;
+}
+#primary a {
+ color: #444;
+ text-decoration: none;
+ font-size: 1.2em;
+}
+#primary li:hover {
+ border-bottom: 6px solid #FFDF73;
+}
+#secondary {
+ padding-top: 7px;
+ background-color: #FFDF73;
+}
+#secondary ul {
+ list-style: none;
+ margin-bottom: 7px;
+}
+#secondary ul li {
+ display: inline;
+ list-style: none;
+ margin-right: 0;
+}
+#secondary ul li a {
+ color: #515151;
+ text-decoration: none;
+ padding: 8px 24px 8px 24px;
+ margin-left: -4px;
+}
+#secondary ul li a.selected {
+ background-color: #515151;
+ color: #fff;
+}
+#secondary ul a:hover {
+ background: #fff4d0;
+}
+/*
+ xBreadcrumbs (Extended Breadcrumbs) jQuery Plugin
+ � 2009 ajaxBlender.com
+ For any questions please visit www.ajaxblender.com
+ or email us at support@ajaxblender.com
+*/
+.xbreadcrumbs {
+ position: relative;
+ z-index: 1000;
+}
+.xbreadcrumbs LI UL {
+ position: absolute;
+ float: left;
+}
+.xbreadcrumbs, .xbreadcrumbs LI, .xbreadcrumbs UL, .xbreadcrumbs UL LI {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+.xbreadcrumbs { clear: both; }
+.xbreadcrumbs, .xbreadcrumbs LI {
+ float: left;
+}
+.xbreadcrumbs UL {
+ display: none;
+}
+
+/* Base style of xBreadcrumbs */
+/* Top Level */
+.xbreadcrumbs {
+ background: #FFDF73;
+ width: 100%;
+}
+.xbreadcrumbs LI {
+ border-right: none;
+ padding: 5px 15px 5px 10px;
+ height: 16px;
+}
+.xbreadcrumbs LI.current {
+ background: none;
+}
+.xbreadcrumbs LI UL LI {
+ background: none;
+}
+.xbreadcrumbs LI A {
+ font-size: 11px;
+ color: #515151;
+ text-decoration: none;
+ padding-right: 2em;
+}
+.xbreadcrumbs LI A.home {
+ background: url( home.gif ) no-repeat left center;
+ padding-left: 20px;
+}
+.xbreadcrumbs LI A:HOVER, .xbreadcrumbs LI.hover A {
+ color: #000;
+}
+/* Top Level - Current Page */
+.xbreadcrumbs LI.current A {
+ color: #333333;
+ font-weight: bold;
+}
+/* Sub-level */
+.xbreadcrumbs LI UL {
+ padding: 3px;
+ background: #fff4d0;
+ font-size: 11px;
+ min-width: 180px;
+ max-height: 500px;
+ overflow: auto;
+ top: 25px;
+}
+.xbreadcrumbs LI UL LI {
+ float: left;
+ width: 100%;
+ border-right: none;
+ height: auto;
+}
+.xbreadcrumbs LI UL LI A {
+ text-decoration: none;
+ color: #666666 !important;
+ display: block;
+ padding: 4px;
+ border-bottom: 1px dotted #666666;
+}
+.xbreadcrumbs LI UL LI:last-child A {
+ border-bottom: none;
+}
+.xbreadcrumbs LI UL LI A:HOVER {
+ background: #fffbee;
+}
+body.advisories #nav-advisories,body.community #nav-community,body.blog #nav-blog,body.code #nav-code,body.about #nav-about,body.documentation #nav-documentation{border-bottom: 6px solid #FFDF73;}
+/* @end */
+
+/* @group Main */
+
+#main {
+ font-size: 1.2em;
+ line-height: 1.5em;
+ color: #1E250D;
+}
+#main h2 {
+ font-size: 1.8em;
+ font-weight: normal;
+ border-bottom: 3px solid #c2b2d4;
+ padding-top: 10px;
+ padding-left: 0;
+ padding-right: 0;
+ margin-bottom: 6px;
+}
+#main h3 {
+ font-size: 1.4em;
+ font-weight: normal;
+ border-bottom: 4px solid #f7f7f7;
+ padding: 0 0 5px;
+ margin-bottom: 0.4em;
+}
+#main h3 .caps {
+ font-size: 1.3em;
+}
+#main .hfeed .hentry {
+ list-style: none;
+ list-style-type: none;
+ margin-bottom: 2em;
+ border-bottom: 4px solid #eee;
+ padding-bottom: 1em;
+ clear: both;
+}
+#main .hfeed .hentry:last-child {
+ border-bottom: none;
+}#main .hfeed .hentry .entry-title {
+ border-bottom: none;
+}
+#main hr {
+ color: #FFDF73;
+ background-color: #FFDF73;
+ border-color: #FFDF73;
+}
+#main p {
+ text-align: left;
+ padding-left: 0;
+ padding-right: 0;
+}
+#main img {
+ max-width: 740px;
+}
+#main ol {
+ margin-left: 1.5em;
+}
+#main ul {
+ margin-left: 1.2em;
+ list-style: disc;
+}
+#main .intro {
+ font-size: 1.2em;
+ color: #515151;
+ border-bottom: 3px solid #f8fbfd;
+}
+#main .get-started a {
+ text-align: center;
+ background-color: #8942D6;
+ color: #fff;
+ display: block;
+ border-radius: 12px;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ padding: 8px 6px;
+ width: 10em;
+ font-size: 1.4em;
+ margin-left: auto;
+ margin-right: auto;
+ text-decoration: none;
+}
+#main .get-started a:hover {
+ background-color: #9D69D6;
+}
+#main pre {
+ max-height: 600px;
+ overflow: auto;
+}
+
+/* @end */
+/* @group Footer */
+
+#footer {
+ color: #666;
+ font-size: 11px;
+ border-top: 4px double #e7e7e7;
+ margin-top: 2em;
+ padding-top: 1.2em;
+ text-align: center;
+}
+/*#footer a {
+ color: #787878;
+ text-decoration: none;
+ border-bottom: 1px dotted #787878;
+}
+#footer a:hover {
+ border-bottom: 1px solid #787878;
+}*/
+
+/* @end */
+
+.update, .note, .notice, .alert {
+margin: 10px 0 20px;
+padding: 5px 20px 5px 20px;
+clear: both;
+}
+.note {
+ background: #e6ecf2;
+ border-top: 2px solid #8996ad;
+ border-bottom: 2px solid #8996ad;
+}
+.update, .notice {
+ background: #92ED6B;
+ border-top: 2px solid #2B8E00;
+ border-bottom: 2px solid #2B8E00;
+}
+.alert {
+ background: #ffbfbf;
+ border-top: 2px solid #f33;
+ border-bottom: 2px solid #f33;
+}
+.alert a {
+ color:#f00;
+}
+.alert a:visited {
+ color: #f33;
+}
+
+/* JavaDoc-Specific Styles */
+.TableHeadingColor { text-align: left; border-width: 0 }
+.TableSubHeadingColor { text-align: left; border-width: 0 }
+.TableRowColor { text-align: left; border-width: 0 }
+.NavBarCell1 { text-align: left; border-width: 0 }
+.NavBarCell1Rev { text-align: left; border-width: 0 }
+.FrameItemFont { text-align: left; }
+
+/* @end */
+
+
+
+/**
+ * Non-semantic helper classes: please define your styles before this section.
+ */
+
+/* For image replacement */
+.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
+
+/* Hide for both screenreaders and browsers:
+ css-discuss.incutio.com/wiki/Screenreader_Visibility */
+.hidden { display: none; visibility: hidden; }
+
+/* Hide only visually, but have it available for screenreaders: by Jon Neal.
+ www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden */
+.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
+/* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: drupal.org/node/897638 */
+.visuallyhidden.focusable:active,
+.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
+
+/* Hide visually and from screenreaders, but maintain layout */
+.invisible { visibility: hidden; }
+
+/* The Magnificent Clearfix: Updated to prevent margin-collapsing on child elements.
+ j.mp/bestclearfix */
+.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
+.clearfix:after { clear: both; }
+/* Fix clearfix: blueprintcss.lighthouseapp.com/projects/15318/tickets/5-extra-margin-padding-bottom-of-page */
+.clearfix { zoom: 1; }
+
+
+
+/**
+ * Media queries for responsive design.
+ *
+ * These follow after primary styles so they will successfully override.
+ */
+
+@media all and (orientation:portrait) {
+ /* Style adjustments for portrait mode goes here */
+
+}
+
+@media all and (orientation:landscape) {
+ /* Style adjustments for landscape mode goes here */
+
+}
+
+/* Grade-A Mobile Browsers (Opera Mobile, Mobile Safari, Android Chrome)
+ consider this: www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ */
+@media screen and (max-device-width: 480px) {
+
+
+ /* Uncomment if you don't want iOS and WinMobile to mobile-optimize the text for you: j.mp/textsizeadjust */
+ /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
+}
+
+
+/**
+ * Print styles.
+ *
+ * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
+ */
+@media print {
+ * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
+ -ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */
+ a, a:visited { color: #444 !important; text-decoration: underline; }
+ a[href]:after { content: " (" attr(href) ")"; }
+ abbr[title]:after { content: " (" attr(title) ")"; }
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */
+ pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
+ thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
+ tr, img { page-break-inside: avoid; }
+ @page { margin: 0.5cm; }
+ p, h2, h3 { orphans: 3; widows: 3; }
+ h2, h3{ page-break-after: avoid; }
+}
+
--- /dev/null
+[#ftl]
+<#--
+Copyright 2015 The Apache Software Foundation.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+[#-- @ftlvariable name="resourceApis" type="java.util.List<com.webcohesion.enunciate.api.resources.ResourceApi>" --]
+[#-- @ftlvariable name="serviceApis" type="java.util.List<com.webcohesion.enunciate.api.services.ServiceApi>" --]
+[#-- @ftlvariable name="data" type="java.util.List<com.webcohesion.enunciate.api.datatype.Syntax>" --]
+[#-- @ftlvariable name="downloads" type="java.util.List<com.webcohesion.enunciate.api.Download>" --]
+[#-- @ftlvariable name="title" type="java.lang.String" --]
+[#-- @ftlvariable name="indexPageName" type="java.lang.String" --]
+[#-- @ftlvariable name="disableMountpoint" type="java.lang.Boolean" --]
+[#-- @ftlvariable name="apiRelativePath" type="java.lang.String" --]
+[#-- @ftlvariable name="cssFile" type="java.lang.String" --]
+[#-- @ftlvariable name="additionalCssFiles" type="java.util.List<java.lang.String>" --]
+[#-- @ftlvariable name="copyright" type="java.lang.String" --]
+[#-- @ftlvariable name="apiDoc" type="java.lang.String" --]
+[#-- @ftlvariable name="swaggerUI" type="com.webcohesion.enunciate.api.InterfaceDescriptionFile" --]
+[#--set up the subnavigation menus--]
+[#assign nav_sections = { } /]
+[#if resourceApis?size > 0]
+ [#assign nav_sections = nav_sections + { "Resources" : "resources.html" }/]
+[/#if]
+[#if serviceApis?size > 0]
+ [#assign nav_sections = nav_sections + { "Services" : "services.html" }/]
+[/#if]
+[#if data?size > 0]
+ [#list data as syntax]
+ [#assign nav_sections = { syntax.label : syntax.slug + ".html" } /]
+ [/#list]
+[/#if]
+[#if downloads?size > 0]
+ [#assign nav_sections = nav_sections + { "Files and Libraries" : "downloads.html"} /]
+[/#if]
+[#--Basic boilerplate macro.--]
+[#macro boilerplate title=title breadcrumbs=[{"title" : "Home", "href" : indexPageName}] pagenav=[] codeblocks=true]
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
+
+ <title>${title}</title>
+
+ <!-- Mobile viewport optimized: j.mp/bplateviewport -->
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <!-- Bootstrap core CSS -->
+ <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> -->
+
+ [#if cssFile??]
+ <!--custom css for these pages-->
+ <link rel="stylesheet" href="${cssFile}">
+ [/#if]
+ [#list additionalCssFiles as additionalCssFile]
+ <link rel="stylesheet" href="${additionalCssFile}">
+ [/#list]
+
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.css" type="text/css">
+
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+ <![endif]-->
+</head>
+
+<body class="home">
+ <div class="container">
+ <header>
+
+ <div id="header" class="column first last span-20">
+ <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="${indexPageName}">${title}</a></div>
+ <div id="primary" class="column span-18 append-1 prepend-1 first last">
+ <ul class="navigation">
+ <li id="nav-rest"><a href="resources.html">REST</a></li>
+ <li id="nav-data"><a href="data.html">Data Model</a></li>
+ </ul>
+ </div>
+ <div>
+ <ul class="xbreadcrumbs" id="breadcrumbs">
+[#list breadcrumbs as crumb]
+<li[#if !crumb_has_next] class="current"[/#if]>
+ <a href="${crumb.href}"[#if crumb_index = 0] class="home"[/#if]>${crumb.title}</a>[#if crumb_has_next] >[/#if]
+
+ </li>
+ [/#list]
+ </ul>
+ </div>
+ </div>
+ <!--<nav class="navbar navbar-inverse navbar-fixed-top">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="${indexPageName}">${title}</a>
+ </div>
+ <div id="navbar" class="navbar-collapse collapse">
+ <ul class="nav navbar-nav navbar-right">
+ [#if serviceApis?size > 0]
+ <li><a href="services.html">Services</a></li>
+ [/#if]
+ [#if resourceApis?size > 0]
+ <li><a href="resources.html">Resources</a></li>
+ [/#if]
+ [#if data?size > 0]
+ <li><a href="data.html">Data Types</a></li>
+ [/#if]
+ [#if downloads?size > 0]
+ <li><a href="downloads.html">Files and Libraries</a></li>
+ [/#if]
+ </ul>
+ </div>
+ </div>
+ </nav>-->
+ </header>
+ <div id="main" class="column first last span-20">
+
+ [#nested/]
+
+ <footer>
+ <div class="footer">
+ [#if copyright??]Copyright © <script type="text/javascript" language="javascript">d = new Date;document.write(d.getFullYear());</script> <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">${copyright}</span>. [/#if]Generated by <a href="http://enunciate.webcohesion.com">Enunciate</a>.
+ </div>
+ </footer>
+
+ </div>
+
+ </div>
+
+
+ <!-- JavaScript placed at the end of the document so the pages load faster. -->
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+
+
+ <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.js" type="text/javascript"></script>
+
+
+</body>
+</html>
+[/#macro]
+[#--Macro that wraps its text in a deprecated <s> tag if the element is deprecated.--]
+[#macro deprecation element]
+ [#assign deprecated=(element?? && element.deprecated??)/]
+ [#if deprecated]<s>[/#if][#nested/][#if deprecated]</s>[/#if]
+[/#macro]
+[@file name=indexPageName]
+ [#assign pagenav=[]/]
+ [#if resourceApis?size > 0]
+ [#assign pagenav=pagenav + [{ "href" : "#resources", "title" : "Resources" }]/]
+ [/#if]
+ [#if serviceApis?size > 0]
+ [#assign pagenav=pagenav + [{ "href" : "#services", "title" : "Services" }]/]
+ [/#if]
+ [#list data as syntax]
+ [#assign pagenav=pagenav + [{ "href" : "#" + syntax.slug, "title" : syntax.label }]/]
+ [/#list]
+ [@boilerplate pagenav=pagenav]
+ [#if apiDoc??]
+ <div class="jumbotron">
+ <div class="container">
+ ${apiDoc}
+ </div>
+ </div>
+ [/#if]
+ [#if resourceApis?size > 0]
+
+ <h1 class="page-header" id="resources">Resources</h1>
+ [#list resourceApis as resourceApi]
+ [#if downloads?size > 0]
+
+ <p>
+ The resources use a data model that is supported by a set of client-side libraries that are made available on the
+ <a href="downloads.html">files and libraries</a> page.
+ </p>
+ [/#if]
+ [#if resourceApi.wadlFile??]
+
+ <p>
+ There is a <a href="${resourceApi.wadlFile.href}">WADL document</a> available that describes the resources API.
+ </p>
+ [/#if]
+ [#if swaggerUI??]
+
+ <p>
+ You may also enjoy the <a href="${swaggerUI.href}">Swagger UI</a> provided for this API.
+ </p>
+ [/#if]
+ <ul>
+ [#list resourceApi.resourceGroups as resourceGroup]
+ [@processResourceGroup resourceGroup=resourceGroup/]
+<li><a href="${resourceGroup.slug}.html">${resourceGroup.label}</a></li>
+
+ [/#list]
+ </ul>
+
+ [/#list]
+ [/#if]
+ [#if serviceApis?size > 0]
+
+ <h1 class="page-header" id="services">Services</h1>
+ [#list serviceApis as serviceApi]
+ [#list serviceApi.serviceGroups as serviceGroup]
+
+ <table class="table table-hover">
+ <caption>Namespace <code>${serviceGroup.namespace!"(Default)"}</code>[#if serviceGroup.wsdlFile??] (<a href="${serviceGroup.wsdlFile.href}">wsdl</a>)[/#if]</caption>
+ <thead>
+ <tr>
+ <th align="center">name</th>
+ <th align="center">description</th>
+ </tr>
+ </thead>
+ <tbody data-link="row" class="rowlink">
+ [#list serviceGroup.services as service]
+ [@processService service=service/]
+ <tr class="clickable-row" data-href="${service.slug}.html">
+ <td>[@deprecation element=service]${service.label}[/@deprecation]</td>
+ <td>[@deprecation element=service]${service.description!" "}[/@deprecation]</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#list]
+ [/#list]
+ [#if downloads?size > 0]
+
+ <p>The services API is also accessible by a set of client-side libraries that can be downloaded from the <a href="downloads.html">files and libraries page</a>.</p>
+ [/#if]
+ [/#if]
+ [#if data?size > 0]
+
+ <h1 class="page-header" id="data">Data Types</h1>
+ [#list data as syntax]
+ [@processDataSyntax syntax=syntax/]
+
+ <h3 id="${syntax.slug}">${syntax.label}</h3>
+ [#list syntax.namespaces as ns]
+ [#if ns.types?size > 0]
+
+
+ [#if ns.uri?? && ns.uri?length > 0]
+ <p>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p>
+ [#else]
+ <p>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p>
+ [/#if]
+ <ul>
+ [#list ns.types?sort_by("label") as type]
+ <li><a href="${type.slug}.html">${type.label}</a></li>
+
+ [/#list]
+ </ul>
+
+ [/#if]
+ [/#list]
+ [/#list]
+ [/#if]
+ [/@boilerplate]
+[/@file]
+[@file name="data.html"]
+ [#assign pagenav=[]/]
+ [#list data as syntax]
+ [#assign pagenav=pagenav + [{ "href" : "#" + syntax.slug, "title" : syntax.label }]/]
+ [/#list]
+ [@boilerplate title=title + ": Data Types" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Types" , "href" : "data.html"}] pagenav=pagenav]
+ <h1 class="page-header" id="data">Data Types</h1>
+ [#list data as syntax]
+
+ <h3 id="${syntax.slug}">${syntax.label}</h3>
+ [#list syntax.namespaces as ns]
+ [#if ns.types?size > 0]
+
+
+ [#if ns.uri?? && ns.uri?length > 0]
+ <p>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p>
+ [#else]
+ <p>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</p>
+ [/#if]
+
+ <ul>
+ [#list ns.types as type]
+ <li><a href="${type.slug}.html">${type.label}</a></li>
+
+ [/#list]
+ </ul>
+
+ [/#if]
+ [/#list]
+ [/#list]
+ [/@boilerplate]
+[/@file]
+[#if downloads?size > 0]
+ [@file name="downloads.html"]
+ [#assign pagenav=[]/]
+ [#list downloads as download]
+ [#assign pagenav=pagenav + [{ "href" : "#" + download.slug, "title" : download.name }]/]
+ [/#list]
+ [@boilerplate title=title + ": Files and Libraries" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, { "title" : "Files and Libraries" , "href" : "downloads.html"}] codeblocks=true pagenav=pagenav]
+ <h1 class="page-header">Files and Libraries</h1>
+
+ [#list downloads as download]
+ <h3 id="${download.slug}">${download.name}</h3>
+ [#if download.created??]
+ <p class="lead">Created ${download.created?date?string.long}</p>
+ [/#if]
+ [#if download.description??]
+ <p>${download.description}</p>
+ [/#if]
+ <table class="table table-hover">
+ <caption>Files</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>size</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody data-link="row" class="rowlink">
+ [#list download.files as file]
+ <tr class="clickable-row" data-href="${file.name}">
+ <td>${file.name}</td>
+ <td>${file.size}</td>
+ <td>${file.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#if resourceApis?size > 0]
+ [@file name="resources.html"]
+ [@boilerplate title=title + ": Resources" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Resources" , "href" : "resources.html"}]]
+ <h1 class="page-header" id="resources">Resources</h1>
+
+ [#list resourceApis as resourceApi]
+ [#if downloads?size > 0]
+ <p>
+ The resources use a data model that is supported by a set of client-side libraries that are made available on the
+ <a href="downloads.html">files and libraries</a> page.
+ </p>
+ [/#if]
+ [#if resourceApi.wadlFile??]
+ <p>
+ There is a <a href="${resourceApi.wadlFile.href}">WADL document</a> available that describes the resources API.
+ </p>
+ [/#if]
+ [#if swaggerUI??]
+ <p>
+ You may also enjoy the <a href="${swaggerUI.href}">Swagger UI</a> provided for this API.
+ </p>
+ [/#if]
+
+ <ul>
+ [#list resourceApi.resourceGroups as resourceGroup]
+<li><a href="${resourceGroup.slug}.html">${resourceGroup.label}</a></li>
+
+ [/#list]
+ </ul>
+
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#if serviceApis?size > 0]
+ [@file name="services.html"]
+ [@boilerplate title=title + ": Services" breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Services" , "href" : "services.html"}]]
+ <h1 class="page-header" id="services">Services</h1>
+ [#list serviceApis as serviceApi]
+ [#list serviceApi.serviceGroups as serviceGroup]
+
+ <table class="table table-hover">
+ <caption>Namespace <code>${serviceGroup.namespace}</code>[#if serviceGroup.wsdlFile??] (<a href="${serviceGroup.wsdlFile.href}">wsdl</a>)[/#if]</caption>
+ <thead>
+ <tr>
+ <th align="center">name</th>
+ <th align="center">description</th>
+ </tr>
+ </thead>
+ <tbody data-link="row" class="rowlink">
+ [#list serviceGroup.services as service]
+ <tr class="clickable-row" data-href="${service.slug}.html">
+ <td>[@deprecation element=service]${service.label}[/@deprecation]</td>
+ <td>[@deprecation element=service]${service.description!" "}[/@deprecation]</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#list]
+ [/#list]
+ [#if downloads?size > 0]
+
+ <p>The services API is also accessible by a set of client-side libraries that can be downloaded from the <a href="downloads.html">files and libraries page</a>.</p>
+ [/#if]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#macro processResourceGroup resourceGroup]
+ [#assign pagenav=[]/]
+ [#list resourceGroup.resources as resource]
+ [#list resource.methods as method]
+ [#assign pagenav=pagenav + [{ "href" : "#" + method.slug, "title" : method.label + " " + resource.path }]/]
+ [/#list]
+ [/#list]
+ [#-- @ftlvariable name="resourceGroup" type="com.webcohesion.enunciate.api.resources.ResourceGroup" --]
+ [@file name=resourceGroup.slug + ".html"]
+ [@boilerplate title=title + ": " + resourceGroup.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : "Resources" , "href" : "resources.html"}, {"title" : resourceGroup.label , "href" : resourceGroup.slug + ".html"}] pagenav=pagenav]
+ <h1 class="page-header">${resourceGroup.label} <small>Resource</small></h1>
+ [#if resourceGroup.description??]
+
+ <p>${resourceGroup.description}</p>
+ [/#if]
+ <ul>
+ [#list resourceGroup.resources?sort_by("path") as resource]
+[#list resource.methods as method]
+<li><a href="#${method.slug}">${apiRelativePath}${resourceGroup.contextPath}${resource.path}</a></li>
+[/#list]
+ [/#list]
+ </ul>
+ [#list resourceGroup.resources?sort_by("path") as resource]
+ [#if resource.since?? || resource.version??]
+
+ <dl class="dl-horizontal">
+ [#if resource.since??]
+ <dt>Available Since</dt>
+ <dd>${resource.since}</dd>
+ [/#if]
+ [#if resource.version??]
+ <dt>Version</dt>
+ <dd>${resource.version}</dd>
+ [/#if]
+ </dl>
+ [/#if]
+ [#list resource.methods as method]
+
+ <div id="${method.slug}">
+ <h2>${method.label} <small>${resource.path} <a href="${apiRelativePath}${resourceGroup.contextPath}${resource.path}" class="glyphicon glyphicon-new-window" target="_blank"></a></small></h2>
+ [#if resourceGroup.deprecated?? || method.deprecated??]
+
+ <div class="alert alert-danger">This method has been deprecated. [#if method.deprecated??] ${method.deprecated!""}[#else] ${resource.deprecated!""}[/#if]</div>
+ [/#if]
+ [#if method.description??]
+
+ <p>${method.description}</p>
+ [/#if]
+ [#-- would be nice to enable a "Try it out" link to Swagger. See https://github.com/swagger-api/swagger-spec/issues/239
+ [#if swaggerUI??]
+
+ <p><a href="${swaggerUI.href}#!/${resourceGroup.label?url}/${method.slug}" class="btn btn-default">Try it out!</a></p>
+ [/#if]
+ --]
+ [#if (method.since?? || method.version??)]
+
+ <dl class="dl-horizontal">
+ [#if method.since??]
+ <dt>Available Since</dt>
+ <dd>${method.since}</dd>
+ [/#if]
+ [#if method.version??]
+ <dt>Version</dt>
+ <dd>${method.version}</dd>
+ [/#if]
+ </dl>
+ [/#if]
+ [#if method.parameters?size > 0]
+
+ <table class="table">
+ <caption>Request Parameters</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ <th>default</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.parameters as parameter]
+ <tr>
+ <td>${parameter.name}</td>
+ <td>${parameter.typeLabel}</td>
+ <td>${parameter.description!" "}</td>
+ <td>${parameter.defaultValue!"n/a"}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.requestEntity??]
+
+ <table class="table">
+ <caption>Request Body</caption>
+ <thead>
+ <tr>
+ <th>media type</th>
+ <th>data type</th>
+ [#if method.requestEntity.description??]
+ <th>description</th>
+ [/#if]
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.requestEntity.mediaTypes as io]
+ <tr>
+ <td><abbr data-toggle="tooltip" data-placement="top" title="Use the "Content-Type: ${io.mediaType}" HTTP header to specify this media type to the server.">${io.mediaType}</abbr></td>
+ <td>[@referenceDataType referenceType=io.dataType!{"label" : "(custom)"}/][#if io.syntax??] (${io.syntax})[/#if]</td>
+ [#if io_index = 0 && method.requestEntity.description??]
+ <td rowspan="${method.requestEntity.mediaTypes?size}">${method.requestEntity.description}</td>
+ [/#if]
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.responseCodes?size > 0]
+
+ <table class="table">
+ <caption>Response Codes</caption>
+ <thead>
+ <tr>
+ <th>code</th>
+ <th>condition</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.responseCodes as responseCode]
+ <tr>
+ <td>${responseCode.code}</td>
+ <td>${responseCode.condition}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.responseEntity??]
+
+ <table class="table">
+ <caption>Response Body</caption>
+ <thead>
+ <tr>
+ <th>media type</th>
+ <th>data type</th>
+ [#if method.responseEntity.description??]
+ <th>description</th>
+ [/#if]
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.responseEntity.mediaTypes as io]
+ <tr>
+ <td><abbr data-toggle="tooltip" data-placement="top" title="Use the "Accept: ${io.mediaType}" HTTP header to request that this media type be provided by the server.">${io.mediaType}</abbr></td>
+ <td>[@referenceDataType referenceType=io.dataType!{"label" : "(custom)"}/][#if io.syntax??] (${io.syntax})[/#if]</td>
+ [#if io_index = 0 && method.responseEntity.description??]
+ <td rowspan="${method.responseEntity.mediaTypes?size}">${method.responseEntity.description}</td>
+ [/#if]
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.warnings?size > 0]
+
+ <table class="table">
+ <caption>Response Warnings</caption>
+ <thead>
+ <tr>
+ <th>code</th>
+ <th>condition</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.warnings as responseCode]
+ <tr>
+ <td>${responseCode.code}</td>
+ <td>${responseCode.condition}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if method.responseHeaders?size > 0]
+
+ <table class="table">
+ <caption>Response Headers</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list method.responseHeaders as header]
+ <tr>
+ <td>${header.name}</td>
+ <td>${header.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ </div>
+ [/#list]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processService service]
+ [#assign pagenav=[]/]
+ [#list service.operations as operation]
+ [#assign pagenav=pagenav + [{ "href" : "#" + operation.slug, "title" : operation.name }]/]
+ [/#list]
+ [#-- @ftlvariable name="service" type="com.webcohesion.enunciate.api.services.Service" --]
+ [@file name=service.slug + ".html"]
+ [@boilerplate title=title + ": " + service.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : service.label , "href" : service.slug + ".html"}] pagenav=pagenav]
+ <h1 class="page-header">${service.label} <small>Service</small></h1>
+ [#if service.deprecated??]
+
+ <div class="alert alert-danger">This service has been deprecated. ${service.deprecated}</div>
+ [/#if]
+ [#if service.description??]
+
+ <p>${service.description}</p>
+ [/#if]
+
+ <dl class="dl-horizontal">
+ [#if service.namespace?? && service.namespace?length > 0]
+ <dt>Namespace</dt>
+ <dd>${service.namespace}</dd>
+ [/#if]
+ [#if service.group.wsdlFile??]
+ <dt>WSDL</dt>
+ <dd><a href="${service.group.wsdlFile.href}">${service.group.wsdlFile.href}</a></dd>
+ [/#if]
+ [#if service.path??]
+ <dt>Path</dt>
+ <dd><a href="${apiRelativePath}${service.path}">${service.path}</a></dd>
+ [/#if]
+ [#if service.since??]
+ <dt>Available Since</dt>
+ <dd>${service.since}</dd>
+ [/#if]
+ [#if service.version??]
+ <dt>Version</dt>
+ <dd>${service.version}</dd>
+ [/#if]
+ </dl>
+ [#list service.operations as operation]
+
+ <h2 id="${operation.slug}">${operation.name} <small>Operation</small></h2>
+ [#if operation.deprecated??]
+
+ <div class="alert alert-danger">This method has been deprecated. ${operation.deprecated}</div>
+ [/#if]
+ [#if operation.description??]
+
+ <p>${operation.description}</p>
+ [/#if]
+ [#if (operation.since?? || operation.version??)]
+
+ <dl class="dl-horizontal">
+ [#if operation.since??]
+ <dt>Available Since</dt>
+ <dd>${operation.since}</dd>
+ [/#if]
+ [#if operation.version??]
+ <dt>Version</dt>
+ <dd>${operation.version}</dd>
+ [/#if]
+ </dl>
+ [/#if]
+ [#if operation.inputParameters?size > 0]
+
+ <table class="table">
+ <caption>Input Parameters</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list operation.inputParameters as parameter]
+ <tr>
+ <td>${parameter.name}</td>
+ <td>[@referenceDataType referenceType=parameter.dataType/]</td>
+ <td>${parameter.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if operation.outputParameters?size > 0]
+
+ <table class="table">
+ <caption>Output Parameters</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list operation.outputParameters as parameter]
+ <tr>
+ <td>${parameter.name}</td>
+ <td>[@referenceDataType referenceType=parameter.dataType/]</td>
+ <td>${parameter.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if operation.returnType??]
+
+ <table class="table">
+ <caption>Return Value</caption>
+ <thead>
+ <tr>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>[#if operation.returnType.slug??]<a href="${operation.returnType.slug}.html">[/#if]${operation.returnType.label}[#if operation.returnType.slug??]</a>[/#if]</td>
+ <td>${operation.returnDescription!" "}</td>
+ </tr>
+ </tbody>
+ </table>
+ [/#if]
+ [#if operation.faults?size > 0]
+
+ <table class="table">
+ <caption>Faults</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list operation.faults as fault]
+ <tr>
+ <td>${fault.name}</td>
+ <td>[@referenceDataType referenceType=fault.dataType/]</td>
+ <td>${fault.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processDataSyntax syntax]
+ [#-- @ftlvariable name="syntax" type="com.webcohesion.enunciate.api.datatype.Syntax" --]
+ [@file name=syntax.slug + ".html"]
+ [@boilerplate title=title + ": " + syntax.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : syntax.label , "href" : syntax.slug + ".html"} ]]
+ <h1 class="page-header">${syntax.label}</h1>
+ [#list syntax.namespaces as ns]
+ [#if ns.types?size > 0]
+
+ <table class="table table-hover">
+ [#if ns.uri?? && ns.uri?length > 0]
+ <caption>Namespace <code>${ns.uri}</code>[#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</caption>
+ [#else]
+ <caption>Default Namespace [#if ns.schemaFile??] (<a href="${ns.schemaFile.href}">schema</a>)[/#if]</caption>
+ [/#if]
+ <thead>
+ <tr>
+ <th align="center">type</th>
+ <th align="center">description</th>
+ </tr>
+ </thead>
+ <tbody data-link="row" class="rowlink">
+ [#list ns.types as type]
+ [@processDataType type=type/]
+ <tr class="clickable-row" data-href="${type.slug}.html">
+ <td>[@deprecation element=type]${type.label}[/@deprecation]</td>
+ <td>[@deprecation element=type]${type.description}[/@deprecation]</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processDataType type]
+ [#-- @ftlvariable name="type" type="com.webcohesion.enunciate.api.datatype.DataType" --]
+ [@file name=type.slug + ".html"]
+ [@boilerplate title=title + ": " + type.label breadcrumbs=[{"title" : "Home", "href" : indexPageName}, {"title" : type.syntax.label , "href" : type.syntax.slug + ".html"}, {"title" : type.label , "href" : type.slug + ".html"} ] codeblocks=true]
+ <h1 class="page-header">${type.label} <small>Data Type</small></h1>
+ [#if type.deprecated??]
+
+ <div class="alert alert-danger">This data type has been deprecated. ${type.deprecated}</div>
+ [/#if]
+ [#if type.description??]
+
+ <p>${type.description}</p>
+ [/#if]
+
+ <dl class="dl-horizontal">
+ [#if type.namespace.uri??]
+ <dt>Namespace</dt>
+ [#if type.namespace.uri?length > 0]
+ <dd><code>${type.namespace.uri}</code></dd>
+ [#else]
+ <dd>(Default)</dd>
+ [/#if]
+ [/#if]
+ [#if type.namespace.schemaFile??]
+ <dt>Schema</dt>
+ <dd><a href="${type.namespace.schemaFile.href}">${type.namespace.schemaFile.href}</a></dd>
+ [/#if]
+ [#if type.since??]
+ <dt>Available Since</dt>
+ <dd>${type.since}</dd>
+ [/#if]
+ [#if type.version??]
+ <dt>Version</dt>
+ <dd>${type.version}</dd>
+ [/#if]
+ </dl>
+ [#if type.values??]
+
+ <table class="table">
+ <caption>Values</caption>
+ <thead>
+ <tr>
+ <th>value</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list type.values as value]
+ <tr>
+ <td>${value.value}</td>
+ <td>${value.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ </table>
+ [/#if]
+ [#if type.properties??]
+
+ <table class="table">
+ <caption>Properties</caption>
+ <thead>
+ <tr>
+ <th>name</th>
+ <th>data type</th>
+ [#list type.propertyMetadata?keys as meta]
+ <th>${type.propertyMetadata[meta]}</th>
+ [/#list]
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ [#list type.properties as property]
+ <tr>
+ <td>[@deprecation element=property]${property.name}[/@deprecation]</td>
+ <td>[@deprecation element=property][@referenceDataType referenceType=property.dataType/][/@deprecation]</td>
+ [#list type.propertyMetadata?keys as meta]
+ <td>[@deprecation element=property][@printPropertyMetadata property=property meta=meta/][/@deprecation]</td>
+ [/#list]
+ <td>[@deprecation element=property]${property.description!" "}[/@deprecation]</td>
+ </tr>
+ [/#list]
+ </tbody>
+ [#if type.supertypes??]
+ [#list type.supertypes as supertype]
+ [#if supertype.value?? && supertype.value.properties?? && supertype.value.properties?size > 0]
+ <tr>
+ <td colspan="${3 + type.propertyMetadata?size}"><h5 class="text-muted">Properties inherited from <a href="${supertype.slug}.html">${supertype.label}</a></h5></td>
+ </tr>
+ <tbody>
+ [#list supertype.value.properties as superProperty]
+ <tr>
+ <td>${superProperty.name}</td>
+ <td>[@referenceDataType referenceType=superProperty.dataType/]</td>
+ [#list type.propertyMetadata?keys as meta]
+ <td>[@printPropertyMetadata property=superProperty meta=meta/]</td>
+ [/#list]
+ <td>${superProperty.description!" "}</td>
+ </tr>
+ [/#list]
+ </tbody>
+ [/#if]
+ [/#list]
+ [/#if]
+ </table>
+ [/#if]
+ [#if type.example??]
+
+ <h2>Example</h2>
+
+ <pre class="prettyprint lang-${type.example.lang}">${type.example.body?xhtml}</pre>
+ [/#if]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro referenceDataType referenceType]
+[#-- @ftlvariable name="type" type="com.webcohesion.enunciate.api.datatype.DataTypeReference" --]
+[#if referenceType.containers??][#list referenceType.containers as container]${container?string} of [/#list][/#if][#if referenceType.slug??]<a href="${referenceType.slug}.html">[/#if]${referenceType.label!"(custom)"}[#if referenceType.slug??]</a>[/#if]
+[/#macro]
+[#macro printPropertyMetadata property meta]
+ [#assign metaValue=property[meta]!({ "structure" : true })/]
+ [#if metaValue?is_hash && metaValue.structure!false]
+[#if metaValue.href??]<a href="${metaValue.href}">[/#if][#if metaValue.title??]<abbr title="${metaValue.title}">[/#if]${metaValue.value!" "}[#if metaValue.title??]</abbr>[/#if][#if metaValue.href??]</a>[/#if]
+ [#else]
+${metaValue}
+ [/#if]
+[/#macro]
\ No newline at end of file
<jaxws-support disabled="true"/>
<docs disabled="false" title="Apache Archiva UI REST API" includeExampleXml="true" includeExampleJson="true"
- includeDefaultDownloads="false" docsSubdir="">
+ includeDefaultDownloads="false" docsSubdir="" freemarkerTemplate="${project.basedir}/src/enunciate/archiva.fmt" css="${project.basedir}/src/enunciate/archiva.css">
<!-- <war docsDir="apidocs" />-->
</docs>