You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2016/08/28 20:34:09 UTC
[1/7] incubator-juneau git commit: Fix javadoc generation.
Repository: incubator-juneau
Updated Branches:
refs/heads/master 39a0384f2 -> d89c87376
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-releng/juneau-doc.css
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-doc.css b/juneau-releng/juneau-doc.css
deleted file mode 100755
index e282e78..0000000
--- a/juneau-releng/juneau-doc.css
+++ /dev/null
@@ -1,361 +0,0 @@
-/**********************************************************************************
- * Juneau-specific javadoc styles.
- *
- * These are styles available in Javadocs in addition to the general Oracle
- * javadoc tags.
- *
- * Available classes:
- * fixedWidth - Force block to be 800 px wide.
- * table.styled - A table with alternating row colors.
- * h2/h3/h4/h5/h6.topic - Topic headers.
- * bordered - Put border around a block (e.g. an image).
- * padded - Put padding around a block (e.g. an image).
- * ol/ul.toc - Table of contents.
- * ol/ul.notes - Notes.
- * code.snippet - A code snippet.
- * ol/ul.spaced-list - A spaced list.
- * ol/ul.javahierarchy - A Java class hierarchy list.
- * li.c - Java class.
- * li.i - Java interface.
- * li.a - Java abstract class.
- * li.n - Java annotation.
- * li.p - Java package.
- * li.m - Java method.
- * li.f - Java field.
- * p.severe - A severe block.
- * p.warn - A warning block.
- * p.info - An info block.
- * p.todo - A TODO block.
- * a.doclink - A link to another document.
- *
- * Available tags:
- * <l> - A literal.
- * <property> - A property.
- **********************************************************************************/
-
-property {
- font-size: 9pt;
- white-space: pre;
- font-family: monospace;
- font-weight: bold;
-}
-
-.fixedWidth {
- max-width: 800px;
-}
-
-/*--- Override formatting on <table class='styled'> ---*/
-table.styled,.contentContainer .description table.styled,.contentContainer ul li table.styled,ul.blockList ul.blockList li.blockList table.styled
- {
- padding: 0px;
- position: relative;
- width: auto;
- border: 1px solid #9eadc0;
- margin-left: 20px;
- margin-right: 20px;
- border-collapse: collapse;
-}
-
-table.styled th { background-color: #dee3e9; border: 1px solid #9eadc0; padding: 3px 10px 3px 10px; }
-table.styled td { padding: 3px; }
-table.styled ul { padding: 0px 10px; }
-table.styled tr:nth-child(1) { background-color: #dee3e9; }
-table.styled tr:nth-child(2n+2) { background-color: #eeeeef; }
-table.styled tr:nth-child(2n+3) { background-color: white; }
-/* Same as r1 except with a border on the bottom */
-table.styled tr.bb { border-bottom: 1px solid #9eadc0 }
-table.styled tr.light { background-color: white !important;}
-table.styled tr.dark { background-color: #eeeeef !important; }
-
-/*--- Juneau topic headers ---*/
-h2.topic,
-h3.topic,
-h4.topic {
- margin-bottom: 20px;
- margin-top: 25px;
- padding-top: 3px;
- padding-left: 25px;
- color: #2c4557;
- border-top: 2px groove #9eadc0;
- background-image: url('data:image/gif;base64,R0lGODlhEAAQAIQfACZJcSdKcjFTejVWfT5fhUFih0ZnjEhojUxskFFwk1Z0l1d1mFp4ml98nmaComiEpGuHpnKNq3SOrHiRroGZtYeeuJGmv5erwp+yx6O1yqm6zrDA0sTQ3s3X4+Dn7v///yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEAAB8ALAAAAAAQABAAAAVk4CeOZGmWgmEQG/k0MHw4UY0gY1PvfG3kvaBhUqk4IMgkcuGrdJ7QaCfDiBgunKx2m1VYP5KNeEze0H4VjHrNVh9+HodlTq9bEr9PhMLv+ykOAyIaNEE8ACMFiouMigEnkJGQIQA7');
- background-repeat: no-repeat;
- background-position: left center;
-}
-h2.topic { font-size: 14pt; }
-h3.topic { font-size: 13pt; }
-h4.topic { font-size: 12pt; }
-
-h2.closed,
-h3.closed,
-h4.closed {
- background-image: url('data:image/gif;base64,R0lGODlhEAAQAIQYADNVfDhagUNkiUZnjEhojUxskE9vklFwlFd1mF17nWJ/oGaCo2+KqXKNq3aQrX2WsoGZtYObtoeeuJKowJ2wxqm6zrbF1sTQ3v///////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEAAB8ALAAAAAAQABAAAAVi4CeOZGmST6EGpLK8cNHMi6GI8qzvcyEikqBwGByIIJekcpmEiByWqHQadYgYlax2m2WIFpSweBxeiBKTtHqdTvwi8LgcjhAdHPi8Hn8QERiAgYKABCIAAoiJiogAJ46PjiEAOw==') !important;
-}
-
-div.topic { margin-left: 10px; }
-
-h6.figure {
- color: #2c4557;
- margin-left: 30px;
- margin-right: 30px;
- margin-top: 10px;
- margin-bottom: 0px;
- font-style: italic;
-}
-
-/*--- Override how Javadoc handles unordered lists inside .footer ---*/
-ul.normal {
- margin-top: 0px;
-}
-
-ul.normal li {
- font-size: 100%;
- list-style: disc;
-}
-
-/*--- Bordered images ---*/
-.bordered {
- border: 1px solid #cccccc;
- margin: 0px 20px;
- border-radius: 10px;
- box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
-}
-
-.padded {
- padding-left: 20px;
- padding-right: 20px;
-}
-
-/*--- Rows with bottom borders ---*/
-tr.borderbottom td {
- border-bottom: 1px solid #9eadc0
-}
-
-.nomargin {
- margin: 0px;
-}
-
-ol.toc, ol.notes,
-ul.toc, ul.notes,
-.toc ol, .notes ol,
-.toc ul, .notes ul {
- background: #dee3e9;
- margin: 0px;
- padding: 0px;
-}
-
-ul.toc, ul.notes,
-.toc ul, .notes ul {
- list-style: disc;
-}
-
-ol.toc p, ol.notes p,
-ul.toc p, ul.notes p,
-.toc ol p, .notes ol p,
-.toc ul p, .notes ul p,
-ol.toc div, ol.notes div,
-ul.toc div, ul.notes div,
-.toc ol div, .notes ol div,
-.toc ul div, .notes ul div {
- color: #353833;
- font: normal 1em Arial, Helvetica, sans-serif;
- font-size: 1em;
- padding-bottom: 5px;
- margin: 0px;
-}
-
-.toc li {
- background: #FFFFFF;
- margin-left: 30px;
- padding-left: 5px;
-}
-
-.notes li {
- background: #FFFFFF;
- margin-left: 30px;
- padding-left: 5px;
- padding-top: 10px;
-}
-
-/* Linear gradients */
-
-/* Light-colored background headers */
-h5.toc,h6.toc,
-h5.notes,h6.notes,
-h5.topic,h6.topic,
-h2.title,
-div.docSummary > div.block,
-div.contentContainer > div.block > p:first-child {
- background: linear-gradient(to bottom, #F5F5F5, #DEE3E9) repeat scroll 0% 0% transparent;
- background: -moz-linear-gradient(to bottom, #F5F5F5, #DEE3E9) repeat scroll 0% 0% transparent;
- background: -webkit-gradient(linear, left top, left bottom, from(#F5F5F5), to(#DEE3E9) );
-}
-
-/* Dark-colored background headers */
-div.header > div.subTitle > div.block,
-div.footer > div.subTitle > div.block > p:first-child,
-h1.title,
-div.contentContainer > h2:first-of-type,
-body > p:first-child {
- background: linear-gradient(to bottom, #3B596D, #6289A3) repeat scroll 0% 0% transparent;
- background: -moz-linear-gradient(to bottom, #3B596D, #6289A3) repeat scroll 0% 0% transparent;
- background: -webkit-gradient(linear, left top, left bottom, from(#3B596D), to(#6289A3) );
-}
-
-/* Header styles */
-
-h5.toc, h5.notes,
-h6.toc, h6.notes {
- color: #2C4557;
- margin-bottom: 0px;
- padding: 5px 30px;
- border-radius: 15px 15px 15px 0px;
- text-decoration: none;
- box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
-}
-
-h5.topic, h6.topic {
- color: #2C4557;
- padding: 5px 20px;
- margin: 30px 10px 20px 0px;
- text-decoration: none;
-}
-
-/* Light-colored title on package summary pages */
-div.docSummary > div.block,
-div.contentContainer > div.block > p:first-child {
- font-size: 1.2em;
- font-weight: bold;
- color: #2C4557;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 5px 30px;
- border-radius: 0px 0px 15px 15px;
- text-decoration: none;
-}
-
-/* Dark-colored title on overview page */
-div.header > div.subTitle > div.block,
-div.footer > div.subTitle > div.block > p:first-child,
-body > p:first-child {
- font-size: 1.2em;
- font-weight: bold;
- color: white;
- margin-bottom: 0px;
- padding: 5px 30px;
- border-radius: 15px;
- text-decoration: none;
-}
-
-/* Dark-colored package title on package summary pages */
-h1.title,
-div.contentContainer > h2:first-of-type {
- font-size: 1.2em;
- font-weight: bold;
- color: white;
- margin-bottom: 0px;
- padding: 5px 30px;
- border-radius: 15px 15px 0px 0px;
- text-decoration: none;
-}
-
-/* Class titles */
-h2.title {
- font-size: 1.2em;
- font-weight: bold;
- color: #2C4557;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 5px 30px;
- border-radius: 15px;
- text-decoration: none;
-}
-
-code.snippet {
- border: 1px solid #cccccc;
- margin: 2px;
- padding: 0px 5px;
- border-radius: 5px;
- background-color: #f8f8f8;
-}
-
-l {
- color: DarkBlue;
- font-weight: bold;
- font-style: italic;
- font-family: monospace;
- font-size: 1.2em;
-}
-
-.spaced-list li { padding:5px; }
-.footer .spaced-list ul { margin:0 }
-
-
-/* Java Hierarchy Tree */
-.javahierarchy li {
- padding-left: 30px;
- padding-top: 5px;
- padding-bottom: 5px;
- padding-top: 2px;
- list-style: none;
- background-repeat: no-repeat;
- background-position: left top;
-}
-.javahierarchy li.c {
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAC7klEQVQ4jZWUW2hTWRSGv31Jk2qaaBttvBUvUTGKl1qtUDoKCoIwCD75UgTxUm/YAR8EpaDOMDhIQcFUxToPE+ZhHnRUBF8GBsYHHdSiIkSLqGiF4i22Dck+Kd3zEBrPOSmj/ocf1j57/f9aZx/2wlqLn1jmYDmJ5RaWHLb8ZLH0YunEMnN8rWuhCiKsCuKSKoiiKgj7BRZVQfyoCiLg9hDWWgCCgzoOXAea+Db8A3xvIiOfgJJh9dtAELgNLP9GszH8DWzMTyk6EkA58mflyOXKkbi5yq7icvhP+usGyMaGuRO9y+5AO/485ch1ypEnAETkWbABeAEId8mWUCuX49cJyVBFO5fuX6Qjug8hPJIhYLZURh5QRgplJG6eqUsRkiEymQzJZJJYLEYqlQJge+MOkheW4dPUKCO3aWXEen8Hy6pXkAjOB6Crq4un+Qw1F4Kcrj/JhjfrsUOw5P1SnvQ+QielW9qkpZENfsMF4YXluK+vjwlbq6iaocnygZYHjXxszwMwob6KqnkewxatjKjzG0ZttBwPDw8TiEuUKZ2XmqiY+lv4c7LxSGdp5XgqAFBw8uU4HA6jdelvfgXyUhmRU0bg5svss3JGIpFADIIygql2Clcab3Kl8Saba7fg1ykjXkhlxD3/xqOB+/QPvgago6OD2SZB7ehkfph7mKbaNTTVruHhL0/I/1WsMBSJ3+s6gWP+3tfGN3CuNY3WuuK70uk0bW1tzDwWITQ/4N7aKRb+GpsGvAQCfmFyaCV7Fx2iubkZrTWZTIaenh66u7sJNweYtqvGnZ4D4sJay+Lz9d1A+3innOtzeHcjR/75CHbUEoxrJrWEmPxdNUJ6bsr+x7sHzmoAZcRBYDHQ6jeMNASJ7AlWVip6VteAFPB5fK04NT0
KXAXWjtfp/+APYFvvoTcFjyHAyp9mKOAocBionApeZIHTwPF7R/pHx156DMewunNWFGgDNgHTgSXACKWpdJfSUE3/e/xVzq/9DyomQ6ck1QE9AAAAAElFTkSuQmCC');
-}
-.javahierarchy li.i {
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAB70lEQVQ4jZWVPWgUQRiGn92d5cKZkIAQRUiMoCBoYUi6AyNYKIKI2AkShCv8QSzPIhYxAU2ZELTwrxERQeIPwhUKSkAsPKwCFgFPEhCtEvSc/cbTs9gz5OZmNuSFKZZ955nve9n5Nmg0Gtj6/uTXLuAcUAAGgXzz1SrwGZgD7vWeyi/be4P1wC8PVzqBGeAMoNpOalUdmALGd57u+d0G/HT/23bgBTC8AcjWPHB879ltq2vAj7eWcsB74MAmYf/1BjgyeL7PKAAtct0HGyoOkOtMu383vQjtkQMcAiaAUvDqxkI/UAUCl7NwYQ8dXTEAcRzzcrxCFDnj/QEMKC3mkg8GYH8FWgxR9Ndl7QJGlRY57IOlxNZHbYQo/ONzDyudmP5snlVhYohCZ4UABaVFtmYCXS37K+xTWkwWD/sipcDIZ9dKi6kBWzZXoRdYVVqkAhz0Aq0MExHCTGBiXmcC7ZYTkwV8qrTIbWAMiN1Au2VvhTXgUThbLn7VYu5qMbiWK0PPKs2Wiz/DpumyFjPvMl48cYd8rocgCKjX62jjhD3XYm7CuvF1cmiqG3gGjPgC8ugxMDpXKSUtQICj+yaiZp5XgI4NQCvANHCtvHB17eoErl/AyO6xbtKpfQzYAewnndBV4APpUH3wdnGyZu/9BxocEIfO9OfmAAAAAElFTkSuQmCC');
-}
-.javahierarchy li.a {
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACx0lEQVQ4jZWUTUhUURTHf3d8jo6NjdakfZhZSJkTZVgJiRW1kIKgDyJa9LGoSCiQVi3CKANpkdEiByqDQgqKwGpTUBQoEZIaBTU1m0QoMKKPccx5711Pi2km3xvD/MOBc+85///9cy4cRITMYKEI50ToFiE+rvRdhH4RmkQomYjrONgJ/HaCa3YCy04gk4RlJzhrJ8ger6FEBAAzrmYDD4BVTA1dwFbvNPkBJAVHvqkc4AVQNUWxFJ4B9XmFYnoAtEWLtqjSFowPkdV48x7gC3zFVzBKjr8fj9GAthSu3g3aohlAfRukFPgIqPFPZnnX45/1EKVyM+y87r/C/OBhlINBDCjzaItj2kK53eUVXkapXN5HIlRWVhIMBmlrawNg+cpDXGirdrvM1xb7DW2yye3AyKkmK3sxAOdbW7FG39F5A4qLTvP50yZ+xuDTlyr6+npZscxBXWXYFqVuwey8inQejUY5vA8WlQIM8SVawY4DydrSUggtcVBrDW0yM2NIEkinw8PDLJgL2kyeC/Ph6d2/ran7P5hvaCtDDtuKp3O/30+uNzmn/8AvjzaJazP5UioSsQ/pjvLycmI//ziRIooruimu6CZ3+m7cPG3y0aNNet2Fka89jMQGAWhsbOTHyBJkbAYFJafwBWrxBWo50TzA/UeZgoZt8QRY53SuGYo0ULKyk1AoRCgUcVQ7Ojq4fusFN1vBdo6iU72+xxxgAMh2DyQ6VMf0siZqamowDINIJEJ7ezvhcJjNdWO0HHe0x4HZSkR4dVeFgSMTTbnvLVy+A2+ioMegbB5s3wi76sHjcbQerdopl5SI0HtLeYHHQN2/vm8S3Ae2Ve8RSa+vnhsqANwD1k9R7Dawf80+GQX+7kOA51dVFnASOAFkbgUnvgMXgTN
rD8pY6tIhmEJXWAWAvcAWYC6wDLBJbqWXJJdqR12DxN3c3xwok/9rc3QeAAAAAElFTkSuQmCC');
-}
-.javahierarchy li.n {
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAD3klEQVQ4jaWUfUyVVRzHP899nvsi98LlzbgC8hIUaCiCxWyGOF9WiE2IZM4NMFn2Qrnsn1xz9qKW/KW1YZuWq0bWqDUFZ8O05cQSULBsUxHWNaFB7XovXu693APPPf3BHnZlrdb6br9/fud8P/udnXO+SCmZXUiZjZRNSNmJlIGoRR9S9iHlbqRM/zuvIqXEkCaEA3gfqAU0/llTQBPw1pTFMmk0Z4A2f8AFtAMP/wtots4DT07E2sdmgHaP1wpcBJb8R5ih74HHA0kJQgPQhHj3f8AAVgJ7gNeUBPftDMANKNE7nCaFOoedqpgYsjQNTYFhXefb0ASH744zpOuzoX4gS9PC4uXZsGKblY9cKcxR4JPOC3S3txMYuk1+bi4NDQ3Uulxs7R/kfIw92hYL1Cuuq9d6gSKjm2rWOJOTza27Y5SvKGN0aIiYp6rRFj6EYrOh/HaLo2tWUbp0KctPdTBWVBwNPaZpYjIjurM3bR5mJBtKS/FI2N3Vw3PZmcRrKleDIfYNj7DLP0633c7Tvw5wNGUeanKyYV9uUsMiSQ0L1LDAFZGsjY+jpf0kt91udnz2BW/m5fLLwADNhw5R4rBT2PENnt5euvwB1pStJPT1Vxh+NSzmmzQxiVElc2xoisKJD4/gfKKCnQX5uD0eyhcv4rtr1wEY/qkP0dPFHV1nbnoaE10/EsUImVQhAqoQqEKQbZn+HDdv3ODRivUkmM2cbmvDNPc+Fmx7EYCRkRHMcU5iFIWgEER8Pgy/KoTbpIbFZWNkXUwBEIlESE1NA2Dc68VeWESWzQrA6Ogo1rg4CuNi+flGP6rVFn1kt6aJybPACgBvMARATk4OA394iEQkNTU1+BOTqc+evrvKykqy1q0nxWblYFMTczKz0cTMVz6uplZ
t7Dfp+naTrqveYIjavPuRUnKyf5Cg1cry+Wk86Ephz+et4PHQsPUZEjWVVw8c5HRLC5kvbMdit2PS9YBJ17coUkoe+fTLD4DnAd4oWUJFXi6N+/bTk5HLaMcpfj/eimp3kFa9Ce/FC/iuXMaSlEz6pjoSS5YZ073UU7exWZFSsuzIMQtwBih1WMy8U5RPyeJFXLo5SO9YAN9EmHiblQVzE9l7rgtfKIRiMkU/3zag8uKzm+VMfD3W/LETOAGUyVCIYs8QVWtXs7CggMSEBO74/Vy53s8rr+/CWb4BsyPWgLUC9Z2NWyaAewO27MBhFdgF7JS6bhvp/oE/+3oIjo4wGRzH7IglNiOLB6o3Y4lz+oD3gLfP7dgWMRj3AA2t3t/sZDq11wGpQAHTCe0GLjEdqi1ndzYGZnv/Ahxrv7iITMWYAAAAAElFTkSuQmCC');
-}
-.javahierarchy li.p {
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACZklEQVQ4jZWVTUhUURiGn3PmNmNNcUUIxEJ0EYEF/SAhWSZKCUHYsk24MExTEdzkIsimhUQroxwyC5IW0aa6rgoEQQgXBUYLIdJczK4fk2FKx3vuaXGb4d5zR4Ze+DbnO+9zz3d+viu01kQ0KeqBXqAZOAbs+pdZB74CL4En9OiMaRVBoJsWu4F7wGXAin4pJBe4A9yy+vRWBLh5X1YDM0BjGZCpeeBCYsBbLwJz4zIBLABH/xNW0BzQkRzy8haAqxgLwRI2dv9ayKHdDby1z+Q/TZH/OAHaC6ZbgdvAdfH9rqwFVgFRyIqETdXgTx+kNZ7nIaVECH/K4tspahZ7iEkRhGaBOqkUg0ohlIJgFJRKpbAsi0rbxnEcAI6c7WbsXT2GZ49SdElX0e4qMCOo4TZYGsnR+PupX4EQfFENLH/Tpq/RchW15g4LA+h5oGSSqoaLxbFMJsOSDfvs0NRmsXwzFrnZssKmbuSHOVyU4zh0dnYyc1XSUB3aR89SKmrQgbHCoWSzWVZWVpieniadTtN2AA7uFRj+P5aryAHJ0AqNQxkdHUUKSMZhfyUMtwguHZeRvQZWLVeJD0BLGBgqg96TgmunYhH3NkBmTWDMPBRd0lxKr6RSPFKKre3uIfiPwsyXiJxSPBdaaxaG4mn8dlVUdlNz7qELQPcJyZWmaMmGBprG8w8Kb3kIOAScLmR3WoL5/h3F2WVKdoAJCLSvub64DbwGzpRbiqEXQFdrOr8RAgLM9sRjwA1gBKgoA/oFjAOp9sl8sfWIUr+AN90JG79rnwdqgMP4HXoVeI/fVJ91PN7Mmd6/kgcg4WKjGnYAAAAASUVORK5CYII=');
-}
-.javahierarchy li.m {
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAC/0lEQVQ4jZ2VbUiVZxjHf+fJlzLnoUQtLcOX3uwFi2gwiQljbOgmfdyXFIrKoEYEvXzID+VirGLMxrCI+hQsxMz1MnRz5JA4FrVFW8cyZ5Kd0l7gGJle9/Wspw/H83ieoyD1hwee+77u63//r+t6+D8+x3GIx6lT5AHVQAmwCkgZCw0BD4DzwOlNm3gUn+uLJTxeL6nAMWADkDDhJi9s4DvgQPW2ZJ1A+OMPL+cAF4E1UxDFowP4csfOtCGX8PvDz5KBTqD4HcmiaAc+27UnwyQAGJFvgeLMrEQ2bslyTzWfe8Hd4Ii7zs5JonJjprs+1/Cc+/dGAUqBWmCvVVvTm6vG7FRjsNVtBQAj5jf++rsJNQY1hoLCJE/8zM+buf3PpWh8W21N72xLjexQIz41gq3Gk1BWVkZ3TxtqBDXCoiUzJtRqq0bjH6iRKktFPlERVMSjcGBgAL/fT848GH39Cn8aZGQmMzj4zEP4v20TzVeRNZYayY0qiFXY0tICQPkXn9PbF2Bx0cyx/V+9Cm1XIWqkxFKRdFehGSdsbW3FcRwqKiro7rnCshV+z0WuQtVYhfMT1EhMPxLd93A4TNedfoqW51K4dDoL8tMIhZ4QDAbjSo4oHMOIZYwMGyMYI2hMD1NTU+m40gXA0aOHsCwfDQ1nSZ+V7SFUW4nmGyN9lorcHB/KeMkpKSm0tV7HcRzy8/MBaGxsZMG81XEle4bSZ6mRPyYbimVZPOp/THfXIAChUIhAIEDG7MWTljz2NFsqclJFNDIU74dtq6Hzz4cANDU1kZzoZ2ZSZtwZdyjDKnLW5zgO69edqCdiVwy96qf91iEAVi2sJDfrI3pCbdx50Eje3FJWFnzF03AXgX/rAFi7tJq56cUA25s7tv7kcxyH8g+PJQF
twDreDxeA9Zevfe249vVp8RE/8Avw8TuSNQBVv9/aPQpxBlta9M00YD+wD5g+BVEYqAMOtgf3v4lu+ib7BZQU1PiJuHYZkA0sJ+LQfcANIqZ65up/tcPxuW8B5sK/IDeOZ/cAAAAASUVORK5CYII=');
-}
-.javahierarchy li.f {
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACOElEQVQ4jZWUS2gTURSGv4kjSppSm4UExYqLuFGkoUUoSWOhouIT3LgqBVcWqjZkYSlaMIWKC4UUbKmCK8UHpD7ahaiREpWKWpduRBrQhVSRDiUovY9xERMmk4mpP1wY7rnnu+dx5xi2beNWfHRuG3AKiAIRwP/XZAELwAPgZm6o46vb13ACo6lcABgDegCz6qZKSeAycPH1cFxUATuGsyFgGmivA3LrJXBkLtVtlYG7h56sA94Arf8JK2kW2P929MCKCaCkuOSGpU60cqhtS5Xn7dxnrs58dG93ASPAOV8kOdWilRjQSuBcm4P+KhjA9w/TfMlex31eK9EXSU4FfUqK00oKQ0mBc9m2BiCdTmMYRnklEgm0VrjPKykalRS9ppKi2ysSZ/eDu/YRivVU2JUUbheAdlNJ0eKZmwOota4FcCtqhE9OVr9s4M7gUdrCoar9/vFnPJ1fqAXUppKyRoCe9/DtxSTWj2YCWyNe5l8+JUXBo8DllN1NyWQyaOXZFJQUeVNLMQ/E/xVhIByjOXKsMjfvmuZNJUXWC+hsir36pjw0lRQ3gPPAWqfl53IB27axLGu1wAJw17Btm42HL0xQHFcVst7dY2XxE/5wJw3b99QD9i/OjFwr/ctngR1Ap/NEIHK8/F0nwsfAODjG14a9ySbgEVA3FJfuA71Lz6/8rgACNHadWUOxnoPA+jqgJSANpJZnx3Rp0/B6wA2xviaKU/sgsAnYSXFC54H3FIfqrcKriYLb9w8elEANsOQ8SwAAAABJRU5ErkJggg==');
-}
-
-.javahierarchy ul {
- margin-top: 10px;
- padding-left: 5px;
-}
-
-p.severe, p.warn, p.info {
- background-repeat: no-repeat;
- background-position: left center;
- padding-left: 30px;
- min-height: 24px;
-}
-
-p.severe {
- color: DarkRed;
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAD2klEQVRIx9WWz4tVZRjHP+feuWfuvc7kOM74IzeSk7MwypgQrBZBtBoIghtFC6F/wdCopEhdRKKbaGGLIIXIsMJAihZulBBxwFUlFqLOHceZcebeuefX+/Np8c4YcR1zFi46cODAC+/n+X7f7/M+JxIRHuVT4hE/PQ9anD15qCxeXhXvG965UbF+p7MWb+wVp81VZ+xpr+2Powe/cCvtEa1k0ezJQ6MiciLe8fKu3nXrKce99NTq4D26vYBuL9D56yqLVy5ccsbueerIiasPDZj56uBekMNrdjdq1b4+pD2P5CnSmUO0gp4aUaVCNDBEu3mTqZ++y52xB579/Ntj/wmY/vKjT+tj4/tqQxuIFmaRZA6xCqxFjAGtEaUQpcBoov51+Me3MnvlMncunDuy6+TP+1cETB3/4I3qM69889jwRvxcE0wHvAfnwubGIFrDEkBUEYBAedsObly+yOzF82++ePbyqa4U3frs3dhbd7RWjfFT1yC7C1r9U61WwR5VIMvfy2oW29iJ86zfMITL08Pnnt8adwG8sY3ekZ1byq0ZJGshRY7kGRQZkoeXPEeKAilyKAqkKKDIIc+QTpvqrWuse3L7iMvSRldMnTHjsXNIMg9WISLBHu/BOsQaMDZYpDWidFCj8lBMkYE41vaUaGbpOPD1vwBWmbGyVnidIO27SBb8F+fB2nDIKmzulQ5VFymSpUiaQE+F0sAg9XqML/Ld3QqU3lTSGZJ08LPT9L1/fFUdO/dcP1EcU6mswRVs6QJYpZH520irg2tOrvpKcDcTot5JJOvDG/R9FJhpk+Vry0pBVKG15yVwHpwJEbUmpKnI8CpHsuUAgORQqlURZ1A6x2ua97NoIk+S0X5tiOI
a0WAc8u8skbMBoHVoLl0EmCoQXdyLcCSONE8Ry0S3RWnnbGvav9XXXw8HbO09ANaEQ7ZLCTI69IFR96B4B/U6M7fnQTjbDUg6p++2Fj4e2LZ5pK4yJC8Qa8GZALJLKowOQKODdc4g1lKqlGmLY/oG14HTXY32wpmL2iaLB+7cnESw+DxFkjaSdJBkEUkXg7J8KZqqAF0EBRHQV6XZbAO817CiV7zsfnl6/dENmwf3blm7hp7FDj7NQ7UuWIZ3S9Y5EKFUj9H1KjdmWkz+ybGGk3ceOHBcluxv/j4/f8vy4RPbN8abqhUwDpxGtAXxUIJSXEbqNW7nGX/82tLAQeCThx44ZwajUXGcGN7IruHhAXqB/t4yiNDJNAWemamMO1NcAt5uOPltVRMN4PtaVBbPawgN8YwgjC0tTYjnOnAK+OF1kdWPzP/NX8XfTeTdmoFvg/0AAAAASUVORK5CYII=');
-}
-p.warn {
- color: DarkRed;
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAADbElEQVRIx9WWQWhcVRSGv3PvzGSaTE06acVaK1ZQsRuDVrHtoiqCYKjSVUAEA12Ji+Au0kVpiXTntuJGcaFuXNWNa3HnIrjQRUHRWhJrE5NmMvPeu/fc4+LOZNJam2y68MHhPh73ff85/zn38cTMuJ+X4z5f912gpovvQq0GNY94D86DcyDbdqUEmlqmcZYYIcTPCKFjIVA7+fm9BXAOnCDiQByIZLj0FXKP9oB9J3unp9ASu3nlrKV0gpR6O1vk5C7gAXwQNietN6dcq43bux+ZeHWKZHOktIseSN8OYQjGMhgDszZm89QTdH+EzUVkRCHpPJrau2uybDfcBllDMrA0L2Mvj4suQ+pB6iHxBq797Diq87uooG/DAJ6hubEpHULTnPgEugZa5gjruJGEqc6FK6cP3VtgaEWGbsEVVC/I2MkGegOS8tqx87zyzMW8J6zgH3y6gYYLOwjkrC0lLI8jpoqpHjWNs+J7ENdAHNNvjfHG26MgDQgbuGYJWsxWXz53dAeBDM7wCFEhxgXXesET/oS4Cclo1kdp1Jp5GGIPyhX8w094Ym/hvwWSDuyAOICH4/hHzoisQLWeYbGgWW+yp9GEWIL2oFrD1VaR1uSZ8pMDx+9+0PSOWTYDs0tuFOj8DLHICdSVEXUkrUN3GTp/QOyA9XCtCdJS9xLw0r8riJFBWAhYCNPUD56S+BuEHsQAoYJYMjrSYLRZB+1meOxAdQuvvyL7HjpVfiTTdwpI+P6d4RSZeVL6wU8enpJwHWI1nKham/VqPxZLJvxV2LjaF9kESqx2gPKna4sox5ofmA4timEAh2Qz8sDhKQlLUBaQYoaniqTCp+9/jRfHex8+hYsbGa5d0IhwDX9wckp
/X5kBvhhaFCKEAFVoWFUtuFoHyk72PnYh3oKwAaY8eaLB4897IA2zjxEU6IFvbUJiobgoja0KLITBITvn2o8ekfJ6FkhlPyrQCucbvH52FlKA5W8hdPKp16yHgasK/GPjR/SX9XPA+aFFKYGGGVdbge5qznwLXvTXDShv5k9FbwnUMjgNBajAj62jxsyWQOP0Nw6g+OrFggD4APTPhURwlu+tgLCaxXwFzW3gQUh+ZlCIiMsV9GNt7e/L+4q/PiYWmJY5c6360X8xcZsltwkwXNcLLpNTiPK//6v4B6rvGz1BOnzJAAAAAElFTkSuQmCC');
-}
-p.info {
- background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEWklEQVRIx41WS28bVRT+zr3XY48fjZM0pamoFBolPNqiiAXbdAMItUJIrFCFZIslC8SaH8BDXbBkZ0sQIYRYIhALmiKxoUWtUF9ABUFqaFITx7Hd+jUPzrkznthp0zLy8R3PvfN993zncU14xLVwZmWOCCUQLQO0RERFvucZavB4hX9f4LF68+s31vbDoIcDfz7HQyWfc089PT+LyYk8XDeD/sC3NvAD7LS6bB3U6k0MBt4qE5VvfPX62mMJGLyUz2UqLy7N49DMBNZrfWzWB2h1A9zvhXZNOkVIaR4NkFJgojbqO9sIw6B8/cvXqvsSLJz+rDI1WSi9vHwS9aaPX//soNMPR1YRZg86uLPVh5WKP4rNla8gwHZzE54/qF7/4nT5AQLZ+VQxXxHwW+t9/LHejaYJybjy/gIWj7r4/XYXZz+4FU+RHTV/sQe417qLwB+Ur628aj1RQ81FllceAS5AAi7X4pMZKN41sdmR0QOlEGoDd+IwPzeVE299P5cQSEBF862Wvy+4mOxcLllDDEhaWY2i+4hIGY10YYrXq4pFkFQs5DJ/nXnpBZy/3BzRfARcdhqTHJEYbA/4NnpOtCtTIjhDtOsbCAP/KSN5Lqm4Xus9FJwsyBCMLLgfsiSSUGFonwXxqFXEILI47gH0OjslI0U0WSzg738H47k1Atr3Qlz+9PhYOp945yaUjmMQZ5QXu6CZ0Og0+qSWlVRo1k2j3QlGdh+90OsH2Gp6aPLc4ttXxwgMF4DhYrDmRJaKzaQ18tm0xGZJPCj2uDrv2SKKgLsM3O74CMVtDqTWZG2cQEce8DzFsbCeWOVCZB2+2dZFE0kQJC9utzwmCKGNsuBqaEaNEWj2QNbYOUUJSUTAxZcNbXYZaVyeFxSl9G9zW+A2Y8G
GOR7tMvJkrwcRAe2SWIbQtg9LQKqhpCs2mh20Wn0MPGFlgthoWEw6AtrrgcTB6p4eNYN8Ttuq5peuKGm5G7UWN7Ag0TGxoRcx0ZgHImFqJLgMnMoYO05PGE55TyS6IB5Ud9ptDgpxalFStUngRlrC6CUyigcJSexBjnc/M6nxz0ZHCKpKDgvPD1a7vR4m3QQ/LgXa/b2XIA6+MVG6phwDh3c/P2uwWeui0wtWf/nk+TUVNUQq3+82YVQIV2O3S+6RbIxgmABWKiZxFI4eYv1dhas3mg1Supw0OzmJAj4sev06HOIqHOl1w8q++NGxMYLv3p1JiIXsyJTCEwcI53+8y8mC9y6de2btgQPnuTe/qRA5JV9NIzAGyu5st1qHVSpyDDNGND922KDgElZ/qqHR8Ko/fzhf3vfIPH72Wz7kUxVfTyB0XDipGJjJVNwSctkoFacPaBwsGtS2urj2W7MhO7/48WL1sYe+PSyIKuzCKXIKyKQzyGXSyDJoNqu5iDjPKeCK93BnsyOVv8oZU7507tm1//WvYnidLP3ARKrELy9L4+KoFu3hwhUqRSR5Lqko2bIfxn8JsXvuUrTzzQAAAABJRU5ErkJggg==');
-}
-p.todo {
- color: graytext;
-}
-
-.topic a {
- border-bottom: 1px dotted #4c6b87;
-}
-
-/* Article links */
-a.doclink {
- font-weight: bold;
- border-bottom: 1px dotted #4c6b87;
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-server/src/main/java/org/apache/juneau/server/package.html
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/package.html b/juneau-server/src/main/java/org/apache/juneau/server/package.html
index 43f8fab..fb1752e 100755
--- a/juneau-server/src/main/java/org/apache/juneau/server/package.html
+++ b/juneau-server/src/main/java/org/apache/juneau/server/package.html
@@ -1334,7 +1334,7 @@
<ul class='javahierarchy'>
<li class='n'>{@link org.apache.juneau.server.annotation.RestResource#serializers() @RestResource.serializers()} - Annotation on servlet class.
<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#serializers() @RestMethod.serializers()} - Annotation on individual servlet methods.
- <li class='m'>{@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[])} - Override method to set the serializers programmatically.
+ <li class='m'>{@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[],Class[])} - Override method to set the serializers programmatically.
</ul>
<p>
The following are equivalent ways of defining serializers used by a servlet...
@@ -1356,9 +1356,9 @@
...
}
- <jc>// Example #3 - Serializers defined on servlet by overriding the createSerializers(ObjectMap,Class[]) method</jc>
+ <jc>// Example #3 - Serializers defined on servlet by overriding the createSerializers(ObjectMap,Class[],Class[]) method</jc>
<ja>@Override</ja>
- <jk>public</jk> SerializerGroup createSerializers(ObjectMap,Class[]) {
+ <jk>public</jk> SerializerGroup createSerializers(ObjectMap,Class[],Class[]) {
SerializerGroup g = <jk>new</jk> SerializerGroup()
.append(JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>);
@@ -1395,7 +1395,7 @@
<ul class='javahierarchy'>
<li class='n'>{@link org.apache.juneau.server.annotation.RestResource#parsers() @RestResource.parsers()} - Annotation on servlet class.
<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#parsers() @RestMethod.parsers()} - Annotation on individual servlet methods.
- <li class='m'>{@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[])} - Override method to set the parsers programmatically.
+ <li class='m'>{@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[],Class[])} - Override method to set the parsers programmatically.
</ul>
<p>
The following are equivalent ways of defining parsers used by a servlet...
@@ -1513,8 +1513,8 @@
</p>
<ul class='spaced-list'>
<li>By overriding the {@link org.apache.juneau.server.RestServlet#createProperties()} method.
- <li>By overriding the {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[])} and
- {@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[])} methods and setting properties on the
+ <li>By overriding the {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[],Class[])} and
+ {@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[],Class[])} methods and setting properties on the
serializers and parsers directly.
</ul>
@@ -1564,8 +1564,9 @@
}
</p>
<p>
- {@link org.apache.juneau.server.annotation.RestMethod#transforms() @RestMethod.transforms()}
- is the equivalent annotation for individual Java methods.
+ {@link org.apache.juneau.server.annotation.RestMethod#beanFilters() @RestMethod.beanFilters()} and
+ {@link org.apache.juneau.server.annotation.RestMethod#pojoSwaps() @RestMethod.pojoSwaps()}
+ are the equivalent annotations for individual Java methods.
</p>
<p>
Transforms can also be defined programmatically through the following:
@@ -1580,7 +1581,7 @@
<h6 class='topic'>Additional Information</h6>
<ul class='javahierarchy'>
<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#serializersInherit @RestMethod.serializersInherit()}
- <br>Controls how serializers inherit transforms from the servlet class.
+ <br>Controls how serializers inherit transforms (bean filters and POJO swaps) from the servlet class.
<li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#parsersInherit @RestMethod.parsersInherit()}
<br>Controls how parsers inherit transforms from the servlet class.
</ul>
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b0804c2..0da0b64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,8 +87,8 @@
<linksource>true</linksource>
<source>1.6</source>
<bootclasspath>${sun.boot.class.path}</bootclasspath>
- <overview>${basedir}/../juneau-core/src/main/java/overview.html</overview>
- <stylesheetfile>${basedir}/../juneau-releng/javadoc.css</stylesheetfile>
+ <overview>${basedir}/juneau-core/src/main/javadoc/overview.html</overview>
+ <stylesheetfile>${basedir}/juneau-core/src/main/javadoc/javadoc.css</stylesheetfile>
<use>true</use>
<additionalparam>-sourcetab 3 -notimestamp -Xdoclint:none</additionalparam>
<verbose>false</verbose>
@@ -97,6 +97,8 @@
<link>http://docs.oracle.com/javase/7/docs/api/</link>
<link>http://docs.oracle.com/javaee/5/api/</link>
</links>
+ <docfilessubdirs>true</docfilessubdirs>
+ <javadocDirectory>${basedir}/juneau-core/src/main/javadoc</javadocDirectory>
</configuration>
<executions>
<execution>
[2/7] incubator-juneau git commit: Fix javadoc generation.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/resources/juneau-code.css
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/resources/juneau-code.css b/juneau-core/src/main/javadoc/resources/juneau-code.css
new file mode 100644
index 0000000..de787f4
--- /dev/null
+++ b/juneau-core/src/main/javadoc/resources/juneau-code.css
@@ -0,0 +1,110 @@
+/**********************************************************************************
+ * Styles for embedded highlighted code.
+ *
+ * Allows you to embed paragraphs of highlighted code into HTML documents.
+ * For example:
+ * <p class='bcode'>
+ * <jk>public static void</jk> myMethod(<jk>int</jk> foo, String bar) <jk>throws</jk> Exception {
+ * System.<jsm>err</jsm>.println(<js>"Hello world!"</js>);
+ * }
+ * </p>
+ *
+ * The various tags can also be used outside of code blocks.
+ * For example:
+ * <div>This is how you represent a java <jk>int</jk>.</div>
+ *
+ * Available classes:
+ * code - Unbordered code block
+ * bcode - Bordered code block
+ *
+ * Available tags:
+ * <jc> - Java comment
+ * <jd> - Javadoc comment
+ * <jt> - Javadoc tag
+ * <jk> - Java keyword
+ * <js> - Java string
+ * <jf> - Java field
+ * <jsf> - Java static field
+ * <jsm> - Java static method
+ * <ja> - Java annotation
+ * <xt> - XML tag
+ * <xa> - XML attribute
+ * <xc> - XML comment
+ * <xs> - XML string
+ * <mk> - Manifest file key
+ * <mv> - Manifest file value
+ * <cc> - Config file comment
+ * <cs> - Config file section
+ * <ck> - Config file key
+ * <ce> - Config file entry
+ **********************************************************************************/
+
+/* Monospaced font size */
+.code,
+.bcode,
+jc,jd,jt,jk,js,jf,jsf,jsm,ja,
+xt,xa,xc,xs,
+mk,mv,
+cc,cs,ck,ce {
+ font-size: 9pt;
+ white-space: pre;
+ font-family: monospace;
+ tab-size: 3;
+ -moz-tab-size: 3;
+ -o-tab-size: 3;
+}
+
+/*--- Bordered code ---*/
+p.bcode {
+ border: 1px solid black;
+ margin: 0px 20px;
+ border-radius: 10px;
+ overflow: hidden;
+ background-color: #f8f8f8;
+ border-color: #cccccc;
+ box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
+}
+
+/*--- Bordered code in a section of a method doc ---*/
+dd p.bcode {
+ margin-left:0px;
+ margin-right:20px;
+}
+
+/* Override padding bottom in javadoc comments. */
+.blockList p.bcode {
+ padding-bottom: 0px !important;
+}
+
+/*--- Unbordered code ---*/
+p.code {
+ padding-bottom: 15px;
+ margin: -15px;
+}
+
+/*--- Java code effects ---*/
+jc { color: green; }
+jd { color: #3f5fbf; }
+jt { color: #7f9fbf; font-weight: bold; }
+jk { color: #7f0055; font-weight: bold; }
+js { color: blue; }
+jf { color: blue; }
+jsf { color: blue; font-style: italic; }
+jsm { font-style: italic; }
+ja { color: grey; }
+
+/*--- XML code effects ---*/
+xt { color: DarkCyan; }
+xa { color: purple; }
+xc { color: mediumblue; }
+xs { color: blue; font-style: italic; }
+
+/*--- Manifest-file code effects ---*/
+mk { color: DarkRed; font-weight: bold; }
+mv { color: DarkBlue;}
+
+/*--- Config file effects ---*/
+cc { color: green; }
+cs { color: DarkRed;font-weight: bold;}
+ck { color: DarkRed; }
+cv { color: DarkBlue; }
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/resources/juneau-doc.css
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/resources/juneau-doc.css b/juneau-core/src/main/javadoc/resources/juneau-doc.css
new file mode 100755
index 0000000..e282e78
--- /dev/null
+++ b/juneau-core/src/main/javadoc/resources/juneau-doc.css
@@ -0,0 +1,361 @@
+/**********************************************************************************
+ * Juneau-specific javadoc styles.
+ *
+ * These are styles available in Javadocs in addition to the general Oracle
+ * javadoc tags.
+ *
+ * Available classes:
+ * fixedWidth - Force block to be 800 px wide.
+ * table.styled - A table with alternating row colors.
+ * h2/h3/h4/h5/h6.topic - Topic headers.
+ * bordered - Put border around a block (e.g. an image).
+ * padded - Put padding around a block (e.g. an image).
+ * ol/ul.toc - Table of contents.
+ * ol/ul.notes - Notes.
+ * code.snippet - A code snippet.
+ * ol/ul.spaced-list - A spaced list.
+ * ol/ul.javahierarchy - A Java class hierarchy list.
+ * li.c - Java class.
+ * li.i - Java interface.
+ * li.a - Java abstract class.
+ * li.n - Java annotation.
+ * li.p - Java package.
+ * li.m - Java method.
+ * li.f - Java field.
+ * p.severe - A severe block.
+ * p.warn - A warning block.
+ * p.info - An info block.
+ * p.todo - A TODO block.
+ * a.doclink - A link to another document.
+ *
+ * Available tags:
+ * <l> - A literal.
+ * <property> - A property.
+ **********************************************************************************/
+
+property {
+ font-size: 9pt;
+ white-space: pre;
+ font-family: monospace;
+ font-weight: bold;
+}
+
+.fixedWidth {
+ max-width: 800px;
+}
+
+/*--- Override formatting on <table class='styled'> ---*/
+table.styled,.contentContainer .description table.styled,.contentContainer ul li table.styled,ul.blockList ul.blockList li.blockList table.styled
+ {
+ padding: 0px;
+ position: relative;
+ width: auto;
+ border: 1px solid #9eadc0;
+ margin-left: 20px;
+ margin-right: 20px;
+ border-collapse: collapse;
+}
+
+table.styled th { background-color: #dee3e9; border: 1px solid #9eadc0; padding: 3px 10px 3px 10px; }
+table.styled td { padding: 3px; }
+table.styled ul { padding: 0px 10px; }
+table.styled tr:nth-child(1) { background-color: #dee3e9; }
+table.styled tr:nth-child(2n+2) { background-color: #eeeeef; }
+table.styled tr:nth-child(2n+3) { background-color: white; }
+/* Same as r1 except with a border on the bottom */
+table.styled tr.bb { border-bottom: 1px solid #9eadc0 }
+table.styled tr.light { background-color: white !important;}
+table.styled tr.dark { background-color: #eeeeef !important; }
+
+/*--- Juneau topic headers ---*/
+h2.topic,
+h3.topic,
+h4.topic {
+ margin-bottom: 20px;
+ margin-top: 25px;
+ padding-top: 3px;
+ padding-left: 25px;
+ color: #2c4557;
+ border-top: 2px groove #9eadc0;
+ background-image: url('data:image/gif;base64,R0lGODlhEAAQAIQfACZJcSdKcjFTejVWfT5fhUFih0ZnjEhojUxskFFwk1Z0l1d1mFp4ml98nmaComiEpGuHpnKNq3SOrHiRroGZtYeeuJGmv5erwp+yx6O1yqm6zrDA0sTQ3s3X4+Dn7v///yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEAAB8ALAAAAAAQABAAAAVk4CeOZGmWgmEQG/k0MHw4UY0gY1PvfG3kvaBhUqk4IMgkcuGrdJ7QaCfDiBgunKx2m1VYP5KNeEze0H4VjHrNVh9+HodlTq9bEr9PhMLv+ykOAyIaNEE8ACMFiouMigEnkJGQIQA7');
+ background-repeat: no-repeat;
+ background-position: left center;
+}
+h2.topic { font-size: 14pt; }
+h3.topic { font-size: 13pt; }
+h4.topic { font-size: 12pt; }
+
+h2.closed,
+h3.closed,
+h4.closed {
+ background-image: url('data:image/gif;base64,R0lGODlhEAAQAIQYADNVfDhagUNkiUZnjEhojUxskE9vklFwlFd1mF17nWJ/oGaCo2+KqXKNq3aQrX2WsoGZtYObtoeeuJKowJ2wxqm6zrbF1sTQ3v///////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEAAB8ALAAAAAAQABAAAAVi4CeOZGmST6EGpLK8cNHMi6GI8qzvcyEikqBwGByIIJekcpmEiByWqHQadYgYlax2m2WIFpSweBxeiBKTtHqdTvwi8LgcjhAdHPi8Hn8QERiAgYKABCIAAoiJiogAJ46PjiEAOw==') !important;
+}
+
+div.topic { margin-left: 10px; }
+
+h6.figure {
+ color: #2c4557;
+ margin-left: 30px;
+ margin-right: 30px;
+ margin-top: 10px;
+ margin-bottom: 0px;
+ font-style: italic;
+}
+
+/*--- Override how Javadoc handles unordered lists inside .footer ---*/
+ul.normal {
+ margin-top: 0px;
+}
+
+ul.normal li {
+ font-size: 100%;
+ list-style: disc;
+}
+
+/*--- Bordered images ---*/
+.bordered {
+ border: 1px solid #cccccc;
+ margin: 0px 20px;
+ border-radius: 10px;
+ box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
+}
+
+.padded {
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
+/*--- Rows with bottom borders ---*/
+tr.borderbottom td {
+ border-bottom: 1px solid #9eadc0
+}
+
+.nomargin {
+ margin: 0px;
+}
+
+ol.toc, ol.notes,
+ul.toc, ul.notes,
+.toc ol, .notes ol,
+.toc ul, .notes ul {
+ background: #dee3e9;
+ margin: 0px;
+ padding: 0px;
+}
+
+ul.toc, ul.notes,
+.toc ul, .notes ul {
+ list-style: disc;
+}
+
+ol.toc p, ol.notes p,
+ul.toc p, ul.notes p,
+.toc ol p, .notes ol p,
+.toc ul p, .notes ul p,
+ol.toc div, ol.notes div,
+ul.toc div, ul.notes div,
+.toc ol div, .notes ol div,
+.toc ul div, .notes ul div {
+ color: #353833;
+ font: normal 1em Arial, Helvetica, sans-serif;
+ font-size: 1em;
+ padding-bottom: 5px;
+ margin: 0px;
+}
+
+.toc li {
+ background: #FFFFFF;
+ margin-left: 30px;
+ padding-left: 5px;
+}
+
+.notes li {
+ background: #FFFFFF;
+ margin-left: 30px;
+ padding-left: 5px;
+ padding-top: 10px;
+}
+
+/* Linear gradients */
+
+/* Light-colored background headers */
+h5.toc,h6.toc,
+h5.notes,h6.notes,
+h5.topic,h6.topic,
+h2.title,
+div.docSummary > div.block,
+div.contentContainer > div.block > p:first-child {
+ background: linear-gradient(to bottom, #F5F5F5, #DEE3E9) repeat scroll 0% 0% transparent;
+ background: -moz-linear-gradient(to bottom, #F5F5F5, #DEE3E9) repeat scroll 0% 0% transparent;
+ background: -webkit-gradient(linear, left top, left bottom, from(#F5F5F5), to(#DEE3E9) );
+}
+
+/* Dark-colored background headers */
+div.header > div.subTitle > div.block,
+div.footer > div.subTitle > div.block > p:first-child,
+h1.title,
+div.contentContainer > h2:first-of-type,
+body > p:first-child {
+ background: linear-gradient(to bottom, #3B596D, #6289A3) repeat scroll 0% 0% transparent;
+ background: -moz-linear-gradient(to bottom, #3B596D, #6289A3) repeat scroll 0% 0% transparent;
+ background: -webkit-gradient(linear, left top, left bottom, from(#3B596D), to(#6289A3) );
+}
+
+/* Header styles */
+
+h5.toc, h5.notes,
+h6.toc, h6.notes {
+ color: #2C4557;
+ margin-bottom: 0px;
+ padding: 5px 30px;
+ border-radius: 15px 15px 15px 0px;
+ text-decoration: none;
+ box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
+}
+
+h5.topic, h6.topic {
+ color: #2C4557;
+ padding: 5px 20px;
+ margin: 30px 10px 20px 0px;
+ text-decoration: none;
+}
+
+/* Light-colored title on package summary pages */
+div.docSummary > div.block,
+div.contentContainer > div.block > p:first-child {
+ font-size: 1.2em;
+ font-weight: bold;
+ color: #2C4557;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 5px 30px;
+ border-radius: 0px 0px 15px 15px;
+ text-decoration: none;
+}
+
+/* Dark-colored title on overview page */
+div.header > div.subTitle > div.block,
+div.footer > div.subTitle > div.block > p:first-child,
+body > p:first-child {
+ font-size: 1.2em;
+ font-weight: bold;
+ color: white;
+ margin-bottom: 0px;
+ padding: 5px 30px;
+ border-radius: 15px;
+ text-decoration: none;
+}
+
+/* Dark-colored package title on package summary pages */
+h1.title,
+div.contentContainer > h2:first-of-type {
+ font-size: 1.2em;
+ font-weight: bold;
+ color: white;
+ margin-bottom: 0px;
+ padding: 5px 30px;
+ border-radius: 15px 15px 0px 0px;
+ text-decoration: none;
+}
+
+/* Class titles */
+h2.title {
+ font-size: 1.2em;
+ font-weight: bold;
+ color: #2C4557;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 5px 30px;
+ border-radius: 15px;
+ text-decoration: none;
+}
+
+code.snippet {
+ border: 1px solid #cccccc;
+ margin: 2px;
+ padding: 0px 5px;
+ border-radius: 5px;
+ background-color: #f8f8f8;
+}
+
+l {
+ color: DarkBlue;
+ font-weight: bold;
+ font-style: italic;
+ font-family: monospace;
+ font-size: 1.2em;
+}
+
+.spaced-list li { padding:5px; }
+.footer .spaced-list ul { margin:0 }
+
+
+/* Java Hierarchy Tree */
+.javahierarchy li {
+ padding-left: 30px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-top: 2px;
+ list-style: none;
+ background-repeat: no-repeat;
+ background-position: left top;
+}
+.javahierarchy li.c {
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAC7klEQVQ4jZWUW2hTWRSGv31Jk2qaaBttvBUvUTGKl1qtUDoKCoIwCD75UgTxUm/YAR8EpaDOMDhIQcFUxToPE+ZhHnRUBF8GBsYHHdSiIkSLqGiF4i22Dck+Kd3zEBrPOSmj/ocf1j57/f9aZx/2wlqLn1jmYDmJ5RaWHLb8ZLH0YunEMnN8rWuhCiKsCuKSKoiiKgj7BRZVQfyoCiLg9hDWWgCCgzoOXAea+Db8A3xvIiOfgJJh9dtAELgNLP9GszH8DWzMTyk6EkA58mflyOXKkbi5yq7icvhP+usGyMaGuRO9y+5AO/485ch1ypEnAETkWbABeAEId8mWUCuX49cJyVBFO5fuX6Qjug8hPJIhYLZURh5QRgplJG6eqUsRkiEymQzJZJJYLEYqlQJge+MOkheW4dPUKCO3aWXEen8Hy6pXkAjOB6Crq4un+Qw1F4Kcrj/JhjfrsUOw5P1SnvQ+QielW9qkpZENfsMF4YXluK+vjwlbq6iaocnygZYHjXxszwMwob6KqnkewxatjKjzG0ZttBwPDw8TiEuUKZ2XmqiY+lv4c7LxSGdp5XgqAFBw8uU4HA6jdelvfgXyUhmRU0bg5svss3JGIpFADIIygql2Clcab3Kl8Saba7fg1ykjXkhlxD3/xqOB+/QPvgago6OD2SZB7ehkfph7mKbaNTTVruHhL0/I/1WsMBSJ3+s6gWP+3tfGN3CuNY3WuuK70uk0bW1tzDwWITQ/4N7aKRb+GpsGvAQCfmFyaCV7Fx2iubkZrTWZTIaenh66u7sJNweYtqvGnZ4D4sJay+Lz9d1A+3innOtzeHcjR/75CHbUEoxrJrWEmPxdNUJ6bsr+x7sHzmoAZcRBYDHQ6jeMNASJ7AlWVip6VteAFPB5fK04NT0
KXAXWjtfp/+APYFvvoTcFjyHAyp9mKOAocBionApeZIHTwPF7R/pHx156DMewunNWFGgDNgHTgSXACKWpdJfSUE3/e/xVzq/9DyomQ6ck1QE9AAAAAElFTkSuQmCC');
+}
+.javahierarchy li.i {
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAB70lEQVQ4jZWVPWgUQRiGn92d5cKZkIAQRUiMoCBoYUi6AyNYKIKI2AkShCv8QSzPIhYxAU2ZELTwrxERQeIPwhUKSkAsPKwCFgFPEhCtEvSc/cbTs9gz5OZmNuSFKZZ955nve9n5Nmg0Gtj6/uTXLuAcUAAGgXzz1SrwGZgD7vWeyi/be4P1wC8PVzqBGeAMoNpOalUdmALGd57u+d0G/HT/23bgBTC8AcjWPHB879ltq2vAj7eWcsB74MAmYf/1BjgyeL7PKAAtct0HGyoOkOtMu383vQjtkQMcAiaAUvDqxkI/UAUCl7NwYQ8dXTEAcRzzcrxCFDnj/QEMKC3mkg8GYH8FWgxR9Ndl7QJGlRY57IOlxNZHbYQo/ONzDyudmP5snlVhYohCZ4UABaVFtmYCXS37K+xTWkwWD/sipcDIZ9dKi6kBWzZXoRdYVVqkAhz0Aq0MExHCTGBiXmcC7ZYTkwV8qrTIbWAMiN1Au2VvhTXgUThbLn7VYu5qMbiWK0PPKs2Wiz/DpumyFjPvMl48cYd8rocgCKjX62jjhD3XYm7CuvF1cmiqG3gGjPgC8ugxMDpXKSUtQICj+yaiZp5XgI4NQCvANHCtvHB17eoErl/AyO6xbtKpfQzYAewnndBV4APpUH3wdnGyZu/9BxocEIfO9OfmAAAAAElFTkSuQmCC');
+}
+.javahierarchy li.a {
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACx0lEQVQ4jZWUTUhUURTHf3d8jo6NjdakfZhZSJkTZVgJiRW1kIKgDyJa9LGoSCiQVi3CKANpkdEiByqDQgqKwGpTUBQoEZIaBTU1m0QoMKKPccx5711Pi2km3xvD/MOBc+85///9cy4cRITMYKEI50ToFiE+rvRdhH4RmkQomYjrONgJ/HaCa3YCy04gk4RlJzhrJ8ger6FEBAAzrmYDD4BVTA1dwFbvNPkBJAVHvqkc4AVQNUWxFJ4B9XmFYnoAtEWLtqjSFowPkdV48x7gC3zFVzBKjr8fj9GAthSu3g3aohlAfRukFPgIqPFPZnnX45/1EKVyM+y87r/C/OBhlINBDCjzaItj2kK53eUVXkapXN5HIlRWVhIMBmlrawNg+cpDXGirdrvM1xb7DW2yye3AyKkmK3sxAOdbW7FG39F5A4qLTvP50yZ+xuDTlyr6+npZscxBXWXYFqVuwey8inQejUY5vA8WlQIM8SVawY4DydrSUggtcVBrDW0yM2NIEkinw8PDLJgL2kyeC/Ph6d2/ran7P5hvaCtDDtuKp3O/30+uNzmn/8AvjzaJazP5UioSsQ/pjvLycmI//ziRIooruimu6CZ3+m7cPG3y0aNNet2Fka89jMQGAWhsbOTHyBJkbAYFJafwBWrxBWo50TzA/UeZgoZt8QRY53SuGYo0ULKyk1AoRCgUcVQ7Ojq4fusFN1vBdo6iU72+xxxgAMh2DyQ6VMf0siZqamowDINIJEJ7ezvhcJjNdWO0HHe0x4HZSkR4dVeFgSMTTbnvLVy+A2+ioMegbB5s3wi76sHjcbQerdopl5SI0HtLeYHHQN2/vm8S3Ae2Ve8RSa+vnhsqANwD1k9R7Dawf80+GQX+7kOA51dVFnASOAFkbgUnvgMXgTN
rD8pY6tIhmEJXWAWAvcAWYC6wDLBJbqWXJJdqR12DxN3c3xwok/9rc3QeAAAAAElFTkSuQmCC');
+}
+.javahierarchy li.n {
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAD3klEQVQ4jaWUfUyVVRzHP899nvsi98LlzbgC8hIUaCiCxWyGOF9WiE2IZM4NMFn2Qrnsn1xz9qKW/KW1YZuWq0bWqDUFZ8O05cQSULBsUxHWNaFB7XovXu693APPPf3BHnZlrdb6br9/fud8P/udnXO+SCmZXUiZjZRNSNmJlIGoRR9S9iHlbqRM/zuvIqXEkCaEA3gfqAU0/llTQBPw1pTFMmk0Z4A2f8AFtAMP/wtots4DT07E2sdmgHaP1wpcBJb8R5ih74HHA0kJQgPQhHj3f8AAVgJ7gNeUBPftDMANKNE7nCaFOoedqpgYsjQNTYFhXefb0ASH744zpOuzoX4gS9PC4uXZsGKblY9cKcxR4JPOC3S3txMYuk1+bi4NDQ3Uulxs7R/kfIw92hYL1Cuuq9d6gSKjm2rWOJOTza27Y5SvKGN0aIiYp6rRFj6EYrOh/HaLo2tWUbp0KctPdTBWVBwNPaZpYjIjurM3bR5mJBtKS/FI2N3Vw3PZmcRrKleDIfYNj7DLP0633c7Tvw5wNGUeanKyYV9uUsMiSQ0L1LDAFZGsjY+jpf0kt91udnz2BW/m5fLLwADNhw5R4rBT2PENnt5euvwB1pStJPT1Vxh+NSzmmzQxiVElc2xoisKJD4/gfKKCnQX5uD0eyhcv4rtr1wEY/qkP0dPFHV1nbnoaE10/EsUImVQhAqoQqEKQbZn+HDdv3ODRivUkmM2cbmvDNPc+Fmx7EYCRkRHMcU5iFIWgEER8Pgy/KoTbpIbFZWNkXUwBEIlESE1NA2Dc68VeWESWzQrA6Ogo1rg4CuNi+flGP6rVFn1kt6aJybPACgBvMARATk4OA394iEQkNTU1+BOTqc+evrvKykqy1q0nxWblYFMTczKz0cTMVz6uplZ
t7Dfp+naTrqveYIjavPuRUnKyf5Cg1cry+Wk86Ephz+et4PHQsPUZEjWVVw8c5HRLC5kvbMdit2PS9YBJ17coUkoe+fTLD4DnAd4oWUJFXi6N+/bTk5HLaMcpfj/eimp3kFa9Ce/FC/iuXMaSlEz6pjoSS5YZ073UU7exWZFSsuzIMQtwBih1WMy8U5RPyeJFXLo5SO9YAN9EmHiblQVzE9l7rgtfKIRiMkU/3zag8uKzm+VMfD3W/LETOAGUyVCIYs8QVWtXs7CggMSEBO74/Vy53s8rr+/CWb4BsyPWgLUC9Z2NWyaAewO27MBhFdgF7JS6bhvp/oE/+3oIjo4wGRzH7IglNiOLB6o3Y4lz+oD3gLfP7dgWMRj3AA2t3t/sZDq11wGpQAHTCe0GLjEdqi1ndzYGZnv/Ahxrv7iITMWYAAAAAElFTkSuQmCC');
+}
+.javahierarchy li.p {
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACZklEQVQ4jZWVTUhUURiGn3PmNmNNcUUIxEJ0EYEF/SAhWSZKCUHYsk24MExTEdzkIsimhUQroxwyC5IW0aa6rgoEQQgXBUYLIdJczK4fk2FKx3vuaXGb4d5zR4Ze+DbnO+9zz3d+viu01kQ0KeqBXqAZOAbs+pdZB74CL4En9OiMaRVBoJsWu4F7wGXAin4pJBe4A9yy+vRWBLh5X1YDM0BjGZCpeeBCYsBbLwJz4zIBLABH/xNW0BzQkRzy8haAqxgLwRI2dv9ayKHdDby1z+Q/TZH/OAHaC6ZbgdvAdfH9rqwFVgFRyIqETdXgTx+kNZ7nIaVECH/K4tspahZ7iEkRhGaBOqkUg0ohlIJgFJRKpbAsi0rbxnEcAI6c7WbsXT2GZ49SdElX0e4qMCOo4TZYGsnR+PupX4EQfFENLH/Tpq/RchW15g4LA+h5oGSSqoaLxbFMJsOSDfvs0NRmsXwzFrnZssKmbuSHOVyU4zh0dnYyc1XSUB3aR89SKmrQgbHCoWSzWVZWVpieniadTtN2AA7uFRj+P5aryAHJ0AqNQxkdHUUKSMZhfyUMtwguHZeRvQZWLVeJD0BLGBgqg96TgmunYhH3NkBmTWDMPBRd0lxKr6RSPFKKre3uIfiPwsyXiJxSPBdaaxaG4mn8dlVUdlNz7qELQPcJyZWmaMmGBprG8w8Kb3kIOAScLmR3WoL5/h3F2WVKdoAJCLSvub64DbwGzpRbiqEXQFdrOr8RAgLM9sRjwA1gBKgoA/oFjAOp9sl8sfWIUr+AN90JG79rnwdqgMP4HXoVeI/fVJ91PN7Mmd6/kgcg4WKjGnYAAAAASUVORK5CYII=');
+}
+.javahierarchy li.m {
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAC/0lEQVQ4jZ2VbUiVZxjHf+fJlzLnoUQtLcOX3uwFi2gwiQljbOgmfdyXFIrKoEYEvXzID+VirGLMxrCI+hQsxMz1MnRz5JA4FrVFW8cyZ5Kd0l7gGJle9/Wspw/H83ieoyD1hwee+77u63//r+t6+D8+x3GIx6lT5AHVQAmwCkgZCw0BD4DzwOlNm3gUn+uLJTxeL6nAMWADkDDhJi9s4DvgQPW2ZJ1A+OMPL+cAF4E1UxDFowP4csfOtCGX8PvDz5KBTqD4HcmiaAc+27UnwyQAGJFvgeLMrEQ2bslyTzWfe8Hd4Ii7zs5JonJjprs+1/Cc+/dGAUqBWmCvVVvTm6vG7FRjsNVtBQAj5jf++rsJNQY1hoLCJE/8zM+buf3PpWh8W21N72xLjexQIz41gq3Gk1BWVkZ3TxtqBDXCoiUzJtRqq0bjH6iRKktFPlERVMSjcGBgAL/fT848GH39Cn8aZGQmMzj4zEP4v20TzVeRNZYayY0qiFXY0tICQPkXn9PbF2Bx0cyx/V+9Cm1XIWqkxFKRdFehGSdsbW3FcRwqKiro7rnCshV+z0WuQtVYhfMT1EhMPxLd93A4TNedfoqW51K4dDoL8tMIhZ4QDAbjSo4oHMOIZYwMGyMYI2hMD1NTU+m40gXA0aOHsCwfDQ1nSZ+V7SFUW4nmGyN9lorcHB/KeMkpKSm0tV7HcRzy8/MBaGxsZMG81XEle4bSZ6mRPyYbimVZPOp/THfXIAChUIhAIEDG7MWTljz2NFsqclJFNDIU74dtq6Hzz4cANDU1kZzoZ2ZSZtwZdyjDKnLW5zgO69edqCdiVwy96qf91iEAVi2sJDfrI3pCbdx50Eje3FJWFnzF03AXgX/rAFi7tJq56cUA25s7tv7kcxyH8g+PJQF
twDreDxeA9Zevfe249vVp8RE/8Avw8TuSNQBVv9/aPQpxBlta9M00YD+wD5g+BVEYqAMOtgf3v4lu+ib7BZQU1PiJuHYZkA0sJ+LQfcANIqZ65up/tcPxuW8B5sK/IDeOZ/cAAAAASUVORK5CYII=');
+}
+.javahierarchy li.f {
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACOElEQVQ4jZWUS2gTURSGv4kjSppSm4UExYqLuFGkoUUoSWOhouIT3LgqBVcWqjZkYSlaMIWKC4UUbKmCK8UHpD7ahaiREpWKWpduRBrQhVSRDiUovY9xERMmk4mpP1wY7rnnu+dx5xi2beNWfHRuG3AKiAIRwP/XZAELwAPgZm6o46vb13ACo6lcABgDegCz6qZKSeAycPH1cFxUATuGsyFgGmivA3LrJXBkLtVtlYG7h56sA94Arf8JK2kW2P929MCKCaCkuOSGpU60cqhtS5Xn7dxnrs58dG93ASPAOV8kOdWilRjQSuBcm4P+KhjA9w/TfMlex31eK9EXSU4FfUqK00oKQ0mBc9m2BiCdTmMYRnklEgm0VrjPKykalRS9ppKi2ysSZ/eDu/YRivVU2JUUbheAdlNJ0eKZmwOota4FcCtqhE9OVr9s4M7gUdrCoar9/vFnPJ1fqAXUppKyRoCe9/DtxSTWj2YCWyNe5l8+JUXBo8DllN1NyWQyaOXZFJQUeVNLMQ/E/xVhIByjOXKsMjfvmuZNJUXWC+hsir36pjw0lRQ3gPPAWqfl53IB27axLGu1wAJw17Btm42HL0xQHFcVst7dY2XxE/5wJw3b99QD9i/OjFwr/ctngR1Ap/NEIHK8/F0nwsfAODjG14a9ySbgEVA3FJfuA71Lz6/8rgACNHadWUOxnoPA+jqgJSANpJZnx3Rp0/B6wA2xviaKU/sgsAnYSXFC54H3FIfqrcKriYLb9w8elEANsOQ8SwAAAABJRU5ErkJggg==');
+}
+
+.javahierarchy ul {
+ margin-top: 10px;
+ padding-left: 5px;
+}
+
+p.severe, p.warn, p.info {
+ background-repeat: no-repeat;
+ background-position: left center;
+ padding-left: 30px;
+ min-height: 24px;
+}
+
+p.severe {
+ color: DarkRed;
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAD2klEQVRIx9WWz4tVZRjHP+feuWfuvc7kOM74IzeSk7MwypgQrBZBtBoIghtFC6F/wdCopEhdRKKbaGGLIIXIsMJAihZulBBxwFUlFqLOHceZcebeuefX+/Np8c4YcR1zFi46cODAC+/n+X7f7/M+JxIRHuVT4hE/PQ9anD15qCxeXhXvG965UbF+p7MWb+wVp81VZ+xpr+2Powe/cCvtEa1k0ezJQ6MiciLe8fKu3nXrKce99NTq4D26vYBuL9D56yqLVy5ccsbueerIiasPDZj56uBekMNrdjdq1b4+pD2P5CnSmUO0gp4aUaVCNDBEu3mTqZ++y52xB579/Ntj/wmY/vKjT+tj4/tqQxuIFmaRZA6xCqxFjAGtEaUQpcBoov51+Me3MnvlMncunDuy6+TP+1cETB3/4I3qM69889jwRvxcE0wHvAfnwubGIFrDEkBUEYBAedsObly+yOzF82++ePbyqa4U3frs3dhbd7RWjfFT1yC7C1r9U61WwR5VIMvfy2oW29iJ86zfMITL08Pnnt8adwG8sY3ekZ1byq0ZJGshRY7kGRQZkoeXPEeKAilyKAqkKKDIIc+QTpvqrWuse3L7iMvSRldMnTHjsXNIMg9WISLBHu/BOsQaMDZYpDWidFCj8lBMkYE41vaUaGbpOPD1vwBWmbGyVnidIO27SBb8F+fB2nDIKmzulQ5VFymSpUiaQE+F0sAg9XqML/Ld3QqU3lTSGZJ08LPT9L1/fFUdO/dcP1EcU6mswRVs6QJYpZH520irg2tOrvpKcDcTot5JJOvDG/R9FJhpk+Vry0pBVKG15yVwHpwJEbUmpKnI8CpHsuUAgORQqlURZ1A6x2ua97NoIk+S0X5tiOI
a0WAc8u8skbMBoHVoLl0EmCoQXdyLcCSONE8Ry0S3RWnnbGvav9XXXw8HbO09ANaEQ7ZLCTI69IFR96B4B/U6M7fnQTjbDUg6p++2Fj4e2LZ5pK4yJC8Qa8GZALJLKowOQKODdc4g1lKqlGmLY/oG14HTXY32wpmL2iaLB+7cnESw+DxFkjaSdJBkEUkXg7J8KZqqAF0EBRHQV6XZbAO817CiV7zsfnl6/dENmwf3blm7hp7FDj7NQ7UuWIZ3S9Y5EKFUj9H1KjdmWkz+ybGGk3ceOHBcluxv/j4/f8vy4RPbN8abqhUwDpxGtAXxUIJSXEbqNW7nGX/82tLAQeCThx44ZwajUXGcGN7IruHhAXqB/t4yiNDJNAWemamMO1NcAt5uOPltVRMN4PtaVBbPawgN8YwgjC0tTYjnOnAK+OF1kdWPzP/NX8XfTeTdmoFvg/0AAAAASUVORK5CYII=');
+}
+p.warn {
+ color: DarkRed;
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAADbElEQVRIx9WWQWhcVRSGv3PvzGSaTE06acVaK1ZQsRuDVrHtoiqCYKjSVUAEA12Ji+Au0kVpiXTntuJGcaFuXNWNa3HnIrjQRUHRWhJrE5NmMvPeu/fc4+LOZNJam2y68MHhPh73ff85/zn38cTMuJ+X4z5f912gpovvQq0GNY94D86DcyDbdqUEmlqmcZYYIcTPCKFjIVA7+fm9BXAOnCDiQByIZLj0FXKP9oB9J3unp9ASu3nlrKV0gpR6O1vk5C7gAXwQNietN6dcq43bux+ZeHWKZHOktIseSN8OYQjGMhgDszZm89QTdH+EzUVkRCHpPJrau2uybDfcBllDMrA0L2Mvj4suQ+pB6iHxBq797Diq87uooG/DAJ6hubEpHULTnPgEugZa5gjruJGEqc6FK6cP3VtgaEWGbsEVVC/I2MkGegOS8tqx87zyzMW8J6zgH3y6gYYLOwjkrC0lLI8jpoqpHjWNs+J7ENdAHNNvjfHG26MgDQgbuGYJWsxWXz53dAeBDM7wCFEhxgXXesET/oS4Cclo1kdp1Jp5GGIPyhX8w094Ym/hvwWSDuyAOICH4/hHzoisQLWeYbGgWW+yp9GEWIL2oFrD1VaR1uSZ8pMDx+9+0PSOWTYDs0tuFOj8DLHICdSVEXUkrUN3GTp/QOyA9XCtCdJS9xLw0r8riJFBWAhYCNPUD56S+BuEHsQAoYJYMjrSYLRZB+1meOxAdQuvvyL7HjpVfiTTdwpI+P6d4RSZeVL6wU8enpJwHWI1nKham/VqPxZLJvxV2LjaF9kESqx2gPKna4sox5ofmA4timEAh2Qz8sDhKQlLUBaQYoaniqTCp+9/jRfHex8+hYsbGa5d0IhwDX9wckp
/X5kBvhhaFCKEAFVoWFUtuFoHyk72PnYh3oKwAaY8eaLB4897IA2zjxEU6IFvbUJiobgoja0KLITBITvn2o8ekfJ6FkhlPyrQCucbvH52FlKA5W8hdPKp16yHgasK/GPjR/SX9XPA+aFFKYGGGVdbge5qznwLXvTXDShv5k9FbwnUMjgNBajAj62jxsyWQOP0Nw6g+OrFggD4APTPhURwlu+tgLCaxXwFzW3gQUh+ZlCIiMsV9GNt7e/L+4q/PiYWmJY5c6360X8xcZsltwkwXNcLLpNTiPK//6v4B6rvGz1BOnzJAAAAAElFTkSuQmCC');
+}
+p.info {
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEWklEQVRIx41WS28bVRT+zr3XY48fjZM0pamoFBolPNqiiAXbdAMItUJIrFCFZIslC8SaH8BDXbBkZ0sQIYRYIhALmiKxoUWtUF9ABUFqaFITx7Hd+jUPzrkznthp0zLy8R3PvfN993zncU14xLVwZmWOCCUQLQO0RERFvucZavB4hX9f4LF68+s31vbDoIcDfz7HQyWfc089PT+LyYk8XDeD/sC3NvAD7LS6bB3U6k0MBt4qE5VvfPX62mMJGLyUz2UqLy7N49DMBNZrfWzWB2h1A9zvhXZNOkVIaR4NkFJgojbqO9sIw6B8/cvXqvsSLJz+rDI1WSi9vHwS9aaPX//soNMPR1YRZg86uLPVh5WKP4rNla8gwHZzE54/qF7/4nT5AQLZ+VQxXxHwW+t9/LHejaYJybjy/gIWj7r4/XYXZz+4FU+RHTV/sQe417qLwB+Ur628aj1RQ81FllceAS5AAi7X4pMZKN41sdmR0QOlEGoDd+IwPzeVE299P5cQSEBF862Wvy+4mOxcLllDDEhaWY2i+4hIGY10YYrXq4pFkFQs5DJ/nXnpBZy/3BzRfARcdhqTHJEYbA/4NnpOtCtTIjhDtOsbCAP/KSN5Lqm4Xus9FJwsyBCMLLgfsiSSUGFonwXxqFXEILI47gH0OjslI0U0WSzg738H47k1Atr3Qlz+9PhYOp945yaUjmMQZ5QXu6CZ0Og0+qSWlVRo1k2j3QlGdh+90OsH2Gp6aPLc4ttXxwgMF4DhYrDmRJaKzaQ18tm0xGZJPCj2uDrv2SKKgLsM3O74CMVtDqTWZG2cQEce8DzFsbCeWOVCZB2+2dZFE0kQJC9utzwmCKGNsuBqaEaNEWj2QNbYOUUJSUTAxZcNbXYZaVyeFxSl9G9zW+A2Y8G
GOR7tMvJkrwcRAe2SWIbQtg9LQKqhpCs2mh20Wn0MPGFlgthoWEw6AtrrgcTB6p4eNYN8Ttuq5peuKGm5G7UWN7Ag0TGxoRcx0ZgHImFqJLgMnMoYO05PGE55TyS6IB5Ud9ptDgpxalFStUngRlrC6CUyigcJSexBjnc/M6nxz0ZHCKpKDgvPD1a7vR4m3QQ/LgXa/b2XIA6+MVG6phwDh3c/P2uwWeui0wtWf/nk+TUVNUQq3+82YVQIV2O3S+6RbIxgmABWKiZxFI4eYv1dhas3mg1Supw0OzmJAj4sev06HOIqHOl1w8q++NGxMYLv3p1JiIXsyJTCEwcI53+8y8mC9y6de2btgQPnuTe/qRA5JV9NIzAGyu5st1qHVSpyDDNGND922KDgElZ/qqHR8Ko/fzhf3vfIPH72Wz7kUxVfTyB0XDipGJjJVNwSctkoFacPaBwsGtS2urj2W7MhO7/48WL1sYe+PSyIKuzCKXIKyKQzyGXSyDJoNqu5iDjPKeCK93BnsyOVv8oZU7507tm1//WvYnidLP3ARKrELy9L4+KoFu3hwhUqRSR5Lqko2bIfxn8JsXvuUrTzzQAAAABJRU5ErkJggg==');
+}
+p.todo {
+ color: graytext;
+}
+
+.topic a {
+ border-bottom: 1px dotted #4c6b87;
+}
+
+/* Article links */
+a.doclink {
+ font-weight: bold;
+ border-bottom: 1px dotted #4c6b87;
+}
+
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-releng/javadoc.css
----------------------------------------------------------------------
diff --git a/juneau-releng/javadoc.css b/juneau-releng/javadoc.css
deleted file mode 100755
index a6459ad..0000000
--- a/juneau-releng/javadoc.css
+++ /dev/null
@@ -1,662 +0,0 @@
-/* Javadoc style sheet */
-
-/*
-Overall document style
-*/
-body {
- background-image: linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
- background-image: -o-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
- background-image: -moz-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
- background-image: -webkit-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
- background-image: -ms-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #cddddf), color-stop(20px, #eaeded), color-stop(70px, #ffffff) );
- background-repeat: no-repeat;
- background-attachment: fixed;
- color: #353833;
- font-family: Arial, Helvetica, sans-serif;
- font-size: 76%;
- margin: 0;
-}
-
-a:link,a:visited {
- text-decoration: none;
- color: #4c6b87;
-}
-
-a:hover,a:focus {
- text-decoration: none;
- color: #bb7a2a;
-}
-
-a:active {
- text-decoration: none;
- color: #4c6b87;
-}
-
-a[name] {
- color: #353833;
-}
-
-a[name]:hover {
- text-decoration: none;
- color: #353833;
-}
-
-h1 {
- font-size: 1.5em;
-}
-
-h2 {
- font-size: 1.4em;
-}
-
-h3 {
- font-size: 1.3em;
-}
-
-h4 {
- font-size: 1.2em;
-}
-
-h5 {
- font-size: 1.1em;
-}
-
-h6 {
- font-size: 1.0em;
-}
-
-ul {
- list-style-type: disc;
-}
-
-code,
-tt,
-pre,
-dt code {
- font-size: 9pt;
-}
-
-table tr td dt code {
- font-size: 9pt;
- vertical-align: top;
-}
-
-sup {
- font-size: .6em;
-}
-
-/*
-Document title and Copyright styles
-*/
-.clear {
- clear: both;
- height: 0px;
- overflow: hidden;
-}
-
-.aboutLanguage {
- float: right;
- padding: 0px 21px;
- font-size: .8em;
- z-index: 200;
- margin-top: -7px;
-}
-
-.legalCopy {
- margin-left: .5em;
-}
-
-.bar a,
-.bar a:link,
-.bar a:visited,
-.bar a:active {
- color: #ffffff;
- text-decoration: none;
-}
-
-.bar a:hover,
-.bar a:focus {
- color: #bb7a2a;
-}
-
-.tab {
- background-color: #0066ff;
- background-image: url('data:image/gif;base64,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');
- background-position: left top;
- background-repeat: no-repeat;
- color: #ffffff;
- padding: 8px;
- width: 5em;
- font-weight: bold;
-}
-/*
-Navigation bar styles
-*/
-.bar {
- background-image: url('data:image/gif;base64,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');
- background-repeat: repeat-x;
- color: #ffffff;
- padding: .8em .5em .4em .8em;
- height: auto; /*height:1.8em;*/
- font-size: 1em;
- margin: 0;
-}
-
-.topNav {
- background-image: url('data:image/gif;base64,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');
- background-repeat: repeat-x;
- color: #ffffff;
- float: left;
- padding: 0;
- width: 100%;
- clear: right;
- height: 2.8em;
- padding-top: 10px;
- overflow: hidden;
-}
-
-.bottomNav {
- margin-top: 10px;
- background-image: url('data:image/gif;base64,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');
- background-repeat: repeat-x;
- color: #ffffff;
- float: left;
- padding: 0;
- width: 100%;
- clear: right;
- height: 2.8em;
- padding-top: 10px;
- overflow: hidden;
-}
-
-.subNav {
- background-color: #dee3e9;
- border-bottom: 1px solid #9eadc0;
- float: left;
- width: 100%;
- overflow: hidden;
-}
-
-.subNav div {
- clear: left;
- float: left;
- padding: 0 0 5px 6px;
-}
-
-ul.navList,
-ul.subNavList {
- float: left;
- margin: 0 25px 0 0;
- padding: 0;
-}
-
-ul.navList li {
- list-style: none;
- float: left;
- padding: 3px 6px;
-}
-
-ul.subNavList li {
- list-style: none;
- float: left;
- font-size: 90%;
-}
-
-.topNav a:link,
-.topNav a:active,
-.topNav a:visited,
-.bottomNav a:link,
-.bottomNav a:active,
-.bottomNav a:visited {
- color: #ffffff;
- text-decoration: none;
-}
-
-.topNav a:hover,
-.bottomNav a:hover {
- text-decoration: none;
- color: #bb7a2a;
-}
-
-.navBarCell1Rev {
- background-image: url('data:image/gif;base64,R0lGODlhAwAeANUAAAAAAP///9+VNfChOu+gOeKXNr58Kr18Krp6KbZ3KMyGLr9+K7t6Krh4KbZ3KdKKMM+IL8yGL8mELsiDLsWBLcWCLcKALLl4KtKLMd+UNdyRNNmPM9WNMvCgOuqcOOaZN+WYN+KWNtqQNPGhO+yeOuucOeeaOPOiPP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACgALAAAAAADAB4AAAZAwJNwMBoQOgSS0lPymJ4f0CdUCGUEGY12I9pwvpgHBkJWRBQTyaRCqVjei/jBcGAgGI1LI+FI5Pd9f3x+eoJ9QQA7');
- background-color: #a88834;
- color: #ffffff;
- margin: auto 5px;
- border: 1px solid #c9aa44;
-}
-/*
-Page header and footer styles
-*/
-.header,
-.footer {
- clear: both;
- margin: 0 20px;
- padding: 5px 0 0 0;
-}
-
-.indexHeader {
- margin: 10px;
- position: relative;
-}
-
-.indexHeader h1 {
- font-size: 1.3em;
-}
-
-.title {
- color: #2c4557;
- margin: 10px 0;
-}
-
-.subTitle {
- margin: 5px 0 0 0;
-}
-
-.header ul {
- margin: 0 0 25px 0;
- padding: 0;
-}
-
-.footer ul {
- margin: 20px 0 5px 0;
-}
-
-.header ul li/*,
-.footer ul li*/ {
- list-style: none;
- font-size: 1.2em;
-}
-/*
-Heading styles
-*/
-div.details ul.blockList ul.blockList ul.blockList li.blockList h4,
-div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
- background-color: #dee3e9;
- border-top: 1px solid #9eadc0;
- border-bottom: 1px solid #9eadc0;
- margin: 0 0 6px -8px;
- padding: 2px 5px;
-}
-
-ul.blockList ul.blockList ul.blockList li.blockList h3 {
- background-color: #dee3e9;
- border-top: 1px solid #9eadc0;
- border-bottom: 1px solid #9eadc0;
- margin: 0 0 6px -8px;
- padding: 2px 5px;
-}
-
-ul.blockList ul.blockList li.blockList h3 {
- padding: 0;
- margin: 15px 0;
-}
-
-ul.blockList li.blockList h2 {
- padding: 0px 0 20px 0;
-}
-/*
-Page layout container styles
-*/
-.contentContainer,
-.sourceContainer,
-.classUseContainer,
-.serializedFormContainer,
-.constantValuesContainer {
- clear: both;
- padding: 10px 20px;
- position: relative;
-}
-
-.indexContainer {
- margin: 10px;
- position: relative;
- font-size: 1.0em;
-}
-
-.indexContainer h2 {
- font-size: 1.1em;
- padding: 0 0 3px 0;
-}
-
-.indexContainer ul {
- margin: 0;
- padding: 0;
-}
-
-.indexContainer ul li {
- list-style: none;
-}
-
-.contentContainer .description dl dt,
-.contentContainer .details dl dt,
-.serializedFormContainer dl dt {
- font-size: 1.1em;
- font-weight: bold;
- margin: 10px 0 0 0;
- color: #4e4e4e;
-}
-
-.contentContainer .description dl dd,
-.contentContainer .details dl dd,
-.serializedFormContainer dl dd {
- margin: 10px 0 10px 20px;
-}
-
-.serializedFormContainer dl.nameValue dt {
- margin-left: 1px;
- font-size: 1.1em;
- display: inline;
- font-weight: bold;
-}
-
-.serializedFormContainer dl.nameValue dd {
- margin: 0 0 0 1px;
- font-size: 1.1em;
- display: inline;
-}
-/*
-List styles
-*/
-ul.horizontal li {
- display: inline;
- font-size: 0.9em;
-}
-
-ul.inheritance {
- margin: 0;
- padding: 0;
-}
-
-ul.inheritance li {
- display: inline;
- list-style: none;
-}
-
-ul.inheritance li ul.inheritance {
- margin-left: 15px;
- padding-left: 15px;
- padding-top: 1px;
-}
-
-ul.blockList,
-ul.blockListLast {
- margin: 10px 0 10px 0;
- padding: 0;
-}
-
-ul.blockList li.blockList,
-ul.blockListLast li.blockList {
- list-style: none;
- margin-bottom: 25px;
-}
-
-ul.blockList ul.blockList li.blockList,
-ul.blockList ul.blockListLast li.blockList {
- padding: 0px 20px 5px 10px;
- border: 1px solid #9eadc0;
- background-color: #f9f9f9;
-}
-
-ul.blockList ul.blockList ul.blockList li.blockList,
-ul.blockList ul.blockList ul.blockListLast li.blockList {
- padding: 0 0 5px 8px;
- background-color: #ffffff;
- border: 1px solid #9eadc0;
- border-top: none;
-}
-
-ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
- margin-left: 0;
- padding-left: 0;
- padding-bottom: 15px;
- border: none;
- border-bottom: 1px solid #9eadc0;
-}
-
-ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
- list-style: none;
- border-bottom: none;
- padding-bottom: 0;
-}
-
-table tr td dl,
-table tr td dl dt,
-table tr td dl dd {
- margin-top: 0;
- margin-bottom: 1px;
-}
-/*
-Table styles
-*/
-.contentContainer table,
-.classUseContainer table,
-.constantValuesContainer table {
- border-bottom: 1px solid #9eadc0;
- width: 100%;
-}
-
-.contentContainer ul li table,
-.classUseContainer ul li table,
-.constantValuesContainer ul li table {
- width: 100%;
-}
-
-.contentContainer .description table,
-.contentContainer .details table {
- border-bottom: none;
-}
-
-.contentContainer ul li table th.colOne,
-.contentContainer ul li table th.colFirst,
-.contentContainer ul li table th.colLast,
-.classUseContainer ul li table th,
-.constantValuesContainer ul li table th,
-.contentContainer ul li table td.colOne,
-.contentContainer ul li table td.colFirst,
-.contentContainer ul li table td.colLast,
-.classUseContainer ul li table td,
-.constantValuesContainer ul li table td {
- vertical-align: top;
- padding-right: 20px;
-}
-
-.contentContainer ul li table th.colLast,
-.classUseContainer ul li table th.colLast,
-.constantValuesContainer ul li table th.colLast,
-.contentContainer ul li table td.colLast,
-.classUseContainer ul li table td.colLast,
-.constantValuesContainer ul li table td.colLast,
-.contentContainer ul li table th.colOne,
-.classUseContainer ul li table th.colOne,
-.contentContainer ul li table td.colOne,
-.classUseContainer ul li table td.colOne {
- padding-right: 3px;
-}
-
-.overviewSummary caption,
-.packageSummary caption,
-.contentContainer ul.blockList li.blockList caption,
-.summary caption,
-.classUseContainer caption,
-.constantValuesContainer caption {
- position: relative;
- text-align: left;
- background-repeat: no-repeat;
- color: #ffffff;
- font-weight: bold;
- clear: none;
- overflow: hidden;
- padding: 0px;
- margin: 0px;
-}
-
-caption a:link,
-caption a:hover,
-caption a:active,
-caption a:visited {
- color: #ffffff;
-}
-
-.overviewSummary caption span,
-.packageSummary caption span,
-.contentContainer ul.blockList li.blockList caption span,
-.summary caption span,
-.classUseContainer caption span,
-.constantValuesContainer caption span {
- white-space: nowrap;
- padding-top: 8px;
- padding-left: 8px;
- display: block;
- float: left;
- background-image: url('data:image/gif;base64,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');
- height: 18px;
-}
-
-.overviewSummary .tabEnd,.packageSummary .tabEnd,
-.contentContainer ul.blockList li.blockList .tabEnd,
-.summary .tabEnd,
-.classUseContainer .tabEnd,
-.constantValuesContainer .tabEnd {
- width: 10px;
- background-image: url('data:image/gif;base64,R0lGODlhEwAoAOYAAAAAAP////CgOe6fON+VNfChOu+gOeKXNvGiO+2fOtqOML58Kr17Kr18Krt6Kbp6KbZ2KLZ3KNuPMdqOMdqPMcyFLsyGLsiDLcOALMB+K799K79+K758K7t6Krh3Kbh4KbZ3KdKKMNKLMM+IL8yGL8mELsiDLsiELsaCLcWBLcWCLcJ/LMKALLl4Krh4KtKLMc+JMOWYNuOXNt+UNdyRNNmPM9WNMvCgOuqcOOibOOaYN+aZN+WYN+KWNt2SNdqQNNmQNNWOM/GhO/CgO+2eOuyeOuucOeudOeqcOeeaOPOiPN2VP92XQd+bSOezd+i1evnt4Pvy6v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFIALAAAAAATACgAAAf/gBQTCoQUChSGgoVNT1EBSpCRkpNDOkxQBQUICEIFnZ6ZnJkFO04GBpk3BqqrpwWqAgUDS0UJtkW4ubUJuLZECjhIR0dGOMXGwcTGSEgUSTlJ0dLS0NE50BM7PNs82jve3NoxPBQ9Mj09B+no6ufq5j0SM/MzBPXz9vj3BBI0PjQAAwb8N5CGghoIa/xQiHBhwxpAgNSgYCOIRRsYM1YMojHIhBcvQogMCTJESZMiTE4YAaPliJcwWcJ4OXMEBQsVSOi0QMICT5w7dZJQYKLEiRMlippQajRpiQsnJKhAQTWFCqtXp6KwuhXFBBYYWIgdOzasWAwrMEzYoCFDhg1wruOyfbvhbQYKDRowYLCgQV+/efnmbcBBQocHDhw8ONyBMeLFDyJT+OD
iw4cWly1jroz5socJESJAgAAiQmnToUmHBgFicuXMnTdn9gxatOrTp1Wbbk1Z82zZsT+nvr06NW7erzHH7h18Qm/YvjlrFm67NG7jq5H7Xi6d9nDrxUUfd709+m/qo8GjFp+dPPTM3VugJ75eN2v3ys03/74+93hEiEwgSIAACijBIBQEAgA7');
- background-repeat: no-repeat;
- background-position: top right;
- position: relative;
- float: left;
-}
-
-ul.blockList ul.blockList li.blockList table {
- margin: 0 0 12px 0px;
- width: 100%;
-}
-
-.tableSubHeadingColor {
- background-color: #EEEEFF;
-}
-
-.altColor {
- background-color: #eeeeef;
-}
-
-.rowColor {
- background-color: #ffffff;
-}
-
-.overviewSummary td,
-.packageSummary td,
-.contentContainer ul.blockList li.blockList td,
-.summary td,
-.classUseContainer td,.constantValuesContainer td {
- text-align: left;
- padding: 3px 3px 3px 7px;
-}
-
-th.colFirst,
-th.colLast,
-th.colOne,
-.constantValuesContainer th {
- background: #dee3e9;
- border-top: 1px solid #9eadc0;
- border-bottom: 1px solid #9eadc0;
- text-align: left;
- padding: 3px 3px 3px 7px;
-}
-
-td.colOne a:link,
-td.colOne a:active,
-td.colOne a:visited,
-td.colOne a:hover,
-td.colFirst a:link,
-td.colFirst a:active,
-td.colFirst a:visited,
-td.colFirst a:hover,
-td.colLast a:link,
-td.colLast a:active,
-td.colLast a:visited,
-td.colLast a:hover,
-.constantValuesContainer td a:link,
-.constantValuesContainer td a:active,
-.constantValuesContainer td a:visited,
-.constantValuesContainer td a:hover {
- font-weight: bold;
-}
-
-td.colFirst,
-th.colFirst {
- border-left: 1px solid #9eadc0;
- white-space: nowrap;
-}
-
-td.colLast,
-th.colLast {
- border-right: 1px solid #9eadc0;
-}
-
-td.colOne,
-th.colOne {
- border-right: 1px solid #9eadc0;
- border-left: 1px solid #9eadc0;
-}
-
-table.overviewSummary {
- padding: 0px;
- margin-left: 0px;
-}
-
-table.overviewSummary td.colFirst,
-table.overviewSummary th.colFirst,
-table.overviewSummary td.colOne,
-table.overviewSummary th.colOne {
- width: 25%;
- vertical-align: middle;
-}
-
-table.packageSummary td.colFirst,
-table.overviewSummary th.colFirst {
- width: 25%;
- vertical-align: middle;
-}
-/*
-Content styles
-*/
-.description pre {
- margin-top: 0;
-}
-
-.deprecatedContent {
- margin: 0;
- padding: 10px 0;
-}
-
-.docSummary {
- padding: 0;
-}
-
-/*
-Formatting effect styles
-*/
-.sourceLineNo {
- color: green;
- padding: 0 30px 0 0;
-}
-
-h1.hidden {
- visibility: hidden;
- overflow: hidden;
- font-size: .9em;
-}
-
-.block {
- display: block;
- margin: 0px;
-}
-
-.strong {
- font-weight: bold;
-}
-
-@import url('juneau-code.css');
-@import url('juneau-doc.css');
-
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-releng/juneau-code.css
----------------------------------------------------------------------
diff --git a/juneau-releng/juneau-code.css b/juneau-releng/juneau-code.css
deleted file mode 100644
index de787f4..0000000
--- a/juneau-releng/juneau-code.css
+++ /dev/null
@@ -1,110 +0,0 @@
-/**********************************************************************************
- * Styles for embedded highlighted code.
- *
- * Allows you to embed paragraphs of highlighted code into HTML documents.
- * For example:
- * <p class='bcode'>
- * <jk>public static void</jk> myMethod(<jk>int</jk> foo, String bar) <jk>throws</jk> Exception {
- * System.<jsm>err</jsm>.println(<js>"Hello world!"</js>);
- * }
- * </p>
- *
- * The various tags can also be used outside of code blocks.
- * For example:
- * <div>This is how you represent a java <jk>int</jk>.</div>
- *
- * Available classes:
- * code - Unbordered code block
- * bcode - Bordered code block
- *
- * Available tags:
- * <jc> - Java comment
- * <jd> - Javadoc comment
- * <jt> - Javadoc tag
- * <jk> - Java keyword
- * <js> - Java string
- * <jf> - Java field
- * <jsf> - Java static field
- * <jsm> - Java static method
- * <ja> - Java annotation
- * <xt> - XML tag
- * <xa> - XML attribute
- * <xc> - XML comment
- * <xs> - XML string
- * <mk> - Manifest file key
- * <mv> - Manifest file value
- * <cc> - Config file comment
- * <cs> - Config file section
- * <ck> - Config file key
- * <ce> - Config file entry
- **********************************************************************************/
-
-/* Monospaced font size */
-.code,
-.bcode,
-jc,jd,jt,jk,js,jf,jsf,jsm,ja,
-xt,xa,xc,xs,
-mk,mv,
-cc,cs,ck,ce {
- font-size: 9pt;
- white-space: pre;
- font-family: monospace;
- tab-size: 3;
- -moz-tab-size: 3;
- -o-tab-size: 3;
-}
-
-/*--- Bordered code ---*/
-p.bcode {
- border: 1px solid black;
- margin: 0px 20px;
- border-radius: 10px;
- overflow: hidden;
- background-color: #f8f8f8;
- border-color: #cccccc;
- box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
-}
-
-/*--- Bordered code in a section of a method doc ---*/
-dd p.bcode {
- margin-left:0px;
- margin-right:20px;
-}
-
-/* Override padding bottom in javadoc comments. */
-.blockList p.bcode {
- padding-bottom: 0px !important;
-}
-
-/*--- Unbordered code ---*/
-p.code {
- padding-bottom: 15px;
- margin: -15px;
-}
-
-/*--- Java code effects ---*/
-jc { color: green; }
-jd { color: #3f5fbf; }
-jt { color: #7f9fbf; font-weight: bold; }
-jk { color: #7f0055; font-weight: bold; }
-js { color: blue; }
-jf { color: blue; }
-jsf { color: blue; font-style: italic; }
-jsm { font-style: italic; }
-ja { color: grey; }
-
-/*--- XML code effects ---*/
-xt { color: DarkCyan; }
-xa { color: purple; }
-xc { color: mediumblue; }
-xs { color: blue; font-style: italic; }
-
-/*--- Manifest-file code effects ---*/
-mk { color: DarkRed; font-weight: bold; }
-mv { color: DarkBlue;}
-
-/*--- Config file effects ---*/
-cc { color: green; }
-cs { color: DarkRed;font-weight: bold;}
-ck { color: DarkRed; }
-cv { color: DarkBlue; }
[6/7] incubator-juneau git commit: Fix javadoc generation.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/overview.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/overview.html b/juneau-core/src/main/java/overview.html
deleted file mode 100644
index f68b543..0000000
--- a/juneau-core/src/main/java/overview.html
+++ /dev/null
@@ -1,7673 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <style type="text/css">
- /* For viewing in file system and page designer */
- @IMPORT url("../../../../juneau-releng/javadoc.css");
- @IMPORT url("../../../../juneau-releng/juneau-doc.css");
- @IMPORT url("../../../../juneau-releng/juneau-code.css");
-
- body {
- margin: 20px;
- }
- .spaced-list li { padding:5px; }
- .footer .spaced-list ul { margin:0 }
- </style>
- <script type="text/javascript">
- /* Replace all @code and @link tags. */
- window.onload = function() {
- document.body.innerHTML = document.body.innerHTML.replace(/\{\@code ([^\}]+)\}/g, '<code>$1<\/code>');
- document.body.innerHTML = document.body.innerHTML.replace(/\{\@link (([^\}]+)\.)?([^\.\}]+)\}/g, '<code>$3<\/code>');
- }
- </script>
-</head>
-<body>
-<p>Apache Juneau Overview</p>
-<script type="text/javascript">
- function toggle(x) {
- var div = x.nextSibling;
- while (div != null && div.nodeType != 1)
- div = div.nextSibling;
- if (div != null) {
- var d = div.style.display;
- if (d == 'block' || d == '') {
- div.style.display = 'none';
- x.className += " closed";
- } else {
- div.style.display = 'block';
- x.className = x.className.replace(/(?:^|\s)closed(?!\S)/g , '' );
- }
- }
- }
-</script>
-<p>
- A generalized toolkit for converting POJOs to and from a variety of content types (JSON, XML, HTML, URLs, RDF/XML, N-Tuple, Turtle, N3, SOAP, Cognos, ATOM), and a REST toolkit for building up REST interfaces using simple POJOs.
-</p>
-
-<a id='TOC'></a><h5 class='toc'>Table of Contents</h5>
-<ol class='toc'>
- <li><p><a class='doclink' href='#Intro'>Juneau - What is it?</a></p>
- <li><p><a class='doclink' href='#Core'>Juneau Core (juneau.jar)</a></p>
- <ol>
- <li><p><a class='doclink' href='#Core.PojoCategories'>POJO Categories</a></p>
- <li><p><a class='doclink' href='#Core.Serializers'>Serializers</a></p>
- <li><p><a class='doclink' href='#Core.Parsers'>Parsers</a></p>
- <li><p><a class='doclink' href='#Core.ObjectMap'>ObjectMap and ObjectList</a></p>
- <li><p><a class='doclink' href='#Core.ConfigurableProperties'>Configurable Properties</a></p>
- <li><p><a class='doclink' href='#Core.Annotations'>Annotations</a></p>
- <li><p><a class='doclink' href='#Core.Transforms'>Transforms</a></p>
- <li><p><a class='doclink' href='#Core.SimpleVarLanguage'>Simple Variable Language</a></p>
- <li><p><a class='doclink' href='#Core.ConfigFile'>Configuration Files</a></p>
- <li><p><a class='doclink' href='#Core.SupportedLanguages'>Supported Languages</a></p>
- </ol>
- <li><p><a class='doclink' href='#Server'>Juneau Server (juneau-server.jar)</a></p>
- <li><p><a class='doclink' href='#Client'>Juneau Client (juneau-client.jar)</a></p>
- <li><p><a class='doclink' href='#Remoteable'>Remoteable services</a></p>
- <li><p><a class='doclink' href='#Microservices'>Juneau Microservices (juneau-microservice.jar)</a></p>
- <li><p><a class='doclink' href='#Samples'>Samples</a></p>
- <ol>
- <li><p><a class='doclink' href='#Samples.Installing'>Installing in Eclipse</a></p>
- <li><p><a class='doclink' href='#Samples.Running'>Running in Eclipse</a></p>
- <li><p><a class='doclink' href='#Samples.Building'>Building and Running from Command-Line</a></p>
- <li><p><a class='doclink' href='#Samples.RestResource'>MANIFEST.MF</a></p>
- <li><p><a class='doclink' href='#Samples.RootResources'>RootResources</a></p>
- <li><p><a class='doclink' href='#Samples.HelloWorldResource'>HelloWorldResource</a></p>
- <li><p><a class='doclink' href='#Samples.MethodExampleResource'>MethodExampleResource</a></p>
- <li><p><a class='doclink' href='#Samples.UrlEncodedFormResource'>UrlEncodedFormResource</a></p>
- <li><p><a class='doclink' href='#Samples.RequestEchoResource'>RequestEchoResource</a></p>
- <li><p><a class='doclink' href='#Samples.AddressBookResource'>AddressBookResource</a></p>
- <ol>
- <li><p><a class='doclink' href='#Samples.AddressBookResource.Classes'>Classes</a></p>
- <li><p><a class='doclink' href='#Samples.AddressBookResource.Demo'>Demo</a></p>
- <li><p><a class='doclink' href='#Samples.AddressBookResource.Traversable'>Traversable</a></p>
- <li><p><a class='doclink' href='#Samples.AddressBookResource.Queryable'>Queryable</a></p>
- <li><p><a class='doclink' href='#Samples.AddressBookResource.Introspectable'>Introspectable</a></p>
- <li><p><a class='doclink' href='#Samples.AddressBookResource.RestClient'>ClientTest</a></p>
- <li><p><a class='doclink' href='#Samples.AddressBookResource.Browser'>Browser Tips</a></p>
- </ol>
- <li><p><a class='doclink' href='#Samples.SampleRemoteableServlet'>SampleRemoteableServlet</a></p>
- <li><p><a class='doclink' href='#Samples.TempDirResource'>TempDirResource</a></p>
- <li><p><a class='doclink' href='#Samples.AtomFeedResource'>AtomFeedResource</a></p>
- <li><p><a class='doclink' href='#Samples.DockerRegistryResource'>DockerRegistryResource</a></p>
- <li><p><a class='doclink' href='#Samples.TumblrParserResource'>TumblrParserResource</a></p>
- <li><p><a class='doclink' href='#Samples.PhotosResource'>PhotosResource</a></p>
- <li><p><a class='doclink' href='#Samples.JsonSchemaResource'>JsonSchemaResource</a></p>
- <li><p><a class='doclink' href='#Samples.SqlQueryResource'>SqlQueryResource</a></p>
- <li><p><a class='doclink' href='#Samples.ConfigResource'>ConfigResource</a></p>
- <li><p><a class='doclink' href='#Samples.LogsResource'>LogsResource</a></p>
- </ol>
- <li><p><a class='doclink' href='#Cookbook'>Cookbook Examples</a></p>
- <ol>
- <li><p><a class='doclink' href='#Cookbook.Core'>Core API</a></p>
- <li><p><a class='doclink' href='#Cookbook.Server'>Server API</a></p>
- <ol>
- <li><p><a class='doclink' href='#Cookbook.Server.applyDoubletransform'>Apply a transform that changes the format of doubles</a></p>
- <li><p><a class='doclink' href='#Cookbook.Server.applyTransformsSubset'>Apply transforms to a subset of serializers or parsers</a></p>
- </ol>
- <li><p><a class='doclink' href='#Cookbook.Client'>Client API</a></p>
- <ol>
- </ol>
- <li><p><a class='doclink' href='#Cookbook.Microservice'>Microservice API</a></p>
- <ol>
- </ol>
- </ol>
- <li><p><a class='doclink' href='#BestPractices'>Best Practices</a></p>
- <li><p><a class='doclink' href='#ImportantLinks'>Important Documentation Links</a></p>
- <li><p><a class='doclink' href='#ReleaseNotes'>Release Notes</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="Intro"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Juneau - What is it?</h2>
-<div class='topic'>
- <p>
- Juneau started off as a simple library for serializing and parsing POJOs to and from JSON.
- Since then, it has expanded into serializing and parsing a variety of other content types.
- Later, entire REST client, server, and microservice APIs were developed that utilized the power of these serializers and parsers.
- Together, these features allow the construction of powerful REST interfaces wrapped around existing POJOs using very little code.
- </p>
-
- <h5 class='toc'>Features</h5>
- <ol class='toc'>
- <li>
- <p>Extensive and extensible support for a large variety of POJOs, including structured data (beans) and unstructured data (<l>Maps</l> and <l>Collections</l>).</p>
- <li>
- <p>Support for serializing POJO models to:</p>
- <ul>
- <li>JSON (including variants)
- <li>XML
- <li>HTML
- <li>URL-Encoding
- <li>UON (URL-Encoded Object Notation)
- <li>MessagePack
- <li>RDF/XML (including abbreviated)
- <li>N-Triple
- <li>Turtle
- <li>N3
- <li>SOAP/XML
- </ul>
- <li>
- <p>Support for parsing the following into POJO models:</p>
- <ul>
- <li>JSON (including lax syntax, comments, concatenated strings)
- <li>XML
- <li>HTML
- <li>URL-Encoding
- <li>UON (URL-Encoded Object Notation)
- <li>MessagePack
- <li>RDF/XML (including abbreviated)
- <li>N-Triple
- <li>Turtle
- <li>N3
- </ul>
- <li>
- <p>Data Transfer Objects for the following:</p>
- <ul>
- <li>ATOM
- <li>Cognos
- <li>JSON-Schema
- </ul>
- <p>DTOs can be used with any serializers and parsers.
- <li>
- <p>Support for serializing POJO meta-models (specifically the POJO class structure itself) to:</p>
- <ul>
- <li>JSON-Schema
- <li>XML-Schema
- <li>HTML-Schema
- </ul>
- <li>
- <p>Easy-to-understand naming conventions such as {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} to represent generic {@code Maps} and {@code Lists}.</p>
- <li>
- <p>Serializers have many options for tweaking output (such as whitespace options, XML namespace options, strict/non-strict syntax options, and so forth).</p>
- <li>
- <div>
- JSON parser supports ALL valid JSON, such as:
- <ul class='normal'>
- <li>Javascript comments.
- <li>Single or double quoted values.
- <li>Quoted (strict) or unquoted (non-strict) attributes.
- <li>JSON fragments (such as string, numeric, or boolean primitive values).
- <li>Concatenated strings.
- </ul>
- </div>
- <li>
- <div>
- REST server interface that allows POJOs to be accessed through REST calls.
- <ul class='normal'>
- <li>Serialization and parsing layer is completely transparent to developer.
- Simply pass a POJO to the toolkit, and all serialization and parsing is taken care of.
- <li>Extensible / customizable design.
- Ability to define support for additional content types, or to handle requests manually at many different levels.
- <li>Default built-in support for serializing output to all supported languages.
- <li>Default built-in support for parsing input from all supported languages.
- <li>Ability to easily design self-documenting interfaces (specifically REST interfaces described entirely through OPTIONS requests).
- <li>Ability to debug interface using nothing more than a browser, including the ability to specify any HTTP headers as GET parameters.
- </ul>
- </div>
- <li>
- <p>REST client interface that allows clients to parse POJOs from the REST server, typically in a single line of code.</p>
- <li>
- <p>No code generators required. Can be used against existing POJO models, unlike other APIs like Java Web Services.</p>
- <li>
- <p>
- Serializers/parsers require only Java 1.6+.
- (RDF support requires Jena 2.7.1+)
- </p>
- <li>
- <p>
- REST APIs require only Java 1.6+ and JEE 1.3+.
- (JAX/RS integration component requires JAX/RS provider)
- </p>
- <li>
- <p>All code is 100% IBM developer written cleanroom code.</p>
- <li>
- <p>Extensive and up-to-date Javadocs with color-coded code examples.</p>
- <li>
- <p>
- APIs use a Fluent Interface that allows complex tasks to be performed in a single line of code.
- </p>
- <li>
- <p>
- Code written for high-performance/high-concurrency/low-memory consumption.<br>
- Caching of POJO metadata speeds execution of serialization and parsing.<br>
- JSON parser is written using a state-machine architecture.<br>
- XML and HTML parsers are written using StAX.<br>
- POJOs are serialized/parsed directly from POJOs without a DOM layer, reducing object creation.
- </p>
- <li>
- <p>A simple-to-use JAX-RS / Wink provider for using the existing Juneau serializers and parsers in a JAX-RS environment.</p>
- <li>
- <p>An external INI-style configuration file API.</p>
- <li>
- <p>An API for defining REST resource microservices as simple executable jars.</p>
- </ol>
-
- <h5 class='topic'>Components</h5>
- <p>
- Juneau consists of the following libraries:
- </p>
- <ul class='spaced-list'>
- <li><l>juneau.jar</l> - Core library that contains the serializers, parsers, and bean map support.<br>
- Prereqs Java 1.6+.<br>
- This package can be used by itself if you only need to serialize or parse from any of the supported languages, or use the Bean Map support separately.<br>
- See the following subtopic <a class='doclink' href='#Core'>Juneau Core (juneau.jar)</a> for details on this library.<br>
- <li><l>juneau-server.jar</l> - Contains the REST server APIs.<br>
- Prereqs Java 1.6+, JEE 1.3+.<br>
- This package can be used to create servlet-based REST interfaces.<br>
- See <a class='doclink' href="#Server">Juneau Server (juneau-server.jar)</a> for details on this library.<br>
- <li><l>juneau-client.jar</l> - Contains the REST client APIs.<br>
- Prereqs Java 1.6+.<br>
- This package can be used to easily communicate with Juneau REST servlets.<br>
- See <a class='doclink' href="#Client">Juneau Client (juneau-client.jar)</a> for details on this library.<br>
- <li><l>juneau-microservice.jar</l> - An API for defining REST services as executable jars.<br>
- See <a class='doclink' href="#Microservices">Juneau Microservices (juneau-microservice.jar)</a> for details on this package.<br>
- <li><l>juneau-all.jar</l> - Combines all the jars above into a single library.
- </ul>
- <p>
- Typically, you want to simply pick up and use <l>juneau-all.jar</l> as this contains everything and is not very large (< 1MB).
- </p>
- <p>
- The following zip files are also provided:
- </p>
- <ul class='spaced-list'>
- <li><l>microservice-project.zip</l> - Contains a template Eclipse project for quickly creating REST resources as executable jars.
- <li><l>microservice-samples-project.zip</l> - Contains sample code demonstrating various aspects of the Juneau Cloud Tools.<br>
- These are discussed in detail in the <a class='doclink' href="#Samples">Samples</a> section.
- </ul>
- <p class='info'>
- Many of the examples below use beans with public field properties.
- While the toolkit allows for public bean properties, it's standard practice to use getters and setters for bean properties.
- However, the examples below use public fields simply to reduce their verbosity.
- </p>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Core"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Juneau Core (juneau.jar)</h2>
-<div class='topic'>
- <p>
- The Juneau core library <l>juneau.jar</l> contains serializers and parsers for converting POJOs to and from
- a wide variety of content types:
- </p>
- <ul>
- <li>JSON
- <li>XML
- <li>HTML
- <li>URL-Encoding
- <li>UON
- <li>MessagePack
- <li>RDF-XML
- <li>RDF-XML-Abbrev
- <li>Turtle
- <li>N3
- <li>N-Triple
- <li>Plain text
- <li>Cognos XML
- </ul>
-
- <!-- ======================================================================================================== -->
- <a id="Core.PojoCategories"></a>
- <h3 class='topic' onclick='toggle(this)'>2.1 - POJO Categories</h3>
- <div class='topic'>
- <p>
- The Juneau serializers and parsers can handle a wide variety of POJOs.
- </p>
- <p>
- The following chart shows POJOs categorized into groups and whether they can be serialized or parsed:
- </p>
- <table class='styled' style='border-collapse: collapse;'>
- <tr><th>Group</th><th>Description</th><th>Examples</th><th>Can<br>serialize?</th><th>Can<br>parse?</th></tr>
- <tr class='dark bb' style='background-color:lightyellow;'>
- <td style='text-align:center'>1</td>
- <td><b>Java primitive objects</b></td>
- <td>
- <ul class='normal'>
- <li>{@code String}
- <li>{@code Integer}
- <li>{@code Float}
- <li>{@code Boolean}
- </ul>
- </td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- </tr>
- <tr class='dark bb' style='background-color:lightyellow'>
- <td style='text-align:center'>2</td>
- <td><b>Java Collections Framework objects and Java arrays</b></td>
- <td> </td>
- <td> </td>
- <td> </td>
- </tr>
- <tr class='light bb'>
- <td style='text-align:center'>2a</td>
- <td>
- <b>With standard keys/values</b><br>
- Map keys are group [1, 4a, 5] objects.<br>
- Map, Collection, and array values are group [1, 2, 3a, 4a, 5] objects.
- </td>
- <td>
- <ul class='normal'>
- <li>{@code HashSet<String,Integer>}
- <li>{@code TreeMap<Integer,Bean>}
- <li><code>List<<jk>int</jk>[][]></code>
- <li>{@code Bean[]}
- </ul>
- </td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- </tr>
- <tr class='light bb'>
- <td style='text-align:center'>2b</td>
- <td>
- <b>With non-standard keys/values</b><br>
- Map keys are group [2, 3, 4b, 5, 6] objects.<br>
- Map, Collection, and array values are group [3b, 4, 5, 6] objects.
- </td>
- <td>
- <ul class='normal'>
- <li>{@code HashSet<Bean,Integer>}
- <li>{@code TreeMap<Integer,Reader>}
- </ul>
- </td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:salmon;text-align:center'><b>no</b></td>
- </tr>
- <tr class='dark bb' style='background-color:lightyellow'>
- <td style='text-align:center'>3</td>
- <td><b>Java Beans</b></td>
- <td> </td>
- <td> </td>
- <td> </td>
- </tr>
- <tr class='light bb'>
- <td style='text-align:center'>3a</td>
- <td>
- <b>With standard properties</b><br>
- These are beans that have no-arg constructors and one or more properties defined by public getter and setter methods or public fields.<br>
- Property values are group [1, 2, 3a, 4a, 5] objects.
- </td>
- <td> </td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- </tr>
- <tr class='light bb'>
- <td style='text-align:center'>3b</td>
- <td>
- <b>With non-standard properties or not true beans</b><br>
- These include true beans that have no-arg constructors and one or more properties defined by getter and setter methods or properties,
- but property types include group [3b, 4b, 5, 6] objects.<br>
- This also includes classes that look like beans but aren't true beans.
- For example, classes that have getters but not setters, or classes without no-arg constructors.
- </td>
- <td> </td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:salmon;text-align:center'><b>no</b></td>
- </tr>
- <tr class='dark bb' style='background-color:lightyellow'>
- <td style='text-align:center'>4</td>
- <td>
- <b>Swapped objects</b><br>
- These are objects that are not directly serializable, but have {@link org.apache.juneau.transform.PojoSwap PojoSwaps} associated with them.
- The purpose of a POJO swap is to convert an object to another object that is easier to serialize and parse.
- For example, the {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} class can be used to serialize {@link java.util.Date} objects
- to ISO8601 strings, and parse them back into {@link java.util.Date} objects.
- </td>
- <td> </td>
- <td> </td>
- <td> </td>
- </tr>
- <tr class='light bb'>
- <td style='text-align:center'>4a</td>
- <td>
- <b>2-way swapped to group [1, 2a, 3a] objects</b><br>
- For example, a swap that converts a {@code Date} to a {@code String}.
- </td>
- <td> </td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- </tr>
- <tr class='light bb'>
- <td style='text-align:center'>4b</td>
- <td>
- <b>1-way swapped to group [1, 2, 3] objects</b><br>
- For example, a swap that converts an {@code Iterator} to a {@code List}.
- This would be one way, since you cannot reconstruct an {@code Iterator}.
- </td>
- <td> </td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:salmon;text-align:center'><b>no</b></td>
- </tr>
- <tr class='dark bb' style='background-color:lightyellow'>
- <td style='text-align:center'>5</td>
- <td>
- <b>Objects with standardized <code>static T valueOf(String)</code>/<code>static T fromString(String)</code> methods, or constructors with a <code>String</code> argument.</b><br>
- During serialization, objects are converted to strings using the <code>toString()</code> method.
- During parsing, strings are converted to objects using one of these static methods or constructors.
- </td>
- <td><code>java.util.UUID</code></td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- </tr>
- <tr class='dark' style='background-color:lightyellow'>
- <td style='text-align:center'>6</td>
- <td>
- <b>All other objects</b><br>
- Anything that doesn't fall into one of the groups above are simply converted to {@code Strings} using the {@code toString()} method.
- </td>
- <td> </td>
- <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
- <td style='background-color:salmon;text-align:center'><b>no</b></td>
- </tr>
- </table>
- <p>
- One other important note is that the serializers are designed to work on tree-shaped POJO models.
- These are models where there are no referential loops (e.g. leaves with references to nodes, or nodes in one branch referencing nodes in another branch).
- There is a serializer setting {@code detectRecursions} to look for and handle these kinds of loops (by setting these references to <jk>null</jk>),
- but it is not enabled by default since it introduces a moderate performance penalty.
- </p>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.Serializers"></a>
- <h3 class='topic' onclick='toggle(this)'>2.2 - Serializers</h3>
- <div class='topic'>
- <p>
- The built-in serializers in Juneau are fast and efficient, and are highly customizable, for example, allowing you to produce strict or non-strict syntax,
- various whitespace options, and automatic detection of recursions.
- </p>
- <p>
- The serializers work by serializing POJOs directly to streams instead of using intermediate Document Object Model objects.
- This allows serialization with minimal memory use.
- </p>
- <p>
- Default serialization support is provided for Java primitives, <l>Maps</l>, <l>Collections</l>, beans, and arrays. <br>
- Extensible support for other data types such as <l>Calendars</l>, <l>Dates</l>, <l>Iterators</l> is available through the use of POJO swaps.
- </p>
- <p>
- In most cases, you can serialize objects in one line of code by using one of the default serializers:
- </p>
- <p class='bcode'>
- <jc>// A simple POJO class</jc>
- <jk>public class</jk> Person {
- <jk>public</jk> String <jf>name</jf> = <js>"John Smith"</js>;
- <jk>public int</jk> <jf>age</jf> = 21;
- }
-
- <jc>// Serialize a bean to JSON, XML, or HTML</jc>
- Person p = <jk>new</jk> Person();
-
- <jc>// Produces:
- // "{name:'John Smith',age:21}"</jc>
- String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(p);
-
- <jc>// Produces:
- // <object>
- // <name>John Smith</name>
- // <age>21</age>
- // </object></jc>
- String xml = XmlSerializer.<jsf>DEFAULT</jsf>.serialize(p);
-
- <jc>// Produces:
- // <table>
- // <tr><th>key</th><th>value</th></tr>
- // <tr><td>name</td><td>John Smith</td></tr>
- // <tr><td>age</td><td>21</td></tr>
- // </table></jc>
- String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(p);
-
- <jc>// Produces:
- // 82 A4 6E 61 6D 65 AA 4A 6F 68 6E 20 53 6D 69 74 68 A3 61 67 65 15 </jc>
- <jk>byte</jk>[] b = MsgPackSerializer.<jsf>DEFAULT</jsf>.serialize(p);
- </p>
-
- <p>
- In addition to the default serializers, customized serializers can be created using various built-in options:
- </p>
-
- <p class='bcode'>
- <jc>// Use one of the default serializers to serialize a POJO</jc>
- String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(someObject);
-
- <jc>// Create a custom serializer for lax syntax using single quote characters</jc>
- JsonSerializer serializer = <jk>new</jk> JsonSerializer()
- .setProperty(JsonSerializerContext.<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
- .setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
-
- <jc>// Clone an existing serializer and modify it to use single-quotes</jc>
- JsonSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>.clone()
- .setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
-
- <jc>// Serialize a POJO to JSON</jc>
- String json = serializer.serialize(someObject);
- </p>
-
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/serializer/package-summary.html#TOC'>org.apache.juneau.serializer</a> - Serializer API Javadoc
- </ul>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.Parsers"></a>
- <h3 class='topic' onclick='toggle(this)'>2.3 - Parsers</h3>
- <div class='topic'>
- <p>
- Parsers work by parsing input directly into POJOs instead of having to create intermediate Document Object Models.
- This allows them to parse input with minimal object creation.
- </p>
- <p>
- The JSON parser can handle any valid JSON syntax (such as quoted or unquoted attributes, single or double quotes).<br>
- It can also handle JSON fragements and embedded Javascript comments.
- </p>
- <p class='bcode'>
- <jc>// Use one of the predefined parsers.</jc>
- Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
-
- <jc>// Parse a JSON object (creates a generic ObjectMap).</jc>
- String json = <js>"{name:'John Smith',age:21}"</js>;
- Map m1 = parser.parse(json, Map.<jk>class</jk>);
-
- <jc>// Parse a JSON string.</jc>
- json = <js>"'foobar'"</js>;
- String s2 = parser.parse(json, String.<jk>class</jk>);
-
- <jc>// Parse a JSON number as a Long or Float.</jc>
- json = <js>"123"</js>;
- Long l3 = parser.parse(json, Long.<jk>class</jk>);
- Float f3 = parser.parse(json, Float.<jk>class</jk>);
-
- <jc>// Parse a JSON object as a bean.</jc>
- json = <js>"{name:'John Smith',age:21}"</js>;
- Person p4 = parser.parse(json, Person.<jk>class</jk>);
-
- <jc>// Parse a JSON object as a HashMap<String,Person>.</jc>
- json = <js>"{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}"</js>;
- Map<String,Person> m5 = parser.parseMap(json, HashMap.<jk>class</jk>, String.<jk>class</jk>, Person.<jk>class</jk>)
-
- <jc>// Parse a JSON array of integers as a Collection of Integers or int[] array.</jc>
- json = <js>"[1,2,3]"</js>;
- List<Integer> l6 = parser.parseCollection(json, LinkedList.<jk>class</jk>, Integer.<jk>class</jk>);
- <jk>int</jk>[] i6 = parser.parse(json, <jk>int</jk>[].<jk>class</jk>);
- </p>
- <p>
- The parsers can also be used to populating existing bean and collection objects:
- </p>
- <p class='bcode'>
- <jc>// Use one of the predefined parsers.</jc>
- Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
-
- <jc>// Populate the properties on an existing bean from a JSON object.</jc>
- String json = <js>"{name:'John Smith',age:21}"</js>;
- Person p = <jk>new</jk> Person();
- parser.parseIntoBean(json, p);
-
- <jc>// Populate an existing list from a JSON array of numbers.</jc>
- json = <js>"[1,2,3]"</js>;
- List<Integer> l2 = <jk>new</jk> LinkedList<Integer>();
- parser.parseIntoCollection(json, l2, Integer.<jk>class</jk>);
-
- <jc>// Populate an existing map from a JSON object containing beans.</jc>
- json = <js>"{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}"</js>;
- Map<String,Person> m3 = <jk>new</jk> TreeMap<String,Person>();
- parser.parseIntoMap(json, m3, String.<jk>class</jk>, Person.<jk>class</jk>);
- </p>
- <p>
- Juneau can parse both structured models (composed of serialized beans) and unstructured models (composed of generic maps, collections, primitives, and so on).
- Any valid JSON can be parsed into an unstructured model consisting of generic {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} objects.
- </p>
- <p class='bcode'>
- <jc>// Parse an arbitrary JSON document into an unstructered data model
- // consisting of ObjectMaps, ObjectLists, and java primitive objects.</jc>
- Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
- String json = <js>"{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}"</js>;
- ObjectMap m = parser.parse(json, ObjectMap.<jk>class</jk>);
-
- <jc>// Use ObjectMap API to extract data from the unstructured model.</jc>
- <jk>int</jk> johnSmithAge = m.getObjectMap(<js>"a"</js>).getInt(<js>"age"</js>);
- </p>
-
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/parser/package-summary.html#TOC'>org.apache.juneau.parser</a> - Parser API Javadoc
- </ul>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.ObjectMap"></a>
- <h3 class='topic' onclick='toggle(this)'>2.4 - ObjectMap and ObjectList</h3>
- <div class='topic'>
- <p>
- The {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} classes are generic Java representations of JSON objects and arrays.
- These classes can be used to create "unstructured" models for serialization (as opposed to "structured" models consisting of beans).
- If you want to quickly generate JSON/XML/HTML from generic maps/collections, or parse JSON/XML/HTML into generic maps/collections, these objects work well.
- </p>
- <p>
- These classes extend directly from JCF classes:
- </p>
- <ul class='javahierarchy'>
- <li class='c'> {@link java.util.LinkedHashMap java.util.LinkedHashMap}
- <ul>
- <li class='c'> {@link org.apache.juneau.ObjectMap org.apache.juneau.ObjectMap}
- </ul>
- <li class='c'> {@link java.util.LinkedList java.util.LinkedList}
- <ul>
- <li class='c'> {@link org.apache.juneau.ObjectMap org.apache.juneau.ObjectList}
- </ul>
- </ul>
- <p>
- The <l>ObjectMap</l> and <l>ObjectList</l> are very similar to the <l>JSONObject</l> and <l>JSONArray</l>
- classes found in other libraries. However, the names were chosen
- because the concepts of <l>Maps</l> and <l>Lists</l> are already familiar to
- Java programmers, and these classes can be used with any of the serialzers or parsers.
- </p>
- <p>
- These object can be serialized in one of two ways:
- </p>
- <ol class='spaced-list'>
- <li>Using the provided {@link org.apache.juneau.ObjectMap#serializeTo(java.io.Writer)} or {@link org.apache.juneau.ObjectList#serializeTo(java.io.Writer)} methods.
- <li>Passing them to one of the {@link org.apache.juneau.serializer.Serializer} serialize methods.
- </ol>
- <p class='info'>
- As a general rule, if you do not specify a target type during parsing, or if the target type cannot be determined
- through reflection, the parsers automatically generate <l>ObjectMaps</l> and <l>ObjectLists</l>.
- </p>
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='c'>{@link org.apache.juneau.ObjectMap}
- <li class='c'>{@link org.apache.juneau.ObjectList}
- </ul>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.ConfigurableProperties"></a>
- <h3 class='topic' onclick='toggle(this)'>2.5 - Configurable Properties</h3>
- <div class='topic'>
- <p>
- Serializers and parsers have a wide variety of configurable properties that can be set on them.<br>
- For example, the following code shows how to set configurable properties on the JSON serializerclass:
- </p>
- <p class='bcode'>
- JsonSerializer s = <jk>new</jk> JsonSerializer()
- .setProperty(SerializerContext.<jsf>SERIALIZER_useIndentation</jsf>, <jk>true</jk>)
- .setProperty(JsonSerializerContext.<jsf>JSON_useWhitespace</jsf>, <jk>true</jk>)
- .setProperty(JsonSerializerContext.<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
- .setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
- </p>
- <p>
- Each of the serializers and parsers contain common reusable instances with common configuration properties.<br>
- For example, JSON has the following predefined reusable serializers and parsers:
- </p>
- <ul class='javahierarchy'>
- <li class='c'>{@link org.apache.juneau.json.JsonSerializer}
- <ul>
- <li class='f'>{@link org.apache.juneau.json.JsonSerializer#DEFAULT DEFAULT}
- <li class='f'>{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX DEFAULT_LAX}
- <li class='f'>{@link org.apache.juneau.json.JsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
- <li class='f'>{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE DEFAULT_LAX_READABLE}
- </ul>
- <li class='c'>{@link org.apache.juneau.json.JsonParser}
- <ul>
- <li class='f'>{@link org.apache.juneau.json.JsonParser#DEFAULT DEFAULT}
- <li class='f'>{@link org.apache.juneau.json.JsonParser#DEFAULT_STRICT DEFAULT_STRICT}
- </ul>
- </ul>
- <p>
- These can be used directly, as follows:
- </p>
- <p class='bcode'>
- <jc>// Serialize a POJO to LAX JSON.</jc>
- String json = JsonSerializer.<jsf>DEFAULT_LAX</jsf>.serialize(myPojo);
- </p>
- <p>
- Properties can be set using the following methods:
- </p>
- <ul class='javahierarchy'>
- <li class='m'>{@link org.apache.juneau.serializer.Serializer#setProperty(String,Object)} - On any serializers.
- <li class='m'>{@link org.apache.juneau.serializer.SerializerGroup#setProperty(String,Object)} - On groups of serializers.
- <li class='m'>{@link org.apache.juneau.parser.Parser#setProperty(String,Object)} - On any parsers.
- <li class='m'>{@link org.apache.juneau.parser.ParserGroup#setProperty(String,Object)} - On groups of parsers.
- </ul>
- <p>
- The REST server API also provides various ways of setting properties:
- </p>
- <ul class='javahierarchy'>
- <li class='n'>{@link org.apache.juneau.server.annotation.RestResource#properties() @RestResource.properties()} - Annotation on instances of {@link org.apache.juneau.server.RestServlet}.
- <li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#properties() @RestMethod.properties()} - Annotation on java methods in instances of {@link org.apache.juneau.server.RestServlet}.
- <li class='m'>{@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[],Class[])} - Properties can be set programmatically on serializers by overriding this method.
- <li class='m'>{@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[],Class[])} - Properties can be set programmatically on parsers by overriding this method.
- </ul>
- <p>
- Similarly, the REST client API provides ways of setting properties:
- </p>
- <ul class='javahierarchy'>
- <li class='m'>{@link org.apache.juneau.client.RestClient#setProperty(String,Object)} - Set property on the serializer and parser associated with a REST client.
- </ul>
- <p>
- The {@link org.apache.juneau.serializer.Serializer#lock()} and {@link org.apache.juneau.parser.Parser#lock()}
- methods can be used to make serializer and parser properties read only.
- All the common reusable serializers and parsers are read only.
- If you attempt to modify any properties on those instances, a {@link org.apache.juneau.LockedException} is thrown.
- </p>
-
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='c'>{@link org.apache.juneau.BeanContext} - Properties associated with handling beans on serializers and parsers.
- <li class='c'>{@link org.apache.juneau.serializer.SerializerContext} - Configurable properties common to all serializers.
- <li class='c'>{@link org.apache.juneau.parser.ParserContext} - Configurable properties common to all parsers.
- <li class='c'>{@link org.apache.juneau.html.HtmlSerializerContext} - Configurable properties on the HTML serializer.
- <li class='c'>{@link org.apache.juneau.html.HtmlDocSerializerContext} - Configurable properties on the HTML document serializer.
- <li class='c'>{@link org.apache.juneau.html.HtmlParserContext} - Configurable properties on the HTML parser.
- <li class='c'>{@link org.apache.juneau.jena.RdfCommonContext} - Configurable properties common to the RDF serializers and parsers.
- <li class='c'>{@link org.apache.juneau.jena.RdfSerializerContext} - Configurable properties on the RDF serializer.
- <li class='c'>{@link org.apache.juneau.jena.RdfParserContext} - Configurable properties on the RDF parsers.
- <li class='c'>{@link org.apache.juneau.json.JsonSerializerContext} - Configurable properties on the JSON serializer.
- <li class='c'>{@link org.apache.juneau.json.JsonParserContext} - Configurable properties on the JSON parser.
- <li class='c'>{@link org.apache.juneau.soap.SoapXmlSerializerContext} - Configurable properties on the SOAP/XML serializer.
- <li class='c'>{@link org.apache.juneau.urlencoding.UonSerializerContext} - Configurable properties on the URL-Encoding and UON serializers.
- <li class='c'>{@link org.apache.juneau.urlencoding.UonParserContext} - Configurable properties on the URL-Encoding and UON parsers.
- <li class='c'>{@link org.apache.juneau.xml.XmlSerializerContext} - Configurable properties on the XML serializer.
- <li class='c'>{@link org.apache.juneau.xml.XmlParserContext} - Configurable properties on the XML parser.
- <li class='c'>{@link org.apache.juneau.server.RestServletContext} - Configurable properties on the REST servlet.
- </ul>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.Annotations"></a>
- <h3 class='topic' onclick='toggle(this)'>2.6 - Annotations</h3>
- <div class='topic'>
- <p>
- The {@link org.apache.juneau.annotation} package contains several annotations that can be applied to classes to alter how they're
- handled by the serializers and parsers.
- </p>
- <p>
- For example, the {@link org.apache.juneau.annotation.Bean @Bean} annotation can be used to limit which getters and setters get
- interpreted as bean properties:
- </p>
- <p class='bcode'>
- <jc>// Address class with only street/city/state properties (in that order).</jc>
- <jc>// All other properties are ignored.</jc>
- <ja>@Bean</ja>(properties={<js>"street"</js>,<js>"city"</js>,<js>"state"</js>})
- <jk>public class</jk> Address {
- ...
- </p>
-
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='n'>{@link org.apache.juneau.annotation.Pojo @Pojo} - Used to tailor how non-bean POJOs get interpreted by the framework.
- <li class='n'>{@link org.apache.juneau.annotation.Bean @Bean} - Used to tailor how beans get interpreted by the framework.
- <li class='n'>{@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} - Maps constructor arguments to property names on beans with read-only properties.
- <li class='n'>{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} - Ignore classes, fields, and methods from being interpreted as bean or bean components.
- <li class='n'>{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} - Used to tailor how bean properties get interpreted by the framework.
- <li class='n'>{@link org.apache.juneau.annotation.NameProperty @NameProperty} - Identifies a setter as a method for setting the name of a POJO as it's known by its parent object.
- <li class='n'>{@link org.apache.juneau.annotation.ParentProperty @ParentProperty} - Identifies a setter as a method for adding a parent reference to a child object.
- <li class='n'>{@link org.apache.juneau.annotation.URI @URI} - Used to identify a class or bean property as a URI.
- </ul>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.Transforms"></a>
- <h4 class='topic' onclick='toggle(this)'>2.7 - Transforms</h4>
- <div class='topic'>
- <p>
- The programmatic equivalent to the annotations are the {@link org.apache.juneau.transform.BeanFilter} and
- {@link org.apache.juneau.transform.PojoSwap} classes.
- </p>
- <p>
- The following example is equivalent to specifying the <l>@Bean</l> annotation in the previous example using a bean filter:
- </p>
- <p class='bcode'>
- <jc>// Define bean filter that returns properties in the following order: "street", "city", "state"</jc>
- <jk>public class</jk> AddressFilter <jk>extends</jk> BeanFilter<Address> {
- <jk>public</jk> AddressFilter() {
- setProperties(<js>"street"</js>,<js>"city"</js>,<js>"state"</js>);
- }
- }
-
- WriterSerializer s = <jk>new</jk> JsonSerializer().addBeanFilters(AddressFilter.<jk>class</jk>);
- Address a = getAddress();
- String json = s.serialize(a); <jc>// Prints "{street:'...',city:'...',state;'...'}"</jc>
- </p>
- <p>
- The {@link org.apache.juneau.transform.PojoSwap} class is a critical component of Juneau that allows serializers and parsers to
- be able to handle virtually any Java object.
- Simply put, they can be thought of as 'transformers' that convert non-serializable objects to serializable objects and vice versa.
- </p>
- <p>
- For example, <l>Date</l> objects are not normally serializable.
- (Technically, they look like beans with getters/setters and so get serialized as such, which typically is not the desired result.)
- The following POJO swap can be used to represent dates in ISO8601 format:
- </p>
- <p class='bcode'>
- <jc>// Sample swap for converting Dates to ISO8601 strings.</jc>
- <jk>public class</jk> MyDateSwap <jk>extends</jk> PojoSwap<Date,String> {
-
- <jc>// ISO8601 formatter.</jc>
- <jk>private</jk> DateFormat <jf>format</jf> = <jk>new</jk> SimpleDateFormat(<js>"yyyy-MM-dd'T'HH:mm:ssZ"</js>);
-
- <jd>/** Converts a Date object to an ISO8601 string. */</jd>
- <ja>@Override</ja>
- <jk>public</jk> String swap(Date o) {
- <jk>return</jk> <jf>format</jf>.format(o);
- }
-
- <jd>/** Converts an ISO8601 string to a Date object. */</jd>
- <ja>@Override</ja>
- <jk>public</jk> Date unswap(String o) <jk>throws</jk> ParseException {
- <jk>try</jk> {
- <jk>return</jk> <jf>format</jf>.parse(o);
- } <jk>catch</jk> (java.text.ParseException e) {
- <jk>throw new</jk> ParseException(e);
- }
- }
- }
- </p>
- <p>
- The swap above can then be associated with serializers and parsers as the following example shows:
- </p>
- <p class='bcode'>
- <jc>// Sample bean with a Date field.</jc>
- <jk>public class</jk> MyBean {
- <jk>public</jk> Date <jf>date</jf> = <jk>new</jk> Date(112, 2, 3, 4, 5, 6);
- }
-
- <jc>// Create a new JSON serializer, associate our date swap with it, and serialize a sample bean.</jc>
- Serializer serializer = <jk>new</jk> JsonSerializer().addPojoSwaps(MyDateSwap.<jk>class</jk>);
- String json = serializer.serialize(<jk>new</jk> MyBean()); <jc>// == "{date:'2012-03-03T04:05:06-0500'}"</jc>
-
- <jc>// Create a JSON parser, associate our date swap with it, and reconstruct our bean (including the date).</jc>
- ReaderParser parser = <jk>new</jk> JsonParser().addPojoSwaps(MyDateSwap.<jk>class</jk>);
- MyBean bean = parser.parse(json, MyBean.<jk>class</jk>);
- <jk>int</jk> day = bean.<jf>date</jf>.getDay(); <jc>// == 3</jc>
- </p>
-
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/transform/package-summary.html#TOC'>org.apache.juneau.transform</a> - Transform API Javadocs.
- <li class='p'><a class='doclink' href='org/apache/juneau/transforms/package-summary.html#TOC'>org.apache.juneau.transforms</a> - Predefined reusable transform classes.
- </ul>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.SVL"></a>
- <h4 class='topic' onclick='toggle(this)'>2.8 - Simple Variable Language</h4>
- <div class='topic'>
- <p>
- The {@link org.apache.juneau.svl} package defines an API for a language called "Simple Variable Language".
- In a nutshell, Simple Variable Language (or SVL) is text that contains variables of the form <js>"$varName{varKey}"</js>.
- </p>
- <p>
- Variables can be recursively nested within the varKey (e.g. <js>"$FOO{$BAR{xxx},$BAZ{xxx}}"</js>).
- Variables can also return values that themselves contain more variables.
- </p>
- <p class='bcode'>
- <jc>// Use the default variable resolver to resolve a string that contains $S (system property) variables</jc>
- String myProperty = VarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"The Java home directory is $S{java.home}"</js>);
- </p>
- <p>
- The following shows how variables can be arbitrarily nested...
- </p>
- <p class='bcode'>
- <jc>// Look up a property in the following order:
- // 1) MYPROPERTY environment variable.
- // 2) 'my.property' system property if environment variable not found.
- // 3) 'not found' string if system property not found.</jc>
- String myproperty = VarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"$E{MYPROPERTY,$S{my.property,not found}}"</js>);
- </p>
-
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/svl/package-summary.html#TOC'>org.apache.juneau.svl</a> - Simple Variable Language Javadocs.
- </ul>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.ConfigFile"></a>
- <h3 class='topic' onclick='toggle(this)'>2.9 - Configuration Files</h3>
- <div class='topic'>
- <p>
- The {@link org.apache.juneau.ini} package contains a powerful API for creating and using INI-style config files.
- </p>
- <p>
- An example of an INI file:
- </p>
- <p class='bcode'>
- <cc># Default section</cc>
- <ck>key1</ck> = <cv>1</cv>
- <ck>key2</ck> = <cv>true</cv>
- <ck>key3</ck> = <cv>1,2,3</cv>
- <ck>key4</ck> = <cv>http://foo</cv>
-
- <cc># Section 1</cc>
- <cs>[Section1]</cs>
- <ck>key1</ck> = <cv>2</cv>
- <ck>key2</ck> = <cv>false</cv>
- <ck>key3</ck> = <cv>4,5,6</cv>
- <ck>key4</ck> = <cv>http://bar</cv>
- </p>
- <p>
- This class can be used to easily access contents of this file, using the various capabilities of the {@link org.apache.juneau.ObjectMap} class, as follows:
- </p>
- <p class='bcode'>
- <jk>int</jk> key1;
- <jk>boolean</jk> key2;
- <jk>int</jk>[] key3;
- URL key4;
-
- <jc>// Load our config file</jc>
- ConfigFile f = ConfigMgr.<jsf>DEFAULT</jsf>.get(<js>"MyIniFile.cfg"</js>);
-
- <jc>// Read values from default section</jc>
- key1 = f.getInt(<js>"key1"</js>);
- key2 = f.getBoolean(<js>"key2"</js>);
- key3 = f.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"key3"</js>);
- key4 = f.getObject(URL.<jk>class</jk>, <js>"key4"</js>);
-
- <jc>// Read values from section #1</jc>
- key1 = f.getInt(<js>"Section1/key1"</js>);
- key2 = f.getBoolean(<js>"Section1/key2"</js>);
- key3 = f.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"Section1/key3"</js>);
- key4 = f.getObject(URL.<jk>class</jk>, <js>"Section1/key4"</js>);
- </p>
- <p>
- The interface also allows a config file to be easily constructed programmatically:
- </p>
- <p class='bcode'>
- <jc>// Construct the sample INI file programmatically</jc>
- ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.create(<js>"MyIniFile.cfg"</js>)
- .addLines(<jk>null</jk>,
- <js>"# Default section"</js>,
- <js>"key1 = 1"</js>,
- <js>"key2 = true"</js>,
- <js>"key3 = 1,2,3"</js>,
- <js>"key4 = http://foo"</js>,
- <js>""</js>)
- .addHeaderComments(<js>"Section1"</js>,
- <js>"# Section 1"</js>)
- .addLines(<js>"Section1"</js>,
- <js>"key1 = 2"</js>,
- <js>"key2 = false"</js>,
- <js>"key3 = 4,5,6"</js>,
- <js>"key4 = http://bar"</js>)
- .save();
- </p>
- <p>
- The following is equivalent, except that it uses {@link org.apache.juneau.ini.ConfigFile#put(String, Object)} to set values:
- </p>
- <p class='bcode'>
- <jc>// Construct the sample INI file programmatically</jc>
- ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.create(<js>"MyIniFile.cfg"</js>)
- .addLines(<jk>null</jk>,
- <js>"# Default section"</js>)
- .addHeaderComments(<js>"section1"</js>,
- <js>"# Section 1"</js>);
- cf.put(<js>"key1"</js>, 1);
- cf.put(<js>"key2"</js>, <jk>true</jk>);
- cf.put(<js>"key3"</js>, <jk>new int</jk>[]{1,2,3});
- cf.put(<js>"key4"</js>, <jk>new</jk> URL(<js>"http://foo"</js>));
- cf.put(<js>"Section1/key1"</js>, 2);
- cf.put(<js>"Section1/key2"</js>, <jk>false</jk>);
- cf.put(<js>"Section1/key3"</js>, <jk>new int</jk>[]{4,5,6});
- cf.put(<js>"Section1/key4"</js>, <jk>new</jk> URL(<js>"http://bar"</js>));
- cf.save();
- </p>
- <p>
- The config file looks deceptively simple, the config file API is a very powerful feature with many capabilities, including:
- </p>
- <ul class='spaced-list'>
- <li>The ability to use variables to reference environment variables, system properties, other config file entries, and a host of other types.
- <li>The ability to store and retrieve POJOs as JSON.
- <li>APIs for updating, modifying, and saving configuration files without losing comments or formatting.
- <li>Extensive listener APIs.
- </ul>
- <h6 class='topic'>Examples</h6>
- <p class='bcode'>
- <cc>#--------------------------</cc>
- <cc># My section</cc>
- <cc>#--------------------------</cc>
- <cs>[MySection]</cs>
-
- <cc># An integer</cc>
- <ck>anInt</ck> = <cv>1</cv>
-
- <cc># A boolean</cc>
- <ck>aBoolean</ck> = <cv>true</cv>
-
- <cc># An int array</cc>
- <ck>anIntArray</ck> = <cv>1,2,3</cv>
-
- <cc># A POJO that can be converted from a String</cc>
- <ck>aURL</ck> = <cv>http://foo </cv>
-
- <cc># A POJO that can be converted from JSON</cc>
- <ck>aBean</ck> = <cv>{foo:'bar',baz:123}</cv>
-
- <cc># A system property</cc>
- <ck>locale</ck> = <cv>$S{java.locale, en_US}</cv>
-
- <cc># An environment variable</cc>
- <ck>path</ck> = <cv>$E{PATH, unknown}</cv>
-
- <cc># A manifest file entry</cc>
- <ck>mainClass</ck> = <cv>$MF{Main-Class}</cv>
-
- <cc># Another value in this config file</cc>
- <ck>sameAsAnInt</ck> = <cv>$C{MySection/anInt}</cv>
-
- <cc># A command-line argument in the form "myarg=foo"</cc>
- <ck>myArg</ck> = <cv>$ARG{myarg}</cv>
-
- <cc># The first command-line argument</cc>
- <ck>firstArg</ck> = <cv>$ARG{0}</cv>
-
- <cc># Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.</cc>
- <ck>nested</ck> = <cv>$S{mySystemProperty,$E{MY_ENV_VAR,$ARG{0}}}</cv>
-
- <cc># A POJO with embedded variables</cc>
- <ck>aBean2</ck> = <cv>{foo:'$ARG{0}',baz:$C{MySection/anInt}}</cv>
-
- </p>
- <p class='bcode'>
- <jc>// Java code for accessing config entries above.</jc>
- ConfigFile cf = Microservice.<jsm>getConfig</jsm>();
-
- <jk>int</jk> anInt = cf.getInt(<js>"MySection/anInt"</js>);
- <jk>boolean</jk> aBoolean = cf.getBoolean(<js>"MySection/aBoolean"</js>);
- <jk>int</jk>[] anIntArray = cf.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"MySection/anIntArray"</js>);
- URL aURL = cf.getObject(URL.<jk>class</jk>, <js>"MySection/aURL"</js>);
- MyBean aBean = cf.getObject(MyBean.<jk>class</jk>, <js>"MySection/aBean"</js>);
- Locale locale = cf.getObject(Locale.<jk>class</jk>, <js>"MySection/locale"</js>);
- String path = cf.getString(<js>"MySection/path"</js>);
- String mainClass = cf.getString(<js>"MySection/mainClass"</js>);
- <jk>int</jk> sameAsAnInt = cf.getInt(<js>"MySection/sameAsAnInt"</js>);
- String myArg = cf.getString(<js>"MySection/myArg"</js>);
- String firstArg = cf.getString(<js>"MySection/firstArg"</js>);
- </p>
-
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/ini/package-summary.html#TOC'>org.apache.juneau.ini</a> - Config API Javadocs.
- </ul>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Core.SupportedLanguages"></a>
- <h3 class='topic' onclick='toggle(this)'>2.10 - Supported Languages</h3>
- <div class='topic'>
- <p>
- Extensive javadocs exist for individual language support.
- Refer to these docs for language-specific information.
- </p>
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/html/package-summary.html#TOC'>org.apache.juneau.html</a> - HTML support.
- <li class='p'><a class='doclink' href='org/apache/juneau/jena/package-summary.html#TOC'>org.apache.juneau.jena</a> - RDF support.
- <li class='p'><a class='doclink' href='org/apache/juneau/jso/package-summary.html#TOC'>org.apache.juneau.jso</a> - Java Serialized Object support.
- <li class='p'><a class='doclink' href='org/apache/juneau/json/package-summary.html#TOC'>org.apache.juneau.json</a> - JSON support.
- <li class='p'><a class='doclink' href='org/apache/juneau/plaintext/package-summary.html#TOC'>org.apache.juneau.plaintext</a> - Plain-text support.
- <li class='p'><a class='doclink' href='org/apache/juneau/soap/package-summary.html#TOC'>org.apache.juneau.soap</a> - SOAP support.
- <li class='p'><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#TOC'>org.apache.juneau.urlencoding</a> - URL-Encoding and UON support.
- <li class='p'><a class='doclink' href='org/apache/juneau/xml/package-summary.html#TOC'>org.apache.juneau.xml</a> - XML support.
- <li class='p'><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#TOC'>org.apache.juneau.dto.atom</a> - ATOM support.
- <li class='p'><a class='doclink' href='org/apache/juneau/dto/cognos/package-summary.html#TOC'>org.apache.juneau.dto.cognos</a> - Cognos support.
- </ul>
- </div>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Server"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - Juneau Server (juneau-server.jar)</h2>
-<div class='topic'>
- <p>
- The Juneau REST Server API provides a variety of servlet-based REST resource classes that provides REST interfaces on top of existing POJOs,
- allowing manipulation of those models using familiar GET, PUT, POST, and DELETE operations.
- </p>
- <p>
- The API automatically detects <l>Accept</l> header of requests and converts POJOs to any of the supported languages.
- The toolkit is extensible and also allows for support of user-defined content types.
- </p>
- <p>
- Automatic built-in support is provided for negotiation of response charsets and gzip encoding.
- </p>
- <p>
- The following is an example of a REST API used to view and set JVM system properties.
- </p>
- <p class='bcode'>
- <ja>@RestResource</ja>(
- messages=<js>"nls/messages"</js>,
- properties={
- <ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_title</jsf>, value=<js>"$L{label}"</js>),
- <ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_description</jsf>, value=<js>"$L{description}"</js>),
- <ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_links</jsf>, value=<js>"{up:'$R{requestParentURI}',options:'?method=OPTIONS'}"</js>),
- <ja>@Property</ja>(name=HtmlSerializerContext.<jsf>HTML_uriAnchorText</jsf>, value=<jsf>PROPERTY_NAME</jsf>)
- }
- )
- <jk>public class</jk> SystemPropertiesService <jk>extends</jk> RestServletJenaDefault {
-
- <jd>/** [OPTIONS /*] - Show resource options. */</jd>
- <ja>@RestMethod</ja>(name=<js>"OPTIONS"</js>, path=<js>"/*"</js>)
- <jk>public</jk> ResourceOptions getOptions(RestRequest req) {
- <jk>return new</jk> ResourceOptions(<jk>this</jk>, req);
- }
-
- <jd>/** [GET /] - Get all system properties. */</jd>
- <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/"</js>)
- <jk>public</jk> TreeMap<String,String> getSystemProperties() <jk>throws</jk> Throwable {
- <jk>return new</jk> TreeMap(System.<jsm>getProperties()</jsm>);
- }
-
- <jd>/** [GET /{propertyName}] - Get system property with specified name. */</jd>
- <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/{propertyName}"</js>)
- <jk>public</jk> String getSystemProperty(<ja>@Attr</ja> String propertyName) <jk>throws</jk> Throwable {
- <jk>return</jk> System.<jsm>getProperty</jsm>(propertyName);
- }
-
- <jd>/** [PUT /{propertyName}] - Set system property with specified name. */</jd>
- <ja>@RestMethod</ja>(name=<js>"PUT"</js>, path=<js>"/{propertyName}"</js>, guards=AdminGuard.<jk>class</jk>)
- <jk>public</jk> Redirect setSystemProperty(<ja>@Attr</ja> String propertyName, <ja>@Content</ja> String value) {
- System.<jsm>setProperty</jsm>(propertyName, value);
- <jk>return new</jk> Redirect();
- }
-
- <jd>/** [DELETE /{propertyName}] - Delete system property with specified name. */</jd>
- <ja>@RestMethod</ja>(name=<js>"DELETE"</js>, path=<js>"/{propertyName}"</js>, guards=AdminGuard.<jk>class</jk>)
- <jk>public</jk> Redirect deleteSystemProperty(<ja>@Attr</ja> String propertyName) {
- System.<jsm>clearProperty</jsm>(propertyName);
- <jk>return new</jk> Redirect();
- }
- }
- </p>
- <p>
- The resource above is deployed like any other servlet, in this way:
- </p>
- <p class='bcode'>
- <xt><?xml</xt> <xa>version</xa>=<xs>"1.0"</xs> <xa>encoding</xa>=<xs>"UTF-8"</xs><xt>?></xt>
- <xt><web-app</xt> <xa>version</xa>=<xs>"2.3"</xs><xt>></xt>
- <xt><servlet></xt>
- <xt><servlet-name></xt>SystemPropertiesService<xt></servlet-name></xt>
- <xt><servlet-class></xt>com.ibm.sample.SystemPropertiesService<xt></servlet-class></xt>
- <xt></servlet></xt>
- <xt><servlet-mapping></xt>
- <xt><servlet-name></xt>SystemPropertiesService<xt></servlet-name></xt>
- <xt><url-pattern></xt>/systemProperties<xt></url-pattern></xt>
- <xt></servlet-mapping></xt>
- <xt></web-app></xt>
- </p>
- <p>
- One of the most useful aspects of using this API is the self-discovering, self-documenting OPTIONS pages that describe how to use the resource using labels pulled from the associated resource bundle:
- </p>
- <img class='bordered' src="doc-files/Server.Options.png">
-
- <p>
- Arbitrarily complex POJO models can be serialized using any of the supported serializers, and content can be parsed using any of the supported parsers.
- </p>
- <p>
- The <l>com.ibm.team.juneau.samples</l> project contains various REST resource examples in an easy-to-use REST microservice.
- One of these is <l>AddressBookResource</l> which serializes <l>AddressBook</l> objects defined below (some code omitted):
- </p>
- <p class='bcode'>
- <jd>/** package-info.java */</jd>
- <ja>@XmlSchema</ja>(
- prefix=<js>"ab"</js>,
- xmlNs={
- <ja>@XmlNs</ja>(prefix=<js>"ab"</js>, namespaceURI=<js>"http://www.ibm.com/addressBook/"</js>),
- <ja>@XmlNs</ja>(prefix=<js>"per"</js>, namespaceURI=<js>"http://www.ibm.com/person/"</js>),
- <ja>@XmlNs</ja>(prefix=<js>"addr"</js>, namespaceURI=<js>"http://www.ibm.com/address/"</js>),
- <ja>@XmlNs</ja>(prefix=<js>"mail"</js>, namespaceURI=<js>"http://www.ibm.com/mail/"</js>)
- }
- )
- <jk>package</jk> com.ibm.sample.addressbook;
- <jk>import</jk> org.apache.juneau.xml.annotation.*;
-
- <jd>/** Address book bean */</jd>
- <ja>@Xml</ja>(name=<js>"addressBook"</js>)
- <jk>public class</jk> AddressBook <jk>extends</jk> !LinkedList<Person> {}
-
- <jd>/** Person bean */</jd>
- <ja>@Xml</ja>(prefix=<js>"per"</js>,name=<js>"person"</js>)
- <jk>public class</jk> Person {
- <jc>// Bean properties</jc>
- <ja>@BeanProperty</ja>(beanUri=<jk>true</jk>) <jk>public</jk> URI <jf>uri</jf>;
- <jk>public</jk> URI <jf>addressBookUri</jf>;
- <jk>public int</jk> <jf>id</jf>;
- <jk>public</jk> String <jf>name</jf>;
- <ja>@BeanProperty</ja>(pojoSwaps=CalendarSwap.Medium.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
- <jk>public</jk> LinkedList<Address> <jf>addresses</jf>;
- }
-
- <jd>/** Address bean */</jd>
- <ja>@Xml</ja>(prefix=<js>"addr"</js>,name=<js>"address"</js>)
- <jk>public class</jk> Address {
- <jc>// Bean properties</jc>
- <ja>@BeanProperty</ja>(beanUri=<jk>true</jk>) <jk>public</jk> URI <jf>uri</jf>;
- <jk>public</jk> URI <jf>personUri</jf>;
- <jk>public int</jk> <jf>id</jf>;
- <ja>@Xml</ja>(prefix=<js>"mail"</js>) <jk>public</jk> String <jf>street</jf>, <jf>city</jf>, <jf>state</jf>;
- <ja>@Xml</ja>(prefix=<js>"mail"</js>) <jk>public int</jk> <jf>zip</jf>;
- <jk>public boolean</jk> <jf>isCurrent</jf>;
- }
- </p>
- <p>
- The framework allows you to override header values through GET parameters, so that you can specify the <l>ACCEPT</l> header to see each type.
- Adding <l>&plainText=true</l> forces the response <l>Content-Type</l> to be <l>text/plain.</l>
- <h6 class='figure'>HTML</h6>
- <img class='bordered' src="doc-files/Server.Html.png">
- <h6 class='figure'>JSON</h6>
- <img class='bordered' src="doc-files/Server.Json.png">
- <h6 class='figure'>XML</h6>
- <img class='bordered' src="doc-files/Server.Xml.png">
- <h6 class='figure'>Simple XML</h6>
- <img class='bordered' src="doc-files/Server.SimpleXml.png">
- <h6 class='figure'>URL-Encoding</h6>
- <img class='bordered' src="doc-files/Server.UrlEncoding.png">
- <h6 class='figure'>UON</h6>
- <img class='bordered' src="doc-files/Server.Uon.png">
- <h6 class='figure'>RDF/XML</h6>
- <img class='bordered' src="doc-files/Server.RdfXml.png">
- <h6 class='figure'>RDF/N3</h6>
- <img class='bordered' src="doc-files/Server.N3.png">
- <h6 class='figure'>RDF/N-Tuple</h6>
- <img class='bordered' src="doc-files/Server.NTuple.png">
- <h6 class='figure'>RDF/Turtle</h6>
- <img class='bordered' src="doc-files/Server.Turtle.png">
-
- <p>
- The Server API is an exhaustive topic on its own.
- Refer to the additional information for an in-depth examination of the API.
- </p>
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/server/package-summary.html#TOC'>org.apache.juneau.server</a> - Juneau Server API Javadocs.
- </ul>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Client"></a>
-<h2 class='topic' onclick='toggle(this)'>4 - Juneau Client (juneau-client.jar)</h2>
-<div class='topic'>
- <p>
- The REST client API provides the ability to access remote REST interfaces and transparently convert the input and output to and from POJOs using any
- of the provided serializers and parsers.
- </p>
- <p>
- Built upon the Apache HttpClient libraries, it extends that API and provides specialized APIs for working with REST interfaces while
- maintaining all the functionality available in the HttpClient API.
- </p>
- <p class='bcode'>
- <jc>// Create a reusable JSON client.</jc>
- RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>);
-
- <jc>// The address of the root resource.</jc>
- String url = <js>"http://localhost:9080/sample/addressBook"</js>;
-
- <jc>// Do a REST GET against a remote REST interface and convert
- // the response to an unstructured ObjectMap object.</jc>
- ObjectMap m1 = client.doGet(url).getResponse(ObjectMap.<jk>class</jk>);
-
- <jc>// Same as above, except parse the JSON as a bean.</jc>
- AddressBook a2 = client.doGet(url).getResponse(AddressBook.<jk>class</jk>);
-
- <jc>// Add a person to the address book.
- // Use XML as the transport medium.</jc>
- client = <jk>new</jk> RestClient(XmlSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>);
- Person p = <jk>new</jk> Person(<js>"Joe Smith"</js>, 21);
- <jk>int</jk> returnCode = client.doPost(url + <js>"/entries"</js>, p).run();
- </p>
-
- <p>
- The Client API is also an exhaustive topic on its own.
- Refer to the additional information for an in-depth examination of the API.
- </p>
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/client/package-summary.html#TOC'>org.apache.juneau.client</a> - Juneau Client API Javadocs.
- </ul>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Remoteable"></a>
-<h2 class='topic' onclick='toggle(this)'>5 - Remoteable Services</h2>
-<div class='topic'>
- <p>
- Juneau provides the capability of calling methods on POJOs on a server through client-side proxy interfaces.
- It offers a number of advantages over other similar remote proxy interfaces, such as being much simpler to
- use and allowing much more flexibility.
- </p>
- <p>
- Remoteable Services are implemented through a combination of the Server and Client libraries.
- </p>
- <ul class='spaced-list'>
- <li>Proxy interfaces are retrieved using the {@link org.apache.juneau.client.RestClient#getRemoteableProxy(Class)} method.
- <li>The {@link org.apache.juneau.client.RestClient#setRemoteableServletUri(String)} method is used to specify the location
- of the remoteable services servlet running on the server.
- <li>The {@link org.apache.juneau.server.remoteable.RemoteableServlet} class is a specialized subclass of {@link org.apache.juneau.server.RestServlet} that provides a full-blown
- REST interface for calling interfaces remotely.
- </ul>
- <p>
- In this example, you have the following interface defined that you want to call from the client side against
- a POJO on the server side (i.e. a Remoteable Service):
- <p class='bcode'>
- <jk>public interface</jk> IAddressBook {
- Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
- }
- </p>
- <p>
- The client side code for invoking this method is shown below:
- </p>
- <p class='bcode'>
- <jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
- RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>,JsonParser.<jk>class</jk>)
- .setRemoteableServletUri(<js>"https://localhost:9080/juneau/sample/remoteable"</js>);
-
- <jc>// Create a proxy interface.</jc>
- IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
-
- <jc>// Invoke a method on the server side and get the returned result.</jc>
- Person p = ab.createPerson(
- <jk>new</jk> CreatePerson(<js>"Test Person"</js>,
- AddressBook.<jsm>toCalendar</jsm>(<js>"Aug 1, 1999"</js>),
- <jk>new</jk> CreateAddress(<js>"Test street"</js>, <js>"Test city"</js>, <js>"Test state"</js>, 12345, <jk>true</jk>))
- );
- </p>
- <p>
- The requirements for a method to be callable through a remoteable service are:
- </p>
- <ul class='spaced-list'>
- <li>The method must be public.
- <li>The parameter and return types must be <a href='#Core.PojoCategories'>serializable and parsable</a>.
- </ul>
- <p>
- One significant feature is that the remoteable services servlet is a full-blown REST interface.
- Therefore, in cases where the interface classes are not available on the client side,
- the same method calls can be made through pure REST calls.
- This can also aid significantly in debugging, since calls to the remoteable service
- can be made directly from a browser with no coding involved.
- </p>
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/server/remoteable/package-summary.html#TOC'>org.apache.juneau.server.remoteable</a> - Juneau Remoteable API Javadocs.
- </ul>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Microservices"></a>
-<h2 class='topic' onclick='toggle(this)'>6 - Microservices</h2>
-<div class='topic'>
- <p>
- <b>WARNING - The microservice API is still in beta. It may be replaced with an OSGi-based architecture.</b>
- </p>
- <p>
- The <l>microservice-project.zip</l> file contains a standalone Eclipse project that can be used
- to quickly create REST microservices as standalone executable jars without the need of an application server.
- They start almost instantly and are started through a simple java command:
- </p>
- <p>
- <code class='snippet'>java -jar microservice.jar</code>
- </p>
- <p>
- When you execute this command, you can point your browser to <l>http://localhost:10000</l> to bring up the REST interface:
- </p>
- <img class='bordered' src="doc-files/Microservices.1.png">
- <p>
- Microservices combine all the functionality of the core, server, and client APIs to provide truly powerful
- and easy-to-use REST interfaces with minimal overhead.
- </p>
- <h6 class='topic'>Additional Information</h6>
- <ul class='javahierarchy'>
- <li class='p'><a class='doclink' href='org/apache/juneau/microservice/package-summary.html#TOC'>org.apache.juneau.microservice</a> - Juneau Microservice API Javadocs.
- </ul>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="Samples"></a>
-<h2 class='topic' onclick='toggle(this)'>7 - Samples</h2>
-<div class='topic'>
- <p>
- The <l>microservice-samples-project.zip</l> file is a zipped eclipse project that includes everything you
- need to start the Samples REST microservice in an Eclipse workspace.
- </p>
- <p>
- This project is packaged as a Juneau Microservice project that allows REST resources to be started
- using embedded Jetty.
- </p>
-
- <!-- ======================================================================================================== -->
- <a id="Samples.Installing"></a>
- <h3 class='topic' onclick='toggle(this)'>7.1 - Installing in Eclipse</h3>
- <div class='topic'>
- <p>
- Follow these instructions to create the Samples project in Eclipse:
- </p>
- <ol class='spaced-list'>
- <li>Download the latest microservice-samples-project .zip file (e.g. <l>microservice-samples-project-5.2.zip</l>).
- <li>In your Eclipse workspace, go to <b>File->Import->General->Existing Projects into Workspace</b> and click <b>Next</b>.<br><br>
- <img class='bordered' src="doc-files/Samples.Installing.1.png">
- <li>Select the .zip file and click <b>Finish</b>.<br><br>
- <img class='bordered' src="doc-files/Samples.Installing.2.png">
- <li>In your workspace, you can now see the following project:<br><br>
- <img class='bordered' src="doc-files/Samples.Installing.3.png">
- </ol>
- <p>
- The important elements in this project are:
- </p>
- <ul class='spaced-list'>
- <li><l>META-INF/MANIFEST.MF</l> - The manifest file. <br>
- This defines the entry point, classpath, top-level REST resources, and location of external configuration file. <br><br>
- <p class='bcode'>
- <mk>Manifest-Version</mk>: <mv>1.0</mv>
- <mk>Main-Class</mk>: <mv>org.apache.juneau.microservice.RestMicroservice</mv>
- <mk>Rest-Resources</mk>: <mv>org.apache.juneau.server.samples.RootResources</mv>
- <mk>Main-ConfigFile</mk>: <mv>samples.cfg</mv>
- <mk>Class-Path</mk>:
- <mv>lib/commons-codec-1.9.jar
- lib/commons-io-1.2.jar
- lib/commons-logging-1.1.1.jar
- lib/httpclient-4.5.jar
- lib/httpcore-4.4.1.jar
- lib/httpmime-4.5.jar
- lib/javax.servlet-api-3.0.jar
- lib/jetty-all-8.1.0.jar
- lib/juneau-all-5.2.jar
- lib/org.apache.commons.fileupload_1.3.1.jar
- lib/derby.jar
- lib/jena-core-2.7.1.jar
- lib/jena-iri-0.9.2.jar
- lib/log4j-1.2.16.jar
- lib/slf4j-api-1.6.4.jar
- lib/slf4j-log4j12-1.6.4.jar</mv>
- </p>
- <li><l>RestMicroservice.java</l> - The application class.
- <br>This is a specialized microservice in Juneau for exposing REST servlets.
- <br>Allows REST servlets to be registered in the manifest or configuration file.
- <li><l>RootResources.java</l> - The top-level REST resource.
- <br>This class serves as a "router" page to child resources:<br>
- <li><l>samples.cfg</l> - The external configuration file.
- <br>A deceptively simple yet powerful INI-style configuration file:
- <br><br>
- <p class='bcode'>
- <cc>#================================================================================
- # Basic configuration file for SaaS microservices
- # Subprojects can use this as a starting point.
- #================================================================================</cc>
-
- <cc>#================================================================================
- # REST settings
- #================================================================================</cc>
- <cs>[REST]</cs>
-
- <cc># The HTTP port number to use.
- # Default is Rest-Port setting in manifest file, or 8000.</cc>
- <ck>port</ck> = <cv>10000</cv>
- ...
- </p>
-
- </ul>
- <p>
- At this point you're ready to start the microservice from your workspace.
- </p>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Samples.Running"></a>
- <h3 class='topic' onclick='toggle(this)'>7.2 - Running in Eclipse</h3>
- <div class='topic'>
- <p>
- The <l>microservice-samples-project.launch</l> file is already provided to allow you to quickly start
- the Samples microservice.
- </p>
- <p>
- Go to <b>Run->Run Configurations->Java Application->microservice-samples.project</b> and click <b>Run</b>.
- </p>
- <img class='bordered' src="doc-files/Samples.Running.1.png">
- <p>
- In your console view, you can see the following output:
- </p>
- <img class='bordered' src="doc-files/Samples.Running.2.png">
- <p>
- Now open your browser and point to <l>http://localhost:10000</l>.
- You can see the following:
- </p>
- <img class='bordered' src="doc-files/Samples.Running.3.png">
- <p>
- You have now started a REST interface on port 10000.
- </p>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Samples.Building"></a>
- <h3 class='topic' onclick='toggle(this)'>7.3 - Building and Running from Command-Line</h3>
- <div class='topic'>
- <p>
- The <l>build.xml</l> file is a very basic ANT script for building the Samples microservice
- into an executable jar.
- </p>
- <p>
- To build the Samples microservice, right-click <l>build.xml</l> and select <b>Run As->Ant Build</b>.
- Once complete (which takes approximately 1 second), if you refresh the project, you can see the following new directory:
- </p>
- <img class='bordered' src='doc-files/Samples.Building.1.png'>
- <p>
- If you open up a command prompt in the <l>build/microservice</l> folder, you can start your microservice as follows:
- </p>
- <img class='bordered' src='doc-files/Samples.Building.2.png'>
- <p class='warn'>
- If you get an error message saying <code class='snippet'>java.net.BindException: Address already in use</code>, this means that the microservice
- is already running elsewhere, so it cannot bind to port 10000.
- </p>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Samples.RestResource"></a>
- <h3 class='topic' onclick='toggle(this)'>7.4 - MANIFEST.MF</h3>
- <div class='topic'>
- <p>
- The <l>META-INF/MANIFEST.MF</l> file is used to describe the microservice.
- If you open it, you'll see the following:
- </p>
- <p class='bcode'>
- <mk>Manifest-Version</mk>: <mv>1.0</mv>
- <mk>Main-Class</mk>: <mv>org.apache.juneau.microservice.RestMicroservice</mv>
- <mk>Rest-Resources</mk>: <mv>org.apache.juneau.server.samples.RootResources</mv>
- <mk>Main-ConfigFile</mk>: <mv>samples.cfg</mv>
- <mk>Class-Path</mk>:
- <mv>lib/commons-codec-1.9.jar
- lib/commons-io-1.2.jar
- lib/commons-logging-1.1.1.jar
- lib/httpclient-4.5.jar
- lib/httpcore-4.4.1.jar
- lib/httpmime-4.5.jar
- lib/javax.servlet-api-3.0.jar
- lib/jetty-all-8.1.0.jar
- lib/juneau-all-5.2.jar
- lib/org.apache.commons.fileupload_1.3.1.jar
- lib/derby.jar
- lib/jena-core-2.7.1.jar
- lib/jena-iri-0.9.2.jar
- lib/log4j-1.2.16.jar
- lib/slf4j-api-1.6.4.jar
- lib/slf4j-log4j12-1.6.4.jar</mv>
- </p>
- <h6 class='topic'>Notes</h6>
- <ul class='spaced-list'>
- <li>The <mk>Main-Class</mk> entry is just the standard manifest entry describing the entry point for the executable jar.
- The <l>org.apache.juneau.microservice.RestMicroservice</l> class is the standard microservice class for REST microservices.
- Other kinds of microservices can be created by extending the {@link org.apache.juneau.microservice.Microservice} class.
- <li>The <mk>Rest-Resources</mk> entry is a comma-delimited list of REST resources.
- These are classes that subclass from {@link org.apache.juneau.server.RestServlet}.
- This is a specialized entry used by <l>org.apache.juneau.microservice.RestMicroservice</l>.
- In this case, you're pointing to a resource defined in our project, <l>org.apache.juneau.samples.RootResources</l>, which serves
- as a "grouping" page for several other REST resources.
- <li>The <mk>Main-ConfigFile</mk> entry points to the location of an external configuration file for our microservice.
- <li>The <mk>Class-Path</mk> entry again is just the standard manifest file entry.
- However, if you need to add extra libraries to your microservice, you'll need to copy them into your <l>lib</l>
- directory and add them to the classpath here.
- </ul>
- <p class='warn'>
- If you modify the manifest file and get <l>NoClassDefFoundErrors</l>, ensure that the classpath entries contain trailing spaces.
- </p>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Samples.RootResources"></a>
- <h3 class='topic' onclick='toggle(this)'>7.5 - RootResources</h3>
- <div class='topic'>
- <p>
- The <l>RootResources</l> class is the main page for the REST microservice.
- It serves as the jumping-off point for the other resources.
- </p>
- <p>
- The class hierarchy for this class is:
- </p>
- <ul class='javahierarchy'>
- <li class='a'>{@link org.apache.juneau.server.RestServlet org.apache.juneau.server.RestServlet}
- <br>Contains all the REST servlet logic.
- <ul>
- <li class='a'>{@link org.apache.juneau.server.RestServletDefault org.apache.juneau.server.RestServletDefault}
- <br>Defines default serializers and parsers, and OPTIONs page logic.
- <ul>
- <li class='a'>{@link org.apache.juneau.server.RestServletGroupDefault org.apache.juneau.server.RestServletGroupDefault}
- <br>Specialized subclass for grouping other resources
- <ul>
- <li class='a'>{@link org.apache.juneau.microservice.ResourceGroup org.apache.juneau.microservice.ResourceGroup}
- <br>Specialized subclass when using the Microservice API.
- <ul>
- <li class='c'><code>org.apache.juneau.server.samples.RootResources</code>
- </ul>
- </ul>
- </ul>
- </ul>
- </ul>
- <p>
- Pointing a browser to the resource shows the following:
- </p>
- <img class='bordered' src='doc-files/Samples.Running.3.png'>
- <p>
- The <l>RootResources</l> class can also be defined as a servlet in a <l>web.xml</l> file:
- </p>
- <p class='bcode'>
- <xt><web-app</xt> <xa>version</xa>=<xs>'2.3'</xs><xt>></xt>
- <xt><servlet></xt>
- <xt><servlet-name></xt>RootResources<xt></servlet-name></xt>
- <xt><servlet-class></xt>org.apache.juneau.server.samples.RootResources<xt></servlet-class></xt>
- <xt></servlet></xt>
- <xt><servlet-mapping></xt>
- <xt><servlet-name></xt>RootResources<xt></servlet-name></xt>
- <xt><url-pattern></xt>/*<xt></url-pattern></xt>
- <xt></servlet-mapping></xt>
- <xt></web-app></xt>
- </p>
- <p>
- The <l>RootResources</l> class consists entirely of annotations:
- </p>
- <h6 class='figure'>RootResources.java</h6>
- <p class='bcode'>
- <jd>/**
- * Sample REST resource showing how to implement a "router" resource page.
- */</jd>
- <ja>@RestResource</ja>(
- path=<js>"/"</js>,
- messages=<js>"nls/RootResources"</js>,
- properties={
- <ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'$R{servletURI}?method=OPTIONS',source:'$R{servletURI}/source?classes=(org.apache.juneau.server.samples.RootResources)'}"</js>)
- },
- children={
- HelloWorldResource.<jk>class</jk>,
- MethodExampleResource.<jk>class</jk>,
- RequestEchoResource.<jk>class</jk>,
- TempDirResource.<jk>class</jk>,
- AddressBookResource.<jk>class</jk>,
- SampleRemoteableServlet.<jk>class</jk>,
- PhotosResource.<jk>class</jk>,
- AtomFeedResource.<jk>class</jk>,
- JsonSchemaResource.<jk>class</jk>,
- SqlQueryResource.<jk>class</jk>,
- TumblrParserResource.<jk>class</jk>,
- CodeFormatterResource.<jk>class</jk>,
- UrlEncodedFormResource.<jk>class</jk>,
- SourceResource.<jk>class</jk>,
- ConfigResource.<jk>class</jk>,
- LogsResource.<jk>class</jk>,
- DockerRegistryResource.<jk>class</jk>,
- ShutdownResource.<jk>class</jk>
- }
- )
- <jk>public class</jk> RootResources <jk>extends</jk> ResourceGroup {
- <jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L;
- }
- </p>
- <p>
- The resource bundle contains the localized strings for the resource:
- </p>
- <h6 class='figure'>RootResources.properties</h6>
- <p class='bcode'>
- <cc>#--------------------------------------------------------------------------------
- # RootResources labels
- #--------------------------------------------------------------------------------</cc>
- <ck>label</ck> = <cv>Root resources</cv>
- <ck>description</ck> = <cv>This is an example of a router resource that is used to access other resources.</cv>
- </p>
- <p>
- The <l>label</l> and <l>description</l> keys identify the localized values
- return by the {@link org.apache.juneau.server.RestServlet#getLabel(RestRequest)} and {@link org.apache.juneau.server.RestServlet#getDescription(RestRequest)} methods.
- </p>
- <p>
- The <l>children</l> annotation defines the child resources of this router resource.
- These are resources whose paths are relative to the parent resource.
- </p>
- <p>
- Child resources must also be subclasses of {@link org.apache.juneau.server.RestServlet}, and
- must specify a {@link org.apache.juneau.server.annotation.RestResource#path()} annotation to
- identify the subpath of the child.
- For example, the <l>HelloWorldResource</l> class is annotated as follows:
- </p>
- <h6 class='figure'>HelloWorldResource.java</h6>
- <p class='bcode'>
- <ja>@RestResource</ja>(messages=<js>"nls/HelloWorldResource"</js>, path=<js>"/helloWorld"</js>)
- <jk>public class</jk> HelloWorldResource <jk>extends</jk> Resource {
- </p>
- <p>
- It should be noted that child resources do not need to be defined this way.
- They could also be defined as servlets in the same way as the root resource.
- The <l>children</l> annotation approach simply makes it easier to define them without having to touch the <l>web.xml</l> file again.
- Child resources can also be defined programmatically by overriding the {@link org.apache.juneau.server.RestServlet#createChildren()} method.
- </p>
- <p>
- Note that these router pages can be arbitrarily nested deep.
- You can define many levels of router pages for arbitrarily hierarchical REST interfaces.
- </p>
- <p class='info'>
- Let's step back and describe what's going on here:<br>
- During servlet initialization of the <l>RootResources</l> object, the toolkit looks for the <l>@RestResource.children()</l> annotation.
- If it finds it, it instantiates instances of each class and recursively peforms servlet initialization on them.
- It then associates the child resource with the parent by the name specified by the <l>@RestResource.path()</l> annotation on the child class.
- When a request for the child URL (<l>/helloWorld</l>) is received, the <l>RootResources</l> servlet gets the request and sees that the URL remainder matches one of its child resources.
- It then forwards the request to the child resource for processing.
- The request passed to the child resource is the same as if the child resource had been deployed independently (e.g. path-info, resource-URI, and so forth).
- </p>
- </div>
-
- <!-- ======================================================================================================== -->
- <a id="Samples.HelloWorldResource"></a>
- <h3 class='topic' onclick='toggle(this)'>7.6 - HelloWorldResource</h3>
- <div class='topic'>
- <p>
- The <l>HelloWorldResource</l> class is a simple resource that prints a "Hello world!" message.
- </p>
- <h6 class='figure'>HelloWorldResource.java</h6>
- <p class='bcode'>
- <jd>/**
- * Sample REST resource that prints out a simple "Hello world!" message.
- */</jd>
- <ja>@RestResource</ja>(
- messages=<js>"nls/HelloWorldResource"</js>,
- path=<js>"/helloWorld"</js>,
- properties={
- <ja>@Property</ja>(name=HTMLDOC_links, value=<js>"{up:'$R{requestParentURI}',options:'?method=OPTIONS'}"</js>
<TRUNCATED>
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Microservices.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Microservices.1.png b/juneau-core/src/main/javadoc/doc-files/Microservices.1.png
new file mode 100644
index 0000000..e730d32
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Microservices.1.png differ
[4/7] incubator-juneau git commit: Fix javadoc generation.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/javadoc.css
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/javadoc.css b/juneau-core/src/main/javadoc/javadoc.css
new file mode 100755
index 0000000..dd10162
--- /dev/null
+++ b/juneau-core/src/main/javadoc/javadoc.css
@@ -0,0 +1,662 @@
+/* Javadoc style sheet */
+
+/*
+Overall document style
+*/
+body {
+ background-image: linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
+ background-image: -o-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
+ background-image: -moz-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
+ background-image: -webkit-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
+ background-image: -ms-linear-gradient(top, #cddddf 0, #eaeded 20px, #ffffff 70px);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #cddddf), color-stop(20px, #eaeded), color-stop(70px, #ffffff) );
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+ color: #353833;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 76%;
+ margin: 0;
+}
+
+a:link,a:visited {
+ text-decoration: none;
+ color: #4c6b87;
+}
+
+a:hover,a:focus {
+ text-decoration: none;
+ color: #bb7a2a;
+}
+
+a:active {
+ text-decoration: none;
+ color: #4c6b87;
+}
+
+a[name] {
+ color: #353833;
+}
+
+a[name]:hover {
+ text-decoration: none;
+ color: #353833;
+}
+
+h1 {
+ font-size: 1.5em;
+}
+
+h2 {
+ font-size: 1.4em;
+}
+
+h3 {
+ font-size: 1.3em;
+}
+
+h4 {
+ font-size: 1.2em;
+}
+
+h5 {
+ font-size: 1.1em;
+}
+
+h6 {
+ font-size: 1.0em;
+}
+
+ul {
+ list-style-type: disc;
+}
+
+code,
+tt,
+pre,
+dt code {
+ font-size: 9pt;
+}
+
+table tr td dt code {
+ font-size: 9pt;
+ vertical-align: top;
+}
+
+sup {
+ font-size: .6em;
+}
+
+/*
+Document title and Copyright styles
+*/
+.clear {
+ clear: both;
+ height: 0px;
+ overflow: hidden;
+}
+
+.aboutLanguage {
+ float: right;
+ padding: 0px 21px;
+ font-size: .8em;
+ z-index: 200;
+ margin-top: -7px;
+}
+
+.legalCopy {
+ margin-left: .5em;
+}
+
+.bar a,
+.bar a:link,
+.bar a:visited,
+.bar a:active {
+ color: #ffffff;
+ text-decoration: none;
+}
+
+.bar a:hover,
+.bar a:focus {
+ color: #bb7a2a;
+}
+
+.tab {
+ background-color: #0066ff;
+ background-image: url('data:image/gif;base64,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');
+ background-position: left top;
+ background-repeat: no-repeat;
+ color: #ffffff;
+ padding: 8px;
+ width: 5em;
+ font-weight: bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+ background-image: url('data:image/gif;base64,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');
+ background-repeat: repeat-x;
+ color: #ffffff;
+ padding: .8em .5em .4em .8em;
+ height: auto; /*height:1.8em;*/
+ font-size: 1em;
+ margin: 0;
+}
+
+.topNav {
+ background-image: url('data:image/gif;base64,R0lGODlhMgBwAOYAAAAAAP///z1bcT5ccj9dc0NieUBedERjekFfdUtthlZ6lTxbcT1ccjxbcD5dcz1ccTtZbUJieUFhdz9edD5dcjxZbjxabjtYbEZogEVmfkVnfkRlfENjekJieEBfdT9ecz1bbzxZbUZof0VmfURle0NjeUJhd0BfdD1abk5zjEtvh0pthUlrg0hqgURkek1xiUxviExwiEtuhklrglN5k1F2kFB1jk9zjE5xik5yiktthVJ2kFJ3kFF2j05xiVd9mFV6lVR5k1F1jld9l1Z7lVV6lFqAm1l/mVh9mFh+mFqAml2DnluAm1uBm1p/mV2DnWGIo2CGoV+FoF+Fn16Dnl6Enl2CnGKIo2KJo2GHomGIomCFoGCGoGKHomKIomGGoWGHoWOIo2OJozxbb0VofzxbbjtZbEZpgDxabUhrgkJid0Fhdklsg0hrgTxZbE5ziz1abU90jElrgUhqgFN5klB1jVR6k1F2jll/mFqAmVyCm12DnP///wAAAAAAAAAAACH5BAEAAHwALAAAAAAyAHAAAAf/gGYhgmaFgiGIg4OEi4WJiISGkIuNh4mWgheGbpOWipqFnJchoI+ToGZuFhUQrK2trrAQs6+vFbG1rLe5s7quaMDAcCgoaCjDw8EhwcPFx8fMxMbB0c7DZWUg2iBj3Nnb2djb3N7j291j3+bo3wsLDe/wAg0P8A32C/Px+fT2/vz19t0DCI/BAAYPBgx4gPAgg4YLDyZc2PDhw4kME1bEWJEBAQoEHBD46ICCSAciKagcKZKkyZAnR5p82bLlzJMfDBjI+aFnzp0TJvTUuXOnT50fJhT1+bOp0aE7T0iVigDBCQ8IPEjValUr1a5Zp369alXsiapktUqQsMZEWxMm/9aumbtGTdy5buHGZUs3L1y5btu+3Tu3Q4QIJQp0KHF4MWLEHQwjVsw
4gmPGiR1bnjxZs2MXB0qI5uCiBIcDHEq4cJG6tGjTpU+3fk3adOjXo2OjLrGBhO/evUlsGA5cuG/jwYknN858efLhGTKMGCE9unUN0bFn0DC9uvXt0qlTt969/PftZDCoV3+GjAgMItKvP/N+vnv48u3XX68f/5wWc8zRBoD/EdhCG3IcSOCAAbZgYIAMFgghhAYSyAYbaczAwoYbsqEhCxdiiOGHHHq4YYYcdogiiimamIAOCSQgQ4wzxriCjCvosMKNMtIYYwI89iikj0LWCKQKMcAAg/8KSi6pApNKQtmklE9KueSUUGaJJZM4vJDDl116+cKYOeDgAw5oflkmmWN6qWaYObip5ppijpnCDW/cgOcbceDZp55vBIonoHz6CSihfQo66J6J9mlDHXXcIcQdNlA6KaQ2CKGpEJFOWmmmd0DaKaWWdjrqp5fysAMPrO6wQw871MBqDzz0QKusrb4a66ysqqorrr36CiuuNNBABx1BFEuHHcfSkKyxxx777LLNBiGtssxKe62x2dJQhAJEEAGuuEQUYS4RQABRRLjhjguuueu2K2+87s5r7g9JIJFEEvj2+wO+QwyBhL768mvwv/gW3C+/BSt88L95OCExHng4gUf/xBFffMQRFE9c8cVOZOyxxRFPPDLIESthhBFMNKGEyka43AQTSjDR8sotv7yyzEyw7DLMTfjss84xK9GEHnpYobQVeuxhhdNI77FH004v3fTTTCdttdNVL6301VA/scQSVFDxxBNVVIG22FSovUQVZJuNttpux3122mxTYffca0uxxd9TTOH331xwMQUXfh8OuOB/b1H4FIsP3jjkWwQueeFgRPEFF19kHoXmYIDBReabg7F555+DLvrpnmt+Ouupdw5GF6FnQfvsXWThBRheeNFF7rXf/rvuvINhe+jDG0/78bgTL8YVXlwRxvRePH+FGNVfcX0Y0U/PvfXYd0/9//Pdi/+99s9DoQUU7GOBhRZavM/+
Fe2v3/778a9vPxTuw2///v3Ln/sGSMACGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTCMoQxnSMMa2vCGOMyhDnfIwx76EIb0AyD+5AcF+vFPiPCTHxLhx74lvo980hsf+rK3PfNRMXxRPF/5snjF2zFveLvrXfKUh7zchZGMzSPjF80YOs1xrnWyG50bTffG2IWOc3X83Bdel0fVSc5yjXsc4irHhcgF0nCGbFzlEuk4Lohtb3hzW9vEBrey3Y1uj7Qk3+IGSUwizf9rYMua1KgGSq5lrZRY89rXTKkHmOUMaEajmc2CNjRYzqyWOxPaK3dmtJJZ7GMYI9nGOvZLkoXMYifzZcWKiTInJGxfC0NYEgI2sHxB82HPPBjD9uUwf/3gW/IiF7zQpS52kUuc5wrnu9RpryIoC1nYqtY7ozWtblkLntyi57aoRQcaqKpXrhoWr2zFA2AFdFe1AuivgpUrgfLgUaeyVKjqkKlNRRRUopIUqTJlKo2iKlR3yhOjDEWoPIk0UI061EgVddJCFapLb2ITmcyEJhzEtE5yolOc5gQmmb4ASVHa0pSaFNQoPYmoVNLSlYzKpBcRyUg3kkGOdvTUHwWpRkb/KhKRgHQhFpXoQyFKw4hSBKIPeVVFGjprWVnwHwo1yEAIUpBbJdRWAVVoQnZ9a4Dyw577xIc/9AGsX/mKgfbshz+FHWx0zPMd7TiWsdcJj3cWKx7xnEcDwUHOb4ij2d80h7OdXU5ohwMa2uimNaxRDW5qIxvV5sY2uHltayWTmcpcBjK0pUxjMNMZ23KmtruNAGAGIxe62IUvfiFMX4jLlsAkt7hmQQtWvMKVq0xFumERC3bNchawaMUpTEFKUKCylKMApbxQAa95P/CRkMikJCdJyUrc65L40vcm9LUJfENiEIhkxCH+lYhC/msR/25EwBTRCAPc8Y95BGQg8mhwZ
j8EEuEHSzgg4jhHOcABggxrgx3m+PCG17FhaqChGcZARjGAsQxhSOMZcKjGNEyM4mesghe76AUuXOELWuBYF70Ico4VcYpNdOIRmTDyKEphiiSHghGG8IQiHBEJRyC5Ep2osicCAQA7');
+ background-repeat: repeat-x;
+ color: #ffffff;
+ float: left;
+ padding: 0;
+ width: 100%;
+ clear: right;
+ height: 2.8em;
+ padding-top: 10px;
+ overflow: hidden;
+}
+
+.bottomNav {
+ margin-top: 10px;
+ background-image: url('data:image/gif;base64,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');
+ background-repeat: repeat-x;
+ color: #ffffff;
+ float: left;
+ padding: 0;
+ width: 100%;
+ clear: right;
+ height: 2.8em;
+ padding-top: 10px;
+ overflow: hidden;
+}
+
+.subNav {
+ background-color: #dee3e9;
+ border-bottom: 1px solid #9eadc0;
+ float: left;
+ width: 100%;
+ overflow: hidden;
+}
+
+.subNav div {
+ clear: left;
+ float: left;
+ padding: 0 0 5px 6px;
+}
+
+ul.navList,
+ul.subNavList {
+ float: left;
+ margin: 0 25px 0 0;
+ padding: 0;
+}
+
+ul.navList li {
+ list-style: none;
+ float: left;
+ padding: 3px 6px;
+}
+
+ul.subNavList li {
+ list-style: none;
+ float: left;
+ font-size: 90%;
+}
+
+.topNav a:link,
+.topNav a:active,
+.topNav a:visited,
+.bottomNav a:link,
+.bottomNav a:active,
+.bottomNav a:visited {
+ color: #ffffff;
+ text-decoration: none;
+}
+
+.topNav a:hover,
+.bottomNav a:hover {
+ text-decoration: none;
+ color: #bb7a2a;
+}
+
+.navBarCell1Rev {
+ background-image: url('data:image/gif;base64,R0lGODlhAwAeANUAAAAAAP///9+VNfChOu+gOeKXNr58Kr18Krp6KbZ3KMyGLr9+K7t6Krh4KbZ3KdKKMM+IL8yGL8mELsiDLsWBLcWCLcKALLl4KtKLMd+UNdyRNNmPM9WNMvCgOuqcOOaZN+WYN+KWNtqQNPGhO+yeOuucOeeaOPOiPP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACgALAAAAAADAB4AAAZAwJNwMBoQOgSS0lPymJ4f0CdUCGUEGY12I9pwvpgHBkJWRBQTyaRCqVjei/jBcGAgGI1LI+FI5Pd9f3x+eoJ9QQA7');
+ background-color: #a88834;
+ color: #ffffff;
+ margin: auto 5px;
+ border: 1px solid #c9aa44;
+}
+/*
+Page header and footer styles
+*/
+.header,
+.footer {
+ clear: both;
+ margin: 0 20px;
+ padding: 5px 0 0 0;
+}
+
+.indexHeader {
+ margin: 10px;
+ position: relative;
+}
+
+.indexHeader h1 {
+ font-size: 1.3em;
+}
+
+.title {
+ color: #2c4557;
+ margin: 10px 0;
+}
+
+.subTitle {
+ margin: 5px 0 0 0;
+}
+
+.header ul {
+ margin: 0 0 25px 0;
+ padding: 0;
+}
+
+.footer ul {
+ margin: 20px 0 5px 0;
+}
+
+.header ul li/*,
+.footer ul li*/ {
+ list-style: none;
+ font-size: 1.2em;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4,
+div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+ background-color: #dee3e9;
+ border-top: 1px solid #9eadc0;
+ border-bottom: 1px solid #9eadc0;
+ margin: 0 0 6px -8px;
+ padding: 2px 5px;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ background-color: #dee3e9;
+ border-top: 1px solid #9eadc0;
+ border-bottom: 1px solid #9eadc0;
+ margin: 0 0 6px -8px;
+ padding: 2px 5px;
+}
+
+ul.blockList ul.blockList li.blockList h3 {
+ padding: 0;
+ margin: 15px 0;
+}
+
+ul.blockList li.blockList h2 {
+ padding: 0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer,
+.sourceContainer,
+.classUseContainer,
+.serializedFormContainer,
+.constantValuesContainer {
+ clear: both;
+ padding: 10px 20px;
+ position: relative;
+}
+
+.indexContainer {
+ margin: 10px;
+ position: relative;
+ font-size: 1.0em;
+}
+
+.indexContainer h2 {
+ font-size: 1.1em;
+ padding: 0 0 3px 0;
+}
+
+.indexContainer ul {
+ margin: 0;
+ padding: 0;
+}
+
+.indexContainer ul li {
+ list-style: none;
+}
+
+.contentContainer .description dl dt,
+.contentContainer .details dl dt,
+.serializedFormContainer dl dt {
+ font-size: 1.1em;
+ font-weight: bold;
+ margin: 10px 0 0 0;
+ color: #4e4e4e;
+}
+
+.contentContainer .description dl dd,
+.contentContainer .details dl dd,
+.serializedFormContainer dl dd {
+ margin: 10px 0 10px 20px;
+}
+
+.serializedFormContainer dl.nameValue dt {
+ margin-left: 1px;
+ font-size: 1.1em;
+ display: inline;
+ font-weight: bold;
+}
+
+.serializedFormContainer dl.nameValue dd {
+ margin: 0 0 0 1px;
+ font-size: 1.1em;
+ display: inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+ display: inline;
+ font-size: 0.9em;
+}
+
+ul.inheritance {
+ margin: 0;
+ padding: 0;
+}
+
+ul.inheritance li {
+ display: inline;
+ list-style: none;
+}
+
+ul.inheritance li ul.inheritance {
+ margin-left: 15px;
+ padding-left: 15px;
+ padding-top: 1px;
+}
+
+ul.blockList,
+ul.blockListLast {
+ margin: 10px 0 10px 0;
+ padding: 0;
+}
+
+ul.blockList li.blockList,
+ul.blockListLast li.blockList {
+ list-style: none;
+ margin-bottom: 25px;
+}
+
+ul.blockList ul.blockList li.blockList,
+ul.blockList ul.blockListLast li.blockList {
+ padding: 0px 20px 5px 10px;
+ border: 1px solid #9eadc0;
+ background-color: #f9f9f9;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList,
+ul.blockList ul.blockList ul.blockListLast li.blockList {
+ padding: 0 0 5px 8px;
+ background-color: #ffffff;
+ border: 1px solid #9eadc0;
+ border-top: none;
+}
+
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+ margin-left: 0;
+ padding-left: 0;
+ padding-bottom: 15px;
+ border: none;
+ border-bottom: 1px solid #9eadc0;
+}
+
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+ list-style: none;
+ border-bottom: none;
+ padding-bottom: 0;
+}
+
+table tr td dl,
+table tr td dl dt,
+table tr td dl dd {
+ margin-top: 0;
+ margin-bottom: 1px;
+}
+/*
+Table styles
+*/
+.contentContainer table,
+.classUseContainer table,
+.constantValuesContainer table {
+ border-bottom: 1px solid #9eadc0;
+ width: 100%;
+}
+
+.contentContainer ul li table,
+.classUseContainer ul li table,
+.constantValuesContainer ul li table {
+ width: 100%;
+}
+
+.contentContainer .description table,
+.contentContainer .details table {
+ border-bottom: none;
+}
+
+.contentContainer ul li table th.colOne,
+.contentContainer ul li table th.colFirst,
+.contentContainer ul li table th.colLast,
+.classUseContainer ul li table th,
+.constantValuesContainer ul li table th,
+.contentContainer ul li table td.colOne,
+.contentContainer ul li table td.colFirst,
+.contentContainer ul li table td.colLast,
+.classUseContainer ul li table td,
+.constantValuesContainer ul li table td {
+ vertical-align: top;
+ padding-right: 20px;
+}
+
+.contentContainer ul li table th.colLast,
+.classUseContainer ul li table th.colLast,
+.constantValuesContainer ul li table th.colLast,
+.contentContainer ul li table td.colLast,
+.classUseContainer ul li table td.colLast,
+.constantValuesContainer ul li table td.colLast,
+.contentContainer ul li table th.colOne,
+.classUseContainer ul li table th.colOne,
+.contentContainer ul li table td.colOne,
+.classUseContainer ul li table td.colOne {
+ padding-right: 3px;
+}
+
+.overviewSummary caption,
+.packageSummary caption,
+.contentContainer ul.blockList li.blockList caption,
+.summary caption,
+.classUseContainer caption,
+.constantValuesContainer caption {
+ position: relative;
+ text-align: left;
+ background-repeat: no-repeat;
+ color: #ffffff;
+ font-weight: bold;
+ clear: none;
+ overflow: hidden;
+ padding: 0px;
+ margin: 0px;
+}
+
+caption a:link,
+caption a:hover,
+caption a:active,
+caption a:visited {
+ color: #ffffff;
+}
+
+.overviewSummary caption span,
+.packageSummary caption span,
+.contentContainer ul.blockList li.blockList caption span,
+.summary caption span,
+.classUseContainer caption span,
+.constantValuesContainer caption span {
+ white-space: nowrap;
+ padding-top: 8px;
+ padding-left: 8px;
+ display: block;
+ float: left;
+ background-image: url('data:image/gif;base64,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');
+ height: 18px;
+}
+
+.overviewSummary .tabEnd,.packageSummary .tabEnd,
+.contentContainer ul.blockList li.blockList .tabEnd,
+.summary .tabEnd,
+.classUseContainer .tabEnd,
+.constantValuesContainer .tabEnd {
+ width: 10px;
+ background-image: url('data:image/gif;base64,R0lGODlhEwAoAOYAAAAAAP////CgOe6fON+VNfChOu+gOeKXNvGiO+2fOtqOML58Kr17Kr18Krt6Kbp6KbZ2KLZ3KNuPMdqOMdqPMcyFLsyGLsiDLcOALMB+K799K79+K758K7t6Krh3Kbh4KbZ3KdKKMNKLMM+IL8yGL8mELsiDLsiELsaCLcWBLcWCLcJ/LMKALLl4Krh4KtKLMc+JMOWYNuOXNt+UNdyRNNmPM9WNMvCgOuqcOOibOOaYN+aZN+WYN+KWNt2SNdqQNNmQNNWOM/GhO/CgO+2eOuyeOuucOeudOeqcOeeaOPOiPN2VP92XQd+bSOezd+i1evnt4Pvy6v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFIALAAAAAATACgAAAf/gBQTCoQUChSGgoVNT1EBSpCRkpNDOkxQBQUICEIFnZ6ZnJkFO04GBpk3BqqrpwWqAgUDS0UJtkW4ubUJuLZECjhIR0dGOMXGwcTGSEgUSTlJ0dLS0NE50BM7PNs82jve3NoxPBQ9Mj09B+no6ufq5j0SM/MzBPXz9vj3BBI0PjQAAwb8N5CGghoIa/xQiHBhwxpAgNSgYCOIRRsYM1YMojHIhBcvQogMCTJESZMiTE4YAaPliJcwWcJ4OXMEBQsVSOi0QMICT5w7dZJQYKLEiRMlippQajRpiQsnJKhAQTWFCqtXp6KwuhXFBBYYWIgdOzasWAwrMEzYoCFDhg1wruOyfbvhbQYKDRowYLCgQV+/efnmbcBBQocHDhw8ONyBMeLFDyJT+OD
iw4cWly1jroz5socJESJAgAAiQmnToUmHBgFicuXMnTdn9gxatOrTp1Wbbk1Z82zZsT+nvr06NW7erzHH7h18Qm/YvjlrFm67NG7jq5H7Xi6d9nDrxUUfd709+m/qo8GjFp+dPPTM3VugJ75eN2v3ys03/74+93hEiEwgSIAACijBIBQEAgA7');
+ background-repeat: no-repeat;
+ background-position: top right;
+ position: relative;
+ float: left;
+}
+
+ul.blockList ul.blockList li.blockList table {
+ margin: 0 0 12px 0px;
+ width: 100%;
+}
+
+.tableSubHeadingColor {
+ background-color: #EEEEFF;
+}
+
+.altColor {
+ background-color: #eeeeef;
+}
+
+.rowColor {
+ background-color: #ffffff;
+}
+
+.overviewSummary td,
+.packageSummary td,
+.contentContainer ul.blockList li.blockList td,
+.summary td,
+.classUseContainer td,.constantValuesContainer td {
+ text-align: left;
+ padding: 3px 3px 3px 7px;
+}
+
+th.colFirst,
+th.colLast,
+th.colOne,
+.constantValuesContainer th {
+ background: #dee3e9;
+ border-top: 1px solid #9eadc0;
+ border-bottom: 1px solid #9eadc0;
+ text-align: left;
+ padding: 3px 3px 3px 7px;
+}
+
+td.colOne a:link,
+td.colOne a:active,
+td.colOne a:visited,
+td.colOne a:hover,
+td.colFirst a:link,
+td.colFirst a:active,
+td.colFirst a:visited,
+td.colFirst a:hover,
+td.colLast a:link,
+td.colLast a:active,
+td.colLast a:visited,
+td.colLast a:hover,
+.constantValuesContainer td a:link,
+.constantValuesContainer td a:active,
+.constantValuesContainer td a:visited,
+.constantValuesContainer td a:hover {
+ font-weight: bold;
+}
+
+td.colFirst,
+th.colFirst {
+ border-left: 1px solid #9eadc0;
+ white-space: nowrap;
+}
+
+td.colLast,
+th.colLast {
+ border-right: 1px solid #9eadc0;
+}
+
+td.colOne,
+th.colOne {
+ border-right: 1px solid #9eadc0;
+ border-left: 1px solid #9eadc0;
+}
+
+table.overviewSummary {
+ padding: 0px;
+ margin-left: 0px;
+}
+
+table.overviewSummary td.colFirst,
+table.overviewSummary th.colFirst,
+table.overviewSummary td.colOne,
+table.overviewSummary th.colOne {
+ width: 25%;
+ vertical-align: middle;
+}
+
+table.packageSummary td.colFirst,
+table.overviewSummary th.colFirst {
+ width: 25%;
+ vertical-align: middle;
+}
+/*
+Content styles
+*/
+.description pre {
+ margin-top: 0;
+}
+
+.deprecatedContent {
+ margin: 0;
+ padding: 10px 0;
+}
+
+.docSummary {
+ padding: 0;
+}
+
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+ color: green;
+ padding: 0 30px 0 0;
+}
+
+h1.hidden {
+ visibility: hidden;
+ overflow: hidden;
+ font-size: .9em;
+}
+
+.block {
+ display: block;
+ margin: 0px;
+}
+
+.strong {
+ font-weight: bold;
+}
+
+@import url('resources/juneau-code.css');
+@import url('resources/juneau-doc.css');
+
[5/7] incubator-juneau git commit: Fix javadoc generation.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.1.png
new file mode 100644
index 0000000..96426b7
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.2.png
new file mode 100644
index 0000000..36c3e42
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.1.png
new file mode 100644
index 0000000..28f9f50
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.10.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.10.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.10.png
new file mode 100644
index 0000000..88813e3
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.10.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.2.png
new file mode 100644
index 0000000..d12c2a6
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.3.png
new file mode 100644
index 0000000..026f40a
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.4.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.4.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.4.png
new file mode 100644
index 0000000..9196c5c
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.4.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.5.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.5.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.5.png
new file mode 100644
index 0000000..3db4c82
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.5.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.6.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.6.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.6.png
new file mode 100644
index 0000000..bf1c752
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.6.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.7.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.7.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.7.png
new file mode 100644
index 0000000..820beaa
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.7.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.8.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.8.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.8.png
new file mode 100644
index 0000000..901adf8
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.8.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.9.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.9.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.9.png
new file mode 100644
index 0000000..57f2ee5
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Demo.9.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Introspectable.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Introspectable.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Introspectable.1.png
new file mode 100644
index 0000000..b6a7ca6
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Introspectable.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.1.png
new file mode 100644
index 0000000..8072bb0
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.2.png
new file mode 100644
index 0000000..5dfe9ac
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.3.png
new file mode 100644
index 0000000..f6ec90a
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Queryable.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Traversable.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Traversable.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Traversable.1.png
new file mode 100644
index 0000000..324bc9e
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Traversable.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Traversable.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Traversable.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Traversable.2.png
new file mode 100644
index 0000000..cb36527
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AddressBookResource.Traversable.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.1.png
new file mode 100644
index 0000000..b4918ad
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.2.png
new file mode 100644
index 0000000..9f7007b
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.3.png
new file mode 100644
index 0000000..9e9226e
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.AtomFeedResource.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.Building.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.Building.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.Building.1.png
new file mode 100644
index 0000000..b87be9e
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.Building.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.Building.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.Building.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.Building.2.png
new file mode 100644
index 0000000..7f4e892
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.Building.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.1.png
new file mode 100644
index 0000000..cdcbbe7
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.2.png
new file mode 100644
index 0000000..ec748e4
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.3.png
new file mode 100644
index 0000000..8e9a3d9
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.ConfigResource.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.DockerRegistryResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.DockerRegistryResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.DockerRegistryResource.1.png
new file mode 100644
index 0000000..2db968b
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.DockerRegistryResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.DockerRegistryResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.DockerRegistryResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.DockerRegistryResource.2.png
new file mode 100644
index 0000000..f40f603
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.DockerRegistryResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.1.png
new file mode 100644
index 0000000..bbc4afa
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.2.png
new file mode 100644
index 0000000..0cf55f9
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.3.png
new file mode 100644
index 0000000..c493099
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.HelloWorldResource.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.Installing.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.Installing.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.Installing.1.png
new file mode 100644
index 0000000..81c6239
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.Installing.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.Installing.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.Installing.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.Installing.2.png
new file mode 100644
index 0000000..9873f17
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.Installing.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.Installing.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.Installing.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.Installing.3.png
new file mode 100644
index 0000000..9c3fd34
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.Installing.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.JsonSchemaResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.JsonSchemaResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.JsonSchemaResource.1.png
new file mode 100644
index 0000000..23d69da
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.JsonSchemaResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.JsonSchemaResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.JsonSchemaResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.JsonSchemaResource.2.png
new file mode 100644
index 0000000..02c15c6
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.JsonSchemaResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.1.png
new file mode 100644
index 0000000..6cc890a
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.2.png
new file mode 100644
index 0000000..49c74a0
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.3.png
new file mode 100644
index 0000000..51594d8
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.LogsResource.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.MethodExampleResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.MethodExampleResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.MethodExampleResource.1.png
new file mode 100644
index 0000000..d64ea00
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.MethodExampleResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.MethodExampleResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.MethodExampleResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.MethodExampleResource.2.png
new file mode 100644
index 0000000..a621767
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.MethodExampleResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.PhotosResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.PhotosResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.PhotosResource.1.png
new file mode 100644
index 0000000..a050101
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.PhotosResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.PhotosResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.PhotosResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.PhotosResource.2.png
new file mode 100644
index 0000000..fe472a8
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.PhotosResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.htmlschema.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.htmlschema.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.htmlschema.png
new file mode 100644
index 0000000..0e822c0
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.htmlschema.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.json.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.json.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.json.png
new file mode 100644
index 0000000..67bc6b8
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.json.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.jsonschema.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.jsonschema.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.jsonschema.png
new file mode 100644
index 0000000..dbd6db3
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.jsonschema.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.jsonsimple.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.jsonsimple.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.jsonsimple.png
new file mode 100644
index 0000000..da569c0
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.jsonsimple.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.png
new file mode 100644
index 0000000..305c913
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.uon.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.uon.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.uon.png
new file mode 100644
index 0000000..4329dc4
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.uon.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.urlencoding.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.urlencoding.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.urlencoding.png
new file mode 100644
index 0000000..4982033
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.urlencoding.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.xml.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.xml.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.xml.png
new file mode 100644
index 0000000..d563523
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.xml.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.xmlschema.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.xmlschema.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.xmlschema.png
new file mode 100644
index 0000000..25b3de7
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.1.xmlschema.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.2.png
new file mode 100644
index 0000000..ffb5b24
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.3.png
new file mode 100644
index 0000000..606dad7
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.4.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.4.png b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.4.png
new file mode 100644
index 0000000..78df80a
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.RequestEchoResource.4.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.Running.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.Running.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.Running.1.png
new file mode 100644
index 0000000..b963769
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.Running.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.Running.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.Running.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.Running.2.png
new file mode 100644
index 0000000..1ea5e51
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.Running.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.Running.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.Running.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.Running.3.png
new file mode 100644
index 0000000..c2f37b4
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.Running.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.1.png
new file mode 100644
index 0000000..11e8220
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.2.png
new file mode 100644
index 0000000..ed6b88c
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.3.png b/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.3.png
new file mode 100644
index 0000000..5674912
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.SampleRemoteableServlet.3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.SqlQueryResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.SqlQueryResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.SqlQueryResource.1.png
new file mode 100644
index 0000000..21e32a6
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.SqlQueryResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.SqlQueryResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.SqlQueryResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.SqlQueryResource.2.png
new file mode 100644
index 0000000..206013f
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.SqlQueryResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.TempDirResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.TempDirResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.TempDirResource.1.png
new file mode 100644
index 0000000..bd6c854
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.TempDirResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.TempDirResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.TempDirResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.TempDirResource.2.png
new file mode 100644
index 0000000..0c78b77
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.TempDirResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.TumblrParserResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.TumblrParserResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.TumblrParserResource.1.png
new file mode 100644
index 0000000..9fac852
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.TumblrParserResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.UrlEncodedFormResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.UrlEncodedFormResource.1.png b/juneau-core/src/main/javadoc/doc-files/Samples.UrlEncodedFormResource.1.png
new file mode 100644
index 0000000..0599e93
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.UrlEncodedFormResource.1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Samples.UrlEncodedFormResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Samples.UrlEncodedFormResource.2.png b/juneau-core/src/main/javadoc/doc-files/Samples.UrlEncodedFormResource.2.png
new file mode 100644
index 0000000..0ed8b80
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Samples.UrlEncodedFormResource.2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.Html.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.Html.png b/juneau-core/src/main/javadoc/doc-files/Server.Html.png
new file mode 100644
index 0000000..87565c5
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.Html.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.Json.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.Json.png b/juneau-core/src/main/javadoc/doc-files/Server.Json.png
new file mode 100644
index 0000000..1bd3738
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.Json.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.N3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.N3.png b/juneau-core/src/main/javadoc/doc-files/Server.N3.png
new file mode 100644
index 0000000..8ada07c
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.N3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.NTuple.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.NTuple.png b/juneau-core/src/main/javadoc/doc-files/Server.NTuple.png
new file mode 100644
index 0000000..1e25554
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.NTuple.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.Options.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.Options.png b/juneau-core/src/main/javadoc/doc-files/Server.Options.png
new file mode 100644
index 0000000..f89fea0
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.Options.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.RdfXml.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.RdfXml.png b/juneau-core/src/main/javadoc/doc-files/Server.RdfXml.png
new file mode 100644
index 0000000..7a8b02c
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.RdfXml.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.SimpleXml.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.SimpleXml.png b/juneau-core/src/main/javadoc/doc-files/Server.SimpleXml.png
new file mode 100644
index 0000000..9eb1fcd
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.SimpleXml.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.Turtle.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.Turtle.png b/juneau-core/src/main/javadoc/doc-files/Server.Turtle.png
new file mode 100644
index 0000000..77ec6ad
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.Turtle.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.Uon.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.Uon.png b/juneau-core/src/main/javadoc/doc-files/Server.Uon.png
new file mode 100644
index 0000000..28e4baf
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.Uon.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.UrlEncoding.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.UrlEncoding.png b/juneau-core/src/main/javadoc/doc-files/Server.UrlEncoding.png
new file mode 100644
index 0000000..1572968
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.UrlEncoding.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/doc-files/Server.Xml.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/doc-files/Server.Xml.png b/juneau-core/src/main/javadoc/doc-files/Server.Xml.png
new file mode 100644
index 0000000..1012ea0
Binary files /dev/null and b/juneau-core/src/main/javadoc/doc-files/Server.Xml.png differ
[3/7] incubator-juneau git commit: Fix javadoc generation.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/overview.html b/juneau-core/src/main/javadoc/overview.html
new file mode 100644
index 0000000..9c7c77f
--- /dev/null
+++ b/juneau-core/src/main/javadoc/overview.html
@@ -0,0 +1,7672 @@
+<!DOCTYPE HTML>
+<!--
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+ -->
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <style type="text/css">
+ /* For viewing in file system and page designer */
+ @IMPORT url("../../../../juneau-releng/javadoc.css");
+ @IMPORT url("../../../../juneau-releng/juneau-doc.css");
+ @IMPORT url("../../../../juneau-releng/juneau-code.css");
+
+ body {
+ margin: 20px;
+ }
+ .spaced-list li { padding:5px; }
+ .footer .spaced-list ul { margin:0 }
+ </style>
+ <script type="text/javascript">
+ /* Replace all @code and @link tags. */
+ window.onload = function() {
+ document.body.innerHTML = document.body.innerHTML.replace(/\{\@code ([^\}]+)\}/g, '<code>$1<\/code>');
+ document.body.innerHTML = document.body.innerHTML.replace(/\{\@link (([^\}]+)\.)?([^\.\}]+)\}/g, '<code>$3<\/code>');
+ }
+ </script>
+</head>
+<body>
+<p>Apache Juneau Overview</p>
+<script type="text/javascript">
+ function toggle(x) {
+ var div = x.nextSibling;
+ while (div != null && div.nodeType != 1)
+ div = div.nextSibling;
+ if (div != null) {
+ var d = div.style.display;
+ if (d == 'block' || d == '') {
+ div.style.display = 'none';
+ x.className += " closed";
+ } else {
+ div.style.display = 'block';
+ x.className = x.className.replace(/(?:^|\s)closed(?!\S)/g , '' );
+ }
+ }
+ }
+</script>
+<p>
+ A generalized toolkit for converting POJOs to and from a variety of content types (JSON, XML, HTML, URLs, RDF/XML, N-Tuple, Turtle, N3, SOAP, Cognos, ATOM), and a REST toolkit for building up REST interfaces using simple POJOs.
+</p>
+
+<a id='TOC'></a><h5 class='toc'>Table of Contents</h5>
+<ol class='toc'>
+ <li><p><a class='doclink' href='#Intro'>Juneau - What is it?</a></p>
+ <li><p><a class='doclink' href='#Core'>Juneau Core (juneau.jar)</a></p>
+ <ol>
+ <li><p><a class='doclink' href='#Core.PojoCategories'>POJO Categories</a></p>
+ <li><p><a class='doclink' href='#Core.Serializers'>Serializers</a></p>
+ <li><p><a class='doclink' href='#Core.Parsers'>Parsers</a></p>
+ <li><p><a class='doclink' href='#Core.ObjectMap'>ObjectMap and ObjectList</a></p>
+ <li><p><a class='doclink' href='#Core.ConfigurableProperties'>Configurable Properties</a></p>
+ <li><p><a class='doclink' href='#Core.Annotations'>Annotations</a></p>
+ <li><p><a class='doclink' href='#Core.Transforms'>Transforms</a></p>
+ <li><p><a class='doclink' href='#Core.SimpleVarLanguage'>Simple Variable Language</a></p>
+ <li><p><a class='doclink' href='#Core.ConfigFile'>Configuration Files</a></p>
+ <li><p><a class='doclink' href='#Core.SupportedLanguages'>Supported Languages</a></p>
+ </ol>
+ <li><p><a class='doclink' href='#Server'>Juneau Server (juneau-server.jar)</a></p>
+ <li><p><a class='doclink' href='#Client'>Juneau Client (juneau-client.jar)</a></p>
+ <li><p><a class='doclink' href='#Remoteable'>Remoteable services</a></p>
+ <li><p><a class='doclink' href='#Microservices'>Juneau Microservices (juneau-microservice.jar)</a></p>
+ <li><p><a class='doclink' href='#Samples'>Samples</a></p>
+ <ol>
+ <li><p><a class='doclink' href='#Samples.Installing'>Installing in Eclipse</a></p>
+ <li><p><a class='doclink' href='#Samples.Running'>Running in Eclipse</a></p>
+ <li><p><a class='doclink' href='#Samples.Building'>Building and Running from Command-Line</a></p>
+ <li><p><a class='doclink' href='#Samples.RestResource'>MANIFEST.MF</a></p>
+ <li><p><a class='doclink' href='#Samples.RootResources'>RootResources</a></p>
+ <li><p><a class='doclink' href='#Samples.HelloWorldResource'>HelloWorldResource</a></p>
+ <li><p><a class='doclink' href='#Samples.MethodExampleResource'>MethodExampleResource</a></p>
+ <li><p><a class='doclink' href='#Samples.UrlEncodedFormResource'>UrlEncodedFormResource</a></p>
+ <li><p><a class='doclink' href='#Samples.RequestEchoResource'>RequestEchoResource</a></p>
+ <li><p><a class='doclink' href='#Samples.AddressBookResource'>AddressBookResource</a></p>
+ <ol>
+ <li><p><a class='doclink' href='#Samples.AddressBookResource.Classes'>Classes</a></p>
+ <li><p><a class='doclink' href='#Samples.AddressBookResource.Demo'>Demo</a></p>
+ <li><p><a class='doclink' href='#Samples.AddressBookResource.Traversable'>Traversable</a></p>
+ <li><p><a class='doclink' href='#Samples.AddressBookResource.Queryable'>Queryable</a></p>
+ <li><p><a class='doclink' href='#Samples.AddressBookResource.Introspectable'>Introspectable</a></p>
+ <li><p><a class='doclink' href='#Samples.AddressBookResource.RestClient'>ClientTest</a></p>
+ <li><p><a class='doclink' href='#Samples.AddressBookResource.Browser'>Browser Tips</a></p>
+ </ol>
+ <li><p><a class='doclink' href='#Samples.SampleRemoteableServlet'>SampleRemoteableServlet</a></p>
+ <li><p><a class='doclink' href='#Samples.TempDirResource'>TempDirResource</a></p>
+ <li><p><a class='doclink' href='#Samples.AtomFeedResource'>AtomFeedResource</a></p>
+ <li><p><a class='doclink' href='#Samples.DockerRegistryResource'>DockerRegistryResource</a></p>
+ <li><p><a class='doclink' href='#Samples.TumblrParserResource'>TumblrParserResource</a></p>
+ <li><p><a class='doclink' href='#Samples.PhotosResource'>PhotosResource</a></p>
+ <li><p><a class='doclink' href='#Samples.JsonSchemaResource'>JsonSchemaResource</a></p>
+ <li><p><a class='doclink' href='#Samples.SqlQueryResource'>SqlQueryResource</a></p>
+ <li><p><a class='doclink' href='#Samples.ConfigResource'>ConfigResource</a></p>
+ <li><p><a class='doclink' href='#Samples.LogsResource'>LogsResource</a></p>
+ </ol>
+ <li><p><a class='doclink' href='#Cookbook'>Cookbook Examples</a></p>
+ <ol>
+ <li><p><a class='doclink' href='#Cookbook.Core'>Core API</a></p>
+ <li><p><a class='doclink' href='#Cookbook.Server'>Server API</a></p>
+ <ol>
+ <li><p><a class='doclink' href='#Cookbook.Server.applyDoubletransform'>Apply a transform that changes the format of doubles</a></p>
+ <li><p><a class='doclink' href='#Cookbook.Server.applyTransformsSubset'>Apply transforms to a subset of serializers or parsers</a></p>
+ </ol>
+ <li><p><a class='doclink' href='#Cookbook.Client'>Client API</a></p>
+ <ol>
+ </ol>
+ <li><p><a class='doclink' href='#Cookbook.Microservice'>Microservice API</a></p>
+ <ol>
+ </ol>
+ </ol>
+ <li><p><a class='doclink' href='#BestPractices'>Best Practices</a></p>
+ <li><p><a class='doclink' href='#ImportantLinks'>Important Documentation Links</a></p>
+ <li><p><a class='doclink' href='#ReleaseNotes'>Release Notes</a></p>
+</ol>
+
+<!-- ======================================================================================================== -->
+<a id="Intro"></a>
+<h2 class='topic' onclick='toggle(this)'>1 - Juneau - What is it?</h2>
+<div class='topic'>
+ <p>
+ Juneau started off as a simple library for serializing and parsing POJOs to and from JSON.
+ Since then, it has expanded into serializing and parsing a variety of other content types.
+ Later, entire REST client, server, and microservice APIs were developed that utilized the power of these serializers and parsers.
+ Together, these features allow the construction of powerful REST interfaces wrapped around existing POJOs using very little code.
+ </p>
+
+ <h5 class='toc'>Features</h5>
+ <ol class='toc'>
+ <li>
+ <p>Extensive and extensible support for a large variety of POJOs, including structured data (beans) and unstructured data (<l>Maps</l> and <l>Collections</l>).</p>
+ <li>
+ <p>Support for serializing POJO models to:</p>
+ <ul>
+ <li>JSON (including variants)
+ <li>XML
+ <li>HTML
+ <li>URL-Encoding
+ <li>UON (URL-Encoded Object Notation)
+ <li>MessagePack
+ <li>RDF/XML (including abbreviated)
+ <li>N-Triple
+ <li>Turtle
+ <li>N3
+ <li>SOAP/XML
+ </ul>
+ <li>
+ <p>Support for parsing the following into POJO models:</p>
+ <ul>
+ <li>JSON (including lax syntax, comments, concatenated strings)
+ <li>XML
+ <li>HTML
+ <li>URL-Encoding
+ <li>UON (URL-Encoded Object Notation)
+ <li>MessagePack
+ <li>RDF/XML (including abbreviated)
+ <li>N-Triple
+ <li>Turtle
+ <li>N3
+ </ul>
+ <li>
+ <p>Data Transfer Objects for the following:</p>
+ <ul>
+ <li>ATOM
+ <li>Cognos
+ <li>JSON-Schema
+ </ul>
+ <p>DTOs can be used with any serializers and parsers.
+ <li>
+ <p>Support for serializing POJO meta-models (specifically the POJO class structure itself) to:</p>
+ <ul>
+ <li>JSON-Schema
+ <li>XML-Schema
+ <li>HTML-Schema
+ </ul>
+ <li>
+ <p>Easy-to-understand naming conventions such as {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} to represent generic {@code Maps} and {@code Lists}.</p>
+ <li>
+ <p>Serializers have many options for tweaking output (such as whitespace options, XML namespace options, strict/non-strict syntax options, and so forth).</p>
+ <li>
+ <div>
+ JSON parser supports ALL valid JSON, such as:
+ <ul class='normal'>
+ <li>Javascript comments.
+ <li>Single or double quoted values.
+ <li>Quoted (strict) or unquoted (non-strict) attributes.
+ <li>JSON fragments (such as string, numeric, or boolean primitive values).
+ <li>Concatenated strings.
+ </ul>
+ </div>
+ <li>
+ <div>
+ REST server interface that allows POJOs to be accessed through REST calls.
+ <ul class='normal'>
+ <li>Serialization and parsing layer is completely transparent to developer.
+ Simply pass a POJO to the toolkit, and all serialization and parsing is taken care of.
+ <li>Extensible / customizable design.
+ Ability to define support for additional content types, or to handle requests manually at many different levels.
+ <li>Default built-in support for serializing output to all supported languages.
+ <li>Default built-in support for parsing input from all supported languages.
+ <li>Ability to easily design self-documenting interfaces (specifically REST interfaces described entirely through OPTIONS requests).
+ <li>Ability to debug interface using nothing more than a browser, including the ability to specify any HTTP headers as GET parameters.
+ </ul>
+ </div>
+ <li>
+ <p>REST client interface that allows clients to parse POJOs from the REST server, typically in a single line of code.</p>
+ <li>
+ <p>No code generators required. Can be used against existing POJO models, unlike other APIs like Java Web Services.</p>
+ <li>
+ <p>
+ Serializers/parsers require only Java 1.6+.
+ (RDF support requires Jena 2.7.1+)
+ </p>
+ <li>
+ <p>
+ REST APIs require only Java 1.6+ and JEE 1.3+.
+ (JAX/RS integration component requires JAX/RS provider)
+ </p>
+ <li>
+ <p>All code is 100% IBM developer written cleanroom code.</p>
+ <li>
+ <p>Extensive and up-to-date Javadocs with color-coded code examples.</p>
+ <li>
+ <p>
+ APIs use a Fluent Interface that allows complex tasks to be performed in a single line of code.
+ </p>
+ <li>
+ <p>
+ Code written for high-performance/high-concurrency/low-memory consumption.<br>
+ Caching of POJO metadata speeds execution of serialization and parsing.<br>
+ JSON parser is written using a state-machine architecture.<br>
+ XML and HTML parsers are written using StAX.<br>
+ POJOs are serialized/parsed directly from POJOs without a DOM layer, reducing object creation.
+ </p>
+ <li>
+ <p>A simple-to-use JAX-RS / Wink provider for using the existing Juneau serializers and parsers in a JAX-RS environment.</p>
+ <li>
+ <p>An external INI-style configuration file API.</p>
+ <li>
+ <p>An API for defining REST resource microservices as simple executable jars.</p>
+ </ol>
+
+ <h5 class='topic'>Components</h5>
+ <p>
+ Juneau consists of the following libraries:
+ </p>
+ <ul class='spaced-list'>
+ <li><l>juneau.jar</l> - Core library that contains the serializers, parsers, and bean map support.<br>
+ Prereqs Java 1.6+.<br>
+ This package can be used by itself if you only need to serialize or parse from any of the supported languages, or use the Bean Map support separately.<br>
+ See the following subtopic <a class='doclink' href='#Core'>Juneau Core (juneau.jar)</a> for details on this library.<br>
+ <li><l>juneau-server.jar</l> - Contains the REST server APIs.<br>
+ Prereqs Java 1.6+, JEE 1.3+.<br>
+ This package can be used to create servlet-based REST interfaces.<br>
+ See <a class='doclink' href="#Server">Juneau Server (juneau-server.jar)</a> for details on this library.<br>
+ <li><l>juneau-client.jar</l> - Contains the REST client APIs.<br>
+ Prereqs Java 1.6+.<br>
+ This package can be used to easily communicate with Juneau REST servlets.<br>
+ See <a class='doclink' href="#Client">Juneau Client (juneau-client.jar)</a> for details on this library.<br>
+ <li><l>juneau-microservice.jar</l> - An API for defining REST services as executable jars.<br>
+ See <a class='doclink' href="#Microservices">Juneau Microservices (juneau-microservice.jar)</a> for details on this package.<br>
+ <li><l>juneau-all.jar</l> - Combines all the jars above into a single library.
+ </ul>
+ <p>
+ Typically, you want to simply pick up and use <l>juneau-all.jar</l> as this contains everything and is not very large (< 1MB).
+ </p>
+ <p>
+ The following zip files are also provided:
+ </p>
+ <ul class='spaced-list'>
+ <li><l>microservice-project.zip</l> - Contains a template Eclipse project for quickly creating REST resources as executable jars.
+ <li><l>microservice-samples-project.zip</l> - Contains sample code demonstrating various aspects of the Juneau Cloud Tools.<br>
+ These are discussed in detail in the <a class='doclink' href="#Samples">Samples</a> section.
+ </ul>
+ <p class='info'>
+ Many of the examples below use beans with public field properties.
+ While the toolkit allows for public bean properties, it's standard practice to use getters and setters for bean properties.
+ However, the examples below use public fields simply to reduce their verbosity.
+ </p>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="Core"></a>
+<h2 class='topic' onclick='toggle(this)'>2 - Juneau Core (juneau.jar)</h2>
+<div class='topic'>
+ <p>
+ The Juneau core library <l>juneau.jar</l> contains serializers and parsers for converting POJOs to and from
+ a wide variety of content types:
+ </p>
+ <ul>
+ <li>JSON
+ <li>XML
+ <li>HTML
+ <li>URL-Encoding
+ <li>UON
+ <li>MessagePack
+ <li>RDF-XML
+ <li>RDF-XML-Abbrev
+ <li>Turtle
+ <li>N3
+ <li>N-Triple
+ <li>Plain text
+ <li>Cognos XML
+ </ul>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.PojoCategories"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.1 - POJO Categories</h3>
+ <div class='topic'>
+ <p>
+ The Juneau serializers and parsers can handle a wide variety of POJOs.
+ </p>
+ <p>
+ The following chart shows POJOs categorized into groups and whether they can be serialized or parsed:
+ </p>
+ <table class='styled' style='border-collapse: collapse;'>
+ <tr><th>Group</th><th>Description</th><th>Examples</th><th>Can<br>serialize?</th><th>Can<br>parse?</th></tr>
+ <tr class='dark bb' style='background-color:lightyellow;'>
+ <td style='text-align:center'>1</td>
+ <td><b>Java primitive objects</b></td>
+ <td>
+ <ul class='normal'>
+ <li>{@code String}
+ <li>{@code Integer}
+ <li>{@code Float}
+ <li>{@code Boolean}
+ </ul>
+ </td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ </tr>
+ <tr class='dark bb' style='background-color:lightyellow'>
+ <td style='text-align:center'>2</td>
+ <td><b>Java Collections Framework objects and Java arrays</b></td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr class='light bb'>
+ <td style='text-align:center'>2a</td>
+ <td>
+ <b>With standard keys/values</b><br>
+ Map keys are group [1, 4a, 5] objects.<br>
+ Map, Collection, and array values are group [1, 2, 3a, 4a, 5] objects.
+ </td>
+ <td>
+ <ul class='normal'>
+ <li>{@code HashSet<String,Integer>}
+ <li>{@code TreeMap<Integer,Bean>}
+ <li><code>List<<jk>int</jk>[][]></code>
+ <li>{@code Bean[]}
+ </ul>
+ </td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ </tr>
+ <tr class='light bb'>
+ <td style='text-align:center'>2b</td>
+ <td>
+ <b>With non-standard keys/values</b><br>
+ Map keys are group [2, 3, 4b, 5, 6] objects.<br>
+ Map, Collection, and array values are group [3b, 4, 5, 6] objects.
+ </td>
+ <td>
+ <ul class='normal'>
+ <li>{@code HashSet<Bean,Integer>}
+ <li>{@code TreeMap<Integer,Reader>}
+ </ul>
+ </td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:salmon;text-align:center'><b>no</b></td>
+ </tr>
+ <tr class='dark bb' style='background-color:lightyellow'>
+ <td style='text-align:center'>3</td>
+ <td><b>Java Beans</b></td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr class='light bb'>
+ <td style='text-align:center'>3a</td>
+ <td>
+ <b>With standard properties</b><br>
+ These are beans that have no-arg constructors and one or more properties defined by public getter and setter methods or public fields.<br>
+ Property values are group [1, 2, 3a, 4a, 5] objects.
+ </td>
+ <td> </td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ </tr>
+ <tr class='light bb'>
+ <td style='text-align:center'>3b</td>
+ <td>
+ <b>With non-standard properties or not true beans</b><br>
+ These include true beans that have no-arg constructors and one or more properties defined by getter and setter methods or properties,
+ but property types include group [3b, 4b, 5, 6] objects.<br>
+ This also includes classes that look like beans but aren't true beans.
+ For example, classes that have getters but not setters, or classes without no-arg constructors.
+ </td>
+ <td> </td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:salmon;text-align:center'><b>no</b></td>
+ </tr>
+ <tr class='dark bb' style='background-color:lightyellow'>
+ <td style='text-align:center'>4</td>
+ <td>
+ <b>Swapped objects</b><br>
+ These are objects that are not directly serializable, but have {@link org.apache.juneau.transform.PojoSwap PojoSwaps} associated with them.
+ The purpose of a POJO swap is to convert an object to another object that is easier to serialize and parse.
+ For example, the {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} class can be used to serialize {@link java.util.Date} objects
+ to ISO8601 strings, and parse them back into {@link java.util.Date} objects.
+ </td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr class='light bb'>
+ <td style='text-align:center'>4a</td>
+ <td>
+ <b>2-way swapped to group [1, 2a, 3a] objects</b><br>
+ For example, a swap that converts a {@code Date} to a {@code String}.
+ </td>
+ <td> </td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ </tr>
+ <tr class='light bb'>
+ <td style='text-align:center'>4b</td>
+ <td>
+ <b>1-way swapped to group [1, 2, 3] objects</b><br>
+ For example, a swap that converts an {@code Iterator} to a {@code List}.
+ This would be one way, since you cannot reconstruct an {@code Iterator}.
+ </td>
+ <td> </td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:salmon;text-align:center'><b>no</b></td>
+ </tr>
+ <tr class='dark bb' style='background-color:lightyellow'>
+ <td style='text-align:center'>5</td>
+ <td>
+ <b>Objects with standardized <code>static T valueOf(String)</code>/<code>static T fromString(String)</code> methods, or constructors with a <code>String</code> argument.</b><br>
+ During serialization, objects are converted to strings using the <code>toString()</code> method.
+ During parsing, strings are converted to objects using one of these static methods or constructors.
+ </td>
+ <td><code>java.util.UUID</code></td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ </tr>
+ <tr class='dark' style='background-color:lightyellow'>
+ <td style='text-align:center'>6</td>
+ <td>
+ <b>All other objects</b><br>
+ Anything that doesn't fall into one of the groups above are simply converted to {@code Strings} using the {@code toString()} method.
+ </td>
+ <td> </td>
+ <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+ <td style='background-color:salmon;text-align:center'><b>no</b></td>
+ </tr>
+ </table>
+ <p>
+ One other important note is that the serializers are designed to work on tree-shaped POJO models.
+ These are models where there are no referential loops (e.g. leaves with references to nodes, or nodes in one branch referencing nodes in another branch).
+ There is a serializer setting {@code detectRecursions} to look for and handle these kinds of loops (by setting these references to <jk>null</jk>),
+ but it is not enabled by default since it introduces a moderate performance penalty.
+ </p>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.Serializers"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.2 - Serializers</h3>
+ <div class='topic'>
+ <p>
+ The built-in serializers in Juneau are fast and efficient, and are highly customizable, for example, allowing you to produce strict or non-strict syntax,
+ various whitespace options, and automatic detection of recursions.
+ </p>
+ <p>
+ The serializers work by serializing POJOs directly to streams instead of using intermediate Document Object Model objects.
+ This allows serialization with minimal memory use.
+ </p>
+ <p>
+ Default serialization support is provided for Java primitives, <l>Maps</l>, <l>Collections</l>, beans, and arrays. <br>
+ Extensible support for other data types such as <l>Calendars</l>, <l>Dates</l>, <l>Iterators</l> is available through the use of POJO swaps.
+ </p>
+ <p>
+ In most cases, you can serialize objects in one line of code by using one of the default serializers:
+ </p>
+ <p class='bcode'>
+ <jc>// A simple POJO class</jc>
+ <jk>public class</jk> Person {
+ <jk>public</jk> String <jf>name</jf> = <js>"John Smith"</js>;
+ <jk>public int</jk> <jf>age</jf> = 21;
+ }
+
+ <jc>// Serialize a bean to JSON, XML, or HTML</jc>
+ Person p = <jk>new</jk> Person();
+
+ <jc>// Produces:
+ // "{name:'John Smith',age:21}"</jc>
+ String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(p);
+
+ <jc>// Produces:
+ // <object>
+ // <name>John Smith</name>
+ // <age>21</age>
+ // </object></jc>
+ String xml = XmlSerializer.<jsf>DEFAULT</jsf>.serialize(p);
+
+ <jc>// Produces:
+ // <table>
+ // <tr><th>key</th><th>value</th></tr>
+ // <tr><td>name</td><td>John Smith</td></tr>
+ // <tr><td>age</td><td>21</td></tr>
+ // </table></jc>
+ String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(p);
+
+ <jc>// Produces:
+ // 82 A4 6E 61 6D 65 AA 4A 6F 68 6E 20 53 6D 69 74 68 A3 61 67 65 15 </jc>
+ <jk>byte</jk>[] b = MsgPackSerializer.<jsf>DEFAULT</jsf>.serialize(p);
+ </p>
+
+ <p>
+ In addition to the default serializers, customized serializers can be created using various built-in options:
+ </p>
+
+ <p class='bcode'>
+ <jc>// Use one of the default serializers to serialize a POJO</jc>
+ String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(someObject);
+
+ <jc>// Create a custom serializer for lax syntax using single quote characters</jc>
+ JsonSerializer serializer = <jk>new</jk> JsonSerializer()
+ .setProperty(JsonSerializerContext.<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
+ .setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
+
+ <jc>// Clone an existing serializer and modify it to use single-quotes</jc>
+ JsonSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>.clone()
+ .setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
+
+ <jc>// Serialize a POJO to JSON</jc>
+ String json = serializer.serialize(someObject);
+ </p>
+
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/serializer/package-summary.html#TOC'>org.apache.juneau.serializer</a> - Serializer API Javadoc
+ </ul>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.Parsers"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.3 - Parsers</h3>
+ <div class='topic'>
+ <p>
+ Parsers work by parsing input directly into POJOs instead of having to create intermediate Document Object Models.
+ This allows them to parse input with minimal object creation.
+ </p>
+ <p>
+ The JSON parser can handle any valid JSON syntax (such as quoted or unquoted attributes, single or double quotes).<br>
+ It can also handle JSON fragements and embedded Javascript comments.
+ </p>
+ <p class='bcode'>
+ <jc>// Use one of the predefined parsers.</jc>
+ Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
+
+ <jc>// Parse a JSON object (creates a generic ObjectMap).</jc>
+ String json = <js>"{name:'John Smith',age:21}"</js>;
+ Map m1 = parser.parse(json, Map.<jk>class</jk>);
+
+ <jc>// Parse a JSON string.</jc>
+ json = <js>"'foobar'"</js>;
+ String s2 = parser.parse(json, String.<jk>class</jk>);
+
+ <jc>// Parse a JSON number as a Long or Float.</jc>
+ json = <js>"123"</js>;
+ Long l3 = parser.parse(json, Long.<jk>class</jk>);
+ Float f3 = parser.parse(json, Float.<jk>class</jk>);
+
+ <jc>// Parse a JSON object as a bean.</jc>
+ json = <js>"{name:'John Smith',age:21}"</js>;
+ Person p4 = parser.parse(json, Person.<jk>class</jk>);
+
+ <jc>// Parse a JSON object as a HashMap<String,Person>.</jc>
+ json = <js>"{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}"</js>;
+ Map<String,Person> m5 = parser.parseMap(json, HashMap.<jk>class</jk>, String.<jk>class</jk>, Person.<jk>class</jk>)
+
+ <jc>// Parse a JSON array of integers as a Collection of Integers or int[] array.</jc>
+ json = <js>"[1,2,3]"</js>;
+ List<Integer> l6 = parser.parseCollection(json, LinkedList.<jk>class</jk>, Integer.<jk>class</jk>);
+ <jk>int</jk>[] i6 = parser.parse(json, <jk>int</jk>[].<jk>class</jk>);
+ </p>
+ <p>
+ The parsers can also be used to populating existing bean and collection objects:
+ </p>
+ <p class='bcode'>
+ <jc>// Use one of the predefined parsers.</jc>
+ Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
+
+ <jc>// Populate the properties on an existing bean from a JSON object.</jc>
+ String json = <js>"{name:'John Smith',age:21}"</js>;
+ Person p = <jk>new</jk> Person();
+ parser.parseIntoBean(json, p);
+
+ <jc>// Populate an existing list from a JSON array of numbers.</jc>
+ json = <js>"[1,2,3]"</js>;
+ List<Integer> l2 = <jk>new</jk> LinkedList<Integer>();
+ parser.parseIntoCollection(json, l2, Integer.<jk>class</jk>);
+
+ <jc>// Populate an existing map from a JSON object containing beans.</jc>
+ json = <js>"{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}"</js>;
+ Map<String,Person> m3 = <jk>new</jk> TreeMap<String,Person>();
+ parser.parseIntoMap(json, m3, String.<jk>class</jk>, Person.<jk>class</jk>);
+ </p>
+ <p>
+ Juneau can parse both structured models (composed of serialized beans) and unstructured models (composed of generic maps, collections, primitives, and so on).
+ Any valid JSON can be parsed into an unstructured model consisting of generic {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} objects.
+ </p>
+ <p class='bcode'>
+ <jc>// Parse an arbitrary JSON document into an unstructered data model
+ // consisting of ObjectMaps, ObjectLists, and java primitive objects.</jc>
+ Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
+ String json = <js>"{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}"</js>;
+ ObjectMap m = parser.parse(json, ObjectMap.<jk>class</jk>);
+
+ <jc>// Use ObjectMap API to extract data from the unstructured model.</jc>
+ <jk>int</jk> johnSmithAge = m.getObjectMap(<js>"a"</js>).getInt(<js>"age"</js>);
+ </p>
+
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/parser/package-summary.html#TOC'>org.apache.juneau.parser</a> - Parser API Javadoc
+ </ul>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.ObjectMap"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.4 - ObjectMap and ObjectList</h3>
+ <div class='topic'>
+ <p>
+ The {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} classes are generic Java representations of JSON objects and arrays.
+ These classes can be used to create "unstructured" models for serialization (as opposed to "structured" models consisting of beans).
+ If you want to quickly generate JSON/XML/HTML from generic maps/collections, or parse JSON/XML/HTML into generic maps/collections, these objects work well.
+ </p>
+ <p>
+ These classes extend directly from JCF classes:
+ </p>
+ <ul class='javahierarchy'>
+ <li class='c'> {@link java.util.LinkedHashMap java.util.LinkedHashMap}
+ <ul>
+ <li class='c'> {@link org.apache.juneau.ObjectMap org.apache.juneau.ObjectMap}
+ </ul>
+ <li class='c'> {@link java.util.LinkedList java.util.LinkedList}
+ <ul>
+ <li class='c'> {@link org.apache.juneau.ObjectMap org.apache.juneau.ObjectList}
+ </ul>
+ </ul>
+ <p>
+ The <l>ObjectMap</l> and <l>ObjectList</l> are very similar to the <l>JSONObject</l> and <l>JSONArray</l>
+ classes found in other libraries. However, the names were chosen
+ because the concepts of <l>Maps</l> and <l>Lists</l> are already familiar to
+ Java programmers, and these classes can be used with any of the serialzers or parsers.
+ </p>
+ <p>
+ These object can be serialized in one of two ways:
+ </p>
+ <ol class='spaced-list'>
+ <li>Using the provided {@link org.apache.juneau.ObjectMap#serializeTo(java.io.Writer)} or {@link org.apache.juneau.ObjectList#serializeTo(java.io.Writer)} methods.
+ <li>Passing them to one of the {@link org.apache.juneau.serializer.Serializer} serialize methods.
+ </ol>
+ <p class='info'>
+ As a general rule, if you do not specify a target type during parsing, or if the target type cannot be determined
+ through reflection, the parsers automatically generate <l>ObjectMaps</l> and <l>ObjectLists</l>.
+ </p>
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='c'>{@link org.apache.juneau.ObjectMap}
+ <li class='c'>{@link org.apache.juneau.ObjectList}
+ </ul>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.ConfigurableProperties"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.5 - Configurable Properties</h3>
+ <div class='topic'>
+ <p>
+ Serializers and parsers have a wide variety of configurable properties that can be set on them.<br>
+ For example, the following code shows how to set configurable properties on the JSON serializerclass:
+ </p>
+ <p class='bcode'>
+ JsonSerializer s = <jk>new</jk> JsonSerializer()
+ .setProperty(SerializerContext.<jsf>SERIALIZER_useIndentation</jsf>, <jk>true</jk>)
+ .setProperty(JsonSerializerContext.<jsf>JSON_useWhitespace</jsf>, <jk>true</jk>)
+ .setProperty(JsonSerializerContext.<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
+ .setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
+ </p>
+ <p>
+ Each of the serializers and parsers contain common reusable instances with common configuration properties.<br>
+ For example, JSON has the following predefined reusable serializers and parsers:
+ </p>
+ <ul class='javahierarchy'>
+ <li class='c'>{@link org.apache.juneau.json.JsonSerializer}
+ <ul>
+ <li class='f'>{@link org.apache.juneau.json.JsonSerializer#DEFAULT DEFAULT}
+ <li class='f'>{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX DEFAULT_LAX}
+ <li class='f'>{@link org.apache.juneau.json.JsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
+ <li class='f'>{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE DEFAULT_LAX_READABLE}
+ </ul>
+ <li class='c'>{@link org.apache.juneau.json.JsonParser}
+ <ul>
+ <li class='f'>{@link org.apache.juneau.json.JsonParser#DEFAULT DEFAULT}
+ <li class='f'>{@link org.apache.juneau.json.JsonParser#DEFAULT_STRICT DEFAULT_STRICT}
+ </ul>
+ </ul>
+ <p>
+ These can be used directly, as follows:
+ </p>
+ <p class='bcode'>
+ <jc>// Serialize a POJO to LAX JSON.</jc>
+ String json = JsonSerializer.<jsf>DEFAULT_LAX</jsf>.serialize(myPojo);
+ </p>
+ <p>
+ Properties can be set using the following methods:
+ </p>
+ <ul class='javahierarchy'>
+ <li class='m'>{@link org.apache.juneau.serializer.Serializer#setProperty(String,Object)} - On any serializers.
+ <li class='m'>{@link org.apache.juneau.serializer.SerializerGroup#setProperty(String,Object)} - On groups of serializers.
+ <li class='m'>{@link org.apache.juneau.parser.Parser#setProperty(String,Object)} - On any parsers.
+ <li class='m'>{@link org.apache.juneau.parser.ParserGroup#setProperty(String,Object)} - On groups of parsers.
+ </ul>
+ <p>
+ The REST server API also provides various ways of setting properties:
+ </p>
+ <ul class='javahierarchy'>
+ <li class='n'>{@link org.apache.juneau.server.annotation.RestResource#properties() @RestResource.properties()} - Annotation on instances of {@link org.apache.juneau.server.RestServlet}.
+ <li class='n'>{@link org.apache.juneau.server.annotation.RestMethod#properties() @RestMethod.properties()} - Annotation on java methods in instances of {@link org.apache.juneau.server.RestServlet}.
+ <li class='m'>{@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[],Class[])} - Properties can be set programmatically on serializers by overriding this method.
+ <li class='m'>{@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[],Class[])} - Properties can be set programmatically on parsers by overriding this method.
+ </ul>
+ <p>
+ Similarly, the REST client API provides ways of setting properties:
+ </p>
+ <ul class='javahierarchy'>
+ <li class='m'>{@link org.apache.juneau.client.RestClient#setProperty(String,Object)} - Set property on the serializer and parser associated with a REST client.
+ </ul>
+ <p>
+ The {@link org.apache.juneau.serializer.Serializer#lock()} and {@link org.apache.juneau.parser.Parser#lock()}
+ methods can be used to make serializer and parser properties read only.
+ All the common reusable serializers and parsers are read only.
+ If you attempt to modify any properties on those instances, a {@link org.apache.juneau.LockedException} is thrown.
+ </p>
+
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='c'>{@link org.apache.juneau.BeanContext} - Properties associated with handling beans on serializers and parsers.
+ <li class='c'>{@link org.apache.juneau.serializer.SerializerContext} - Configurable properties common to all serializers.
+ <li class='c'>{@link org.apache.juneau.parser.ParserContext} - Configurable properties common to all parsers.
+ <li class='c'>{@link org.apache.juneau.html.HtmlSerializerContext} - Configurable properties on the HTML serializer.
+ <li class='c'>{@link org.apache.juneau.html.HtmlDocSerializerContext} - Configurable properties on the HTML document serializer.
+ <li class='c'>{@link org.apache.juneau.html.HtmlParserContext} - Configurable properties on the HTML parser.
+ <li class='c'>{@link org.apache.juneau.jena.RdfCommonContext} - Configurable properties common to the RDF serializers and parsers.
+ <li class='c'>{@link org.apache.juneau.jena.RdfSerializerContext} - Configurable properties on the RDF serializer.
+ <li class='c'>{@link org.apache.juneau.jena.RdfParserContext} - Configurable properties on the RDF parsers.
+ <li class='c'>{@link org.apache.juneau.json.JsonSerializerContext} - Configurable properties on the JSON serializer.
+ <li class='c'>{@link org.apache.juneau.json.JsonParserContext} - Configurable properties on the JSON parser.
+ <li class='c'>{@link org.apache.juneau.soap.SoapXmlSerializerContext} - Configurable properties on the SOAP/XML serializer.
+ <li class='c'>{@link org.apache.juneau.urlencoding.UonSerializerContext} - Configurable properties on the URL-Encoding and UON serializers.
+ <li class='c'>{@link org.apache.juneau.urlencoding.UonParserContext} - Configurable properties on the URL-Encoding and UON parsers.
+ <li class='c'>{@link org.apache.juneau.xml.XmlSerializerContext} - Configurable properties on the XML serializer.
+ <li class='c'>{@link org.apache.juneau.xml.XmlParserContext} - Configurable properties on the XML parser.
+ <li class='c'>{@link org.apache.juneau.server.RestServletContext} - Configurable properties on the REST servlet.
+ </ul>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.Annotations"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.6 - Annotations</h3>
+ <div class='topic'>
+ <p>
+ The {@link org.apache.juneau.annotation} package contains several annotations that can be applied to classes to alter how they're
+ handled by the serializers and parsers.
+ </p>
+ <p>
+ For example, the {@link org.apache.juneau.annotation.Bean @Bean} annotation can be used to limit which getters and setters get
+ interpreted as bean properties:
+ </p>
+ <p class='bcode'>
+ <jc>// Address class with only street/city/state properties (in that order).</jc>
+ <jc>// All other properties are ignored.</jc>
+ <ja>@Bean</ja>(properties={<js>"street"</js>,<js>"city"</js>,<js>"state"</js>})
+ <jk>public class</jk> Address {
+ ...
+ </p>
+
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='n'>{@link org.apache.juneau.annotation.Pojo @Pojo} - Used to tailor how non-bean POJOs get interpreted by the framework.
+ <li class='n'>{@link org.apache.juneau.annotation.Bean @Bean} - Used to tailor how beans get interpreted by the framework.
+ <li class='n'>{@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} - Maps constructor arguments to property names on beans with read-only properties.
+ <li class='n'>{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} - Ignore classes, fields, and methods from being interpreted as bean or bean components.
+ <li class='n'>{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} - Used to tailor how bean properties get interpreted by the framework.
+ <li class='n'>{@link org.apache.juneau.annotation.NameProperty @NameProperty} - Identifies a setter as a method for setting the name of a POJO as it's known by its parent object.
+ <li class='n'>{@link org.apache.juneau.annotation.ParentProperty @ParentProperty} - Identifies a setter as a method for adding a parent reference to a child object.
+ <li class='n'>{@link org.apache.juneau.annotation.URI @URI} - Used to identify a class or bean property as a URI.
+ </ul>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.Transforms"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.7 - Transforms</h4>
+ <div class='topic'>
+ <p>
+ The programmatic equivalent to the annotations are the {@link org.apache.juneau.transform.BeanFilter} and
+ {@link org.apache.juneau.transform.PojoSwap} classes.
+ </p>
+ <p>
+ The following example is equivalent to specifying the <l>@Bean</l> annotation in the previous example using a bean filter:
+ </p>
+ <p class='bcode'>
+ <jc>// Define bean filter that returns properties in the following order: "street", "city", "state"</jc>
+ <jk>public class</jk> AddressFilter <jk>extends</jk> BeanFilter<Address> {
+ <jk>public</jk> AddressFilter() {
+ setProperties(<js>"street"</js>,<js>"city"</js>,<js>"state"</js>);
+ }
+ }
+
+ WriterSerializer s = <jk>new</jk> JsonSerializer().addBeanFilters(AddressFilter.<jk>class</jk>);
+ Address a = getAddress();
+ String json = s.serialize(a); <jc>// Prints "{street:'...',city:'...',state;'...'}"</jc>
+ </p>
+ <p>
+ The {@link org.apache.juneau.transform.PojoSwap} class is a critical component of Juneau that allows serializers and parsers to
+ be able to handle virtually any Java object.
+ Simply put, they can be thought of as 'transformers' that convert non-serializable objects to serializable objects and vice versa.
+ </p>
+ <p>
+ For example, <l>Date</l> objects are not normally serializable.
+ (Technically, they look like beans with getters/setters and so get serialized as such, which typically is not the desired result.)
+ The following POJO swap can be used to represent dates in ISO8601 format:
+ </p>
+ <p class='bcode'>
+ <jc>// Sample swap for converting Dates to ISO8601 strings.</jc>
+ <jk>public class</jk> MyDateSwap <jk>extends</jk> PojoSwap<Date,String> {
+
+ <jc>// ISO8601 formatter.</jc>
+ <jk>private</jk> DateFormat <jf>format</jf> = <jk>new</jk> SimpleDateFormat(<js>"yyyy-MM-dd'T'HH:mm:ssZ"</js>);
+
+ <jd>/** Converts a Date object to an ISO8601 string. */</jd>
+ <ja>@Override</ja>
+ <jk>public</jk> String swap(Date o) {
+ <jk>return</jk> <jf>format</jf>.format(o);
+ }
+
+ <jd>/** Converts an ISO8601 string to a Date object. */</jd>
+ <ja>@Override</ja>
+ <jk>public</jk> Date unswap(String o) <jk>throws</jk> ParseException {
+ <jk>try</jk> {
+ <jk>return</jk> <jf>format</jf>.parse(o);
+ } <jk>catch</jk> (java.text.ParseException e) {
+ <jk>throw new</jk> ParseException(e);
+ }
+ }
+ }
+ </p>
+ <p>
+ The swap above can then be associated with serializers and parsers as the following example shows:
+ </p>
+ <p class='bcode'>
+ <jc>// Sample bean with a Date field.</jc>
+ <jk>public class</jk> MyBean {
+ <jk>public</jk> Date <jf>date</jf> = <jk>new</jk> Date(112, 2, 3, 4, 5, 6);
+ }
+
+ <jc>// Create a new JSON serializer, associate our date swap with it, and serialize a sample bean.</jc>
+ Serializer serializer = <jk>new</jk> JsonSerializer().addPojoSwaps(MyDateSwap.<jk>class</jk>);
+ String json = serializer.serialize(<jk>new</jk> MyBean()); <jc>// == "{date:'2012-03-03T04:05:06-0500'}"</jc>
+
+ <jc>// Create a JSON parser, associate our date swap with it, and reconstruct our bean (including the date).</jc>
+ ReaderParser parser = <jk>new</jk> JsonParser().addPojoSwaps(MyDateSwap.<jk>class</jk>);
+ MyBean bean = parser.parse(json, MyBean.<jk>class</jk>);
+ <jk>int</jk> day = bean.<jf>date</jf>.getDay(); <jc>// == 3</jc>
+ </p>
+
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/transform/package-summary.html#TOC'>org.apache.juneau.transform</a> - Transform API Javadocs.
+ <li class='p'><a class='doclink' href='org/apache/juneau/transforms/package-summary.html#TOC'>org.apache.juneau.transforms</a> - Predefined reusable transform classes.
+ </ul>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.SVL"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.8 - Simple Variable Language</h4>
+ <div class='topic'>
+ <p>
+ The {@link org.apache.juneau.svl} package defines an API for a language called "Simple Variable Language".
+ In a nutshell, Simple Variable Language (or SVL) is text that contains variables of the form <js>"$varName{varKey}"</js>.
+ </p>
+ <p>
+ Variables can be recursively nested within the varKey (e.g. <js>"$FOO{$BAR{xxx},$BAZ{xxx}}"</js>).
+ Variables can also return values that themselves contain more variables.
+ </p>
+ <p class='bcode'>
+ <jc>// Use the default variable resolver to resolve a string that contains $S (system property) variables</jc>
+ String myProperty = VarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"The Java home directory is $S{java.home}"</js>);
+ </p>
+ <p>
+ The following shows how variables can be arbitrarily nested...
+ </p>
+ <p class='bcode'>
+ <jc>// Look up a property in the following order:
+ // 1) MYPROPERTY environment variable.
+ // 2) 'my.property' system property if environment variable not found.
+ // 3) 'not found' string if system property not found.</jc>
+ String myproperty = VarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"$E{MYPROPERTY,$S{my.property,not found}}"</js>);
+ </p>
+
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/svl/package-summary.html#TOC'>org.apache.juneau.svl</a> - Simple Variable Language Javadocs.
+ </ul>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.ConfigFile"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.9 - Configuration Files</h3>
+ <div class='topic'>
+ <p>
+ The {@link org.apache.juneau.ini} package contains a powerful API for creating and using INI-style config files.
+ </p>
+ <p>
+ An example of an INI file:
+ </p>
+ <p class='bcode'>
+ <cc># Default section</cc>
+ <ck>key1</ck> = <cv>1</cv>
+ <ck>key2</ck> = <cv>true</cv>
+ <ck>key3</ck> = <cv>1,2,3</cv>
+ <ck>key4</ck> = <cv>http://foo</cv>
+
+ <cc># Section 1</cc>
+ <cs>[Section1]</cs>
+ <ck>key1</ck> = <cv>2</cv>
+ <ck>key2</ck> = <cv>false</cv>
+ <ck>key3</ck> = <cv>4,5,6</cv>
+ <ck>key4</ck> = <cv>http://bar</cv>
+ </p>
+ <p>
+ This class can be used to easily access contents of this file, using the various capabilities of the {@link org.apache.juneau.ObjectMap} class, as follows:
+ </p>
+ <p class='bcode'>
+ <jk>int</jk> key1;
+ <jk>boolean</jk> key2;
+ <jk>int</jk>[] key3;
+ URL key4;
+
+ <jc>// Load our config file</jc>
+ ConfigFile f = ConfigMgr.<jsf>DEFAULT</jsf>.get(<js>"MyIniFile.cfg"</js>);
+
+ <jc>// Read values from default section</jc>
+ key1 = f.getInt(<js>"key1"</js>);
+ key2 = f.getBoolean(<js>"key2"</js>);
+ key3 = f.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"key3"</js>);
+ key4 = f.getObject(URL.<jk>class</jk>, <js>"key4"</js>);
+
+ <jc>// Read values from section #1</jc>
+ key1 = f.getInt(<js>"Section1/key1"</js>);
+ key2 = f.getBoolean(<js>"Section1/key2"</js>);
+ key3 = f.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"Section1/key3"</js>);
+ key4 = f.getObject(URL.<jk>class</jk>, <js>"Section1/key4"</js>);
+ </p>
+ <p>
+ The interface also allows a config file to be easily constructed programmatically:
+ </p>
+ <p class='bcode'>
+ <jc>// Construct the sample INI file programmatically</jc>
+ ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.create(<js>"MyIniFile.cfg"</js>)
+ .addLines(<jk>null</jk>,
+ <js>"# Default section"</js>,
+ <js>"key1 = 1"</js>,
+ <js>"key2 = true"</js>,
+ <js>"key3 = 1,2,3"</js>,
+ <js>"key4 = http://foo"</js>,
+ <js>""</js>)
+ .addHeaderComments(<js>"Section1"</js>,
+ <js>"# Section 1"</js>)
+ .addLines(<js>"Section1"</js>,
+ <js>"key1 = 2"</js>,
+ <js>"key2 = false"</js>,
+ <js>"key3 = 4,5,6"</js>,
+ <js>"key4 = http://bar"</js>)
+ .save();
+ </p>
+ <p>
+ The following is equivalent, except that it uses {@link org.apache.juneau.ini.ConfigFile#put(String, Object)} to set values:
+ </p>
+ <p class='bcode'>
+ <jc>// Construct the sample INI file programmatically</jc>
+ ConfigFile cf = ConfigMgr.<jsf>DEFAULT</jsf>.create(<js>"MyIniFile.cfg"</js>)
+ .addLines(<jk>null</jk>,
+ <js>"# Default section"</js>)
+ .addHeaderComments(<js>"section1"</js>,
+ <js>"# Section 1"</js>);
+ cf.put(<js>"key1"</js>, 1);
+ cf.put(<js>"key2"</js>, <jk>true</jk>);
+ cf.put(<js>"key3"</js>, <jk>new int</jk>[]{1,2,3});
+ cf.put(<js>"key4"</js>, <jk>new</jk> URL(<js>"http://foo"</js>));
+ cf.put(<js>"Section1/key1"</js>, 2);
+ cf.put(<js>"Section1/key2"</js>, <jk>false</jk>);
+ cf.put(<js>"Section1/key3"</js>, <jk>new int</jk>[]{4,5,6});
+ cf.put(<js>"Section1/key4"</js>, <jk>new</jk> URL(<js>"http://bar"</js>));
+ cf.save();
+ </p>
+ <p>
+ The config file looks deceptively simple, the config file API is a very powerful feature with many capabilities, including:
+ </p>
+ <ul class='spaced-list'>
+ <li>The ability to use variables to reference environment variables, system properties, other config file entries, and a host of other types.
+ <li>The ability to store and retrieve POJOs as JSON.
+ <li>APIs for updating, modifying, and saving configuration files without losing comments or formatting.
+ <li>Extensive listener APIs.
+ </ul>
+ <h6 class='topic'>Examples</h6>
+ <p class='bcode'>
+ <cc>#--------------------------</cc>
+ <cc># My section</cc>
+ <cc>#--------------------------</cc>
+ <cs>[MySection]</cs>
+
+ <cc># An integer</cc>
+ <ck>anInt</ck> = <cv>1</cv>
+
+ <cc># A boolean</cc>
+ <ck>aBoolean</ck> = <cv>true</cv>
+
+ <cc># An int array</cc>
+ <ck>anIntArray</ck> = <cv>1,2,3</cv>
+
+ <cc># A POJO that can be converted from a String</cc>
+ <ck>aURL</ck> = <cv>http://foo </cv>
+
+ <cc># A POJO that can be converted from JSON</cc>
+ <ck>aBean</ck> = <cv>{foo:'bar',baz:123}</cv>
+
+ <cc># A system property</cc>
+ <ck>locale</ck> = <cv>$S{java.locale, en_US}</cv>
+
+ <cc># An environment variable</cc>
+ <ck>path</ck> = <cv>$E{PATH, unknown}</cv>
+
+ <cc># A manifest file entry</cc>
+ <ck>mainClass</ck> = <cv>$MF{Main-Class}</cv>
+
+ <cc># Another value in this config file</cc>
+ <ck>sameAsAnInt</ck> = <cv>$C{MySection/anInt}</cv>
+
+ <cc># A command-line argument in the form "myarg=foo"</cc>
+ <ck>myArg</ck> = <cv>$ARG{myarg}</cv>
+
+ <cc># The first command-line argument</cc>
+ <ck>firstArg</ck> = <cv>$ARG{0}</cv>
+
+ <cc># Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.</cc>
+ <ck>nested</ck> = <cv>$S{mySystemProperty,$E{MY_ENV_VAR,$ARG{0}}}</cv>
+
+ <cc># A POJO with embedded variables</cc>
+ <ck>aBean2</ck> = <cv>{foo:'$ARG{0}',baz:$C{MySection/anInt}}</cv>
+
+ </p>
+ <p class='bcode'>
+ <jc>// Java code for accessing config entries above.</jc>
+ ConfigFile cf = Microservice.<jsm>getConfig</jsm>();
+
+ <jk>int</jk> anInt = cf.getInt(<js>"MySection/anInt"</js>);
+ <jk>boolean</jk> aBoolean = cf.getBoolean(<js>"MySection/aBoolean"</js>);
+ <jk>int</jk>[] anIntArray = cf.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"MySection/anIntArray"</js>);
+ URL aURL = cf.getObject(URL.<jk>class</jk>, <js>"MySection/aURL"</js>);
+ MyBean aBean = cf.getObject(MyBean.<jk>class</jk>, <js>"MySection/aBean"</js>);
+ Locale locale = cf.getObject(Locale.<jk>class</jk>, <js>"MySection/locale"</js>);
+ String path = cf.getString(<js>"MySection/path"</js>);
+ String mainClass = cf.getString(<js>"MySection/mainClass"</js>);
+ <jk>int</jk> sameAsAnInt = cf.getInt(<js>"MySection/sameAsAnInt"</js>);
+ String myArg = cf.getString(<js>"MySection/myArg"</js>);
+ String firstArg = cf.getString(<js>"MySection/firstArg"</js>);
+ </p>
+
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/ini/package-summary.html#TOC'>org.apache.juneau.ini</a> - Config API Javadocs.
+ </ul>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Core.SupportedLanguages"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.10 - Supported Languages</h3>
+ <div class='topic'>
+ <p>
+ Extensive javadocs exist for individual language support.
+ Refer to these docs for language-specific information.
+ </p>
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/html/package-summary.html#TOC'>org.apache.juneau.html</a> - HTML support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/jena/package-summary.html#TOC'>org.apache.juneau.jena</a> - RDF support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/jso/package-summary.html#TOC'>org.apache.juneau.jso</a> - Java Serialized Object support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/json/package-summary.html#TOC'>org.apache.juneau.json</a> - JSON support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/plaintext/package-summary.html#TOC'>org.apache.juneau.plaintext</a> - Plain-text support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/soap/package-summary.html#TOC'>org.apache.juneau.soap</a> - SOAP support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#TOC'>org.apache.juneau.urlencoding</a> - URL-Encoding and UON support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/xml/package-summary.html#TOC'>org.apache.juneau.xml</a> - XML support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#TOC'>org.apache.juneau.dto.atom</a> - ATOM support.
+ <li class='p'><a class='doclink' href='org/apache/juneau/dto/cognos/package-summary.html#TOC'>org.apache.juneau.dto.cognos</a> - Cognos support.
+ </ul>
+ </div>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="Server"></a>
+<h2 class='topic' onclick='toggle(this)'>3 - Juneau Server (juneau-server.jar)</h2>
+<div class='topic'>
+ <p>
+ The Juneau REST Server API provides a variety of servlet-based REST resource classes that provides REST interfaces on top of existing POJOs,
+ allowing manipulation of those models using familiar GET, PUT, POST, and DELETE operations.
+ </p>
+ <p>
+ The API automatically detects <l>Accept</l> header of requests and converts POJOs to any of the supported languages.
+ The toolkit is extensible and also allows for support of user-defined content types.
+ </p>
+ <p>
+ Automatic built-in support is provided for negotiation of response charsets and gzip encoding.
+ </p>
+ <p>
+ The following is an example of a REST API used to view and set JVM system properties.
+ </p>
+ <p class='bcode'>
+ <ja>@RestResource</ja>(
+ messages=<js>"nls/messages"</js>,
+ properties={
+ <ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_title</jsf>, value=<js>"$L{label}"</js>),
+ <ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_description</jsf>, value=<js>"$L{description}"</js>),
+ <ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_links</jsf>, value=<js>"{up:'$R{requestParentURI}',options:'?method=OPTIONS'}"</js>),
+ <ja>@Property</ja>(name=HtmlSerializerContext.<jsf>HTML_uriAnchorText</jsf>, value=<jsf>PROPERTY_NAME</jsf>)
+ }
+ )
+ <jk>public class</jk> SystemPropertiesService <jk>extends</jk> RestServletJenaDefault {
+
+ <jd>/** [OPTIONS /*] - Show resource options. */</jd>
+ <ja>@RestMethod</ja>(name=<js>"OPTIONS"</js>, path=<js>"/*"</js>)
+ <jk>public</jk> ResourceOptions getOptions(RestRequest req) {
+ <jk>return new</jk> ResourceOptions(<jk>this</jk>, req);
+ }
+
+ <jd>/** [GET /] - Get all system properties. */</jd>
+ <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/"</js>)
+ <jk>public</jk> TreeMap<String,String> getSystemProperties() <jk>throws</jk> Throwable {
+ <jk>return new</jk> TreeMap(System.<jsm>getProperties()</jsm>);
+ }
+
+ <jd>/** [GET /{propertyName}] - Get system property with specified name. */</jd>
+ <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/{propertyName}"</js>)
+ <jk>public</jk> String getSystemProperty(<ja>@Attr</ja> String propertyName) <jk>throws</jk> Throwable {
+ <jk>return</jk> System.<jsm>getProperty</jsm>(propertyName);
+ }
+
+ <jd>/** [PUT /{propertyName}] - Set system property with specified name. */</jd>
+ <ja>@RestMethod</ja>(name=<js>"PUT"</js>, path=<js>"/{propertyName}"</js>, guards=AdminGuard.<jk>class</jk>)
+ <jk>public</jk> Redirect setSystemProperty(<ja>@Attr</ja> String propertyName, <ja>@Content</ja> String value) {
+ System.<jsm>setProperty</jsm>(propertyName, value);
+ <jk>return new</jk> Redirect();
+ }
+
+ <jd>/** [DELETE /{propertyName}] - Delete system property with specified name. */</jd>
+ <ja>@RestMethod</ja>(name=<js>"DELETE"</js>, path=<js>"/{propertyName}"</js>, guards=AdminGuard.<jk>class</jk>)
+ <jk>public</jk> Redirect deleteSystemProperty(<ja>@Attr</ja> String propertyName) {
+ System.<jsm>clearProperty</jsm>(propertyName);
+ <jk>return new</jk> Redirect();
+ }
+ }
+ </p>
+ <p>
+ The resource above is deployed like any other servlet, in this way:
+ </p>
+ <p class='bcode'>
+ <xt><?xml</xt> <xa>version</xa>=<xs>"1.0"</xs> <xa>encoding</xa>=<xs>"UTF-8"</xs><xt>?></xt>
+ <xt><web-app</xt> <xa>version</xa>=<xs>"2.3"</xs><xt>></xt>
+ <xt><servlet></xt>
+ <xt><servlet-name></xt>SystemPropertiesService<xt></servlet-name></xt>
+ <xt><servlet-class></xt>com.ibm.sample.SystemPropertiesService<xt></servlet-class></xt>
+ <xt></servlet></xt>
+ <xt><servlet-mapping></xt>
+ <xt><servlet-name></xt>SystemPropertiesService<xt></servlet-name></xt>
+ <xt><url-pattern></xt>/systemProperties<xt></url-pattern></xt>
+ <xt></servlet-mapping></xt>
+ <xt></web-app></xt>
+ </p>
+ <p>
+ One of the most useful aspects of using this API is the self-discovering, self-documenting OPTIONS pages that describe how to use the resource using labels pulled from the associated resource bundle:
+ </p>
+ <img class='bordered' src="doc-files/Server.Options.png">
+
+ <p>
+ Arbitrarily complex POJO models can be serialized using any of the supported serializers, and content can be parsed using any of the supported parsers.
+ </p>
+ <p>
+ The <l>com.ibm.team.juneau.samples</l> project contains various REST resource examples in an easy-to-use REST microservice.
+ One of these is <l>AddressBookResource</l> which serializes <l>AddressBook</l> objects defined below (some code omitted):
+ </p>
+ <p class='bcode'>
+ <jd>/** package-info.java */</jd>
+ <ja>@XmlSchema</ja>(
+ prefix=<js>"ab"</js>,
+ xmlNs={
+ <ja>@XmlNs</ja>(prefix=<js>"ab"</js>, namespaceURI=<js>"http://www.ibm.com/addressBook/"</js>),
+ <ja>@XmlNs</ja>(prefix=<js>"per"</js>, namespaceURI=<js>"http://www.ibm.com/person/"</js>),
+ <ja>@XmlNs</ja>(prefix=<js>"addr"</js>, namespaceURI=<js>"http://www.ibm.com/address/"</js>),
+ <ja>@XmlNs</ja>(prefix=<js>"mail"</js>, namespaceURI=<js>"http://www.ibm.com/mail/"</js>)
+ }
+ )
+ <jk>package</jk> com.ibm.sample.addressbook;
+ <jk>import</jk> org.apache.juneau.xml.annotation.*;
+
+ <jd>/** Address book bean */</jd>
+ <ja>@Xml</ja>(name=<js>"addressBook"</js>)
+ <jk>public class</jk> AddressBook <jk>extends</jk> !LinkedList<Person> {}
+
+ <jd>/** Person bean */</jd>
+ <ja>@Xml</ja>(prefix=<js>"per"</js>,name=<js>"person"</js>)
+ <jk>public class</jk> Person {
+ <jc>// Bean properties</jc>
+ <ja>@BeanProperty</ja>(beanUri=<jk>true</jk>) <jk>public</jk> URI <jf>uri</jf>;
+ <jk>public</jk> URI <jf>addressBookUri</jf>;
+ <jk>public int</jk> <jf>id</jf>;
+ <jk>public</jk> String <jf>name</jf>;
+ <ja>@BeanProperty</ja>(pojoSwaps=CalendarSwap.Medium.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
+ <jk>public</jk> LinkedList<Address> <jf>addresses</jf>;
+ }
+
+ <jd>/** Address bean */</jd>
+ <ja>@Xml</ja>(prefix=<js>"addr"</js>,name=<js>"address"</js>)
+ <jk>public class</jk> Address {
+ <jc>// Bean properties</jc>
+ <ja>@BeanProperty</ja>(beanUri=<jk>true</jk>) <jk>public</jk> URI <jf>uri</jf>;
+ <jk>public</jk> URI <jf>personUri</jf>;
+ <jk>public int</jk> <jf>id</jf>;
+ <ja>@Xml</ja>(prefix=<js>"mail"</js>) <jk>public</jk> String <jf>street</jf>, <jf>city</jf>, <jf>state</jf>;
+ <ja>@Xml</ja>(prefix=<js>"mail"</js>) <jk>public int</jk> <jf>zip</jf>;
+ <jk>public boolean</jk> <jf>isCurrent</jf>;
+ }
+ </p>
+ <p>
+ The framework allows you to override header values through GET parameters, so that you can specify the <l>ACCEPT</l> header to see each type.
+ Adding <l>&plainText=true</l> forces the response <l>Content-Type</l> to be <l>text/plain.</l>
+ <h6 class='figure'>HTML</h6>
+ <img class='bordered' src="doc-files/Server.Html.png">
+ <h6 class='figure'>JSON</h6>
+ <img class='bordered' src="doc-files/Server.Json.png">
+ <h6 class='figure'>XML</h6>
+ <img class='bordered' src="doc-files/Server.Xml.png">
+ <h6 class='figure'>Simple XML</h6>
+ <img class='bordered' src="doc-files/Server.SimpleXml.png">
+ <h6 class='figure'>URL-Encoding</h6>
+ <img class='bordered' src="doc-files/Server.UrlEncoding.png">
+ <h6 class='figure'>UON</h6>
+ <img class='bordered' src="doc-files/Server.Uon.png">
+ <h6 class='figure'>RDF/XML</h6>
+ <img class='bordered' src="doc-files/Server.RdfXml.png">
+ <h6 class='figure'>RDF/N3</h6>
+ <img class='bordered' src="doc-files/Server.N3.png">
+ <h6 class='figure'>RDF/N-Tuple</h6>
+ <img class='bordered' src="doc-files/Server.NTuple.png">
+ <h6 class='figure'>RDF/Turtle</h6>
+ <img class='bordered' src="doc-files/Server.Turtle.png">
+
+ <p>
+ The Server API is an exhaustive topic on its own.
+ Refer to the additional information for an in-depth examination of the API.
+ </p>
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/server/package-summary.html#TOC'>org.apache.juneau.server</a> - Juneau Server API Javadocs.
+ </ul>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="Client"></a>
+<h2 class='topic' onclick='toggle(this)'>4 - Juneau Client (juneau-client.jar)</h2>
+<div class='topic'>
+ <p>
+ The REST client API provides the ability to access remote REST interfaces and transparently convert the input and output to and from POJOs using any
+ of the provided serializers and parsers.
+ </p>
+ <p>
+ Built upon the Apache HttpClient libraries, it extends that API and provides specialized APIs for working with REST interfaces while
+ maintaining all the functionality available in the HttpClient API.
+ </p>
+ <p class='bcode'>
+ <jc>// Create a reusable JSON client.</jc>
+ RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>, JsonParser.<jk>class</jk>);
+
+ <jc>// The address of the root resource.</jc>
+ String url = <js>"http://localhost:9080/sample/addressBook"</js>;
+
+ <jc>// Do a REST GET against a remote REST interface and convert
+ // the response to an unstructured ObjectMap object.</jc>
+ ObjectMap m1 = client.doGet(url).getResponse(ObjectMap.<jk>class</jk>);
+
+ <jc>// Same as above, except parse the JSON as a bean.</jc>
+ AddressBook a2 = client.doGet(url).getResponse(AddressBook.<jk>class</jk>);
+
+ <jc>// Add a person to the address book.
+ // Use XML as the transport medium.</jc>
+ client = <jk>new</jk> RestClient(XmlSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>);
+ Person p = <jk>new</jk> Person(<js>"Joe Smith"</js>, 21);
+ <jk>int</jk> returnCode = client.doPost(url + <js>"/entries"</js>, p).run();
+ </p>
+
+ <p>
+ The Client API is also an exhaustive topic on its own.
+ Refer to the additional information for an in-depth examination of the API.
+ </p>
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/client/package-summary.html#TOC'>org.apache.juneau.client</a> - Juneau Client API Javadocs.
+ </ul>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="Remoteable"></a>
+<h2 class='topic' onclick='toggle(this)'>5 - Remoteable Services</h2>
+<div class='topic'>
+ <p>
+ Juneau provides the capability of calling methods on POJOs on a server through client-side proxy interfaces.
+ It offers a number of advantages over other similar remote proxy interfaces, such as being much simpler to
+ use and allowing much more flexibility.
+ </p>
+ <p>
+ Remoteable Services are implemented through a combination of the Server and Client libraries.
+ </p>
+ <ul class='spaced-list'>
+ <li>Proxy interfaces are retrieved using the {@link org.apache.juneau.client.RestClient#getRemoteableProxy(Class)} method.
+ <li>The {@link org.apache.juneau.client.RestClient#setRemoteableServletUri(String)} method is used to specify the location
+ of the remoteable services servlet running on the server.
+ <li>The {@link org.apache.juneau.server.remoteable.RemoteableServlet} class is a specialized subclass of {@link org.apache.juneau.server.RestServlet} that provides a full-blown
+ REST interface for calling interfaces remotely.
+ </ul>
+ <p>
+ In this example, you have the following interface defined that you want to call from the client side against
+ a POJO on the server side (i.e. a Remoteable Service):
+ <p class='bcode'>
+ <jk>public interface</jk> IAddressBook {
+ Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
+ }
+ </p>
+ <p>
+ The client side code for invoking this method is shown below:
+ </p>
+ <p class='bcode'>
+ <jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
+ RestClient client = <jk>new</jk> RestClient(JsonSerializer.<jk>class</jk>,JsonParser.<jk>class</jk>)
+ .setRemoteableServletUri(<js>"https://localhost:9080/juneau/sample/remoteable"</js>);
+
+ <jc>// Create a proxy interface.</jc>
+ IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
+
+ <jc>// Invoke a method on the server side and get the returned result.</jc>
+ Person p = ab.createPerson(
+ <jk>new</jk> CreatePerson(<js>"Test Person"</js>,
+ AddressBook.<jsm>toCalendar</jsm>(<js>"Aug 1, 1999"</js>),
+ <jk>new</jk> CreateAddress(<js>"Test street"</js>, <js>"Test city"</js>, <js>"Test state"</js>, 12345, <jk>true</jk>))
+ );
+ </p>
+ <p>
+ The requirements for a method to be callable through a remoteable service are:
+ </p>
+ <ul class='spaced-list'>
+ <li>The method must be public.
+ <li>The parameter and return types must be <a href='#Core.PojoCategories'>serializable and parsable</a>.
+ </ul>
+ <p>
+ One significant feature is that the remoteable services servlet is a full-blown REST interface.
+ Therefore, in cases where the interface classes are not available on the client side,
+ the same method calls can be made through pure REST calls.
+ This can also aid significantly in debugging, since calls to the remoteable service
+ can be made directly from a browser with no coding involved.
+ </p>
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/server/remoteable/package-summary.html#TOC'>org.apache.juneau.server.remoteable</a> - Juneau Remoteable API Javadocs.
+ </ul>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="Microservices"></a>
+<h2 class='topic' onclick='toggle(this)'>6 - Microservices</h2>
+<div class='topic'>
+ <p>
+ <b>WARNING - The microservice API is still in beta. It may be replaced with an OSGi-based architecture.</b>
+ </p>
+ <p>
+ The <l>microservice-project.zip</l> file contains a standalone Eclipse project that can be used
+ to quickly create REST microservices as standalone executable jars without the need of an application server.
+ They start almost instantly and are started through a simple java command:
+ </p>
+ <p>
+ <code class='snippet'>java -jar microservice.jar</code>
+ </p>
+ <p>
+ When you execute this command, you can point your browser to <l>http://localhost:10000</l> to bring up the REST interface:
+ </p>
+ <img class='bordered' src="doc-files/Microservices.1.png">
+ <p>
+ Microservices combine all the functionality of the core, server, and client APIs to provide truly powerful
+ and easy-to-use REST interfaces with minimal overhead.
+ </p>
+ <h6 class='topic'>Additional Information</h6>
+ <ul class='javahierarchy'>
+ <li class='p'><a class='doclink' href='org/apache/juneau/microservice/package-summary.html#TOC'>org.apache.juneau.microservice</a> - Juneau Microservice API Javadocs.
+ </ul>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="Samples"></a>
+<h2 class='topic' onclick='toggle(this)'>7 - Samples</h2>
+<div class='topic'>
+ <p>
+ The <l>microservice-samples-project.zip</l> file is a zipped eclipse project that includes everything you
+ need to start the Samples REST microservice in an Eclipse workspace.
+ </p>
+ <p>
+ This project is packaged as a Juneau Microservice project that allows REST resources to be started
+ using embedded Jetty.
+ </p>
+
+ <!-- ======================================================================================================== -->
+ <a id="Samples.Installing"></a>
+ <h3 class='topic' onclick='toggle(this)'>7.1 - Installing in Eclipse</h3>
+ <div class='topic'>
+ <p>
+ Follow these instructions to create the Samples project in Eclipse:
+ </p>
+ <ol class='spaced-list'>
+ <li>Download the latest microservice-samples-project .zip file (e.g. <l>microservice-samples-project-5.2.zip</l>).
+ <li>In your Eclipse workspace, go to <b>File->Import->General->Existing Projects into Workspace</b> and click <b>Next</b>.<br><br>
+ <img class='bordered' src="doc-files/Samples.Installing.1.png">
+ <li>Select the .zip file and click <b>Finish</b>.<br><br>
+ <img class='bordered' src="doc-files/Samples.Installing.2.png">
+ <li>In your workspace, you can now see the following project:<br><br>
+ <img class='bordered' src="doc-files/Samples.Installing.3.png">
+ </ol>
+ <p>
+ The important elements in this project are:
+ </p>
+ <ul class='spaced-list'>
+ <li><l>META-INF/MANIFEST.MF</l> - The manifest file. <br>
+ This defines the entry point, classpath, top-level REST resources, and location of external configuration file. <br><br>
+ <p class='bcode'>
+ <mk>Manifest-Version</mk>: <mv>1.0</mv>
+ <mk>Main-Class</mk>: <mv>org.apache.juneau.microservice.RestMicroservice</mv>
+ <mk>Rest-Resources</mk>: <mv>org.apache.juneau.server.samples.RootResources</mv>
+ <mk>Main-ConfigFile</mk>: <mv>samples.cfg</mv>
+ <mk>Class-Path</mk>:
+ <mv>lib/commons-codec-1.9.jar
+ lib/commons-io-1.2.jar
+ lib/commons-logging-1.1.1.jar
+ lib/httpclient-4.5.jar
+ lib/httpcore-4.4.1.jar
+ lib/httpmime-4.5.jar
+ lib/javax.servlet-api-3.0.jar
+ lib/jetty-all-8.1.0.jar
+ lib/juneau-all-5.2.jar
+ lib/org.apache.commons.fileupload_1.3.1.jar
+ lib/derby.jar
+ lib/jena-core-2.7.1.jar
+ lib/jena-iri-0.9.2.jar
+ lib/log4j-1.2.16.jar
+ lib/slf4j-api-1.6.4.jar
+ lib/slf4j-log4j12-1.6.4.jar</mv>
+ </p>
+ <li><l>RestMicroservice.java</l> - The application class.
+ <br>This is a specialized microservice in Juneau for exposing REST servlets.
+ <br>Allows REST servlets to be registered in the manifest or configuration file.
+ <li><l>RootResources.java</l> - The top-level REST resource.
+ <br>This class serves as a "router" page to child resources:<br>
+ <li><l>samples.cfg</l> - The external configuration file.
+ <br>A deceptively simple yet powerful INI-style configuration file:
+ <br><br>
+ <p class='bcode'>
+ <cc>#================================================================================
+ # Basic configuration file for SaaS microservices
+ # Subprojects can use this as a starting point.
+ #================================================================================</cc>
+
+ <cc>#================================================================================
+ # REST settings
+ #================================================================================</cc>
+ <cs>[REST]</cs>
+
+ <cc># The HTTP port number to use.
+ # Default is Rest-Port setting in manifest file, or 8000.</cc>
+ <ck>port</ck> = <cv>10000</cv>
+ ...
+ </p>
+
+ </ul>
+ <p>
+ At this point you're ready to start the microservice from your workspace.
+ </p>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Samples.Running"></a>
+ <h3 class='topic' onclick='toggle(this)'>7.2 - Running in Eclipse</h3>
+ <div class='topic'>
+ <p>
+ The <l>microservice-samples-project.launch</l> file is already provided to allow you to quickly start
+ the Samples microservice.
+ </p>
+ <p>
+ Go to <b>Run->Run Configurations->Java Application->microservice-samples.project</b> and click <b>Run</b>.
+ </p>
+ <img class='bordered' src="doc-files/Samples.Running.1.png">
+ <p>
+ In your console view, you can see the following output:
+ </p>
+ <img class='bordered' src="doc-files/Samples.Running.2.png">
+ <p>
+ Now open your browser and point to <l>http://localhost:10000</l>.
+ You can see the following:
+ </p>
+ <img class='bordered' src="doc-files/Samples.Running.3.png">
+ <p>
+ You have now started a REST interface on port 10000.
+ </p>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Samples.Building"></a>
+ <h3 class='topic' onclick='toggle(this)'>7.3 - Building and Running from Command-Line</h3>
+ <div class='topic'>
+ <p>
+ The <l>build.xml</l> file is a very basic ANT script for building the Samples microservice
+ into an executable jar.
+ </p>
+ <p>
+ To build the Samples microservice, right-click <l>build.xml</l> and select <b>Run As->Ant Build</b>.
+ Once complete (which takes approximately 1 second), if you refresh the project, you can see the following new directory:
+ </p>
+ <img class='bordered' src='doc-files/Samples.Building.1.png'>
+ <p>
+ If you open up a command prompt in the <l>build/microservice</l> folder, you can start your microservice as follows:
+ </p>
+ <img class='bordered' src='doc-files/Samples.Building.2.png'>
+ <p class='warn'>
+ If you get an error message saying <code class='snippet'>java.net.BindException: Address already in use</code>, this means that the microservice
+ is already running elsewhere, so it cannot bind to port 10000.
+ </p>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Samples.RestResource"></a>
+ <h3 class='topic' onclick='toggle(this)'>7.4 - MANIFEST.MF</h3>
+ <div class='topic'>
+ <p>
+ The <l>META-INF/MANIFEST.MF</l> file is used to describe the microservice.
+ If you open it, you'll see the following:
+ </p>
+ <p class='bcode'>
+ <mk>Manifest-Version</mk>: <mv>1.0</mv>
+ <mk>Main-Class</mk>: <mv>org.apache.juneau.microservice.RestMicroservice</mv>
+ <mk>Rest-Resources</mk>: <mv>org.apache.juneau.server.samples.RootResources</mv>
+ <mk>Main-ConfigFile</mk>: <mv>samples.cfg</mv>
+ <mk>Class-Path</mk>:
+ <mv>lib/commons-codec-1.9.jar
+ lib/commons-io-1.2.jar
+ lib/commons-logging-1.1.1.jar
+ lib/httpclient-4.5.jar
+ lib/httpcore-4.4.1.jar
+ lib/httpmime-4.5.jar
+ lib/javax.servlet-api-3.0.jar
+ lib/jetty-all-8.1.0.jar
+ lib/juneau-all-5.2.jar
+ lib/org.apache.commons.fileupload_1.3.1.jar
+ lib/derby.jar
+ lib/jena-core-2.7.1.jar
+ lib/jena-iri-0.9.2.jar
+ lib/log4j-1.2.16.jar
+ lib/slf4j-api-1.6.4.jar
+ lib/slf4j-log4j12-1.6.4.jar</mv>
+ </p>
+ <h6 class='topic'>Notes</h6>
+ <ul class='spaced-list'>
+ <li>The <mk>Main-Class</mk> entry is just the standard manifest entry describing the entry point for the executable jar.
+ The <l>org.apache.juneau.microservice.RestMicroservice</l> class is the standard microservice class for REST microservices.
+ Other kinds of microservices can be created by extending the {@link org.apache.juneau.microservice.Microservice} class.
+ <li>The <mk>Rest-Resources</mk> entry is a comma-delimited list of REST resources.
+ These are classes that subclass from {@link org.apache.juneau.server.RestServlet}.
+ This is a specialized entry used by <l>org.apache.juneau.microservice.RestMicroservice</l>.
+ In this case, you're pointing to a resource defined in our project, <l>org.apache.juneau.samples.RootResources</l>, which serves
+ as a "grouping" page for several other REST resources.
+ <li>The <mk>Main-ConfigFile</mk> entry points to the location of an external configuration file for our microservice.
+ <li>The <mk>Class-Path</mk> entry again is just the standard manifest file entry.
+ However, if you need to add extra libraries to your microservice, you'll need to copy them into your <l>lib</l>
+ directory and add them to the classpath here.
+ </ul>
+ <p class='warn'>
+ If you modify the manifest file and get <l>NoClassDefFoundErrors</l>, ensure that the classpath entries contain trailing spaces.
+ </p>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Samples.RootResources"></a>
+ <h3 class='topic' onclick='toggle(this)'>7.5 - RootResources</h3>
+ <div class='topic'>
+ <p>
+ The <l>RootResources</l> class is the main page for the REST microservice.
+ It serves as the jumping-off point for the other resources.
+ </p>
+ <p>
+ The class hierarchy for this class is:
+ </p>
+ <ul class='javahierarchy'>
+ <li class='a'>{@link org.apache.juneau.server.RestServlet org.apache.juneau.server.RestServlet}
+ <br>Contains all the REST servlet logic.
+ <ul>
+ <li class='a'>{@link org.apache.juneau.server.RestServletDefault org.apache.juneau.server.RestServletDefault}
+ <br>Defines default serializers and parsers, and OPTIONs page logic.
+ <ul>
+ <li class='a'>{@link org.apache.juneau.server.RestServletGroupDefault org.apache.juneau.server.RestServletGroupDefault}
+ <br>Specialized subclass for grouping other resources
+ <ul>
+ <li class='a'>{@link org.apache.juneau.microservice.ResourceGroup org.apache.juneau.microservice.ResourceGroup}
+ <br>Specialized subclass when using the Microservice API.
+ <ul>
+ <li class='c'><code>org.apache.juneau.server.samples.RootResources</code>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+ <p>
+ Pointing a browser to the resource shows the following:
+ </p>
+ <img class='bordered' src='doc-files/Samples.Running.3.png'>
+ <p>
+ The <l>RootResources</l> class can also be defined as a servlet in a <l>web.xml</l> file:
+ </p>
+ <p class='bcode'>
+ <xt><web-app</xt> <xa>version</xa>=<xs>'2.3'</xs><xt>></xt>
+ <xt><servlet></xt>
+ <xt><servlet-name></xt>RootResources<xt></servlet-name></xt>
+ <xt><servlet-class></xt>org.apache.juneau.server.samples.RootResources<xt></servlet-class></xt>
+ <xt></servlet></xt>
+ <xt><servlet-mapping></xt>
+ <xt><servlet-name></xt>RootResources<xt></servlet-name></xt>
+ <xt><url-pattern></xt>/*<xt></url-pattern></xt>
+ <xt></servlet-mapping></xt>
+ <xt></web-app></xt>
+ </p>
+ <p>
+ The <l>RootResources</l> class consists entirely of annotations:
+ </p>
+ <h6 class='figure'>RootResources.java</h6>
+ <p class='bcode'>
+ <jd>/**
+ * Sample REST resource showing how to implement a "router" resource page.
+ */</jd>
+ <ja>@RestResource</ja>(
+ path=<js>"/"</js>,
+ messages=<js>"nls/RootResources"</js>,
+ properties={
+ <ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{options:'$R{servletURI}?method=OPTIONS',source:'$R{servletURI}/source?classes=(org.apache.juneau.server.samples.RootResources)'}"</js>)
+ },
+ children={
+ HelloWorldResource.<jk>class</jk>,
+ MethodExampleResource.<jk>class</jk>,
+ RequestEchoResource.<jk>class</jk>,
+ TempDirResource.<jk>class</jk>,
+ AddressBookResource.<jk>class</jk>,
+ SampleRemoteableServlet.<jk>class</jk>,
+ PhotosResource.<jk>class</jk>,
+ AtomFeedResource.<jk>class</jk>,
+ JsonSchemaResource.<jk>class</jk>,
+ SqlQueryResource.<jk>class</jk>,
+ TumblrParserResource.<jk>class</jk>,
+ CodeFormatterResource.<jk>class</jk>,
+ UrlEncodedFormResource.<jk>class</jk>,
+ SourceResource.<jk>class</jk>,
+ ConfigResource.<jk>class</jk>,
+ LogsResource.<jk>class</jk>,
+ DockerRegistryResource.<jk>class</jk>,
+ ShutdownResource.<jk>class</jk>
+ }
+ )
+ <jk>public class</jk> RootResources <jk>extends</jk> ResourceGroup {
+ <jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L;
+ }
+ </p>
+ <p>
+ The resource bundle contains the localized strings for the resource:
+ </p>
+ <h6 class='figure'>RootResources.properties</h6>
+ <p class='bcode'>
+ <cc>#--------------------------------------------------------------------------------
+ # RootResources labels
+ #--------------------------------------------------------------------------------</cc>
+ <ck>label</ck> = <cv>Root resources</cv>
+ <ck>description</ck> = <cv>This is an example of a router resource that is used to access other resources.</cv>
+ </p>
+ <p>
+ The <l>label</l> and <l>description</l> keys identify the localized values
+ return by the {@link org.apache.juneau.server.RestServlet#getLabel(RestRequest)} and {@link org.apache.juneau.server.RestServlet#getDescription(RestRequest)} methods.
+ </p>
+ <p>
+ The <l>children</l> annotation defines the child resources of this router resource.
+ These are resources whose paths are relative to the parent resource.
+ </p>
+ <p>
+ Child resources must also be subclasses of {@link org.apache.juneau.server.RestServlet}, and
+ must specify a {@link org.apache.juneau.server.annotation.RestResource#path()} annotation to
+ identify the subpath of the child.
+ For example, the <l>HelloWorldResource</l> class is annotated as follows:
+ </p>
+ <h6 class='figure'>HelloWorldResource.java</h6>
+ <p class='bcode'>
+ <ja>@RestResource</ja>(messages=<js>"nls/HelloWorldResource"</js>, path=<js>"/helloWorld"</js>)
+ <jk>public class</jk> HelloWorldResource <jk>extends</jk> Resource {
+ </p>
+ <p>
+ It should be noted that child resources do not need to be defined this way.
+ They could also be defined as servlets in the same way as the root resource.
+ The <l>children</l> annotation approach simply makes it easier to define them without having to touch the <l>web.xml</l> file again.
+ Child resources can also be defined programmatically by overriding the {@link org.apache.juneau.server.RestServlet#createChildren()} method.
+ </p>
+ <p>
+ Note that these router pages can be arbitrarily nested deep.
+ You can define many levels of router pages for arbitrarily hierarchical REST interfaces.
+ </p>
+ <p class='info'>
+ Let's step back and describe what's going on here:<br>
+ During servlet initialization of the <l>RootResources</l> object, the toolkit looks for the <l>@RestResource.children()</l> annotation.
+ If it finds it, it instantiates instances of each class and recursively peforms servlet initialization on them.
+ It then associates the child resource with the parent by the name specified by the <l>@RestResource.path()</l> annotation on the child class.
+ When a request for the child URL (<l>/helloWorld</l>) is received, the <l>RootResources</l> servlet gets the request and sees that the URL remainder matches one of its child resources.
+ It then forwards the request to the child resource for processing.
+ The request passed to the child resource is the same as if the child resource had been deployed independently (e.g. path-info, resource-URI, and so forth).
+ </p>
+ </div>
+
+ <!-- ======================================================================================================== -->
+ <a id="Samples.HelloWorldResource"></a>
+ <h3 class='topic' onclick='toggle(this)'>7.6 - HelloWorldResource</h3>
+ <div class='topic'>
+ <p>
+ The <l>HelloWorldResource</l> class is a simple resource that prints a "Hello world!" message.
+ </p>
+ <h6 class='figure'>HelloWorldResource.java</h6>
+ <p class='bcode'>
+ <jd>/**
+ * Sample REST resource that prints out a simple "Hello world!" message.
+ */</jd>
+ <ja>@RestResource</ja>(
+ messages=<js>"nls/HelloWorldResource"</js>,
+ path=<js>"/helloWorld"</js>,
+ properties={
+ <ja>@Property</ja>(name=HTMLDOC_links, value=<js>"{up:'$R{requestParentURI}',options:'?method=OPTIONS
<TRUNCATED>
[7/7] incubator-juneau git commit: Fix javadoc generation.
Posted by ja...@apache.org.
Fix javadoc generation.
Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/d89c8737
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/d89c8737
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/d89c8737
Branch: refs/heads/master
Commit: d89c87376588be5f08a6f1394c64b314d1a6f724
Parents: 39a0384
Author: jamesbognar <ja...@gmail.com>
Authored: Sun Aug 28 16:27:50 2016 -0400
Committer: jamesbognar <ja...@gmail.com>
Committed: Sun Aug 28 16:27:50 2016 -0400
----------------------------------------------------------------------
juneau-core/.classpath | 33 +-
.../src/main/java/doc-files/Microservices.1.png | Bin 22345 -> 0 bytes
.../doc-files/Samples.AddressBookResource.1.png | Bin 44553 -> 0 bytes
.../doc-files/Samples.AddressBookResource.2.png | Bin 224346 -> 0 bytes
.../Samples.AddressBookResource.Demo.1.png | Bin 17539 -> 0 bytes
.../Samples.AddressBookResource.Demo.10.png | Bin 37153 -> 0 bytes
.../Samples.AddressBookResource.Demo.2.png | Bin 47285 -> 0 bytes
.../Samples.AddressBookResource.Demo.3.png | Bin 40911 -> 0 bytes
.../Samples.AddressBookResource.Demo.4.png | Bin 40461 -> 0 bytes
.../Samples.AddressBookResource.Demo.5.png | Bin 49884 -> 0 bytes
.../Samples.AddressBookResource.Demo.6.png | Bin 52332 -> 0 bytes
.../Samples.AddressBookResource.Demo.7.png | Bin 39401 -> 0 bytes
.../Samples.AddressBookResource.Demo.8.png | Bin 34154 -> 0 bytes
.../Samples.AddressBookResource.Demo.9.png | Bin 51831 -> 0 bytes
...les.AddressBookResource.Introspectable.1.png | Bin 21714 -> 0 bytes
.../Samples.AddressBookResource.Queryable.1.png | Bin 43970 -> 0 bytes
.../Samples.AddressBookResource.Queryable.2.png | Bin 35177 -> 0 bytes
.../Samples.AddressBookResource.Queryable.3.png | Bin 35137 -> 0 bytes
...amples.AddressBookResource.Traversable.1.png | Bin 28868 -> 0 bytes
...amples.AddressBookResource.Traversable.2.png | Bin 20464 -> 0 bytes
.../doc-files/Samples.AtomFeedResource.1.png | Bin 45184 -> 0 bytes
.../doc-files/Samples.AtomFeedResource.2.png | Bin 78940 -> 0 bytes
.../doc-files/Samples.AtomFeedResource.3.png | Bin 28698 -> 0 bytes
.../main/java/doc-files/Samples.Building.1.png | Bin 14082 -> 0 bytes
.../main/java/doc-files/Samples.Building.2.png | Bin 5543 -> 0 bytes
.../java/doc-files/Samples.ConfigResource.1.png | Bin 38071 -> 0 bytes
.../java/doc-files/Samples.ConfigResource.2.png | Bin 42599 -> 0 bytes
.../java/doc-files/Samples.ConfigResource.3.png | Bin 41856 -> 0 bytes
.../Samples.DockerRegistryResource.1.png | Bin 16230 -> 0 bytes
.../Samples.DockerRegistryResource.2.png | Bin 23808 -> 0 bytes
.../doc-files/Samples.HelloWorldResource.1.png | Bin 15414 -> 0 bytes
.../doc-files/Samples.HelloWorldResource.2.png | Bin 10797 -> 0 bytes
.../doc-files/Samples.HelloWorldResource.3.png | Bin 66934 -> 0 bytes
.../java/doc-files/Samples.Installing.1.png | Bin 52312 -> 0 bytes
.../java/doc-files/Samples.Installing.2.png | Bin 59664 -> 0 bytes
.../java/doc-files/Samples.Installing.3.png | Bin 25927 -> 0 bytes
.../doc-files/Samples.JsonSchemaResource.1.png | Bin 36315 -> 0 bytes
.../doc-files/Samples.JsonSchemaResource.2.png | Bin 28837 -> 0 bytes
.../java/doc-files/Samples.LogsResource.1.png | Bin 37594 -> 0 bytes
.../java/doc-files/Samples.LogsResource.2.png | Bin 42497 -> 0 bytes
.../java/doc-files/Samples.LogsResource.3.png | Bin 56603 -> 0 bytes
.../Samples.MethodExampleResource.1.png | Bin 27555 -> 0 bytes
.../Samples.MethodExampleResource.2.png | Bin 71023 -> 0 bytes
.../java/doc-files/Samples.PhotosResource.1.png | Bin 16442 -> 0 bytes
.../java/doc-files/Samples.PhotosResource.2.png | Bin 71952 -> 0 bytes
...Samples.RequestEchoResource.1.htmlschema.png | Bin 35501 -> 0 bytes
.../Samples.RequestEchoResource.1.json.png | Bin 30092 -> 0 bytes
...Samples.RequestEchoResource.1.jsonschema.png | Bin 31731 -> 0 bytes
...Samples.RequestEchoResource.1.jsonsimple.png | Bin 29302 -> 0 bytes
.../doc-files/Samples.RequestEchoResource.1.png | Bin 54743 -> 0 bytes
.../Samples.RequestEchoResource.1.uon.png | Bin 64778 -> 0 bytes
...amples.RequestEchoResource.1.urlencoding.png | Bin 71054 -> 0 bytes
.../Samples.RequestEchoResource.1.xml.png | Bin 43989 -> 0 bytes
.../Samples.RequestEchoResource.1.xmlschema.png | Bin 47951 -> 0 bytes
.../doc-files/Samples.RequestEchoResource.2.png | Bin 30872 -> 0 bytes
.../doc-files/Samples.RequestEchoResource.3.png | Bin 27501 -> 0 bytes
.../doc-files/Samples.RequestEchoResource.4.png | Bin 22149 -> 0 bytes
.../main/java/doc-files/Samples.Running.1.png | Bin 40422 -> 0 bytes
.../main/java/doc-files/Samples.Running.2.png | Bin 15925 -> 0 bytes
.../main/java/doc-files/Samples.Running.3.png | Bin 62643 -> 0 bytes
.../Samples.SampleRemoteableServlet.1.png | Bin 23969 -> 0 bytes
.../Samples.SampleRemoteableServlet.2.png | Bin 29986 -> 0 bytes
.../Samples.SampleRemoteableServlet.3.png | Bin 45596 -> 0 bytes
.../doc-files/Samples.SqlQueryResource.1.png | Bin 16113 -> 0 bytes
.../doc-files/Samples.SqlQueryResource.2.png | Bin 40356 -> 0 bytes
.../doc-files/Samples.TempDirResource.1.png | Bin 32843 -> 0 bytes
.../doc-files/Samples.TempDirResource.2.png | Bin 20359 -> 0 bytes
.../Samples.TumblrParserResource.1.png | Bin 168439 -> 0 bytes
.../Samples.UrlEncodedFormResource.1.png | Bin 24026 -> 0 bytes
.../Samples.UrlEncodedFormResource.2.png | Bin 31318 -> 0 bytes
.../src/main/java/doc-files/Server.Html.png | Bin 52497 -> 0 bytes
.../src/main/java/doc-files/Server.Json.png | Bin 29692 -> 0 bytes
.../src/main/java/doc-files/Server.N3.png | Bin 45391 -> 0 bytes
.../src/main/java/doc-files/Server.NTuple.png | Bin 55713 -> 0 bytes
.../src/main/java/doc-files/Server.Options.png | Bin 67005 -> 0 bytes
.../src/main/java/doc-files/Server.RdfXml.png | Bin 45274 -> 0 bytes
.../main/java/doc-files/Server.SimpleXml.png | Bin 36746 -> 0 bytes
.../src/main/java/doc-files/Server.Turtle.png | Bin 45180 -> 0 bytes
.../src/main/java/doc-files/Server.Uon.png | Bin 28160 -> 0 bytes
.../main/java/doc-files/Server.UrlEncoding.png | Bin 32516 -> 0 bytes
.../src/main/java/doc-files/Server.Xml.png | Bin 45446 -> 0 bytes
.../org/apache/juneau/transform/package.html | 2 +-
juneau-core/src/main/java/overview.html | 7673 ------------------
.../main/javadoc/doc-files/Microservices.1.png | Bin 0 -> 22345 bytes
.../doc-files/Samples.AddressBookResource.1.png | Bin 0 -> 44553 bytes
.../doc-files/Samples.AddressBookResource.2.png | Bin 0 -> 224346 bytes
.../Samples.AddressBookResource.Demo.1.png | Bin 0 -> 17539 bytes
.../Samples.AddressBookResource.Demo.10.png | Bin 0 -> 37153 bytes
.../Samples.AddressBookResource.Demo.2.png | Bin 0 -> 47285 bytes
.../Samples.AddressBookResource.Demo.3.png | Bin 0 -> 40911 bytes
.../Samples.AddressBookResource.Demo.4.png | Bin 0 -> 40461 bytes
.../Samples.AddressBookResource.Demo.5.png | Bin 0 -> 49884 bytes
.../Samples.AddressBookResource.Demo.6.png | Bin 0 -> 52332 bytes
.../Samples.AddressBookResource.Demo.7.png | Bin 0 -> 39401 bytes
.../Samples.AddressBookResource.Demo.8.png | Bin 0 -> 34154 bytes
.../Samples.AddressBookResource.Demo.9.png | Bin 0 -> 51831 bytes
...les.AddressBookResource.Introspectable.1.png | Bin 0 -> 21714 bytes
.../Samples.AddressBookResource.Queryable.1.png | Bin 0 -> 43970 bytes
.../Samples.AddressBookResource.Queryable.2.png | Bin 0 -> 35177 bytes
.../Samples.AddressBookResource.Queryable.3.png | Bin 0 -> 35137 bytes
...amples.AddressBookResource.Traversable.1.png | Bin 0 -> 28868 bytes
...amples.AddressBookResource.Traversable.2.png | Bin 0 -> 20464 bytes
.../doc-files/Samples.AtomFeedResource.1.png | Bin 0 -> 45184 bytes
.../doc-files/Samples.AtomFeedResource.2.png | Bin 0 -> 78940 bytes
.../doc-files/Samples.AtomFeedResource.3.png | Bin 0 -> 28698 bytes
.../javadoc/doc-files/Samples.Building.1.png | Bin 0 -> 14082 bytes
.../javadoc/doc-files/Samples.Building.2.png | Bin 0 -> 5543 bytes
.../doc-files/Samples.ConfigResource.1.png | Bin 0 -> 38071 bytes
.../doc-files/Samples.ConfigResource.2.png | Bin 0 -> 42599 bytes
.../doc-files/Samples.ConfigResource.3.png | Bin 0 -> 41856 bytes
.../Samples.DockerRegistryResource.1.png | Bin 0 -> 16230 bytes
.../Samples.DockerRegistryResource.2.png | Bin 0 -> 23808 bytes
.../doc-files/Samples.HelloWorldResource.1.png | Bin 0 -> 15414 bytes
.../doc-files/Samples.HelloWorldResource.2.png | Bin 0 -> 10797 bytes
.../doc-files/Samples.HelloWorldResource.3.png | Bin 0 -> 66934 bytes
.../javadoc/doc-files/Samples.Installing.1.png | Bin 0 -> 52312 bytes
.../javadoc/doc-files/Samples.Installing.2.png | Bin 0 -> 59664 bytes
.../javadoc/doc-files/Samples.Installing.3.png | Bin 0 -> 25927 bytes
.../doc-files/Samples.JsonSchemaResource.1.png | Bin 0 -> 36315 bytes
.../doc-files/Samples.JsonSchemaResource.2.png | Bin 0 -> 28837 bytes
.../doc-files/Samples.LogsResource.1.png | Bin 0 -> 37594 bytes
.../doc-files/Samples.LogsResource.2.png | Bin 0 -> 42497 bytes
.../doc-files/Samples.LogsResource.3.png | Bin 0 -> 56603 bytes
.../Samples.MethodExampleResource.1.png | Bin 0 -> 27555 bytes
.../Samples.MethodExampleResource.2.png | Bin 0 -> 71023 bytes
.../doc-files/Samples.PhotosResource.1.png | Bin 0 -> 16442 bytes
.../doc-files/Samples.PhotosResource.2.png | Bin 0 -> 71952 bytes
...Samples.RequestEchoResource.1.htmlschema.png | Bin 0 -> 35501 bytes
.../Samples.RequestEchoResource.1.json.png | Bin 0 -> 30092 bytes
...Samples.RequestEchoResource.1.jsonschema.png | Bin 0 -> 31731 bytes
...Samples.RequestEchoResource.1.jsonsimple.png | Bin 0 -> 29302 bytes
.../doc-files/Samples.RequestEchoResource.1.png | Bin 0 -> 54743 bytes
.../Samples.RequestEchoResource.1.uon.png | Bin 0 -> 64778 bytes
...amples.RequestEchoResource.1.urlencoding.png | Bin 0 -> 71054 bytes
.../Samples.RequestEchoResource.1.xml.png | Bin 0 -> 43989 bytes
.../Samples.RequestEchoResource.1.xmlschema.png | Bin 0 -> 47951 bytes
.../doc-files/Samples.RequestEchoResource.2.png | Bin 0 -> 30872 bytes
.../doc-files/Samples.RequestEchoResource.3.png | Bin 0 -> 27501 bytes
.../doc-files/Samples.RequestEchoResource.4.png | Bin 0 -> 22149 bytes
.../javadoc/doc-files/Samples.Running.1.png | Bin 0 -> 40422 bytes
.../javadoc/doc-files/Samples.Running.2.png | Bin 0 -> 15925 bytes
.../javadoc/doc-files/Samples.Running.3.png | Bin 0 -> 62643 bytes
.../Samples.SampleRemoteableServlet.1.png | Bin 0 -> 23969 bytes
.../Samples.SampleRemoteableServlet.2.png | Bin 0 -> 29986 bytes
.../Samples.SampleRemoteableServlet.3.png | Bin 0 -> 45596 bytes
.../doc-files/Samples.SqlQueryResource.1.png | Bin 0 -> 16113 bytes
.../doc-files/Samples.SqlQueryResource.2.png | Bin 0 -> 40356 bytes
.../doc-files/Samples.TempDirResource.1.png | Bin 0 -> 32843 bytes
.../doc-files/Samples.TempDirResource.2.png | Bin 0 -> 20359 bytes
.../Samples.TumblrParserResource.1.png | Bin 0 -> 168439 bytes
.../Samples.UrlEncodedFormResource.1.png | Bin 0 -> 24026 bytes
.../Samples.UrlEncodedFormResource.2.png | Bin 0 -> 31318 bytes
.../src/main/javadoc/doc-files/Server.Html.png | Bin 0 -> 52497 bytes
.../src/main/javadoc/doc-files/Server.Json.png | Bin 0 -> 29692 bytes
.../src/main/javadoc/doc-files/Server.N3.png | Bin 0 -> 45391 bytes
.../main/javadoc/doc-files/Server.NTuple.png | Bin 0 -> 55713 bytes
.../main/javadoc/doc-files/Server.Options.png | Bin 0 -> 67005 bytes
.../main/javadoc/doc-files/Server.RdfXml.png | Bin 0 -> 45274 bytes
.../main/javadoc/doc-files/Server.SimpleXml.png | Bin 0 -> 36746 bytes
.../main/javadoc/doc-files/Server.Turtle.png | Bin 0 -> 45180 bytes
.../src/main/javadoc/doc-files/Server.Uon.png | Bin 0 -> 28160 bytes
.../javadoc/doc-files/Server.UrlEncoding.png | Bin 0 -> 32516 bytes
.../src/main/javadoc/doc-files/Server.Xml.png | Bin 0 -> 45446 bytes
juneau-core/src/main/javadoc/javadoc.css | 662 ++
juneau-core/src/main/javadoc/overview.html | 7672 +++++++++++++++++
.../src/main/javadoc/resources/juneau-code.css | 110 +
.../src/main/javadoc/resources/juneau-doc.css | 361 +
juneau-releng/javadoc.css | 662 --
juneau-releng/juneau-code.css | 110 -
juneau-releng/juneau-doc.css | 361 -
.../java/org/apache/juneau/server/package.html | 19 +-
pom.xml | 6 +-
172 files changed, 8837 insertions(+), 8834 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/.classpath
----------------------------------------------------------------------
diff --git a/juneau-core/.classpath b/juneau-core/.classpath
index a9fe054..fa3302d 100644
--- a/juneau-core/.classpath
+++ b/juneau-core/.classpath
@@ -1,18 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
- <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
- <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
- <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jena/jena-core/2.7.1/jena-core-2.7.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jena/jena-iri/0.9.1/jena-iri-0.9.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.11/junit-4.11.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/>
-</classpath>
\ No newline at end of file
+ <classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/javadoc"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jena/jena-core/2.7.1/jena-core-2.7.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jena/jena-iri/0.9.1/jena-iri-0.9.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.11/junit-4.11.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Microservices.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Microservices.1.png b/juneau-core/src/main/java/doc-files/Microservices.1.png
deleted file mode 100644
index e730d32..0000000
Binary files a/juneau-core/src/main/java/doc-files/Microservices.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.1.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.1.png
deleted file mode 100644
index 96426b7..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.2.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.2.png
deleted file mode 100644
index 36c3e42..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.1.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.1.png
deleted file mode 100644
index 28f9f50..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.10.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.10.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.10.png
deleted file mode 100644
index 88813e3..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.10.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.2.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.2.png
deleted file mode 100644
index d12c2a6..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.3.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.3.png
deleted file mode 100644
index 026f40a..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.4.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.4.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.4.png
deleted file mode 100644
index 9196c5c..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.4.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.5.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.5.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.5.png
deleted file mode 100644
index 3db4c82..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.5.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.6.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.6.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.6.png
deleted file mode 100644
index bf1c752..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.6.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.7.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.7.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.7.png
deleted file mode 100644
index 820beaa..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.7.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.8.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.8.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.8.png
deleted file mode 100644
index 901adf8..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.8.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.9.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.9.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.9.png
deleted file mode 100644
index 57f2ee5..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Demo.9.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Introspectable.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Introspectable.1.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Introspectable.1.png
deleted file mode 100644
index b6a7ca6..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Introspectable.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.1.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.1.png
deleted file mode 100644
index 8072bb0..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.2.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.2.png
deleted file mode 100644
index 5dfe9ac..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.3.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.3.png
deleted file mode 100644
index f6ec90a..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Queryable.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Traversable.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Traversable.1.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Traversable.1.png
deleted file mode 100644
index 324bc9e..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Traversable.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Traversable.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Traversable.2.png b/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Traversable.2.png
deleted file mode 100644
index cb36527..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AddressBookResource.Traversable.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.1.png b/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.1.png
deleted file mode 100644
index b4918ad..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.2.png b/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.2.png
deleted file mode 100644
index 9f7007b..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.3.png b/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.3.png
deleted file mode 100644
index 9e9226e..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.AtomFeedResource.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.Building.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.Building.1.png b/juneau-core/src/main/java/doc-files/Samples.Building.1.png
deleted file mode 100644
index b87be9e..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.Building.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.Building.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.Building.2.png b/juneau-core/src/main/java/doc-files/Samples.Building.2.png
deleted file mode 100644
index 7f4e892..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.Building.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.ConfigResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.ConfigResource.1.png b/juneau-core/src/main/java/doc-files/Samples.ConfigResource.1.png
deleted file mode 100644
index cdcbbe7..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.ConfigResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.ConfigResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.ConfigResource.2.png b/juneau-core/src/main/java/doc-files/Samples.ConfigResource.2.png
deleted file mode 100644
index ec748e4..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.ConfigResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.ConfigResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.ConfigResource.3.png b/juneau-core/src/main/java/doc-files/Samples.ConfigResource.3.png
deleted file mode 100644
index 8e9a3d9..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.ConfigResource.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.DockerRegistryResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.DockerRegistryResource.1.png b/juneau-core/src/main/java/doc-files/Samples.DockerRegistryResource.1.png
deleted file mode 100644
index 2db968b..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.DockerRegistryResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.DockerRegistryResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.DockerRegistryResource.2.png b/juneau-core/src/main/java/doc-files/Samples.DockerRegistryResource.2.png
deleted file mode 100644
index f40f603..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.DockerRegistryResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.1.png b/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.1.png
deleted file mode 100644
index bbc4afa..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.2.png b/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.2.png
deleted file mode 100644
index 0cf55f9..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.3.png b/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.3.png
deleted file mode 100644
index c493099..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.HelloWorldResource.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.Installing.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.Installing.1.png b/juneau-core/src/main/java/doc-files/Samples.Installing.1.png
deleted file mode 100644
index 81c6239..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.Installing.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.Installing.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.Installing.2.png b/juneau-core/src/main/java/doc-files/Samples.Installing.2.png
deleted file mode 100644
index 9873f17..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.Installing.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.Installing.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.Installing.3.png b/juneau-core/src/main/java/doc-files/Samples.Installing.3.png
deleted file mode 100644
index 9c3fd34..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.Installing.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.JsonSchemaResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.JsonSchemaResource.1.png b/juneau-core/src/main/java/doc-files/Samples.JsonSchemaResource.1.png
deleted file mode 100644
index 23d69da..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.JsonSchemaResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.JsonSchemaResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.JsonSchemaResource.2.png b/juneau-core/src/main/java/doc-files/Samples.JsonSchemaResource.2.png
deleted file mode 100644
index 02c15c6..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.JsonSchemaResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.LogsResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.LogsResource.1.png b/juneau-core/src/main/java/doc-files/Samples.LogsResource.1.png
deleted file mode 100644
index 6cc890a..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.LogsResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.LogsResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.LogsResource.2.png b/juneau-core/src/main/java/doc-files/Samples.LogsResource.2.png
deleted file mode 100644
index 49c74a0..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.LogsResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.LogsResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.LogsResource.3.png b/juneau-core/src/main/java/doc-files/Samples.LogsResource.3.png
deleted file mode 100644
index 51594d8..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.LogsResource.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.MethodExampleResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.MethodExampleResource.1.png b/juneau-core/src/main/java/doc-files/Samples.MethodExampleResource.1.png
deleted file mode 100644
index d64ea00..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.MethodExampleResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.MethodExampleResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.MethodExampleResource.2.png b/juneau-core/src/main/java/doc-files/Samples.MethodExampleResource.2.png
deleted file mode 100644
index a621767..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.MethodExampleResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.PhotosResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.PhotosResource.1.png b/juneau-core/src/main/java/doc-files/Samples.PhotosResource.1.png
deleted file mode 100644
index a050101..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.PhotosResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.PhotosResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.PhotosResource.2.png b/juneau-core/src/main/java/doc-files/Samples.PhotosResource.2.png
deleted file mode 100644
index fe472a8..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.PhotosResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.htmlschema.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.htmlschema.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.htmlschema.png
deleted file mode 100644
index 0e822c0..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.htmlschema.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.json.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.json.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.json.png
deleted file mode 100644
index 67bc6b8..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.json.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonschema.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonschema.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonschema.png
deleted file mode 100644
index dbd6db3..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonschema.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonsimple.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonsimple.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonsimple.png
deleted file mode 100644
index da569c0..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.jsonsimple.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.png
deleted file mode 100644
index 305c913..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.uon.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.uon.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.uon.png
deleted file mode 100644
index 4329dc4..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.uon.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.urlencoding.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.urlencoding.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.urlencoding.png
deleted file mode 100644
index 4982033..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.urlencoding.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.xml.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.xml.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.xml.png
deleted file mode 100644
index d563523..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.xml.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.xmlschema.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.xmlschema.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.xmlschema.png
deleted file mode 100644
index 25b3de7..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.1.xmlschema.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.2.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.2.png
deleted file mode 100644
index ffb5b24..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.3.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.3.png
deleted file mode 100644
index 606dad7..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.4.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.4.png b/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.4.png
deleted file mode 100644
index 78df80a..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.RequestEchoResource.4.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.Running.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.Running.1.png b/juneau-core/src/main/java/doc-files/Samples.Running.1.png
deleted file mode 100644
index b963769..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.Running.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.Running.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.Running.2.png b/juneau-core/src/main/java/doc-files/Samples.Running.2.png
deleted file mode 100644
index 1ea5e51..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.Running.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.Running.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.Running.3.png b/juneau-core/src/main/java/doc-files/Samples.Running.3.png
deleted file mode 100644
index c2f37b4..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.Running.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.1.png b/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.1.png
deleted file mode 100644
index 11e8220..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.2.png b/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.2.png
deleted file mode 100644
index ed6b88c..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.3.png b/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.3.png
deleted file mode 100644
index 5674912..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.SampleRemoteableServlet.3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.SqlQueryResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.SqlQueryResource.1.png b/juneau-core/src/main/java/doc-files/Samples.SqlQueryResource.1.png
deleted file mode 100644
index 21e32a6..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.SqlQueryResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.SqlQueryResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.SqlQueryResource.2.png b/juneau-core/src/main/java/doc-files/Samples.SqlQueryResource.2.png
deleted file mode 100644
index 206013f..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.SqlQueryResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.TempDirResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.TempDirResource.1.png b/juneau-core/src/main/java/doc-files/Samples.TempDirResource.1.png
deleted file mode 100644
index bd6c854..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.TempDirResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.TempDirResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.TempDirResource.2.png b/juneau-core/src/main/java/doc-files/Samples.TempDirResource.2.png
deleted file mode 100644
index 0c78b77..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.TempDirResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.TumblrParserResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.TumblrParserResource.1.png b/juneau-core/src/main/java/doc-files/Samples.TumblrParserResource.1.png
deleted file mode 100644
index 9fac852..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.TumblrParserResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.UrlEncodedFormResource.1.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.UrlEncodedFormResource.1.png b/juneau-core/src/main/java/doc-files/Samples.UrlEncodedFormResource.1.png
deleted file mode 100644
index 0599e93..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.UrlEncodedFormResource.1.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Samples.UrlEncodedFormResource.2.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Samples.UrlEncodedFormResource.2.png b/juneau-core/src/main/java/doc-files/Samples.UrlEncodedFormResource.2.png
deleted file mode 100644
index 0ed8b80..0000000
Binary files a/juneau-core/src/main/java/doc-files/Samples.UrlEncodedFormResource.2.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.Html.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.Html.png b/juneau-core/src/main/java/doc-files/Server.Html.png
deleted file mode 100644
index 87565c5..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.Html.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.Json.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.Json.png b/juneau-core/src/main/java/doc-files/Server.Json.png
deleted file mode 100644
index 1bd3738..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.Json.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.N3.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.N3.png b/juneau-core/src/main/java/doc-files/Server.N3.png
deleted file mode 100644
index 8ada07c..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.N3.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.NTuple.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.NTuple.png b/juneau-core/src/main/java/doc-files/Server.NTuple.png
deleted file mode 100644
index 1e25554..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.NTuple.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.Options.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.Options.png b/juneau-core/src/main/java/doc-files/Server.Options.png
deleted file mode 100644
index f89fea0..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.Options.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.RdfXml.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.RdfXml.png b/juneau-core/src/main/java/doc-files/Server.RdfXml.png
deleted file mode 100644
index 7a8b02c..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.RdfXml.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.SimpleXml.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.SimpleXml.png b/juneau-core/src/main/java/doc-files/Server.SimpleXml.png
deleted file mode 100644
index 9eb1fcd..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.SimpleXml.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.Turtle.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.Turtle.png b/juneau-core/src/main/java/doc-files/Server.Turtle.png
deleted file mode 100644
index 77ec6ad..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.Turtle.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.Uon.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.Uon.png b/juneau-core/src/main/java/doc-files/Server.Uon.png
deleted file mode 100644
index 28e4baf..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.Uon.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.UrlEncoding.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.UrlEncoding.png b/juneau-core/src/main/java/doc-files/Server.UrlEncoding.png
deleted file mode 100644
index 1572968..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.UrlEncoding.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/doc-files/Server.Xml.png
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/doc-files/Server.Xml.png b/juneau-core/src/main/java/doc-files/Server.Xml.png
deleted file mode 100644
index 1012ea0..0000000
Binary files a/juneau-core/src/main/java/doc-files/Server.Xml.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d89c8737/juneau-core/src/main/java/org/apache/juneau/transform/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/package.html b/juneau-core/src/main/java/org/apache/juneau/transform/package.html
index d63458e..b859e25 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/package.html
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/package.html
@@ -97,7 +97,7 @@
<li>{@link org.apache.juneau.server.jaxrs.JuneauProvider#beanFilters() @JuneauProvider.beanFilters()} / {@link org.apache.juneau.server.jaxrs.JuneauProvider#pojoSwaps() @JuneauProvider.pojoSwaps()} - On all serializers and parsers defined on a JAX-RS provider.
</ul>
<p>
- Swaps can also be associated with classes through the {@link org.apache.juneau.annotation.Pojo#pojoSwaps @Pojo.pojoSwaps()} annotation.
+ Swaps can also be associated with classes through the {@link org.apache.juneau.annotation.Pojo#swap @Pojo.swap()} annotation.
</p>
<!-- ======================================================================================================== -->