You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2006/05/31 15:06:36 UTC

svn commit: r410512 - in /incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns: ./ DNSsupport.htm conventions.htm drl.css

Author: tellison
Date: Wed May 31 06:06:35 2006
New Revision: 410512

URL: http://svn.apache.org/viewvc?rev=410512&view=rev
Log:
Documentation from HARMONY-256 (Contribution of DNS service provider for JNDI classlibrary code)

Added:
    incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/
    incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/DNSsupport.htm
    incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/conventions.htm
    incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/drl.css   (with props)

Added: 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?rev=410512&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/DNSsupport.htm (added)
+++ incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/DNSsupport.htm Wed May 31 06:06:35 2006
@@ -0,0 +1,351 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <meta http-equiv="Content-Type"
+ content="text/html; charset=windows-1252">
+  <title>DNS Service Provider</title>
+  <link rel="Stylesheet" type="text/css" href="drl.css">
+</head>
+<body>
+<p class="title"> <a name="top"></a>DNS Service Provider </p>
+<p class="TOCHeading"> <a href="#Revision_History">Revision History</a>
+</p>
+<p class="TOCHeading"> <a href="#Disclaimer_and_Legal">Disclaimer and
+Legal Information</a> </p>
+<p class="TOCHeading"> <a href="#About_This_Document">About This
+Document</a> </p>
+<p class="TOC"> <a href="#Purpose">Purpose</a> </p>
+<p class="TOC"> <a href="#Intended_Audience">Intended Audience</a> </p>
+<p class="TOC"> <a href="#Documentation_Conventions">Documentation
+Conventions</a> </p>
+<p class="TOCHeading"> <a href="#DNS_Provider_Overview">Introduction
+to DNS Provider </a> </p>
+<p class="TOCHeading"> <a href="#DNS_Provider_in_DRL">DNS Provider in
+DRL</a> </p>
+<p class="TOC"> <a href="#About_DRL_DNS">About</a> </p>
+<p class="TOC"> <a href="#DNS_URL_Syntax">DNS URL Syntax</a> </p>
+<p class="TOC"> <a href="#Attribute_Identifiers">Attribute Identifiers</a>
+</p>
+<p class="TOC"> <a href="#API_Mapping">API Mapping</a> </p>
+<p class="TOC"> <a href="#Environment_Properties">Environment
+Properties</a> </p>
+<p class="TOC"> <a href="#DNS_Resolver">DNS Resolver</a> </p>
+<p class="TOC"> <a href="#Federation">Federation</a> </p>
+<p class="TOCHeading"> <a href="#Appendix_Usage_Examples">Appendix:
+Usage Examples</a> </p>
+<p class="TOCHeading"> <a href="#References">References</a> </p>
+<h1> <a name="Revision_History"></a>Revision History </h1>
+<table border="0" cellpadding="0" width="100%">
+  <tbody>
+    <tr>
+      <td class="TableHeading" width="24%"> Version </td>
+      <td class="TableHeading" width="49%"> Version Information </td>
+      <td class="TableHeading"> Date </td>
+    </tr>
+    <tr>
+      <td class="TableCell" width="24%"> Initial version </td>
+      <td class="TableCell" width="49%"> Alexei Zakharov, Nadya
+Morozova: document created. </td>
+      <td class="TableCell">&nbsp; March 23, 2006 </td>
+    </tr>
+  </tbody>
+</table>
+<h1> <a name="Disclaimer_and_Legal"></a>Disclaimer and Legal
+Information </h1>
+<p> Copyright 2005-2006 The Apache Software Foundation or its
+licensors, as
+applicable. </p>
+<p> 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 <a
+ href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">
+http://www.apache.org/licenses/LICENSE-2.0</a>. </p>
+<p> 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. </p>
+<h1> <a name="About_This_Document"></a>About This Document </h1>
+<h2> <a name="Purpose"></a>Purpose </h2>
+<p> This document introduces the DRL implementation of the DNS service
+provider for JNDI, the Java<a href="#*">*</a> 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. </p>
+<h2> <a name="Intended_Audience"></a>Intended Audience </h2>
+<p> 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<a href="#*">*</a>
+programming language, the Java<a href="#*">*</a> Naming Directory
+Interface, and common concepts of the DNS protocol.
+</p>
+<h2> <a name="Documentation_Conventions"></a>Documentation Conventions
+</h2>
+<p> This document uses the <a href="conventions.htm">unified
+conventions</a> for the DRL documentation kit. </p>
+<p class="backtotop"> <a href="#top">Back to Top</a> </p>
+<h1> <a name="DNS_Provider_Overview"></a>Introduction to DNS Provider </h1>
+<p> The DNS service provider enables Java<a href="#*">*</a>
+applications to access information stored in the Domain Name System
+database by means of the Java<a href="#*">*</a> Naming and Directory
+Interface [<a href="#JNDI">1</a>]. The provider presents the DNS
+namespace as a tree of JNDI directory contexts, and DNS resource
+records as JNDI attributes. </p>
+<p class="backtotop"><a href="#top">Back to Top</a> </p>
+<h1> <a name="DNS_Provider_in_DRL"></a>DNS Provider in DRL </h1>
+<p> 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.
+</p>
+<h2> <a name="About_DRL_DNS"></a>About </h2>
+<p><font face="Arial" size="2"><span
+ style="font-size: 10pt; font-family: Arial;" lang="EN-US">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
+</span></font>[<a href="DNSsupport.htm#JNDI">1</a>]. </p>
+<p> 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 <code>org.apache.harmony.jndi.provider.dns</code>
+package: </p>
+<ul>
+  <li> The <code>DNSContext</code> class represents the DNS context
+and implements the <code>DirContext</code> interface </li>
+  <li> The <code>DNSName</code> class represents DNS names and
+implements the <code>Name</code> interface </li>
+  <li> The <code>DNSNameParser</code> class enables parsing DNS names
+and implements the <code>NameParser</code> interface </li>
+  <li> The <code>Resolver</code> class and the related set of classes
+contain DNS specific algorithms and protocol messages functionality </li>
+</ul>
+<h2> <a name="DNS_URL_Syntax"></a>DNS URL Syntax </h2>
+<p> The DNS URL, or <i>DNS Pseudo URL</i>, passes the initial
+information to the DNS context as a value for the <code>java.naming.provider.url</code>
+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: </p>
+<pre>dns:[//host[:port]][/domain]<br></pre>
+<p> A given combination of <code>host</code> and <code>port</code>
+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: </p>
+<ul>
+  <li> If <code>host</code> is missing, <code>localhost</code> is
+used. </li>
+  <li> If <code>port</code> is missing, <code>53</code> is taken by
+default. </li>
+  <li> If <code>host</code> and <code>port</code> are missing, the
+DNS server is set to the default of <code>localhost:53</code>. </li>
+  <li> If <code>domain</code> is missing, the root domain <code>.</code>
+is used. </li>
+</ul>
+<p class="backtotop"> <a href="#top">Back to Top</a> </p>
+<h2> <a name="Attribute_Identifiers"></a>Attribute Identifiers </h2>
+<p> 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: </p>
+<pre>[CLASS_IDENTIFIER] TYPE_IDENTIFIER<br></pre>
+<p> Currently supported class identifiers: </p>
+<ul>
+  <li> <code>IN</code> - Internet class </li>
+  <li> <code>HS</code> - Hesiod class (not tested) </li>
+</ul>
+<p> Currently supported type identifiers: </p>
+<ul>
+  <li> <code>A</code> - address record </li>
+  <li> <code>NS</code> - name server record </li>
+  <li> <code>CNAME</code> - canonical name for record </li>
+  <li> <code>SOA</code> - start of authority record </li>
+  <li> <code>PTR</code> - name pointer record </li>
+  <li> <code>MX</code> - mail exchange </li>
+  <li> <code>TXT</code> - text record </li>
+  <li> <code>HINFO</code> - host information </li>
+  <li> <code>SRV</code> - location of services record </li>
+</ul>
+<p> If the class identifier is missing, the provider assumes the <code>IN</code>
+class identifier. For an unsupported attribute type, calling <code>getAttributes()</code>
+returns a numerical value rather than its type ID. The symbol <code>""</code>
+indicates <code>ANY</code> type or class, so that an empty string
+stands for any type in any class. </p>
+<p> For more details about DNS resource record classes and types, see
+RFC 1035 [<a href="#RFC">2</a>]. </p>
+<p class="backtotop"> <a href="#top">Back to Top</a> </p>
+<h2> <a name="API_Mapping"></a>API Mapping </h2>
+<p> The <code>DNSContext</code> class, the main class of the DRL DNS
+provider, implements the <code>DirContext</code> interface. Because
+DNS allows a read-only service, <code>DNSContext</code> provides only
+a part of the overall <code>DirContext</code> functionality. </p>
+<p> Below is the list of supported <code>DirContext</code> methods
+grouped by functionality. All other methods throw <code>javax.naming.OperationNotSupportedException</code>.
+</p>
+<p class="class"> Environment
+operations</p>
+<p class="notetext"> <code>addToEnvironment()</code> <br>
+<code>getEnvironent()</code><br>
+<code>removeFromEnvironment()</code> </p>
+<p class="class"> Operations with DNS names </p>
+<p class="notetext"> <code>composeName()</code><br>
+<code>getNameInNamespace()</code><br>
+<code>getNameParser()</code> </p>
+<p class="class"> Querying attribute values </p>
+<p class="notetext"> <code>getAttributes()</code> </p>
+<p> This method queries the attribute values from the remote DNS server
+or the local provider's cache. </p>
+<p class="class"> <a name="Lookup"></a>Lookup operations </p>
+<p class="notetext"> <code>lookup()</code><br>
+<code>lookupLink()</code> </p>
+<p> The lookup algorithm works as follows: </p>
+<ol>
+  <li> Determines the attribute identifier (ID) contained in the <code>org.apache.harmony.jndi.provider.dns.lookup.attr</code>
+property. If the property value contains no attribute identifier, the <code>TXT</code>
+attribute is used. </li>
+  <li> Calls <code>getAttributes()</code> to retrieve the values of
+attributes with the identifier determined at step 1 for the requested
+domain name. </li>
+  <li> Calls <code>DriverManager.getObjectInstance()</code> to obtain
+the object instance for the requested domain name and the retrieved
+attribute value(s). </li>
+  <li> Returns the object instance to the user application. </li>
+</ol>
+<p class="note"> Note </p>
+<p class="notetext"> The user object factory must be able to create
+object instances for an object of the <code>org.apache.harmony.jndi.provider.dns.DNSContext</code>
+class [<a href="#JNDI">1</a>]. If no object factories have been
+specified, the lookup methods return an instance of <code>DNSContext</code>.
+</p>
+<p class="class"> List operations </p>
+<p class="notetext"> <code>list()</code><br>
+<code>listBindings()</code> </p>
+<p> These methods list the entire content of the DNS zone via DNS zone
+transfer mechanism. </p>
+<p class="class"> Releasing all resources </p>
+<p class="notetext"> <code>close()</code> </p>
+<p class="note"> Note </p>
+<p class="notetext"> Currently, this method does nothing because it has
+nothing to release.<br>
+</p>
+<p class="backtotop"> <br>
+<a href="#top">Back to Top</a> </p>
+<h2> <a name="Environment_Properties"></a>Environment Properties </h2>
+<p> The DNS service provider accepts a number of environment properties
+as shown in the table below. </p>
+<table>
+  <tbody>
+    <tr>
+      <td colspan="1" class="TableHeading"> Property Name </td>
+      <td class="TableHeading" width="394"> Function </td>
+    </tr>
+    <tr>
+      <td class="TableCell"> <code> java.naming.authoritative</code> </td>
+      <td class="TableCell">Sets the authoritative bit [<a href="#RFC">2</a>]
+for all outgoing messages when <code>TRUE</code>. </td>
+    </tr>
+    <tr>
+      <td class="TableCell"> <code>org.apache.harmony.jndi.provider.dns.lookup.attr</code>
+      </td>
+      <td class="TableCell"> Specifies the attribute identifier to be
+used in the <a href="#Lookup">lookup algorithm</a>. </td>
+    </tr>
+    <tr>
+      <td class="TableCell"> <code>org.apache.harmony.jndi.provider.dns.recursion</code>
+      </td>
+      <td class="TableCell">Sets the recursion bit for outgoing
+messages when <code>TRUE</code>. </td>
+    </tr>
+    <tr>
+      <td class="TableCell"> <code>org.apache.harmony.jndi.provider.dns.timeout.initial</code>
+      </td>
+      <td class="TableCell">Indicates the initial timeout.
+      <p> 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 <code>org.apache.harmony.jndi.provider.dns.timeout.retries</code>.
+      </p>
+      </td>
+    </tr>
+    <tr>
+      <td class="TableCell"> <code>org.apache.harmony.jndi.provider.dns.timeout.retries</code>
+      </td>
+      <td class="TableCell">Sets the number of timeout retries, that
+is, the maximum number of retries that can be performed when accessing
+a remote DNS server.
+      <p>If all attempts fail and the maximum number of retries is
+reached, the user gets an error message, see the description of
+property <code>org.apache.harmony.jndi.provider.dns.timeout.initial</code>.
+      </p>
+      </td>
+    </tr>
+    <tr>
+      <td class="TableCell"> <code>org.apache.harmony.jndi.providers.dns.threads.max</code>
+      </td>
+      <td class="TableCell">Determines the maximum number of threads
+that can be started by a single instance of the DNS context. The
+default value is 7. </td>
+    </tr>
+    <tr>
+      <td class="TableCell"> <code>java.naming.provider.url</code> </td>
+      <td class="TableCell">Enumerates the initial DNS URLs.
+      <p>Multiple URLs must go in a space-separated list, see <a
+ href="#DNS_URL_Syntax">DNS URL Syntax</a>. 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.</p>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<p class="backtotop"> <a href="#top">Back to Top</a> </p>
+<h2> <a name="DNS_Resolver"></a>DNS Resolver </h2>
+<p> 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 [<a href="#RFC">2</a>]. </p>
+<p class="backtotop"> <a href="#top">Back to Top</a> </p>
+<h2> <a name="Federation"></a>Federation </h2>
+<p> 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 <code>DirectoryManager.getContinuationContext</code><code>(</code><code>)</code>
+method and forwards the call to the obtained next naming system
+context. </p>
+<p>Unsupported methods, such as <code>bind(</code><code>) </code>and <code>rename()</code>,
+also perform the initial check. The user gets <code>javax.naming.OperationNotSupportedException</code>
+for these methods only if the requested name is entirely inside the DNS
+namespace. </p>
+<p class="backtotop"> <a href="#top">Back to Top</a> </p>
+<h1> <a name="Appendix_Usage_Examples"></a>Appendix: Usage Examples </h1>
+<p> Below is an example of using the provider as the initial context.
+In the example, the <code>DNSContextFactory</code> class is specified
+as the default factory for producing initial contexts. </p>
+<pre>Hashtable env = new Hashtable();<br>DirectoryContext ctx;<br>Attributes attrs;<br><br>env.put(Context.INITIAL_CONTEXT_FACTORY, <br>        "org.apache.harmony.jndi.provider.dns.DNSContextFactory");<br>env.put(Context.PROVIDER_URL, <br>        "dns://dns01.example.com/subdomain.example.com");<br>ctx = new InitialDirContext(env);<br><br>// Obtain A and CNAME records for server1.subdomain.example.com <br>attrs = ctx.getAttributes("server1", new String[] {"A", "CNAME"});<br></pre>
+<p> 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: </p>
+<pre>env.put(Context.URL_PKG_PREFIXES, "org.apache.harmony.jndi.provider.dns");<br>ctx = new InitialDirContext(env);<br><br>// Add server with IP address 192.168.1.111 to SLIST as a server<br>// responsible for serving requests about host11.subdomain.example.com <br>// Retrieve A and HINFO records for host11.subdomin.example.com <br>attrs = ctx.getAttributes("dns://192.168.1.111/host11.subdomain.example.com",<br>                          new String[] {"A", "HINFO"});<br></pre>
+<p> The class <code>dnsURLContext</code> actually serves requests of
+this type. </p>
+<p class="backtotop"> <a href="#top">Back to Top</a> </p>
+<h1> <a name="References"></a>References </h1>
+<p>[<a name="JNDI"></a>1] Java<a href="#*">*</a> Naming And Directory
+Interface, <a
+ href="http://java.sun.com/j2se/1.5.0/docs/guide/jndi/index.html"
+ target="_blank">http://java.sun.com/j2se/1.5.0/docs/guide/jndi/index.html</a>
+</p>
+<p>[<a name="RFC"></a>2] Internet Engineering Task Force, Requests for
+Comments, <a href="http://www.ietf.org/" target="_blank">http://www.ietf.org/</a>
+</p>
+<p>&nbsp;</p>
+<p class="backtotop"> <a href="#top">Back to Top</a> </p>
+<p> (C) Copyright 2005-2006 Intel Corporation </p>
+<p> <a name="*">*</a> Other brands and names are the property of their
+respective owners. </p>
+</body>
+</html>

Added: incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/conventions.htm
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/conventions.htm?rev=410512&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/conventions.htm (added)
+++ incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/conventions.htm Wed May 31 06:06:35 2006
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "hcodep://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Documentation Conventions</title>
+<link rel=Stylesheet type="text/css" media=all href=drl.css>
+
+
+<body>
+<h1><a name="Notation_Conventions"></a>Documentation Conventions</h1>
+<P> The DRL (dynamic run-time layer) documentation set uses the following conventions. </P>
+<table border=1 width="100%">
+ <tr>
+ <td class="TableHeading">Convention </td>
+ <td class="TableHeading"> Explanation&nbsp;</td>
+ <td class="TableHeading">Example</td>
+ </tr>
+ <tr>
+ <td rowspan="5"><code>monospace</code> </td>
+ <td class="TableCell"> Filenames</td>
+ <td><code> ippsapi.h</code></td></tr>
+ <tr>
+ <td class="TableCell"> Directory names and pathnames </td>
+ <td><code> \alt\include</code></td>
+ </tr>
+ <tr>
+ <td class="TableCell"> Commands and command-line options</td> <td><code> ecl 
+	-O2</code></td>
+ </tr>
+ <tr>
+ <td class="TableCell"> Function names, methods, classes, data structures in 
+	running text </td>
+ <td class="TableCell">Use the <code> okCreateObjs </code> function to ...</td>
+ </tr>
+ <tr>
+ <td class="TableCell"> Parameters or other placeholders &nbsp;</td>
+    <td><code>ippiMalloc(int widthPixels, ...)<br>
+      int* pStepBytes</code></td>
+ </tr>
+ <tr>
+ <td class="TableCell"><code><b> monospace bold&nbsp; </b></code></td>
+ <td class="TableCell"> User input </td>
+ <td class="TableCell"><code> [c:] <b> dir</b></code></td>
+ </tr>
+ <tr>
+ <td class="TableCell"><i>italics </i></td>
+ <td class="TableCell"> Emphasis; introducing or defining terms</td>
+ <td class="TableCell"> The term <i> access</i> takes as its subject ... </td>
+ </tr>
+ <tr>
+ <td class="TableCell"> [ ]</td>
+ <td class="TableCell"> Optional items</td>
+ <td class="TableCell"><code> -Fa[c]</code> Indicates these command-line 
+	options: <code> -Fa</code> and <code> -Fac</code></td>
+ </tr>
+ <tr>
+ <td class="TableCell"> { | }  </td>
+ <td class="TableCell"> Choice of one item from a selection of two or more 
+	items</td>
+ <td class="TableCell"><code> -aX{K | W | P}</code> Indicates these command-line 
+	options: <code><br> -aXK <br> -aXW <br> -aXP</code></tr></table>
+</body>
+
+</html>

Added: incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/drl.css
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/drl.css?rev=410512&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/drl.css (added)
+++ incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/drl.css Wed May 31 06:06:35 2006
@@ -0,0 +1,267 @@
+P {
+	margin-left: 15pt;
+	margin-top: 5pt;
+	margin-right: 0.00in;
+	margin-bottom: 5pt;
+	font-size: 10.0pt;
+	font-family: "Arial MT", Arial;
+}
+
+.title {
+	font-weight: bold;
+	font-size: 18pt;
+	text-align: center;
+	color: #525D76; 
+	line-height: 1.25;
+	margin-left: 0in;
+	margin-right: 0in;
+	margin-top: 10pt;
+	margin-bottom: 10pt;
+	font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif;
+}
+
+
+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;
+	text-transform: uppercase;
+}
+
+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;
+	
+}
+.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;
+}
+
+
+.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;	
+	border: none;
+}
+
+.TableCell {
+	font-weight: normal;
+	font-size: 10pt;
+	text-align: left;
+	text-indent: 0.00in;
+	padding: 2pt;
+	margin-top: 4pt;
+	margin-bottom: 4pt;
+	font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif;
+	padding: 6px;
+	border: solid #828DA6 0.5pt;
+}
+
+.update {
+	color: #A9A9A9;
+	font-size: smaller;
+	font-style: italic;
+}
+
+li {
+	margin: 3pt 3pt;
+	font-size: 10.0pt;
+	font-family: Arial, "Arial MT";
+}
+
+DD {
+	font-weight:  normal;
+	margin-left: 65pt;
+	margin-top: 5pt;
+	margin-right: 20pt;
+	margin-bottom: 5pt;
+	font-size: 10pt;
+	font-family: "Arial MT", Arial;
+	border-right: none;
+	border-bottom: none;
+	border-left: none;
+	border-top: solid #828DA6 1px;
+	padding-bottom: 8px;
+}
+
+DT {
+	font-size: 10pt;
+	font-family: Helvetica, Arial, Tahoma, Verdana, "Nimbus Sans L", lucida-sans, lucidasans, sanserif;
+	font-weight: bolder;
+	margin-left: 20pt;
+	margin-top: 5pt;
+	margin-right: 0pt;
+	margin-bottom: 5pt;
+	border-top: none;
+	border-right: none;
+	border-bottom: none;
+	border-left: none;	
+}
+
+DL {
+	margin-left: 0pt;
+	margin-top: 0pt;
+	margin-right: 0pt;
+	margin-bottom: 0pt;
+}
+
+.class {
+	font-weight: bold; 
+	margin-left: 15pt;
+	margin-top: 5pt;
+	margin-right: 0pt;
+	margin-bottom: 5pt;
+	font-size: 11pt;
+	font-family: Arial;
+	border-bottom-width: 2px;
+	border-top: none;
+	border-right: none;
+	border-bottom: solid #525D76 2px;
+	border-left: none;
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/doc/jndi_dns/drl.css
------------------------------------------------------------------------------
    svn:eol-style = native