harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hinde...@apache.org
Subject svn commit: r451271 [6/9] - in /incubator/harmony/standard/site: ./ docs/ docs/documentation/ docs/images/ docs/subcomponents/buildtest/ docs/subcomponents/classlibrary/ docs/subcomponents/drlvm/ docs/subcomponents/jchevm/ docs/subcomponents/stresstest...
Date Fri, 29 Sep 2006 12:55:29 GMT
Modified: incubator/harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html?view=diff&rev=451271&r1=451270&r2=451271
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html Fri Sep 29 05:55:25 2006
@@ -204,538 +204,538 @@
                     <td width="80%" valign="top"><a name="top"></a>
                                         
                                                                 <div>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-   <head>
-      <meta http-equiv="Content-Type"
-      content="text/html; charset=windows-1251" />
-      <title>
-         DRLVM Kernel Classes
-      </title>
-      <link href="site.css" rel="stylesheet" type="text/css" />
-   </head>
-   <body>
-      <h1>
-         <a id="top" name="top"></a>Kernel Classes
-      </h1>
-      <p class="TOCHeading">
-         <a href="#About_This_Document">1. About this document</a>
-      </p>
-      <p class="TOC">
-         <a href="#Purpose">1.1 Purpose</a>
-      </p>
-      <p class="TOC">
-         <a href="#Intended_Audience">1.2 Intended Audience</a>
-      </p>
-      <p class="TOC">
-         <a href="#Documentation_Conventions">1.3 Conventions</a>
-      </p>
-      <p class="TOCHeading">
-         <a href="#Overview">2. Overview</a>
-      </p>
-      <p class="TOCHeading">
-         <a href="#Architecture">3. Architecture</a>
-      </p>
-      <p class="TOC">
-         <a href="#Exported_Interfaces">3.1 Exported Interface</a>
-      </p>
-      <p class="TOC">
-         <a href="#Internal_Structure">3.2 Internal Structure</a>
-      </p>
-      <blockquote>
-         <p class="TOC">
-            <a href="#Kernel_Classes_Java">3.2.1 Kernel Java* Classes</a>
-         </p>
-         <p class="TOC">
-            <a href="#Kernel_Class_Natives">3.2.2 Kernel Class Natives</a>
-         </p>
-         <p class="TOC">
-            <a href="#API2VM">3.2.3 API2VM Internal Interface</a>
-         </p>
-      </blockquote>
-      <p class="TOCHeading">
-         <a href="#Processes">4. Processes</a>
-      </p>
-      <p class="TOCHeading">
-         <a href="#Kernel_Specifics">5. DRL Kernel Specifics</a>
-      </p>
-      <p class="TOCHeading">
-         <a href="#References">6. References</a>
-      </p>
-      <p class="backtotop">
-         <a href="#top">Back to Top</a>
-      </p>
-      <h1>
-         <a id="About_This_Document" name="About_This_Document"></a>1. About
-         this document
-      </h1>
-      <h2>
-         <a id="Purpose" name="Purpose"></a>1.1 Purpose
-      </h2>
-      <p>
-         This document is targeted at developers of the DRL kernel classes. The
-         document describes the kernel classes&rsquo; internal design and
-         interaction with the DRL virtual machine. The information can be
-         helpful for future development of DRL kernel classes and can serve as
-         an example for those implementing the kernel classes&rsquo; interface
-         from scratch.
-      </p>
-      <h2>
-         <a id="Intended_Audience" name="Intended_Audience"></a>1.2 Intended
-         Audience
-      </h2>
-      <p>
-         The target audience for the document includes a wide community of
-         engineers interested in using DRLVM and in working further with the
-         product to contribute to its development. The document assumes that
-         readers understand the kernel classes&rsquo; concept [<a
-         href="#HarmonyClasslib_ref">1</a>].
-      </p>
-      <h2>
-         <a id="Documentation_Conventions"
-         name="Documentation_Conventions"></a>1.3 Conventions
-      </h2>
-      <p>
-         This document uses the <a href="conventions.htm">unified
-         conventions</a> for the DRL documentation kit.
-      </p>
-      <h1>
-         <a id="Overview" name="Overview"></a>2. Overview
-      </h1>
-      <p>
-         Kernel classes serve as glue between Java class
-         libraries (JCL) and native VM code. These are Java
-         API classes, members of which use or are used by the virtual machine.
-         Examples of kernel classes include <code>java.lang.Object</code> and
-         <code>java.lang.reflect.Field</code>. Because they have data on the VM
-         internals, the kernel classes are delivered with the VM.
-      </p>
-      <p class="backtotop">
-         <a href="#top">Back to Top</a>
-      </p>
-      <h1>
-         <a id="Architecture" name="Architecture"></a>3. Architecture
-      </h1>
-      <p>
-         This part of the document describes the internal structure of the
-         DRLVM Kernel Classes component.
-      </p>
-      <h2>
-         <a id="Exported_Interfaces" name="Exported_Interfaces"></a>3.1
-         Exported Interface
-      </h2>
-      <p>
-         In DRLVM, kernel classes export <i>the kernel classes interface</i>
-         for interaction with JCL. The kernel classes make part of the VM core
-         and use its internal structures and interfaces to interact with other
-         VM components, namely, the garbage collector, class support, stack
-         support, exception handling, and object layout support.
-      </p>
-      <h2>
-         <a id="Internal_Structure" name="Internal_Structure"></a>3.2 Internal
-         Structure
-      </h2>
-      <p>
-         The DRL kernel classes component consists of the <a
-         href="#Kernel_Class_Natives">kernel class natives</a> and the <a
-         href="#Kernel_Classes_Java">kernel Java classes</a> with an internal
-         interface, API2VM, linking the two tiers, as shown in Figure 1. The
-         current implementation of the kernel Java
-          classes is
-         based on the Harmony Class Library Porting Documentation [<a
-         href="#HarmonyClasslib_ref">1</a>] with the amendments described in
-         section <a href="#Kernel_Specifics">7. DRL Kernel Specifics</a>. This
-         implementation is aimed at reducing porting effort of Java
-         APIs to different virtual machines. The kernel class
-         natives also use the thread management functionality. The interaction
-         between the kernel classes and VM components is based on specific
-         internal interfaces of the virtual machine.
-      </p>
-      <p class="note">
-         Note
-      </p>
-      <p class="notetext">
-         The current implementation of kernel class natives is based on JNI and
-         uses JNI functions. As a result, kernel class native functions are
-         exported as ordinary native methods from the VM executable as
-         specified by the JNI specification [<a href="#JNI_ref">2</a>]. For
-         example, when the <code>VMThreadManager</code> Java
-         class from the kernel classes component defines the method
-         <code>static native Thread currentThread()</code>, the kernel class
-         native interface implements the function
-         <code>Java_java_lang_VMThreadManager_currentThread()</code>.
-      </p>
-      <p style="text-align: center">
-         <img
-         alt="Components and interfaces of VM involved in interaction with kernel classes"
-          border="0" src="images/kc_arch.gif" />
-      </p>
-      <p class="special">
-         Figure 1: Kernel classes in DRL Architecture
-      </p>
-      <h3>
-         <a id="Kernel_Classes_Java" name="Kernel_Classes_Java"></a>3.2.1
-         Kernel Java Classes
-      </h3>
-      <p>
-         DRL kernel classes fully comply with the Harmony Kernel classes
-         documentation [<a href="#HarmonyClasslib_ref">1</a>] with the
-         exceptions listed in section <a href="#Kernel_Specifics">7. DRL Kernel
-         Specifics</a>.
-      </p>
-      <p class="backtotop">
-         <a href="#top">Back to Top</a>
-      </p>
-      <h3>
-         <a id="Kernel_Class_Natives" name="Kernel_Class_Natives"></a>3.2.2
-         Kernel Class Natives
-      </h3>
-      <p>
-         Currently, the kernel class natives component consists of the
-         following:
-      </p>
-      <dl>
-         <dt>
-            Simple wrappers
-         </dt>
-         <dd>
-            Are used for interfaces of different VM components. These
-            constitute the main part of kernel class natives, as shown in the
-            example below. 
-            <p class="example">
-               Example
-            </p>
-<pre class="exampletext">
-jobject
-Java_java_lang_VMThreadManager_currentThread(JNIEnv *jenv, jclass)
-{ 
- return thread_current_thread();
-}
-</pre>
-         </dd>
-         <dt>
-            Complex wrappers
-         </dt>
-         <dd>
-            Are responsible for data conversion between Java
-            objects and VM internal data structures, as well as for error
-            checking and processing. These wrappers also provide the
-            functionality not directly available in VM components interfaces. 
-            <p class="example">
-               Example
-            </p>
-            <p class="exampletext">
-               For method <code>VMClassRegistry.findLoadedClass(String name,
-               ClassLoader loader)</code>, the wrapper checks the loader
-               parameter and determines further activities. If this parameter
-               has a non-null value, the corresponding class loader is used for
-               class lookup. If it is null, the Java
-               execution stack is examined in order to obtain context class
-               loader if any, otherwise the system class loader is used.
-            </p>
-         </dd>
-         <dt>
-            Specific functions
-         </dt>
-         <dd>
-            Consist of the following groups: 
-            <ul>
-               <li>
-                  <strong>Lazy stack inspection for exception
-                  objects</strong><br />
-                   This mechanism is used for all descendants of class
-                  <code>java.lang.Throwable</code>. When a Java<a
-                  href="#*">*</a> exception object is created, this mechanism
-                  prepares and stores the snapshot of the stack trace; this is
-                  a fast operation.<br />
-                   The more computation intensive operations, such as snapshot
-                  parsing and creating a stack trace element array (the
-                  <code>java.lang.StackTraceElement</code> array) are only
-                  performed when the exception data is actually required, for
-                  example when the <code>printStackTrace()</code> method of the
-                  <code>Throwable</code> class is called.
-               </li>
-               <li>
-                  <strong>Reflection support</strong><br />
-                   This mechanism is an implementation of standard Java<a
-                  href="#*">*</a> reflection API represented by classes in the
-                  <code>java.lang.reflection</code> package [<a
-                  href="#Java_api_ref">3</a>].<br />
-                   This mechanism is responsible for providing access to
-                  methods and fields of a class by using their symbolic names,
-                  as well as for data conversions between the
-                  <code>java.lang.Object</code> type and the VM internal type
-                  representation required for operations with fields and
-                  methods. This mechanism also communicates with the JIT or the
-                  interpreter to perform the actual execution of methods.
-               </li>
-               <li>
-                  <strong>Hidden synthetic fields processing</strong><br />
-                   These fields are used for linking Java
-                  objects of certain kernel classes, such as
-                  <code>java.lang.Thread</code> and
-                  <code>java.lang.reflect.Field</code>, with the corresponding
-                  VM internal data structures. When the classes are loaded, the
-                  VM class support component adds the fields to the classes,
-                  and the kernel class natives component uses the fields to
-                  store the links to the corresponding VM internal data. Note
-                  that these fields are not accessible from Java<a
-                  href="#*">*</a> code.
-               </li>
-               <li>
-                  <strong>Debug printing</strong><br />
-                   This mechanism can be used for development process only and
-                  is not required for the release version of DRL. In this
-                  mechanism, the native method print of the class
-                  <code>VMDebug</code> allows printing messages to the standard
-                  output before printing can be done through the
-                  <code>java.lang.System.out/err</code> channel.
-               </li>
-            </ul>
-         </dd>
-      </dl>
-      <p class="backtotop">
-         <a href="#top">Back to Top</a>
-      </p>
-      <h3>
-         <a id="API2VM" name="API2VM"></a>3.2.3 API2VM Internal Interface
-      </h3>
-      <p>
-         The API2VM internal interface is used to access VM-specific
-         information, which is not directly available on the Java<a
-         href="#*">*</a> level and provides external data to the VM. For
-         example, API2VM includes the method
-         <code>VMClassRegistry.defineClass()</code> for defining new classes.
-      </p>
-      <p>
-         The internal interface does the following:
-      </p>
-      <ul>
-         <li>
-            <i>Ensures the security of the execution environment</i>. Exporting
-            rules only allow trusted classes to access VM internal data
-            structures. To restrict access by the whole Java
-            API, the kernel classes external interface is encapsulated in
-            package-private classes.
-         </li>
-         <li>
-            <i>Enables localization</i>. Interface functions are mostly in the
-            <code>java.lang.VM*</code> classes.
-         </li>
-         <li>
-            <i>Fully enables JIT optimization for the interfaces</i>. All
-            interface methods of kernel classes can be in-lined and further
-            optimized per JIT capacities.
-         </li>
-         <li>
-            <i>Relies on JIT optimization instead of calling native
-            methods.</i> Kernel classes&rsquo; methods never duplicate
-            equivalent Java functionality.
-         </li>
-      </ul>
-      <p>
-         The API2VM internal interface includes the following:
-      </p>
-      <ul>
-         <li>
-            All methods in the classes: <code><br />
-             java.lang.Compiler<br />
-             java.lang.VMClassRegistry<br />
-             java.lang.VMExecutionManager<br />
-             java.lang.VMMemoryManager<br />
-             java.lang.VMThreadManager<br />
-             java.lang.reflect.VMReflection<br />
-             org.apache.harmony.vm.VMStack</code>
-         </li>
-         <li>
-            The <code>referent</code> field of the
-            <code>java.lang.ref.Reference</code> class
-         </li>
-         <li>
-            The <code>intern()</code> method of the
-            <code>java.lang.String</code> class
-         </li>
-         <li>
-            Constructors <code>Constructor(Object obj)</code>,
-            <code>Method(Object obj)</code> and <code>Field(Object obj)</code>
-            and <code>getHandle()</code> method of classes
-            <code>java.lang.reflect.Constructor</code>,
-            <code>java.lang.reflect.Method</code>, and
-            <code>java.lang.reflect.Field</code>
-         </li>
-         <li>
-            The constructor <code>StackTraceElement</code> of the
-            <code>java.lang.StackTraceElement</code>
-         </li>
-      </ul>
-      <p>
-         Out of these methods, the majority is package-private. The exceptions
-         consist of the class <code>java.lang.Compiler</code> declared as
-         public in the spec and another commonly accessed class
-         <code>org.apache.harmony.vm.VMStack</code>.
-      </p>
-      <p class="backtotop">
-         <a href="#top">Back to Top</a>
-      </p>
-      <h1>
-         <a id="Processes" name="Processes"></a>4. Processes
-      </h1>
-      <p>
-         This section illustrates the role of kernel classes in the interaction
-         between user applications code and the virtual machine. The section
-         aims to demonstrate internal processes going on inside the kernel
-         classes component during this interaction.
-      </p>
-      <p style="text-align: center">
-         <img
-         alt="Getting a Class Object for an application involving kernel classes"
-          src="images/kc_process.gif" />
-      </p>
-      <p class="special">
-         Figure 2: Operation of Kernel Classes
-      </p>
-      <p>
-         Figure 2 shows an example of kernel classes in action. In this
-         example, a user application needs to get a <code>Class</code> object
-         by the full class name, which involves the VM kernel classes. This
-         request goes through the following stages:
-      </p>
-      <ol>
-         <li>
-            The application calls the static public
-            <code>Class.forName(className)</code> method.
-         </li>
-         <li>
-            Before loading the class, the virtual machine checks security
-            permissions for the class object, as follows: 
-            <ol>
-               <li>
-                  Kernel Java class <code>Class</code> calls
-                  the native <code>VMStack.getCallerClass()</code> method to
-                  get the caller&rsquo;s <code>Class</code> object.
-               </li>
-               <li>
-                  The kernel class natives component implementing the
-                  <code>getCallClass()</code> functionality calls the
-                  <code>st_get_frame(depth)</code> interface function of the
-                  stack support VM core component to get the stack frame
-                  representation for the specified depth. The kernel classes
-                  use this frame to retrieve the <code>Class</code> object
-                  corresponding to it.
-               </li>
-               <li>
-                  Kernel classes natives return the retrieved object to the
-                  <code>getCallerClass()</code> method.
-               </li>
-               <li>
-                  Kernel Java classes component can now get
-                  the class loader that loaded the caller&rsquo;s class. For
-                  that, this component calls the native
-                  <code>VMClassRegistry.getClassLoader(class)</code> method.
-               </li>
-               <li>
-                  After the kernel class natives return the class loader for
-                  the caller&rsquo;s class, VM checks whether the caller has
-                  permissions for loading the requested <code>Class</code>
-                  object.
-               </li>
-            </ol>
-         </li>
-         <li>
-            If the loader is permitted to load the <code>Class</code> object,
-            the VM kernel classes component loads the requested class to the
-            application.
-         </li>
-      </ol>
-      <p class="backtotop">
-         <a href="#top">Back to Top</a>
-      </p>
-      <h1>
-         <a id="Kernel_Specifics" name="Kernel_Specifics"></a>5. DRL Kernel
-         Specifics
-      </h1>
-      <p>
-         The current implementation of the Kernel Java
-         classes interface in DRLVM contains certain specifics due to
-         incomplete specifications or inter-package dependencies.
-      </p>
-      <ol>
-         <li>
-            The Harmony Class Library Porting Documentation [<a
-            href="#HarmonyClasslib_ref">1</a>] does not state clearly whether
-            <code>java.lang.System</code> is a kernel class or not. The DRL
-            implementation provides this class as kernel.
-         </li>
-         <li>
-            The Harmony Class Library Porting Documentation does not include
-            the <code>java.lang.ref.ReferenceQueue</code> specification. The
-            DRL implementation provides the whole <code>java.lang.ref</code>
-            package.
-         </li>
-         <li>
-            The DRL implementation of the
-            <code>java.lang.Class.getStackClasses()</code> method does not
-            completely correspond to the Harmony Class Library Porting
-            Documentation: 
-            <ol>
-               <li>
-                  When <code>stopAtPrivileged</code> is <code>TRUE</code>, the
-                  method adds two frames to the bottom of the resulting array,
-                  so that the caller of the privileged frame is the last
-                  included frame.
-               </li>
-               <li>
-                  The API2VM interface has a copy of the method
-                  <code>java.lang.Class.getStackClasses()</code>. This copy
-                  method
-                  <code>org.apache.harmony.vm.VMStack.getClasses()</code> is
-                  used in <code>java.lang.security.AccessController</code> and
-                  has public visibility<code>.</code>
-               </li>
-            </ol>
-         </li>
-         <li>
-            The DRL implementation of <code>com.ibm.oti.vm.VM</code> does not
-            include VM initialization methods.
-         </li>
-         <li>
-            DRLVM does not support the shutdown procedure as described in the
-            specification. Namely, the
-            <code>com.ibm.oti.vm.VM.shutdown()</code> method is not called upon
-            VM shutdown. Instead, API2VM provides an alternative shutdown
-            cleanup mechanism. The implementation closes opened connections and
-            deletes temporary files on exit.
-         </li>
-      </ol>
-      <h1>
-         <a id="References" name="References"></a>6. References
-      </h1>
-      <p>
-         [<a id="HarmonyClasslib_ref" name="HarmonyClasslib_ref"></a>1] Harmony
-         Class Library Porting Documentation, <a target="_blank"
-         href="http://svn.apache.org/viewcvs.cgi/*checkout*/incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/index.html">
-         http://svn.apache.org/viewcvs.cgi/*checkout*/incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/index.html</a>
-      </p>
-      <p>
-         [<a id="JNI_ref" name="JNI_ref" target="_blank"></a>2] Java Native Interface Specification, <a
-         href="http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.html"
-         target="_blank">http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.html</a>
-      </p>
-      <p>
-         [<a id="Java_api_ref" name="Java_api_ref" target="_blank"></a>3]Java API Specification, <a
-         href="http://java.sun.com/j2se/1.5.0/docs/api"
-         target="_blank">http://java.sun.com/j2se/1.5.0/docs/api</a>
-      </p>
-      <p>
-          
-      </p>
-      <p class="backtotop">
-         <a href="#Top">Back to Top</a>
-      </p>
-   </body>
-</html>
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+   <head>
+      <meta http-equiv="Content-Type"
+      content="text/html; charset=windows-1251" />
+      <title>
+         DRLVM Kernel Classes
+      </title>
+      <link href="site.css" rel="stylesheet" type="text/css" />
+   </head>
+   <body>
+      <h1>
+         <a id="top" name="top"></a>Kernel Classes
+      </h1>
+      <p class="TOCHeading">
+         <a href="#About_This_Document">1. About this document</a>
+      </p>
+      <p class="TOC">
+         <a href="#Purpose">1.1 Purpose</a>
+      </p>
+      <p class="TOC">
+         <a href="#Intended_Audience">1.2 Intended Audience</a>
+      </p>
+      <p class="TOC">
+         <a href="#Documentation_Conventions">1.3 Conventions</a>
+      </p>
+      <p class="TOCHeading">
+         <a href="#Overview">2. Overview</a>
+      </p>
+      <p class="TOCHeading">
+         <a href="#Architecture">3. Architecture</a>
+      </p>
+      <p class="TOC">
+         <a href="#Exported_Interfaces">3.1 Exported Interface</a>
+      </p>
+      <p class="TOC">
+         <a href="#Internal_Structure">3.2 Internal Structure</a>
+      </p>
+      <blockquote>
+         <p class="TOC">
+            <a href="#Kernel_Classes_Java">3.2.1 Kernel Java* Classes</a>
+         </p>
+         <p class="TOC">
+            <a href="#Kernel_Class_Natives">3.2.2 Kernel Class Natives</a>
+         </p>
+         <p class="TOC">
+            <a href="#API2VM">3.2.3 API2VM Internal Interface</a>
+         </p>
+      </blockquote>
+      <p class="TOCHeading">
+         <a href="#Processes">4. Processes</a>
+      </p>
+      <p class="TOCHeading">
+         <a href="#Kernel_Specifics">5. DRL Kernel Specifics</a>
+      </p>
+      <p class="TOCHeading">
+         <a href="#References">6. References</a>
+      </p>
+      <p class="backtotop">
+         <a href="#top">Back to Top</a>
+      </p>
+      <h1>
+         <a id="About_This_Document" name="About_This_Document"></a>1. About
+         this document
+      </h1>
+      <h2>
+         <a id="Purpose" name="Purpose"></a>1.1 Purpose
+      </h2>
+      <p>
+         This document is targeted at developers of the DRL kernel classes. The
+         document describes the kernel classes&rsquo; internal design and
+         interaction with the DRL virtual machine. The information can be
+         helpful for future development of DRL kernel classes and can serve as
+         an example for those implementing the kernel classes&rsquo; interface
+         from scratch.
+      </p>
+      <h2>
+         <a id="Intended_Audience" name="Intended_Audience"></a>1.2 Intended
+         Audience
+      </h2>
+      <p>
+         The target audience for the document includes a wide community of
+         engineers interested in using DRLVM and in working further with the
+         product to contribute to its development. The document assumes that
+         readers understand the kernel classes&rsquo; concept [<a
+         href="#HarmonyClasslib_ref">1</a>].
+      </p>
+      <h2>
+         <a id="Documentation_Conventions"
+         name="Documentation_Conventions"></a>1.3 Conventions
+      </h2>
+      <p>
+         This document uses the <a href="conventions.htm">unified
+         conventions</a> for the DRL documentation kit.
+      </p>
+      <h1>
+         <a id="Overview" name="Overview"></a>2. Overview
+      </h1>
+      <p>
+         Kernel classes serve as glue between Java class
+         libraries (JCL) and native VM code. These are Java
+         API classes, members of which use or are used by the virtual machine.
+         Examples of kernel classes include <code>java.lang.Object</code> and
+         <code>java.lang.reflect.Field</code>. Because they have data on the VM
+         internals, the kernel classes are delivered with the VM.
+      </p>
+      <p class="backtotop">
+         <a href="#top">Back to Top</a>
+      </p>
+      <h1>
+         <a id="Architecture" name="Architecture"></a>3. Architecture
+      </h1>
+      <p>
+         This part of the document describes the internal structure of the
+         DRLVM Kernel Classes component.
+      </p>
+      <h2>
+         <a id="Exported_Interfaces" name="Exported_Interfaces"></a>3.1
+         Exported Interface
+      </h2>
+      <p>
+         In DRLVM, kernel classes export <i>the kernel classes interface</i>
+         for interaction with JCL. The kernel classes make part of the VM core
+         and use its internal structures and interfaces to interact with other
+         VM components, namely, the garbage collector, class support, stack
+         support, exception handling, and object layout support.
+      </p>
+      <h2>
+         <a id="Internal_Structure" name="Internal_Structure"></a>3.2 Internal
+         Structure
+      </h2>
+      <p>
+         The DRL kernel classes component consists of the <a
+         href="#Kernel_Class_Natives">kernel class natives</a> and the <a
+         href="#Kernel_Classes_Java">kernel Java classes</a> with an internal
+         interface, API2VM, linking the two tiers, as shown in Figure 1. The
+         current implementation of the kernel Java
+          classes is
+         based on the Harmony Class Library Porting Documentation [<a
+         href="#HarmonyClasslib_ref">1</a>] with the amendments described in
+         section <a href="#Kernel_Specifics">7. DRL Kernel Specifics</a>. This
+         implementation is aimed at reducing porting effort of Java
+         APIs to different virtual machines. The kernel class
+         natives also use the thread management functionality. The interaction
+         between the kernel classes and VM components is based on specific
+         internal interfaces of the virtual machine.
+      </p>
+      <p class="note">
+         Note
+      </p>
+      <p class="notetext">
+         The current implementation of kernel class natives is based on JNI and
+         uses JNI functions. As a result, kernel class native functions are
+         exported as ordinary native methods from the VM executable as
+         specified by the JNI specification [<a href="#JNI_ref">2</a>]. For
+         example, when the <code>VMThreadManager</code> Java
+         class from the kernel classes component defines the method
+         <code>static native Thread currentThread()</code>, the kernel class
+         native interface implements the function
+         <code>Java_java_lang_VMThreadManager_currentThread()</code>.
+      </p>
+      <p style="text-align: center">
+         <img
+         alt="Components and interfaces of VM involved in interaction with kernel classes"
+          border="0" src="images/kc_arch.gif" />
+      </p>
+      <p class="special">
+         Figure 1: Kernel classes in DRL Architecture
+      </p>
+      <h3>
+         <a id="Kernel_Classes_Java" name="Kernel_Classes_Java"></a>3.2.1
+         Kernel Java Classes
+      </h3>
+      <p>
+         DRL kernel classes fully comply with the Harmony Kernel classes
+         documentation [<a href="#HarmonyClasslib_ref">1</a>] with the
+         exceptions listed in section <a href="#Kernel_Specifics">7. DRL Kernel
+         Specifics</a>.
+      </p>
+      <p class="backtotop">
+         <a href="#top">Back to Top</a>
+      </p>
+      <h3>
+         <a id="Kernel_Class_Natives" name="Kernel_Class_Natives"></a>3.2.2
+         Kernel Class Natives
+      </h3>
+      <p>
+         Currently, the kernel class natives component consists of the
+         following:
+      </p>
+      <dl>
+         <dt>
+            Simple wrappers
+         </dt>
+         <dd>
+            Are used for interfaces of different VM components. These
+            constitute the main part of kernel class natives, as shown in the
+            example below. 
+            <p class="example">
+               Example
+            </p>
+<pre class="exampletext">
+jobject
+Java_java_lang_VMThreadManager_currentThread(JNIEnv *jenv, jclass)
+{ 
+ return thread_current_thread();
+}
+</pre>
+         </dd>
+         <dt>
+            Complex wrappers
+         </dt>
+         <dd>
+            Are responsible for data conversion between Java
+            objects and VM internal data structures, as well as for error
+            checking and processing. These wrappers also provide the
+            functionality not directly available in VM components interfaces. 
+            <p class="example">
+               Example
+            </p>
+            <p class="exampletext">
+               For method <code>VMClassRegistry.findLoadedClass(String name,
+               ClassLoader loader)</code>, the wrapper checks the loader
+               parameter and determines further activities. If this parameter
+               has a non-null value, the corresponding class loader is used for
+               class lookup. If it is null, the Java
+               execution stack is examined in order to obtain context class
+               loader if any, otherwise the system class loader is used.
+            </p>
+         </dd>
+         <dt>
+            Specific functions
+         </dt>
+         <dd>
+            Consist of the following groups: 
+            <ul>
+               <li>
+                  <strong>Lazy stack inspection for exception
+                  objects</strong><br />
+                   This mechanism is used for all descendants of class
+                  <code>java.lang.Throwable</code>. When a Java<a
+                  href="#*">*</a> exception object is created, this mechanism
+                  prepares and stores the snapshot of the stack trace; this is
+                  a fast operation.<br />
+                   The more computation intensive operations, such as snapshot
+                  parsing and creating a stack trace element array (the
+                  <code>java.lang.StackTraceElement</code> array) are only
+                  performed when the exception data is actually required, for
+                  example when the <code>printStackTrace()</code> method of the
+                  <code>Throwable</code> class is called.
+               </li>
+               <li>
+                  <strong>Reflection support</strong><br />
+                   This mechanism is an implementation of standard Java<a
+                  href="#*">*</a> reflection API represented by classes in the
+                  <code>java.lang.reflection</code> package [<a
+                  href="#Java_api_ref">3</a>].<br />
+                   This mechanism is responsible for providing access to
+                  methods and fields of a class by using their symbolic names,
+                  as well as for data conversions between the
+                  <code>java.lang.Object</code> type and the VM internal type
+                  representation required for operations with fields and
+                  methods. This mechanism also communicates with the JIT or the
+                  interpreter to perform the actual execution of methods.
+               </li>
+               <li>
+                  <strong>Hidden synthetic fields processing</strong><br />
+                   These fields are used for linking Java
+                  objects of certain kernel classes, such as
+                  <code>java.lang.Thread</code> and
+                  <code>java.lang.reflect.Field</code>, with the corresponding
+                  VM internal data structures. When the classes are loaded, the
+                  VM class support component adds the fields to the classes,
+                  and the kernel class natives component uses the fields to
+                  store the links to the corresponding VM internal data. Note
+                  that these fields are not accessible from Java<a
+                  href="#*">*</a> code.
+               </li>
+               <li>
+                  <strong>Debug printing</strong><br />
+                   This mechanism can be used for development process only and
+                  is not required for the release version of DRL. In this
+                  mechanism, the native method print of the class
+                  <code>VMDebug</code> allows printing messages to the standard
+                  output before printing can be done through the
+                  <code>java.lang.System.out/err</code> channel.
+               </li>
+            </ul>
+         </dd>
+      </dl>
+      <p class="backtotop">
+         <a href="#top">Back to Top</a>
+      </p>
+      <h3>
+         <a id="API2VM" name="API2VM"></a>3.2.3 API2VM Internal Interface
+      </h3>
+      <p>
+         The API2VM internal interface is used to access VM-specific
+         information, which is not directly available on the Java<a
+         href="#*">*</a> level and provides external data to the VM. For
+         example, API2VM includes the method
+         <code>VMClassRegistry.defineClass()</code> for defining new classes.
+      </p>
+      <p>
+         The internal interface does the following:
+      </p>
+      <ul>
+         <li>
+            <i>Ensures the security of the execution environment</i>. Exporting
+            rules only allow trusted classes to access VM internal data
+            structures. To restrict access by the whole Java
+            API, the kernel classes external interface is encapsulated in
+            package-private classes.
+         </li>
+         <li>
+            <i>Enables localization</i>. Interface functions are mostly in the
+            <code>java.lang.VM*</code> classes.
+         </li>
+         <li>
+            <i>Fully enables JIT optimization for the interfaces</i>. All
+            interface methods of kernel classes can be in-lined and further
+            optimized per JIT capacities.
+         </li>
+         <li>
+            <i>Relies on JIT optimization instead of calling native
+            methods.</i> Kernel classes&rsquo; methods never duplicate
+            equivalent Java functionality.
+         </li>
+      </ul>
+      <p>
+         The API2VM internal interface includes the following:
+      </p>
+      <ul>
+         <li>
+            All methods in the classes: <code><br />
+             java.lang.Compiler<br />
+             java.lang.VMClassRegistry<br />
+             java.lang.VMExecutionManager<br />
+             java.lang.VMMemoryManager<br />
+             java.lang.VMThreadManager<br />
+             java.lang.reflect.VMReflection<br />
+             org.apache.harmony.vm.VMStack</code>
+         </li>
+         <li>
+            The <code>referent</code> field of the
+            <code>java.lang.ref.Reference</code> class
+         </li>
+         <li>
+            The <code>intern()</code> method of the
+            <code>java.lang.String</code> class
+         </li>
+         <li>
+            Constructors <code>Constructor(Object obj)</code>,
+            <code>Method(Object obj)</code> and <code>Field(Object obj)</code>
+            and <code>getHandle()</code> method of classes
+            <code>java.lang.reflect.Constructor</code>,
+            <code>java.lang.reflect.Method</code>, and
+            <code>java.lang.reflect.Field</code>
+         </li>
+         <li>
+            The constructor <code>StackTraceElement</code> of the
+            <code>java.lang.StackTraceElement</code>
+         </li>
+      </ul>
+      <p>
+         Out of these methods, the majority is package-private. The exceptions
+         consist of the class <code>java.lang.Compiler</code> declared as
+         public in the spec and another commonly accessed class
+         <code>org.apache.harmony.vm.VMStack</code>.
+      </p>
+      <p class="backtotop">
+         <a href="#top">Back to Top</a>
+      </p>
+      <h1>
+         <a id="Processes" name="Processes"></a>4. Processes
+      </h1>
+      <p>
+         This section illustrates the role of kernel classes in the interaction
+         between user applications code and the virtual machine. The section
+         aims to demonstrate internal processes going on inside the kernel
+         classes component during this interaction.
+      </p>
+      <p style="text-align: center">
+         <img
+         alt="Getting a Class Object for an application involving kernel classes"
+          src="images/kc_process.gif" />
+      </p>
+      <p class="special">
+         Figure 2: Operation of Kernel Classes
+      </p>
+      <p>
+         Figure 2 shows an example of kernel classes in action. In this
+         example, a user application needs to get a <code>Class</code> object
+         by the full class name, which involves the VM kernel classes. This
+         request goes through the following stages:
+      </p>
+      <ol>
+         <li>
+            The application calls the static public
+            <code>Class.forName(className)</code> method.
+         </li>
+         <li>
+            Before loading the class, the virtual machine checks security
+            permissions for the class object, as follows: 
+            <ol>
+               <li>
+                  Kernel Java class <code>Class</code> calls
+                  the native <code>VMStack.getCallerClass()</code> method to
+                  get the caller&rsquo;s <code>Class</code> object.
+               </li>
+               <li>
+                  The kernel class natives component implementing the
+                  <code>getCallClass()</code> functionality calls the
+                  <code>st_get_frame(depth)</code> interface function of the
+                  stack support VM core component to get the stack frame
+                  representation for the specified depth. The kernel classes
+                  use this frame to retrieve the <code>Class</code> object
+                  corresponding to it.
+               </li>
+               <li>
+                  Kernel classes natives return the retrieved object to the
+                  <code>getCallerClass()</code> method.
+               </li>
+               <li>
+                  Kernel Java classes component can now get
+                  the class loader that loaded the caller&rsquo;s class. For
+                  that, this component calls the native
+                  <code>VMClassRegistry.getClassLoader(class)</code> method.
+               </li>
+               <li>
+                  After the kernel class natives return the class loader for
+                  the caller&rsquo;s class, VM checks whether the caller has
+                  permissions for loading the requested <code>Class</code>
+                  object.
+               </li>
+            </ol>
+         </li>
+         <li>
+            If the loader is permitted to load the <code>Class</code> object,
+            the VM kernel classes component loads the requested class to the
+            application.
+         </li>
+      </ol>
+      <p class="backtotop">
+         <a href="#top">Back to Top</a>
+      </p>
+      <h1>
+         <a id="Kernel_Specifics" name="Kernel_Specifics"></a>5. DRL Kernel
+         Specifics
+      </h1>
+      <p>
+         The current implementation of the Kernel Java
+         classes interface in DRLVM contains certain specifics due to
+         incomplete specifications or inter-package dependencies.
+      </p>
+      <ol>
+         <li>
+            The Harmony Class Library Porting Documentation [<a
+            href="#HarmonyClasslib_ref">1</a>] does not state clearly whether
+            <code>java.lang.System</code> is a kernel class or not. The DRL
+            implementation provides this class as kernel.
+         </li>
+         <li>
+            The Harmony Class Library Porting Documentation does not include
+            the <code>java.lang.ref.ReferenceQueue</code> specification. The
+            DRL implementation provides the whole <code>java.lang.ref</code>
+            package.
+         </li>
+         <li>
+            The DRL implementation of the
+            <code>java.lang.Class.getStackClasses()</code> method does not
+            completely correspond to the Harmony Class Library Porting
+            Documentation: 
+            <ol>
+               <li>
+                  When <code>stopAtPrivileged</code> is <code>TRUE</code>, the
+                  method adds two frames to the bottom of the resulting array,
+                  so that the caller of the privileged frame is the last
+                  included frame.
+               </li>
+               <li>
+                  The API2VM interface has a copy of the method
+                  <code>java.lang.Class.getStackClasses()</code>. This copy
+                  method
+                  <code>org.apache.harmony.vm.VMStack.getClasses()</code> is
+                  used in <code>java.lang.security.AccessController</code> and
+                  has public visibility<code>.</code>
+               </li>
+            </ol>
+         </li>
+         <li>
+            The DRL implementation of <code>com.ibm.oti.vm.VM</code> does not
+            include VM initialization methods.
+         </li>
+         <li>
+            DRLVM does not support the shutdown procedure as described in the
+            specification. Namely, the
+            <code>com.ibm.oti.vm.VM.shutdown()</code> method is not called upon
+            VM shutdown. Instead, API2VM provides an alternative shutdown
+            cleanup mechanism. The implementation closes opened connections and
+            deletes temporary files on exit.
+         </li>
+      </ol>
+      <h1>
+         <a id="References" name="References"></a>6. References
+      </h1>
+      <p>
+         [<a id="HarmonyClasslib_ref" name="HarmonyClasslib_ref"></a>1] Harmony
+         Class Library Porting Documentation, <a target="_blank"
+         href="http://svn.apache.org/viewcvs.cgi/*checkout*/incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/index.html">
+         http://svn.apache.org/viewcvs.cgi/*checkout*/incubator/harmony/enhanced/classlib/trunk/doc/kernel_doc/html/index.html</a>
+      </p>
+      <p>
+         [<a id="JNI_ref" name="JNI_ref" target="_blank"></a>2] Java Native Interface Specification, <a
+         href="http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.html"
+         target="_blank">http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.html</a>
+      </p>
+      <p>
+         [<a id="Java_api_ref" name="Java_api_ref" target="_blank"></a>3]Java API Specification, <a
+         href="http://java.sun.com/j2se/1.5.0/docs/api"
+         target="_blank">http://java.sun.com/j2se/1.5.0/docs/api</a>
+      </p>
+      <p>
+          
+      </p>
+      <p class="backtotop">
+         <a href="#Top">Back to Top</a>
+      </p>
+   </body>
+</html>
+
 </div>
                                         </td>
                 </tr>

