Return-Path: Delivered-To: apmail-incubator-harmony-commits-archive@www.apache.org Received: (qmail 95682 invoked from network); 15 Sep 2006 02:21:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 15 Sep 2006 02:21:28 -0000 Received: (qmail 18961 invoked by uid 500); 15 Sep 2006 02:21:27 -0000 Delivered-To: apmail-incubator-harmony-commits-archive@incubator.apache.org Received: (qmail 18802 invoked by uid 500); 15 Sep 2006 02:21:27 -0000 Mailing-List: contact harmony-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-commits@incubator.apache.org Received: (qmail 18770 invoked by uid 99); 15 Sep 2006 02:21:26 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Sep 2006 19:21:26 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Sep 2006 19:21:16 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 05BE11A9823; Thu, 14 Sep 2006 19:20:50 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r446465 [3/12] - in /incubator/harmony/enhanced/classlib/trunk/doc: ./ RMIRegistryProvider/ classlib/ jndi_dns/ kernel/ kernel_doc/ kernel_doc/html/ regex/ security/ tools/Keytool/ vm_doc/ vm_doc/html/ vminterface/ Date: Fri, 15 Sep 2006 02:20:45 -0000 To: harmony-commits@incubator.apache.org From: ndbeyer@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20060915022050.05BE11A9823@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Propchange: incubator/harmony/enhanced/classlib/trunk/doc/classlib/classlib.cfg ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/harmony/enhanced/classlib/trunk/doc/conventions.htm URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/conventions.htm?view=diff&rev=446465&r1=446464&r2=446465 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/doc/conventions.htm (original) +++ incubator/harmony/enhanced/classlib/trunk/doc/conventions.htm Thu Sep 14 19:20:34 2006 @@ -1,84 +1,84 @@ - - - - - - -Documentation Conventions - - - - -

Documentation Conventions

-

The Harmony documentation set uses the following conventions.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Convention Explanation Example
monospace Filenames ippsapi.h
Directory names and pathnames \alt\include
Commands and command-line options ecl - -O2
Function names, methods, classes, data structures in - running text Use the okCreateObjs function to ...
Parameters or other placeholders  ippiMalloc(int widthPixels, ...)
- int* pStepBytes
monospace bold  User input [c:] dir
italics Emphasis; introducing or defining terms The term access takes as its subject ...
[ ] Optional items -Fa[c] Indicates these command-line - options: -Fa and -Fac
{ | } Choice of one item from a selection of two or more - items. -aX{K | W | P} Indicates these command-line - options:
-aXK
-aXW
-aXP
- - - + + + + + + +Documentation Conventions + + + + +

Documentation Conventions

+