Propchange: incubator/harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/docs/subcomponents/jchevm/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/docs/subcomponents/stresstest/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/docs/svn.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/auth_cont_quest.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/bulk_contribution_checklist.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/code_scan_tools.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/contribution_policy.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/contributors.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/harmony/standard/site/xdocs/documentation/build_website.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/xdocs/documentation/build_website.xml?view=diff&rev=451271&r1=451270&r2=451271
==============================================================================
--- incubator/harmony/standard/site/xdocs/documentation/build_website.xml (original)
+++ incubator/harmony/standard/site/xdocs/documentation/build_website.xml Fri Sep 29 05:55:25 2006
@@ -1,119 +1,119 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-
-    Copyright 2006 The Apache Software Foundation
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-
-<document>
-
- <properties>
-  <title>Building and Deploying the Apache Harmony Website</title>
-  <author email="harmony-dev@incubator.apache.org">Harmony Documentation Team</author>
- </properties>
-
-<body>
-
-<section name="Building and Deploying the Apache Harmony Website">
-
-<subsection name="Building">
-	<p>
-		The following tools are required to build the Harmony website
-		
-		<ul>
-		    <li>
-		      <a href="http://subversion.tigris.org/">Subversion</a>
-		    </li>
-		    <li>
-		      <a href="http://ant.apache.org/">Apache Ant</a>
-		    </li>
-			<li>
-			   Java 1.4.2 JDK
-			</li>
-		</ul>
-	</p>
-	
-	<p>
-		<ol>
-			<li>
-			   Download the website source from Harmony subversion repository
-			   <pre>$ svn checkout https://svn.apache.org/repos/asf/incubator/harmony/standard/site</pre>
-			</li>
-			
-			<li>
-			   Change into the site directory and run the default ant script target
-			  <pre>$ cd site</pre>
-			  <pre>$ ant</pre>
-			</li>
-	    </ol>
-	</p>
-	
-	<p>
-	  At this point, you have a complete generated website and documentation in the <i>site/docs</i>
-	   subdirectory.  Open the <i>index.html</i> page and start browsing.
-	</p>
-
-</subsection>
-
-<subsection name="Making Changes">
-
-  <p>
-    Making changes is straightforward.  All edits are made to the contents of the <i>xdocs/</i> 
-    subdirectory, and then rendered via the procedure above into the <i>docs/</i> directory.
-  </p>
-  
-  <p>
-    If you are a Harmony committer, you can simply checkin your changes.  If you are not 
-    a committer, any updates and additions to the site are very welcome.  Please
-    see our <a href="../get-involved.html">Get Involved</a> page for instructions
-    on how to contribute your changes.
-  </p>
-  
-</subsection>
-
-<subsection name="Deploying to Harmony Website">
-
-  <p>
-    If you are a Harmony Committer, you can commit your changes into SVN and then
-    publish to the project website.  Once the changes are in SVN, simply :
-  </p>
-  
-  <p>
-    <ol>
-      <li>
-        SSH to minotaur.apache.org
-        <pre>$ ssh geirm@minotaur.apache.org </pre>
-        Your login name will of course be your own.
-      </li>
-      <li>
-        Go to the project website directory.
-        <pre>$ cd /www/incubator.apache.org/harmony/</pre>
-      </li>
-      <li>
-        Update the local copy.  There are two ways.  A simple
-        <pre>$ svn update</pre>
-        will update the local copy.  If you need to delete the HTML and 
-        re-checout use 
-        <pre>$ `cat UPDATE`</pre>
-        as the UPDATE file has the command used to do a fresh svn checkout.
-      </li>
-        
-    </ol>
-  </p>
-  
-</subsection>
-</section>
-</body>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+    Copyright 2006 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<document>
+
+ <properties>
+  <title>Building and Deploying the Apache Harmony Website</title>
+  <author email="harmony-dev@incubator.apache.org">Harmony Documentation Team</author>
+ </properties>
+
+<body>
+
+<section name="Building and Deploying the Apache Harmony Website">
+
+<subsection name="Building">
+	<p>
+		The following tools are required to build the Harmony website
+		
+		<ul>
+		    <li>
+		      <a href="http://subversion.tigris.org/">Subversion</a>
+		    </li>
+		    <li>
+		      <a href="http://ant.apache.org/">Apache Ant</a>
+		    </li>
+			<li>
+			   Java 1.4.2 JDK
+			</li>
+		</ul>
+	</p>
+	
+	<p>
+		<ol>
+			<li>
+			   Download the website source from Harmony subversion repository
+			   <pre>$ svn checkout https://svn.apache.org/repos/asf/incubator/harmony/standard/site</pre>
+			</li>
+			
+			<li>
+			   Change into the site directory and run the default ant script target
+			  <pre>$ cd site</pre>
+			  <pre>$ ant</pre>
+			</li>
+	    </ol>
+	</p>
+	
+	<p>
+	  At this point, you have a complete generated website and documentation in the <i>site/docs</i>
+	   subdirectory.  Open the <i>index.html</i> page and start browsing.
+	</p>
+
+</subsection>
+
+<subsection name="Making Changes">
+
+  <p>
+    Making changes is straightforward.  All edits are made to the contents of the <i>xdocs/</i> 
+    subdirectory, and then rendered via the procedure above into the <i>docs/</i> directory.
+  </p>
+  
+  <p>
+    If you are a Harmony committer, you can simply checkin your changes.  If you are not 
+    a committer, any updates and additions to the site are very welcome.  Please
+    see our <a href="../get-involved.html">Get Involved</a> page for instructions
+    on how to contribute your changes.
+  </p>
+  
+</subsection>
+
+<subsection name="Deploying to Harmony Website">
+
+  <p>
+    If you are a Harmony Committer, you can commit your changes into SVN and then
+    publish to the project website.  Once the changes are in SVN, simply :
+  </p>
+  
+  <p>
+    <ol>
+      <li>
+        SSH to minotaur.apache.org
+        <pre>$ ssh geirm@minotaur.apache.org </pre>
+        Your login name will of course be your own.
+      </li>
+      <li>
+        Go to the project website directory.
+        <pre>$ cd /www/incubator.apache.org/harmony/</pre>
+      </li>
+      <li>
+        Update the local copy.  There are two ways.  A simple
+        <pre>$ svn update</pre>
+        will update the local copy.  If you need to delete the HTML and 
+        re-checout use 
+        <pre>$ `cat UPDATE`</pre>
+        as the UPDATE file has the command used to do a fresh svn checkout.
+      </li>
+        
+    </ol>
+  </p>
+  
+</subsection>
+</section>
+</body>
 </document>

Propchange: incubator/harmony/standard/site/xdocs/documentation/build_website.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/harmony/standard/site/xdocs/documentation/documentation.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/xdocs/documentation/documentation.xml?view=diff&rev=451271&r1=451270&r2=451271
==============================================================================
--- incubator/harmony/standard/site/xdocs/documentation/documentation.xml (original)
+++ incubator/harmony/standard/site/xdocs/documentation/documentation.xml Fri Sep 29 05:55:25 2006
@@ -1,91 +1,91 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!--
-
-    Copyright 2004 The Apache Software Foundation
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-
-
-<document>
-
- <properties>
-  <title>Apache Harmony</title>
-  <author email="harmony-dev@harmony.apache.org">Harmony Documentation Team</author>
- </properties>
-
- <body>
-<section name="Apache Harmony Documentation">
-
-<p>
-There is not yet a full manual or similar official documentation. However,
-the resources below will help new users and developers get up to speed with
-the technology.
-</p>
-
-<subsection name="Project Documentation">
-
-<ul>
-  <li>
-    <a href="build_website.html">Building and Deploying the Apache Harmony Website</a>
-    <br />
-    Instructions on how changes to the website can be made; focuses on textual changes; 
-    creating / deleting files is not covered in detail
-  </li>
-  <li>
-    <a href="../subcomponents/classlibrary/index.html">Documentation for the Classlibrary Code</a>
-    <br />
-    Links to available materials on building classlib code, as well as links to module-specific guides
-  </li>
-  <li>
-    <a href="../subcomponents/drlvm/index.html">Documentation for the DRL virtual machine Code</a>
-    <br />
-    Links to available materials on building DRLVM code, as well as links to architecture descriptions, 
-    how-to docs, etc
-  </li>
-</ul>
-
-</subsection>
-
-<subsection name="Project Resource">
-
-<ul>
-  <li>The <a href="http://wiki.apache.org/harmony">Harmony Wiki</a>
-  </li>
-  <li><a href="../subcomponents/stresstest/index.html">Proposal for the Stress Test Framework</a>
-  </li>
-  <li><b>Note:</b> Other proposals can be found at <a href="../subcomponents/classlibrary/index.html">Classlibrary page</a>
-  </li>
-</ul>
-
-
-</subsection>
-
-<subsection name="Books">
-</subsection>
-
-    <subsection name="Research Papers and Talks">
-
-    </subsection>
-
-<subsection name="Articles and Interviews">
-
-</subsection>
-
-</section>
-
-</body>
-
-</document>
-
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+
+    Copyright 2004 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+
+<document>
+
+ <properties>
+  <title>Apache Harmony</title>
+  <author email="harmony-dev@harmony.apache.org">Harmony Documentation Team</author>
+ </properties>
+
+ <body>
+<section name="Apache Harmony Documentation">
+
+<p>
+There is not yet a full manual or similar official documentation. However,
+the resources below will help new users and developers get up to speed with
+the technology.
+</p>
+
+<subsection name="Project Documentation">
+
+<ul>
+  <li>
+    <a href="build_website.html">Building and Deploying the Apache Harmony Website</a>
+    <br />
+    Instructions on how changes to the website can be made; focuses on textual changes; 
+    creating / deleting files is not covered in detail
+  </li>
+  <li>
+    <a href="../subcomponents/classlibrary/index.html">Documentation for the Classlibrary Code</a>
+    <br />
+    Links to available materials on building classlib code, as well as links to module-specific guides
+  </li>
+  <li>
+    <a href="../subcomponents/drlvm/index.html">Documentation for the DRL virtual machine Code</a>
+    <br />
+    Links to available materials on building DRLVM code, as well as links to architecture descriptions, 
+    how-to docs, etc
+  </li>
+</ul>
+
+</subsection>
+
+<subsection name="Project Resource">
+
+<ul>
+  <li>The <a href="http://wiki.apache.org/harmony">Harmony Wiki</a>
+  </li>
+  <li><a href="../subcomponents/stresstest/index.html">Proposal for the Stress Test Framework</a>
+  </li>
+  <li><b>Note:</b> Other proposals can be found at <a href="../subcomponents/classlibrary/index.html">Classlibrary page</a>
+  </li>
+</ul>
+
+
+</subsection>
+
+<subsection name="Books">
+</subsection>
+
+    <subsection name="Research Papers and Talks">
+
+    </subsection>
+
+<subsection name="Articles and Interviews">
+
+</subsection>
+
+</section>
+
+</body>
+
+</document>
+