The Harmony documentation set uses the following conventions.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Convention Explanation Example
monospace Filenames ippsapi.h
Directory names and pathnames \alt\include
Commands and command-line options ecl + -O2
Function names, methods, classes, data structures in + running text Use the okCreateObjs function to ...
Parameters or other placeholders  ippiMalloc(int widthPixels, ...)
+ int* pStepBytes
monospace bold  User input [c:] dir
italics Emphasis; introducing or defining terms The term access takes as its subject ...
[ ] Optional items -Fa[c] Indicates these command-line + options: -Fa and -Fac
{ | } Choice of one item from a selection of two or more + items. -aX{K | W | P} Indicates these command-line + options:
-aXK
-aXW
-aXP
+ + + Propchange: incubator/harmony/enhanced/classlib/trunk/doc/conventions.htm ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/harmony/enhanced/classlib/trunk/doc/harmony.css URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/harmony.css?view=diff&rev=446465&r1=446464&r2=446465 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/doc/harmony.css (original) +++ incubator/harmony/enhanced/classlib/trunk/doc/harmony.css Thu Sep 14 19:20:34 2006 @@ -1,259 +1,259 @@ -P { - margin-left: 15pt; - margin-top: 5pt; - margin-right: 0.00in; - margin-bottom: 5pt; - font-size: 10.0pt; - font-family: "Arial MT", Verdana, Arial; -} - - -h1 { - font-family: Arial, Helvetica, sans-serif; - font-size: 16pt; - color: white; - background-color: #525D76; - font-weight: normal; - text-transform: uppercase; - padding-left: 4px; - - -} - -h2 { - font-size: 10pt; - font-family: Arial, Helvetica, sans-serif; - color: white; - background-color: #828DA6; - margin-left: 15pt; - margin-top: 5pt; - margin-right: 0in; - margin-bottom: 5pt; - text-transform: uppercase; - padding-left: 4px; - font-weight: normal; - letter-spacing: 4px; - word-spacing: 7px; - -} - -h3 { - font-weight: bold; - margin-left: 15pt; - margin-top: 5pt; - margin-right: 0pt; - margin-bottom: 5pt; - font-size: 11pt; - font-family: Arial; -} - - -pre { - margin: 0in; - margin: 5pt; - background: #F3F5F7; - border: thin solid; - border-color: #828DA6; - padding: 12pt; - font-size: 11.0pt; - font-family: Courier; -} - -.code { - font-weight: normal; - font-size: 12pt; - text-align: left; - text-indent: 0.00in; - color: #000000; - line-height: 1.25; - margin-left: 0.025in; - margin-right: 0.00in; - margin-top: 10pt; - margin-bottom: 10pt; - font-family: "Andale Mono", "Courier New", Courier "misc fixed", "sony fixed", monospaced; -} - -.special { - font-weight: bold; - font-size: 11pt; - text-align: center; - color: #525D76; - line-height: 1.25; - margin-left: 0.70in; - margin-right: 1.00in; - margin-top: 3pt; - margin-bottom: 3pt; - font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; -} - -.backtotop { - font-weight: bold; - font-size: 10pt; - text-align: left; - line-height: 1.25; - margin-left: 0pt; - margin-right: 0pt; - margin-top: 3pt; - margin-bottom: 0pt; - font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; -} - -.note { - color: red; - font-weight: bolder; - font-size: 10pt; - text-align: left; - line-height: normal; - margin-left: 0.70in; - margin-right: 1.00in; - margin-top: 3pt; - margin-bottom: 3pt; - font-family: Verdana, Helvetica, Arial, Tahoma, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; - text-transform: uppercase; - -} -.notetext { - font-size: 10pt; - font-weight: normal; - text-align: left; - line-height: normal; - margin-left: 0.70in; - margin-right: 1.00in; - margin-top: 0pt; - margin-bottom: 6pt; - font-family: Verdana, Helvetica, Arial, "Arial MT", Tahoma, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; - color: Black; -} - - -a:link { - color: #0044B3; - border: none #000000 1.0pt; - padding: 0in; - x-text-underline: normal; - text-underline: single; - x-text-underline: normal; - text-decoration: underline underline; -} - -a:visited { - color: #800080; - x-text-underline: normal; - text-underline: single; - x-text-underline: normal; - text-decoration: underline underline; -} - -.TOCHeading { - font-weight: bold; - font-size: 12pt; - text-align: left; - color: #000000; - font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; - padding-left: 15px; - margin-bottom: 5pt; - margin-top: 5pt; - margin-left: 5px; - margin-right: 0pt; -} - -.TOC { - font-size: 11pt; - text-align: left; - text-indent: 0.25in; - color: #000000; - padding-left: 15px; - margin-left: 5px; - margin-right: 0.00in; - margin-top: 0pt; - margin-bottom: 0pt; - font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; -} - -td { - border-color: #828DA6; - border: solid 0.5pt; -} - -.TableHeading { - font-weight: bold; - font-size: 12pt; - color: white; - text-align: center; - background-color: #828DA6; - font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; - padding: 6px; -} - -.TableCell { - font-weight: normal; - font-size: 10pt; - text-align: left; - text-indent: 0.00in; - color: #000000; - padding: 2pt; - margin-top: 4pt; - margin-bottom: 4pt; - font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; - padding: 6px; -} - -.update { - color: #A9A9A9; - font-size: smaller; - font-style: italic; -} - -li { - margin: 3pt 3pt; - font-size: 10.0pt; - font-family: Verdana, Arial, "Arial MT"; -} - -DD { - font-size: 10pt; - font-family: Verdana, "Arial MT", Arial; - font-style: normal; - margin-left: 65pt; - margin-top: 5pt; - margin-right: 20pt; - margin-bottom: 5pt; - font-size: 10.0pt; - border-top: none; - border-right: none; - border-bottom: 0.5px solid #828DA6; - border-left: none; - padding-bottom: 12px; -} - -DT { - font-size: 10.0pt; - font-family: Verdana, Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; - font-weight: bolder; - margin-left: 45pt; - margin-top: 5pt; - margin-right: 0in; - margin-bottom: 5pt; - font-size: 10.0pt; - border-right: none; - border-bottom: none; - border-left: none; - border-top: none; -} - -.class { - font-weight: bold; - margin-left: 15pt; - margin-top: 5pt; - margin-right: 0pt; - margin-bottom: 5pt; - font-size: 11pt; - font-family: Arial; - border-top: none; - border-right: none; - border-bottom: 2px solid #525D76; - border-left: none; - border-bottom: #525D76; - padding-bottom: 4px; - font-style: normal; -} +P { + margin-left: 15pt; + margin-top: 5pt; + margin-right: 0.00in; + margin-bottom: 5pt; + font-size: 10.0pt; + font-family: "Arial MT", Verdana, Arial; +} + + +h1 { + font-family: Arial, Helvetica, sans-serif; + font-size: 16pt; + color: white; + background-color: #525D76; + font-weight: normal; + text-transform: uppercase; + padding-left: 4px; + + +} + +h2 { + font-size: 10pt; + font-family: Arial, Helvetica, sans-serif; + color: white; + background-color: #828DA6; + margin-left: 15pt; + margin-top: 5pt; + margin-right: 0in; + margin-bottom: 5pt; + text-transform: uppercase; + padding-left: 4px; + font-weight: normal; + letter-spacing: 4px; + word-spacing: 7px; + +} + +h3 { + font-weight: bold; + margin-left: 15pt; + margin-top: 5pt; + margin-right: 0pt; + margin-bottom: 5pt; + font-size: 11pt; + font-family: Arial; +} + + +pre { + margin: 0in; + margin: 5pt; + background: #F3F5F7; + border: thin solid; + border-color: #828DA6; + padding: 12pt; + font-size: 11.0pt; + font-family: Courier; +} + +.code { + font-weight: normal; + font-size: 12pt; + text-align: left; + text-indent: 0.00in; + color: #000000; + line-height: 1.25; + margin-left: 0.025in; + margin-right: 0.00in; + margin-top: 10pt; + margin-bottom: 10pt; + font-family: "Andale Mono", "Courier New", Courier "misc fixed", "sony fixed", monospaced; +} + +.special { + font-weight: bold; + font-size: 11pt; + text-align: center; + color: #525D76; + line-height: 1.25; + margin-left: 0.70in; + margin-right: 1.00in; + margin-top: 3pt; + margin-bottom: 3pt; + font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; +} + +.backtotop { + font-weight: bold; + font-size: 10pt; + text-align: left; + line-height: 1.25; + margin-left: 0pt; + margin-right: 0pt; + margin-top: 3pt; + margin-bottom: 0pt; + font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; +} + +.note { + color: red; + font-weight: bolder; + font-size: 10pt; + text-align: left; + line-height: normal; + margin-left: 0.70in; + margin-right: 1.00in; + margin-top: 3pt; + margin-bottom: 3pt; + font-family: Verdana, Helvetica, Arial, Tahoma, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; + text-transform: uppercase; + +} +.notetext { + font-size: 10pt; + font-weight: normal; + text-align: left; + line-height: normal; + margin-left: 0.70in; + margin-right: 1.00in; + margin-top: 0pt; + margin-bottom: 6pt; + font-family: Verdana, Helvetica, Arial, "Arial MT", Tahoma, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; + color: Black; +} + + +a:link { + color: #0044B3; + border: none #000000 1.0pt; + padding: 0in; + x-text-underline: normal; + text-underline: single; + x-text-underline: normal; + text-decoration: underline underline; +} + +a:visited { + color: #800080; + x-text-underline: normal; + text-underline: single; + x-text-underline: normal; + text-decoration: underline underline; +} + +.TOCHeading { + font-weight: bold; + font-size: 12pt; + text-align: left; + color: #000000; + font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; + padding-left: 15px; + margin-bottom: 5pt; + margin-top: 5pt; + margin-left: 5px; + margin-right: 0pt; +} + +.TOC { + font-size: 11pt; + text-align: left; + text-indent: 0.25in; + color: #000000; + padding-left: 15px; + margin-left: 5px; + margin-right: 0.00in; + margin-top: 0pt; + margin-bottom: 0pt; + font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; +} + +td { + border-color: #828DA6; + border: solid 0.5pt; +} + +.TableHeading { + font-weight: bold; + font-size: 12pt; + color: white; + text-align: center; + background-color: #828DA6; + font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; + padding: 6px; +} + +.TableCell { + font-weight: normal; + font-size: 10pt; + text-align: left; + text-indent: 0.00in; + color: #000000; + padding: 2pt; + margin-top: 4pt; + margin-bottom: 4pt; + font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; + padding: 6px; +} + +.update { + color: #A9A9A9; + font-size: smaller; + font-style: italic; +} + +li { + margin: 3pt 3pt; + font-size: 10.0pt; + font-family: Verdana, Arial, "Arial MT"; +} + +DD { + font-size: 10pt; + font-family: Verdana, "Arial MT", Arial; + font-style: normal; + margin-left: 65pt; + margin-top: 5pt; + margin-right: 20pt; + margin-bottom: 5pt; + font-size: 10.0pt; + border-top: none; + border-right: none; + border-bottom: 0.5px solid #828DA6; + border-left: none; + padding-bottom: 12px; +} + +DT { + font-size: 10.0pt; + font-family: Verdana, Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif; + font-weight: bolder; + margin-left: 45pt; + margin-top: 5pt; + margin-right: 0in; + margin-bottom: 5pt; + font-size: 10.0pt; + border-right: none; + border-bottom: none; + border-left: none; + border-top: none; +} + +.class { + font-weight: bold; + margin-left: 15pt; + margin-top: 5pt; + margin-right: 0pt; + margin-bottom: 5pt; + font-size: 11pt; + font-family: Arial; + border-top: none; + border-right: none; + border-bottom: 2px solid #525D76; + border-left: none; + border-bottom: #525D76; + padding-bottom: 4px; + font-style: normal; +} Propchange: incubator/harmony/enhanced/classlib/trunk/doc/harmony.css ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/harmony/enhanced/classlib/trunk/doc/hydoxygen.css URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/hydoxygen.css?view=diff&rev=446465&r1=446464&r2=446465 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/doc/hydoxygen.css (original) +++ incubator/harmony/enhanced/classlib/trunk/doc/hydoxygen.css Thu Sep 14 19:20:34 2006 @@ -1,309 +1,309 @@ -BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -BODY,TD { - font-size: 90%; -} -H1 { - text-align: center; - font-size: 160%; -} -H2 { - font-size: 120%; -} -H3 { - font-size: 100%; -} -CAPTION { font-weight: bold ;} -DIV.qindex { - width: 100%; - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.nav { - width: 100%; - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.navtab { - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -TD.navtab { - font-size: 70%; -} -A.qindex { - text-decoration: none; - font-weight: bold; - color: #1A419D; -} -A.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1A419D -;} -A.qindex:hover { - text-decoration: none; - background-color: #ddddff; -} -A.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} -A.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; -} -A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff ;} -A.el { text-decoration: none; font-weight: bold ;} -A.elRef { font-weight: bold ;} -A.code:link { text-decoration: none; font-weight: normal; color: #0000FF;} -A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF;} -A.codeRef:link { font-weight: normal; color: #0000FF;} -A.codeRef:visited { font-weight: normal; color: #0000FF;} -A:hover { text-decoration: none; background-color: #f2f2ff ;} -DL.el { margin-left: -1cm ;} -.fragment { - font-family : monospace; - font-size: 95%; -} -PRE.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px ;} -TD.md { background-color: #F4F4FB; font-weight: bold; } -TD.mdPrefix { - background-color: #F4F4FB; - color: #606060; - font-size: 80%; -} -TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } -TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } -DIV.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} -DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% ;} -BODY { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} -TD.indexkey { - background-color: #eeeeff; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TD.indexvalue { - background-color: #eeeeff; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TR.memlist { - background-color: #f0f0f0; -} -P.formulaDsp { text-align: center; } -IMG.formulaDsp { } -IMG.formulaInl { vertical-align: middle; } -SPAN.keyword { color: #008000 ;} -SPAN.keywordtype { color: #604020 ;} -SPAN.keywordflow { color: #e08000 ;} -SPAN.comment { color: #800000 ;} -SPAN.preprocessor { color: #806020 ;} -SPAN.stringliteral { color: #002080 ;} -SPAN.charliteral { color: #008080 ;} -.mdTable { - border: 1px solid #868686; - background-color: #F4F4FB; -} -.mdRow { - padding: 8px 10px; -} -.mdescLeft { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplParams { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - color: #606060; - background-color: #FAFAFA; - font-size: 80%; -} -.search { color: #003399; - font-weight: bold; -} -FORM.search { - margin-bottom: 0px; - margin-top: 0px; -} -INPUT.search { font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #eeeeff; -} -TD.tiny { font-size: 75%; -} -a { - color: #252E78; -} -a:visited { - color: #3D2185; -} -.dirtab { padding: 4px; - border-collapse: collapse; - border: 1px solid #b0b0b0; -} -TH.dirtab { background: #eeeeff; - font-weight: bold; -} -HR { height: 1px; - border: none; - border-top: 1px solid black; -} +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold ;} +DIV.qindex { + width: 100%; + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +;} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff ;} +A.el { text-decoration: none; font-weight: bold ;} +A.elRef { font-weight: bold ;} +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF;} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF;} +A.codeRef:link { font-weight: normal; color: #0000FF;} +A.codeRef:visited { font-weight: normal; color: #0000FF;} +A:hover { text-decoration: none; background-color: #f2f2ff ;} +DL.el { margin-left: -1cm ;} +.fragment { + font-family : monospace; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px ;} +TD.md { background-color: #F4F4FB; font-weight: bold; } +TD.mdPrefix { + background-color: #F4F4FB; + color: #606060; + font-size: 80%; +} +TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } +TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% ;} +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #eeeeff; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #eeeeff; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 ;} +SPAN.keywordtype { color: #604020 ;} +SPAN.keywordflow { color: #e08000 ;} +SPAN.comment { color: #800000 ;} +SPAN.preprocessor { color: #806020 ;} +SPAN.stringliteral { color: #002080 ;} +SPAN.charliteral { color: #008080 ;} +.mdTable { + border: 1px solid #868686; + background-color: #F4F4FB; +} +.mdRow { + padding: 8px 10px; +} +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #eeeeff; +} +TD.tiny { font-size: 75%; +} +a { + color: #252E78; +} +a:visited { + color: #3D2185; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #b0b0b0; +} +TH.dirtab { background: #eeeeff; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} Propchange: incubator/harmony/enhanced/classlib/trunk/doc/hydoxygen.css ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/harmony/enhanced/classlib/trunk/doc/hyfooter.txt URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/hyfooter.txt?view=diff&rev=446465&r1=446464&r2=446465 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/doc/hyfooter.txt (original) +++ incubator/harmony/enhanced/classlib/trunk/doc/hyfooter.txt Thu Sep 14 19:20:34 2006 @@ -1,8 +1,8 @@ -
-
- - (c) Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - -
- - +
+
+ + (c) Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + +
+ + Propchange: incubator/harmony/enhanced/classlib/trunk/doc/hyfooter.txt ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/DNSsupport.htm URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/DNSsupport.htm?view=diff&rev=446465&r1=446464&r2=446465 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/DNSsupport.htm (original) +++ incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/DNSsupport.htm Thu Sep 14 19:20:34 2006 @@ -1,350 +1,350 @@ - - - - - DNS Service Provider - - - -

DNS Service Provider

-

Revision History -

-

Disclaimer and -Legal Information

-

About This -Document

-

Purpose

-

Intended Audience

-

Documentation -Conventions

-

Introduction -to DNS Provider

-

DNS Provider in -DRL

-

About

-

DNS URL Syntax

-

Attribute Identifiers -

-

API Mapping

-

Environment -Properties

-

DNS Resolver

-

Federation

-

Appendix: -Usage Examples

-

References

-

Revision History

- - - - - - - - - - - - - -
Version Version Information Date
Initial version Alexei Zakharov, Nadya -Morozova: document created.   March 23, 2006
-

Disclaimer and Legal -Information

-

Copyright 2005-2006 The Apache Software Foundation or its -licensors, as -applicable.

-

Licensed under the Apache License, Version 2.0 (the "License"); you -may not use this file except in compliance with the License. You may -obtain a copy of the License at -http://www.apache.org/licenses/LICENSE-2.0.

-

Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied. See the License for the specific language governing -permissions and limitations under the License.

-

About This Document

-

Purpose

-

This document introduces the DRL implementation of the DNS service -provider for JNDI, the Java* Naming Directory -Interface. The document gives details on the DNS provider design, -includes an overall description of the package, and includes helpful -usage examples. -The description documents the first version of the DRL DNS service -provider deployed in March 2006.

-

Intended Audience

-

The target audience for the document includes a wide community of -engineers interested in using the DNS service provider for JNDI and in -further work with the product to contribute to its development. The -document assumes that readers are familiar with the Java* -programming language, the Java* Naming Directory -Interface, and common concepts of the DNS protocol. -

-

Documentation Conventions -

-

This document uses the unified -conventions for the DRL documentation kit.

-

Back to Top

-

Introduction to DNS Provider

-

The DNS service provider enables Java* -applications to access information stored in the Domain Name System -database by means of the Java* Naming and Directory -Interface [1]. The provider presents the DNS -namespace as a tree of JNDI directory contexts, and DNS resource -records as JNDI attributes.

-

Back to Top

-

DNS Provider in DRL

-

This part of the document describes the DRL implementation of the -DNS provider as a whole and defines the API mapping, environment -properties usage, and other specific aspects. -

-

About

-

This is an -independent implementation of the DNS service provider for JNDI. More -detailed information on JNDI and JNDI service providers can be found at -[1].

-

In DRL, the DNS service provider is a directory context associated -with a domain name. This way, DNS resource records correspond to JNDI -attributes. The DNS support functionality is mainly represented by the -following classes of the org.apache.harmony.jndi.provider.dns -package:

-
    -
  • The DNSContext class represents the DNS context -and implements the DirContext interface
  • -
  • The DNSName class represents DNS names and -implements the Name interface
  • -
  • The DNSNameParser class enables parsing DNS names -and implements the NameParser interface
  • -
  • The Resolver class and the related set of classes -contain DNS specific algorithms and protocol messages functionality
  • -
-

DNS URL Syntax

-

The DNS URL, or DNS Pseudo URL, passes the initial -information to the DNS context as a value for the java.naming.provider.url -property or as an argument to a method of the initial context via the -DNS URL provider. The DNS URL is defined in the following format:

-
dns:[//host[:port]][/domain]
-

A given combination of host and port -indicates the DNS server to be used for serving requests about a given -domain. Given partial data, the following values are used instead of -missing parameters:

-
    -
  • If host is missing, localhost is -used.
  • -
  • If port is missing, 53 is taken by -default.
  • -
  • If host and port are missing, the -DNS server is set to the default of localhost:53.
  • -
  • If domain is missing, the root domain . -is used.
  • -
-

Back to Top

-

Attribute Identifiers

-

Because this provider presents DNS resource records in the form of -JNDI attributes, the exact format of attribute identifiers must be -defined. These identifiers are accepted by different methods of the DNS -provider. An identifier consists of the following combination of DNS -class and type information:

-
[CLASS_IDENTIFIER] TYPE_IDENTIFIER
-

Currently supported class identifiers:

-
    -
  • IN - Internet class
  • -
  • HS - Hesiod class (not tested)
  • -
-

Currently supported type identifiers:

-
    -
  • A - address record
  • -
  • NS - name server record
  • -
  • CNAME - canonical name for record
  • -
  • SOA - start of authority record
  • -
  • PTR - name pointer record
  • -
  • MX - mail exchange
  • -
  • TXT - text record
  • -
  • HINFO - host information
  • -
  • SRV - location of services record
  • -
-

If the class identifier is missing, the provider assumes the IN -class identifier. For an unsupported attribute type, calling getAttributes() -returns a numerical value rather than its type ID. The symbol "" -indicates ANY type or class, so that an empty string -stands for any type in any class.

-

For more details about DNS resource record classes and types, see -RFC 1035 [2].

-

Back to Top

-

API Mapping

-

The DNSContext class, the main class of the DRL DNS -provider, implements the DirContext interface. Because -DNS allows a read-only service, DNSContext provides only -a part of the overall DirContext functionality.

-

Below is the list of supported DirContext methods -grouped by functionality. All other methods throw javax.naming.OperationNotSupportedException. -

-

Environment -operations

-

addToEnvironment()
-getEnvironent()
-removeFromEnvironment()

-

Operations with DNS names

-

composeName()
-getNameInNamespace()
-getNameParser()

-

Querying attribute values

-

getAttributes()

-

This method queries the attribute values from the remote DNS server -or the local provider's cache.

-

Lookup operations

-

lookup()
-lookupLink()

-

The lookup algorithm works as follows:

-
    -
  1. Determines the attribute identifier (ID) contained in the org.apache.harmony.jndi.provider.dns.lookup.attr -property. If the property value contains no attribute identifier, the TXT -attribute is used.
  2. -
  3. Calls getAttributes() to retrieve the values of -attributes with the identifier determined at step 1 for the requested -domain name.
  4. -
  5. Calls DriverManager.getObjectInstance() to obtain -the object instance for the requested domain name and the retrieved -attribute value(s).
  6. -
  7. Returns the object instance to the user application.
  8. -
-

Note

-

The user object factory must be able to create -object instances for an object of the org.apache.harmony.jndi.provider.dns.DNSContext -class [1]. If no object factories have been -specified, the lookup methods return an instance of DNSContext. -

-

List operations

-

list()
-listBindings()

-

These methods list the entire content of the DNS zone via DNS zone -transfer mechanism.

-

Releasing all resources

-

close()

-

Note

-

Currently, this method does nothing because it has -nothing to release.
-

-


-Back to Top

-

Environment Properties

-

The DNS service provider accepts a number of environment properties -as shown in the table below.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Property Name Function
java.naming.authoritative Sets the authoritative bit [2] -for all outgoing messages when TRUE.
org.apache.harmony.jndi.provider.dns.lookup.attr - Specifies the attribute identifier to be -used in the lookup algorithm.
org.apache.harmony.jndi.provider.dns.recursion - Sets the recursion bit for outgoing -messages when TRUE.
org.apache.harmony.jndi.provider.dns.timeout.initial - Indicates the initial timeout. -

When accessing remote data, the DNS client tries to query all -possible remote servers with this value taken as a timeout. If this -fails, the client increases the initial timeout value by two times. If -this also fails, a value 4 times greater than the initial timeout is -taken and so on (x8, x16, ... ) until the maximum number of timeout -retries is reached, see the description of property org.apache.harmony.jndi.provider.dns.timeout.retries. -

-
org.apache.harmony.jndi.provider.dns.timeout.retries - Sets the number of timeout retries, that -is, the maximum number of retries that can be performed when accessing -a remote DNS server. -

If all attempts fail and the maximum number of retries is -reached, the user gets an error message, see the description of -property org.apache.harmony.jndi.provider.dns.timeout.initial. -

-
org.apache.harmony.jndi.providers.dns.threads.max - Determines the maximum number of threads -that can be started by a single instance of the DNS context. The -default value is 7.
java.naming.provider.url Enumerates the initial DNS URLs. -

Multiple URLs must go in a space-separated list, see DNS URL Syntax. During instantiation, the -DNS provider fills its internal tables with the given DNS server and -controlled domain pairs. The domain part of all URLs must be identical. -The newly created DNS context is associated with this domain name.

-
-

Back to Top

-

DNS Resolver

-

The DRL DNS provider includes an independent fully-functional DNS -resolver with its own SLIST table and local cache. The SLIST table and -the cache are singleton classes shared among all instances of the -resolver. The resolver conforms with RFC 1034 on general principles and -algorithms used by the resolver, and with RFC 1035 on respective -records and message formats. The standards RFC 1123, 2181, and 2782 are -also relevant [2].

-

Back to Top

-

Federation

-

The DLR DNS provider has built-in federation support. Implicit next -naming system is determined dynamically. If the DNS context encounters -the border of the DNS namespace, it calls the DirectoryManager.getContinuationContext() -method and forwards the call to the obtained next naming system -context.

-

Unsupported methods, such as bind() and rename(), -also perform the initial check. The user gets javax.naming.OperationNotSupportedException -for these methods only if the requested name is entirely inside the DNS -namespace.

-

Back to Top

-

Appendix: Usage Examples

-

Below is an example of using the provider as the initial context. -In the example, the DNSContextFactory class is specified -as the default factory for producing initial contexts.

-
Hashtable env = new Hashtable();
DirectoryContext ctx;
Attributes attrs;

env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.harmony.jndi.provider.dns.DNSContextFactory");
env.put(Context.PROVIDER_URL,
"dns://dns01.example.com/subdomain.example.com");
ctx = new InitialDirContext(env);

// Obtain A and CNAME records for server1.subdomain.example.com
attrs = ctx.getAttributes("server1", new String[] {"A", "CNAME"});
-

The provider can also be accessed by passing a DNS URL to any -initial context method that accepts string arguments. For that, set the -following property before calling a method of the initial context:

-
env.put(Context.URL_PKG_PREFIXES, "org.apache.harmony.jndi.provider.dns");
ctx = new InitialDirContext(env);

// Add server with IP address 192.168.1.111 to SLIST as a server
// responsible for serving requests about host11.subdomain.example.com
// Retrieve A and HINFO records for host11.subdomin.example.com
attrs = ctx.getAttributes("dns://192.168.1.111/host11.subdomain.example.com",
new String[] {"A", "HINFO"});
-

The class dnsURLContext actually serves requests of -this type.

-

Back to Top

-

References

-

[1] Java* Naming And Directory -Interface, http://java.sun.com/j2se/1.5.0/docs/guide/jndi/index.html -

-

[2] Internet Engineering Task Force, Requests for -Comments, http://www.ietf.org/ -

-

 

-

Back to Top

-

* Other brands and names are the property of their -respective owners.

- - + + + + + DNS Service Provider + + + +

DNS Service Provider

+

Revision History +

+

Disclaimer and +Legal Information

+

About This +Document

+

Purpose

+

Intended Audience

+

Documentation +Conventions

+

Introduction +to DNS Provider

+

DNS Provider in +DRL

+

About

+

DNS URL Syntax

+

Attribute Identifiers +

+

API Mapping

+

Environment +Properties

+

DNS Resolver

+

Federation

+

Appendix: +Usage Examples

+

References

+

Revision History

+ + + + + + + + + + + + + +
Version Version Information Date
Initial version Alexei Zakharov, Nadya +Morozova: document created.   March 23, 2006
+

Disclaimer and Legal +Information

+

Copyright 2005-2006 The Apache Software Foundation or its +licensors, as +applicable.

+

Licensed under the Apache License, Version 2.0 (the "License"); you +may not use this file except in compliance with the License. You may +obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0.

+

Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied. See the License for the specific language governing +permissions and limitations under the License.

+

About This Document

+

Purpose

+

This document introduces the DRL implementation of the DNS service +provider for JNDI, the Java* Naming Directory +Interface. The document gives details on the DNS provider design, +includes an overall description of the package, and includes helpful +usage examples. +The description documents the first version of the DRL DNS service +provider deployed in March 2006.

+

Intended Audience

+

The target audience for the document includes a wide community of +engineers interested in using the DNS service provider for JNDI and in +further work with the product to contribute to its development. The +document assumes that readers are familiar with the Java* +programming language, the Java* Naming Directory +Interface, and common concepts of the DNS protocol. +

+

Documentation Conventions +

+

This document uses the unified +conventions for the DRL documentation kit.

+

Back to Top

+

Introduction to DNS Provider

+

The DNS service provider enables Java* +applications to access information stored in the Domain Name System +database by means of the Java* Naming and Directory +Interface [1]. The provider presents the DNS +namespace as a tree of JNDI directory contexts, and DNS resource +records as JNDI attributes.

+

Back to Top

+

DNS Provider in DRL

+

This part of the document describes the DRL implementation of the +DNS provider as a whole and defines the API mapping, environment +properties usage, and other specific aspects. +

+

About

+

This is an +independent implementation of the DNS service provider for JNDI. More +detailed information on JNDI and JNDI service providers can be found at +[1].

+

In DRL, the DNS service provider is a directory context associated +with a domain name. This way, DNS resource records correspond to JNDI +attributes. The DNS support functionality is mainly represented by the +following classes of the org.apache.harmony.jndi.provider.dns +package:

+
    +
  • The DNSContext class represents the DNS context +and implements the DirContext interface
  • +
  • The DNSName class represents DNS names and +implements the Name interface
  • +
  • The DNSNameParser class enables parsing DNS names +and implements the NameParser interface
  • +
  • The Resolver class and the related set of classes +contain DNS specific algorithms and protocol messages functionality
  • +
+

DNS URL Syntax

+

The DNS URL, or DNS Pseudo URL, passes the initial +information to the DNS context as a value for the java.naming.provider.url +property or as an argument to a method of the initial context via the +DNS URL provider. The DNS URL is defined in the following format:

+
dns:[//host[:port]][/domain]
+

A given combination of host and port +indicates the DNS server to be used for serving requests about a given +domain. Given partial data, the following values are used instead of +missing parameters:

+
    +
  • If host is missing, localhost is +used.
  • +
  • If port is missing, 53 is taken by +default.
  • +
  • If host and port are missing, the +DNS server is set to the default of localhost:53.
  • +
  • If domain is missing, the root domain . +is used.
  • +
+

Back to Top

+

Attribute Identifiers

+

Because this provider presents DNS resource records in the form of +JNDI attributes, the exact format of attribute identifiers must be +defined. These identifiers are accepted by different methods of the DNS +provider. An identifier consists of the following combination of DNS +class and type information:

+
[CLASS_IDENTIFIER] TYPE_IDENTIFIER
+

Currently supported class identifiers:

+
    +
  • IN - Internet class
  • +
  • HS - Hesiod class (not tested)
  • +
+

Currently supported type identifiers:

+
    +
  • A - address record
  • +
  • NS - name server record
  • +
  • CNAME - canonical name for record
  • +
  • SOA - start of authority record
  • +
  • PTR - name pointer record
  • +
  • MX - mail exchange
  • +
  • TXT - text record
  • +
  • HINFO - host information
  • +
  • SRV - location of services record
  • +
+

If the class identifier is missing, the provider assumes the IN +class identifier. For an unsupported attribute type, calling getAttributes() +returns a numerical value rather than its type ID. The symbol "" +indicates ANY type or class, so that an empty string +stands for any type in any class.

+

For more details about DNS resource record classes and types, see +RFC 1035 [2].

+

Back to Top

+

API Mapping

+

The DNSContext class, the main class of the DRL DNS +provider, implements the DirContext interface. Because +DNS allows a read-only service, DNSContext provides only +a part of the overall DirContext functionality.

+

Below is the list of supported DirContext methods +grouped by functionality. All other methods throw javax.naming.OperationNotSupportedException. +

+

Environment +operations

+

addToEnvironment()
+getEnvironent()
+removeFromEnvironment()

+

Operations with DNS names

+

composeName()
+getNameInNamespace()
+getNameParser()

+

Querying attribute values

+

getAttributes()

+

This method queries the attribute values from the remote DNS server +or the local provider's cache.

+

Lookup operations

+

lookup()
+lookupLink()

+

The lookup algorithm works as follows:

+
    +
  1. Determines the attribute identifier (ID) contained in the org.apache.harmony.jndi.provider.dns.lookup.attr +property. If the property value contains no attribute identifier, the TXT +attribute is used.
  2. +
  3. Calls getAttributes() to retrieve the values of +attributes with the identifier determined at step 1 for the requested +domain name.
  4. +
  5. Calls DriverManager.getObjectInstance() to obtain +the object instance for the requested domain name and the retrieved +attribute value(s).
  6. +
  7. Returns the object instance to the user application.
  8. +
+

Note

+

The user object factory must be able to create +object instances for an object of the org.apache.harmony.jndi.provider.dns.DNSContext +class [1]. If no object factories have been +specified, the lookup methods return an instance of DNSContext. +

+

List operations

+

list()
+listBindings()

+

These methods list the entire content of the DNS zone via DNS zone +transfer mechanism.

+

Releasing all resources

+

close()

+

Note

+

Currently, this method does nothing because it has +nothing to release.
+

+


+Back to Top

+

Environment Properties

+

The DNS service provider accepts a number of environment properties +as shown in the table below.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property Name Function
java.naming.authoritative Sets the authoritative bit [2] +for all outgoing messages when TRUE.
org.apache.harmony.jndi.provider.dns.lookup.attr + Specifies the attribute identifier to be +used in the lookup algorithm.
org.apache.harmony.jndi.provider.dns.recursion + Sets the recursion bit for outgoing +messages when TRUE.
org.apache.harmony.jndi.provider.dns.timeout.initial + Indicates the initial timeout. +

When accessing remote data, the DNS client tries to query all +possible remote servers with this value taken as a timeout. If this +fails, the client increases the initial timeout value by two times. If +this also fails, a value 4 times greater than the initial timeout is +taken and so on (x8, x16, ... ) until the maximum number of timeout +retries is reached, see the description of property org.apache.harmony.jndi.provider.dns.timeout.retries. +

+
org.apache.harmony.jndi.provider.dns.timeout.retries + Sets the number of timeout retries, that +is, the maximum number of retries that can be performed when accessing +a remote DNS server. +

If all attempts fail and the maximum number of retries is +reached, the user gets an error message, see the description of +property org.apache.harmony.jndi.provider.dns.timeout.initial. +

+
org.apache.harmony.jndi.providers.dns.threads.max + Determines the maximum number of threads +that can be started by a single instance of the DNS context. The +default value is 7.
java.naming.provider.url Enumerates the initial DNS URLs. +

Multiple URLs must go in a space-separated list, see DNS URL Syntax. During instantiation, the +DNS provider fills its internal tables with the given DNS server and +controlled domain pairs. The domain part of all URLs must be identical. +The newly created DNS context is associated with this domain name.

+
+

Back to Top

+

DNS Resolver

+

The DRL DNS provider includes an independent fully-functional DNS +resolver with its own SLIST table and local cache. The SLIST table and +the cache are singleton classes shared among all instances of the +resolver. The resolver conforms with RFC 1034 on general principles and +algorithms used by the resolver, and with RFC 1035 on respective +records and message formats. The standards RFC 1123, 2181, and 2782 are +also relevant [2].

+

Back to Top

+

Federation

+

The DLR DNS provider has built-in federation support. Implicit next +naming system is determined dynamically. If the DNS context encounters +the border of the DNS namespace, it calls the DirectoryManager.getContinuationContext() +method and forwards the call to the obtained next naming system +context.

+

Unsupported methods, such as bind() and rename(), +also perform the initial check. The user gets javax.naming.OperationNotSupportedException +for these methods only if the requested name is entirely inside the DNS +namespace.

+

Back to Top

+

Appendix: Usage Examples

+

Below is an example of using the provider as the initial context. +In the example, the DNSContextFactory class is specified +as the default factory for producing initial contexts.

+
Hashtable env = new Hashtable();
DirectoryContext ctx;
Attributes attrs;

env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.harmony.jndi.provider.dns.DNSContextFactory");
env.put(Context.PROVIDER_URL,
"dns://dns01.example.com/subdomain.example.com");
ctx = new InitialDirContext(env);

// Obtain A and CNAME records for server1.subdomain.example.com
attrs = ctx.getAttributes("server1", new String[] {"A", "CNAME"});
+

The provider can also be accessed by passing a DNS URL to any +initial context method that accepts string arguments. For that, set the +following property before calling a method of the initial context:

+
env.put(Context.URL_PKG_PREFIXES, "org.apache.harmony.jndi.provider.dns");
ctx = new InitialDirContext(env);

// Add server with IP address 192.168.1.111 to SLIST as a server
// responsible for serving requests about host11.subdomain.example.com
// Retrieve A and HINFO records for host11.subdomin.example.com
attrs = ctx.getAttributes("dns://192.168.1.111/host11.subdomain.example.com",
new String[] {"A", "HINFO"});
+

The class dnsURLContext actually serves requests of +this type.

+

Back to Top

+

References

+

[1] Java* Naming And Directory +Interface, http://java.sun.com/j2se/1.5.0/docs/guide/jndi/index.html +

+

[2] Internet Engineering Task Force, Requests for +Comments, http://www.ietf.org/ +

+

 

+

Back to Top

+

* Other brands and names are the property of their +respective owners.

+ + Propchange: incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/DNSsupport.htm ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel/kernel.cfg ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/harmony/enhanced/classlib/trunk/doc/kernel/kernel.txt URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/kernel/kernel.txt?view=diff&rev=446465&r1=446464&r2=446465 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/doc/kernel/kernel.txt (original) +++ incubator/harmony/enhanced/classlib/trunk/doc/kernel/kernel.txt Thu Sep 14 19:20:34 2006 @@ -1,115 +1,115 @@ -# Copyright 2005 The Apache Software Foundation or its licensors, as applicable -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -/** -\mainpage -

-To port the class libraries to a new VM, the VM writer must implement certain -Kernel Java classes to the full Java 1.4.2 -API specification. (The VM writer must also implement the documented C -VM Interface which contains the VM entry -points required by other class library natives.) - -

Kernel Java Classes

- -

-The Kernel Java classes are those classes which are tied to the structure of -the VM, or whose structure is known by the VM. -Most of these classes are defined by the Java 1.4.2 API specification. The IBM -VM implementations of these classes are provided in open source. The IBM -implementations rely on the presence of (typically) VM specific natives -to implement the required Java APIs. Other VM writers can choose to use -these implementations, but this forces the writer to use the reference design and -the writer must then implement the natives, for which minimal documentation -is provided.

- -All but one of the kernel classes are defined by the public Java 1.4.2 API. -These classes, described further in the -doxygen class list, belong to the -following packages:
- -
    -
  • java.lang
  • -
  • java.lang.reflect
  • -
  • java.lang.ref
  • -
  • java.security
  • -
- -The other class is in the org.apache.harmony.kernel.vm -package. - -Some of the documented classes must be entirely implemented by the VM writer. -For other classes the implementation is mostly provided. Some classes are documented -so the implementation details can be used by the VM writer. Below is a summary of -all the Kernel classes. - -

Kernel Class Details

- -The VM writer is expected to entirely implement the classes below. A small number -of non-public methods must be implemented in these classes to support other -classes (such as java.lang.SecurityManager) -as documented in the method descriptions. - -
    -
  • java.lang.Object
  • -
  • java.lang.Class
  • -
  • java.lang.ClassLoader
  • -
  • java.lang.Compiler
  • -
  • java.lang.Package
  • -
  • java.lang.Runtime
  • -
  • java.lang.Thread
  • -
  • java.lang.reflect.AccessibleObject -
      -
    • java.lang.reflect.Constructor
    • -
    • java.lang.reflect.Field
    • -
    • java.lang.reflect.Method
    • -
  • -
  • java.lang.reflect.Array
  • -
  • java.lang.ref.Reference (PhantomReference, SoftReference, WeakReference)
  • -
- -The implementation of org.apache.harmony.kernel.vm.VM must -be provided by the VM writer. This class provides class loading and stack walking methods -that are not available in the public Java API such as a method which enables its caller to -obtain the caller's class loader. This class also provides an intern(String) method, which -the intern() method of the String implementation in Harmony will call. - -The class org.apache.harmony.luni.internal.process.SystemProcess -is implemented, but is documented so the VM writer can use this class to implement -java.lang.Runtime.exec(). - -The class java.lang.ref.ReferenceQueue is -implemented, but is documented so the VM writer can use the non-public fields and methods -in the implementation of -java.lang.ref.Reference and its subclasses. - -The following classes are implemented, but require a small number of methods to be -implemented by the VM writer to complete the implementation. Alternatively, the VM -writer can provide their own implementations of these classes. - -
    -
  • java.lang.Throwable
  • -
  • java.security.AccessControlContext
  • -
  • java.security.AccessController
  • -
- -The class java.lang.StackTraceElement is -implemented, but is documented so the VM writer can use the non-public fields and methods -in the implementation of java.lang.Throwable. - -The implementation of java.lang.ThreadGroup -is provided. Certain non-public methods are documented as they are used by the VM when -booting the class libraries. - -*/ +# Copyright 2005 The Apache Software Foundation or its licensors, as applicable +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +/** +\mainpage +

+To port the class libraries to a new VM, the VM writer must implement certain +Kernel Java classes to the full Java 1.4.2 +API specification. (The VM writer must also implement the documented C +VM Interface which contains the VM entry +points required by other class library natives.) + +

Kernel Java Classes

+ +

+The Kernel Java classes are those classes which are tied to the structure of +the VM, or whose structure is known by the VM. +Most of these classes are defined by the Java 1.4.2 API specification. The IBM +VM implementations of these classes are provided in open source. The IBM +implementations rely on the presence of (typically) VM specific natives +to implement the required Java APIs. Other VM writers can choose to use +these implementations, but this forces the writer to use the reference design and +the writer must then implement the natives, for which minimal documentation +is provided.

+ +All but one of the kernel classes are defined by the public Java 1.4.2 API. +These classes, described further in the +doxygen class list, belong to the +following packages:
+ +
    +
  • java.lang
  • +
  • java.lang.reflect
  • +
  • java.lang.ref
  • +
  • java.security
  • +
+ +The other class is in the org.apache.harmony.kernel.vm +package. + +Some of the documented classes must be entirely implemented by the VM writer. +For other classes the implementation is mostly provided. Some classes are documented +so the implementation details can be used by the VM writer. Below is a summary of +all the Kernel classes. + +

Kernel Class Details

+ +The VM writer is expected to entirely implement the classes below. A small number +of non-public methods must be implemented in these classes to support other +classes (such as java.lang.SecurityManager) +as documented in the method descriptions. + +
    +
  • java.lang.Object
  • +
  • java.lang.Class
  • +
  • java.lang.ClassLoader
  • +
  • java.lang.Compiler
  • +
  • java.lang.Package
  • +
  • java.lang.Runtime
  • +
  • java.lang.Thread
  • +
  • java.lang.reflect.AccessibleObject +
      +
    • java.lang.reflect.Constructor
    • +
    • java.lang.reflect.Field
    • +
    • java.lang.reflect.Method
    • +
  • +
  • java.lang.reflect.Array
  • +
  • java.lang.ref.Reference (PhantomReference, SoftReference, WeakReference)
  • +
+ +The implementation of org.apache.harmony.kernel.vm.VM must +be provided by the VM writer. This class provides class loading and stack walking methods +that are not available in the public Java API such as a method which enables its caller to +obtain the caller's class loader. This class also provides an intern(String) method, which +the intern() method of the String implementation in Harmony will call. + +The class org.apache.harmony.luni.internal.process.SystemProcess +is implemented, but is documented so the VM writer can use this class to implement +java.lang.Runtime.exec(). + +The class java.lang.ref.ReferenceQueue is +implemented, but is documented so the VM writer can use the non-public fields and methods +in the implementation of +java.lang.ref.Reference and its subclasses. + +The following classes are implemented, but require a small number of methods to be +implemented by the VM writer to complete the implementation. Alternatively, the VM +writer can provide their own implementations of these classes. + +
    +
  • java.lang.Throwable
  • +
  • java.security.AccessControlContext
  • +
  • java.security.AccessController
  • +
+ +The class java.lang.StackTraceElement is +implemented, but is documented so the VM writer can use the non-public fields and methods +in the implementation of java.lang.Throwable. + +The implementation of java.lang.ThreadGroup +is provided. Certain non-public methods are documented as they are used by the VM when +booting the class libraries. + +*/ Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel/kernel.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/doxy_tag ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/annotated.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classcom_1_1ibm_1_1oti_1_1vm_1_1VM-members.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classcom_1_1ibm_1_1oti_1_1vm_1_1VM.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1Class-members.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1Class.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1ClassLoader-members.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1ClassLoader.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1Compiler-members.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1Compiler.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1Object-members.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1Object.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1Package-members.html ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/classjava_1_1lang_1_1Package.html ------------------------------------------------------------------------------ svn:eol-style = native