Propchange: incubator/harmony/standard/site/xdocs/documentation/documentation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/downloads.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/faq.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/get-involved.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/guidelines.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/index.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/license.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/mailing.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/newshistory.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/quickhelp_contributors.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/quickhelp_users.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/related.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/roadmap.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/harmony/standard/site/xdocs/status.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/xdocs/status.xml?view=diff&rev=451271&r1=451270&r2=451271
==============================================================================
--- incubator/harmony/standard/site/xdocs/status.xml (original)
+++ incubator/harmony/standard/site/xdocs/status.xml Fri Sep 29 05:55:25 2006
@@ -1,79 +1,79 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!--
-
-    Copyright 2006 The Apache Software Foundation
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-
-<document>
-
- <properties>
-  <title>Apache Harmony</title>
-  <author email="harmony-dev@incubator.apache.org">Harmony Documentation Team</author>
- </properties>
-
- <body>
-
-<section name="So, What Can We Do Now?">
-
-<p>
-The problem with building something as fundamental as a JRE is how to show
-progress to the community, so that people will begin to use it, give feedback
-and most importantly contribute bugfixes and additions.  Although we have 
-a list of the packages we believe are complete, are in progress, and 
-are not started, it's more useful to answer the question <i>So what can it do?</i>
-</p>
-
-<p>
- The following is a list of useful things you can do with Harmony. Please note 
- that Harmony is a work in progress - it is not complete.  Therefore we do not
- in any way assert that it is a compatible implementation of Java.  (But we're 
- on our way...)
- </p>
- 
-<p>
-To test the examples below, please do the following : 
-
-<ol>
-<li>Either :
-   <ul>
-      <li>Build the classlibraries</li>
-      <li>Get a pre-built snapshot of the class libraries </li>
-   </ul>
-</li>
-<li>
-Get the J9 evaluation VM from IBM.  (We'll use this until our own
-VM efforts make a little more progress).  Install according to
-directions in the deploy directory of the class library build.
-</li>
-<li>
-Set JAVA_HOME to either nothing or the deploy/jre directory of Harmony.
-</li>
-<li>
-You may need to modify your CLASSPATH to include "." (current directory)
-</li>
-</ol>
-</p>
-
-<subsection name="Build our Own Website Using Ant And Velocity">
-
-<p>
-</p>
-
-</subsection>
-
-</section>
-</body>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+
+    Copyright 2006 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<document>
+
+ <properties>
+  <title>Apache Harmony</title>
+  <author email="harmony-dev@incubator.apache.org">Harmony Documentation Team</author>
+ </properties>
+
+ <body>
+
+<section name="So, What Can We Do Now?">
+
+<p>
+The problem with building something as fundamental as a JRE is how to show
+progress to the community, so that people will begin to use it, give feedback
+and most importantly contribute bugfixes and additions.  Although we have 
+a list of the packages we believe are complete, are in progress, and 
+are not started, it's more useful to answer the question <i>So what can it do?</i>
+</p>
+
+<p>
+ The following is a list of useful things you can do with Harmony. Please note 
+ that Harmony is a work in progress - it is not complete.  Therefore we do not
+ in any way assert that it is a compatible implementation of Java.  (But we're 
+ on our way...)
+ </p>
+ 
+<p>
+To test the examples below, please do the following : 
+
+<ol>
+<li>Either :
+   <ul>
+      <li>Build the classlibraries</li>
+      <li>Get a pre-built snapshot of the class libraries </li>
+   </ul>
+</li>
+<li>
+Get the J9 evaluation VM from IBM.  (We'll use this until our own
+VM efforts make a little more progress).  Install according to
+directions in the deploy directory of the class library build.
+</li>
+<li>
+Set JAVA_HOME to either nothing or the deploy/jre directory of Harmony.
+</li>
+<li>
+You may need to modify your CLASSPATH to include "." (current directory)
+</li>
+</ol>
+</p>
+
+<subsection name="Build our Own Website Using Ant And Velocity">
+
+<p>
+</p>
+
+</subsection>
+
+</section>
+</body>
 </document>

Propchange: incubator/harmony/standard/site/xdocs/status.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/standard/site/xdocs/stylesheets/project.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/harmony/standard/site/xdocs/subcomponents/buildtest/index.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/xdocs/subcomponents/buildtest/index.xml?view=diff&rev=451271&r1=451270&r2=451271
==============================================================================
--- incubator/harmony/standard/site/xdocs/subcomponents/buildtest/index.xml (original)
+++ incubator/harmony/standard/site/xdocs/subcomponents/buildtest/index.xml Fri Sep 29 05:55:25 2006
@@ -1,164 +1,164 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-
-    Copyright 2006 The Apache Software Foundation
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-
-<document>
-
- <properties>
-  <title>Apache Harmony</title>
-  <author email="harmony-dev@incubator.apache.org">Harmony Documentation Team</author>
- </properties>
-
- <body>
-
-<section name="Build-Test Framework">
-<p>
-    The
-    <a href="http://svn.apache.org/viewvc/incubator/harmony/enhanced/buildtest/">
-    'build-test framework'</a> is a simple configuration of
-    <a href="http://cruisecontrol.sourceforge.net/">Cruise Control</a>,
-    a framework for continuous build process.  It also includes all the
-    necessary support to simplify installation.
-</p>
-
-<p>
-    Currently, the framework does these distinct tasks, in order :
-</p>
-
-    <ol>
-        <li>Update the source for the class library from SVN</li>
-        <li>Get any new dependencies needed for building the class library</li>
-        <li>Build and test the class library</li>
-        <li>Update the source for the DRLVM from SVN</li>
-        <li>Get and build any new dependencies needed for DRLVM</li>
-        <li>Build and test the DRLVM</li>
-    </ol>
-
-    <p>
-        It does these tasks in-order, and only when code changes in the repository.
-    </p>
- </section>
-
-<section name="Setup and Configuration">
-
-    <strong>Pre-requisites</strong>
-
-    <p>
-    Basically, you need the tools needed to build the Apache Harmony
-    components, like Java, Ant, C/C++ compilers, etc.  Please see
-    the other parts of the project for information on the necessary
-    toolchains.  You need the following software installed :
-    </p>
-
-    <ol>
-        <li>Java JDK v5</li>
-        <li><a href="http://ant.apache.org/">Apache Ant</a></li>
-        <li><a href="http;//subversion.tigris.org/">Subversion Client</a></li>
-    </ol>
-
-    <strong>Setup</strong>
-
-    <p>
-       Get the /harmony/enhanced/buildtest/ part of the Apache
-       Harmony project.  If you are reading this, you either have
-       it via a zip or tgz, or have checked it out from the project
-       Subversion repository.  In the event that you don't have it
-       you can get it via subversion :
-    </p>
-
-    <blockquote>
-         svn co https://svn.apache.org/repos/asf/incubator/harmony/enhanced/buildtest/trunk
-    </blockquote>
-
-    <p>
-       With Java, Ant and SVN installed, change into the buildtest/trunk
-       directory and type
-    </p>
-
-    <blockquote>
-          ant setup
-    </blockquote>
-
-    <p>
-       This should fetch CruiseControl, set it up with the Apache Harmony
-       configuration, and checkout the software to be built and tested
-       from Apache Harmony.
-    </p>
-
-    <p>
-       If you wish to have the tests run successfully, you need to do the
-       following manual steps for now :
-    </p>
-
-    <ol>
-      <li>
-         build the classlib to create the deploy/jdk tree in classlib, first
-         fetching the dependencies
-        <blockquote>
-           cd cc/projects/classlib/trunk
-           ant fetch-depends
-           ant
-        </blockquote>
-      </li>
-      <li>
-         get the appropriate IBM J9 VM for your platform (this will go
-         away when DRLVM is good enough
-
-         <blockquote>
-           http://www-128.ibm.com/developerworks/java/jdk/harmony/index.html
-         </blockquote>
-       </li>
-
-        <li>
-         unpack the above-fetched J9 distribution into the jdk directory (as
-         the distro assumes it's dropped into the jdk directory...)
-
-        <blockquote>
-           cd cc/projects/classlib/trunk/deploy/jdk/ <br/>
-           tar zxf Harmony-vme-linux.IA32-v4.tar.gz
-        </blockquote>
-        </li>
-
-    </ol>
-
-    <strong>Starting CruiseControl</strong>
-
-    <p>
-        To start the system, just type :
-    </p>
-
-     <blockquote>
-         ant
-     </blockquote>
-
-    <p>
-       in buildtest/trunk and that will launch CC with the full test set.
-       To check status, point your browser to
-    </p>
-
-   <blockquote>
-       http://localhost:8080/
-   </blockquote>
-
-</section>
- </body>
- </document>
-
-
-
-
-
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+
+    Copyright 2006 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<document>
+
+ <properties>
+  <title>Apache Harmony</title>
+  <author email="harmony-dev@incubator.apache.org">Harmony Documentation Team</author>
+ </properties>
+
+ <body>
+
+<section name="Build-Test Framework">
+<p>
+    The
+    <a href="http://svn.apache.org/viewvc/incubator/harmony/enhanced/buildtest/">
+    'build-test framework'</a> is a simple configuration of
+    <a href="http://cruisecontrol.sourceforge.net/">Cruise Control</a>,
+    a framework for continuous build process.  It also includes all the
+    necessary support to simplify installation.
+</p>
+
+<p>
+    Currently, the framework does these distinct tasks, in order :
+</p>
+
+    <ol>
+        <li>Update the source for the class library from SVN</li>
+        <li>Get any new dependencies needed for building the class library</li>
+        <li>Build and test the class library</li>
+        <li>Update the source for the DRLVM from SVN</li>
+        <li>Get and build any new dependencies needed for DRLVM</li>
+        <li>Build and test the DRLVM</li>
+    </ol>
+
+    <p>
+        It does these tasks in-order, and only when code changes in the repository.
+    </p>
+ </section>
+
+<section name="Setup and Configuration">
+
+    <strong>Pre-requisites</strong>
+
+    <p>
+    Basically, you need the tools needed to build the Apache Harmony
+    components, like Java, Ant, C/C++ compilers, etc.  Please see
+    the other parts of the project for information on the necessary
+    toolchains.  You need the following software installed :
+    </p>
+
+    <ol>
+        <li>Java JDK v5</li>
+        <li><a href="http://ant.apache.org/">Apache Ant</a></li>
+        <li><a href="http;//subversion.tigris.org/">Subversion Client</a></li>
+    </ol>
+
+    <strong>Setup</strong>
+
+    <p>
+       Get the /harmony/enhanced/buildtest/ part of the Apache
+       Harmony project.  If you are reading this, you either have
+       it via a zip or tgz, or have checked it out from the project
+       Subversion repository.  In the event that you don't have it
+       you can get it via subversion :
+    </p>
+
+    <blockquote>
+         svn co https://svn.apache.org/repos/asf/incubator/harmony/enhanced/buildtest/trunk
+    </blockquote>
+
+    <p>
+       With Java, Ant and SVN installed, change into the buildtest/trunk
+       directory and type
+    </p>
+
+    <blockquote>
+          ant setup
+    </blockquote>
+
+    <p>
+       This should fetch CruiseControl, set it up with the Apache Harmony
+       configuration, and checkout the software to be built and tested
+       from Apache Harmony.
+    </p>
+
+    <p>
+       If you wish to have the tests run successfully, you need to do the
+       following manual steps for now :
+    </p>
+
+    <ol>
+      <li>
+         build the classlib to create the deploy/jdk tree in classlib, first
+         fetching the dependencies
+        <blockquote>
+           cd cc/projects/classlib/trunk
+           ant fetch-depends
+           ant
+        </blockquote>
+      </li>
+      <li>
+         get the appropriate IBM J9 VM for your platform (this will go
+         away when DRLVM is good enough
+
+         <blockquote>
+           http://www-128.ibm.com/developerworks/java/jdk/harmony/index.html
+         </blockquote>
+       </li>
+
+        <li>
+         unpack the above-fetched J9 distribution into the jdk directory (as
+         the distro assumes it's dropped into the jdk directory...)
+
+        <blockquote>
+           cd cc/projects/classlib/trunk/deploy/jdk/ <br/>
+           tar zxf Harmony-vme-linux.IA32-v4.tar.gz
+        </blockquote>
+        </li>
+
+    </ol>
+
+    <strong>Starting CruiseControl</strong>
+
+    <p>
+        To start the system, just type :
+    </p>
+
+     <blockquote>
+         ant
+     </blockquote>
+
+    <p>
+       in buildtest/trunk and that will launch CC with the full test set.
+       To check status, point your browser to
+    </p>
+
+   <blockquote>
+       http://localhost:8080/
+   </blockquote>
+
+</section>
+ </body>
+ </document>
+
+
+
+
+

Propchange: incubator/harmony/standard/site/xdocs/subcomponents/buildtest/index.xml
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message