You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ge...@apache.org on 2005/12/01 07:04:00 UTC
svn commit: r350181 [51/198] - in
/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core: ./ depends/
depends/files/ depends/jars/ depends/libs/ depends/libs/linux.IA32/
depends/libs/win.IA32/ depends/oss/ depends/oss/linux.IA32/
depends/oss/win.I...
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/natives.cfg
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/natives.cfg?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/natives.cfg (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/natives.cfg Wed Nov 30 21:29:27 2005
@@ -0,0 +1,1193 @@
+# Doxyfile 1.4.4
+
+# Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "Harmony Class Library Porting"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = 1.0
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = doc/vm_doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of source
+# files, where putting all generated files in the same directory would otherwise
+# cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
+# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
+# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
+# Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = YES
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is used
+# as the annotated text. Otherwise, the brief description is used as-is. If left
+# blank, the following values are used ("$name" is automatically replaced with the
+# name of the entity): "The $name class" "The $name widget" "The $name file"
+# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
+# members of a class in the documentation of that class as if those members were
+# ordinary class members. Constructors, destructors and assignment operators of
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = YES
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
+# only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = NO
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = YES
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = YES
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = NO
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = NO
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text.
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE = DoxygenNativesLog.txt
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+# The mainpage doc comes from the vminterface folder
+# Note that this affects IMAGE_PATH as well
+INPUT = \
+ "$(HARMONY_DOC_DIR)/vminterface" \
+ "$(HARMONY_NATIVE_SRC_DIR)/vmi" \
+ "$(HARMONY_NATIVE_SRC_DIR)/archive" \
+ "$(HARMONY_NATIVE_SRC_DIR)/lib" \
+ "$(HARMONY_NATIVE_SRC_DIR)/luni" \
+ "$(HARMONY_NATIVE_SRC_DIR)/math" \
+ "$(HARMONY_NATIVE_SRC_DIR)/port" \
+ "$(HARMONY_NATIVE_SRC_DIR)/thread" \
+ "$(HARMONY_NATIVE_SRC_DIR)/zip" \
+ "$(HARMONY_NATIVE_SRC_DIR)/pool" \
+ "$(HARMONY_NATIVE_SRC_DIR)/include"
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
+# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
+
+FILE_PATTERNS = *.c *.h *.txt
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
+# that are symbolic links (a Unix filesystem feature) are excluded from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+
+EXCLUDE_PATTERNS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+# The images come from the vminterface directory.
+# Set the environment variable HARMONY_DOC_DIR to the root doc folder.
+# Note that this affects INPUT as well
+
+IMAGE_PATH = "$(HARMONY_DOC_DIR)/vminterface"
+
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER = "$(HARMONY_DOC_DIR)/hyfooter.txt"
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET = "$(HARMONY_DOC_DIR)/hydoxygen.css"
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION = "k:\dev\products\HTML Help Workshop\hhc.exe"
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 1
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF = YES
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH = "$(HARMONY_NATIVE_SRC_DIR)/include"
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed.
+
+# Get rid of some of our structural defines
+# Lie about HYVM_STATIC_LINKAGE so that the hystsl functions will appear
+PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS \
+ HYVM_STATIC_LINKAGE \
+ PROTOTYPE(arg)=arg \
+ PVMCALL=*
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse the
+# parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES = doc/kernel_doc/doxy_tag=../../kernel_doc/html
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE = doc/vm_doc/doxy_tag
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or
+# super classes. Setting the tag to NO turns the diagrams off. Note that this
+# option is superseded by the HAVE_DOT option below. This is only a fallback. It is
+# recommended to install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes that
+# lay further from the root node will be omitted. Note that setting this option to
+# 1 or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that a graph may be further truncated if the graph's image dimensions are
+# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT).
+# If 0 is used for the depth value (the default), the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
+
+
+
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.gif
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.gif?rev=350181&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.sxd
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.sxd?rev=350181&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.sxd
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterface.txt
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterface.txt?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterface.txt (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterface.txt Wed Nov 30 21:29:27 2005
@@ -0,0 +1,122 @@
+# Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+/**
+\mainpage
+
+<h2>Porting Structure</h2>
+
+The class libraries use a number of external components to make them portable:
+<ul>
+<li>a Virtual Machine (VM),</li>
+<li>platform porting, threading, zip support, and pooling libraries, and</li>
+<li>existing open source floating point
+(<a href="http://www.netlib.org/fdlibm/readme">fdlibm</a>) and
+compression (<a href="http://www.gzip.org/zlib/">zlib</a>) libraries.</li>
+</ul>
+The figure below shows how these components relate to one another and identifies a "VM interface" which
+is explained in the next section.
+
+\image html vmport.gif "Porting Structure"
+\image latex vmport.pdf "Porting Structure"
+
+<h2>Porting to Alternate VMs</h2>
+<br>
+The class libraries are comprised of Java code and JNI native code. One of the design
+objectives of the class libraries enables them to be ported to alternate VMs.
+To support the class libraries, the VM Vendor must implement a C interface known as
+the <a href="group__VMInterface.html">VM Interface</a> and a
+Java interface consisting of a small number of Java classes known as the
+<a href="../../kernel_doc/html/index.html#KernelJavaClasses">Kernel Java classes</a>.
+
+The Kernel classes are considered part of the VM component since the VM and these
+classes may understand each other's implementations rather than necessarily only using
+each other's external public interfaces. The VM is responsible for providing the
+implementation of the Kernel classes, although reference implementations of parts of
+these classes are provided as a possible starting point.
+
+The C <a href="group__VMInterface.html">VM Interface</a> exposes VM entry points required by
+the class library JNI natives.
+
+\image html vminterfaces.gif "VM C and Java Interfaces"
+\image latex vminterfaces.pdf "VM C and Java Interfaces"
+
+Implementations of platform porting, threading, compression, and floating point libraries
+are provided with the class library code. These libraries are described in the
+list of so-called <a href="modules.html">'modules'</a> generated from the source
+ code by doxygen. A doxygen module is simply a named collection of items from the source code.
+The documented <a href="group__HarmonyNatives.html">Harmony Natives</a>,
+<a href="group__Port.html">Port</a>,
+<a href="group__Thread.html">Thread</a>,
+<a href="group__ZipSupport.html">Zip Support</a>,
+and <a href="group__Pool.html">Pool</a> modules are part of the contribution.
+The <a href="http://www.gzip.org/zlib/">zlib</a> compression library,
+used by the Zip Support, and the <a href="http://www.netlib.org/fdlibm/readme">fdlibm</a>
+floating point library come from existing open source projects.
+
+So the minimum that a VM Vendor must supply is an implementation of the VM Interface
+and Kernel Java Classes.
+
+<h2>Physical Packaging</h2>
+
+The packaging of Harmony code and a VM into executable programs and DLLs is shown
+below with an indication of how these link together.
+
+\image html packaging.gif "Physical Packaging"
+\image latex packaging.pdf "Physical Packaging"
+
+ <a name = "Booting"><h2>Booting</h2>
+
+A launcher is provided that demonstrates the boot sequence for the VM and class library code.
+The sample launcher can be used by any VM that implements the class library and VM interface.
+
+The sequence is shown below:
+
+<ol>
+ <li>\ref CreatePortLib "Create the port library."</li>
+ <li>
+ Load the
+ \ref HarmonyNatives "Natives library" and call
+ \ref jclglob_clear.c::JNI_OnLoad "JNI_OnLoad()"
+ to initialize the library. Note that the
+ \ref HarmonyNatives "VM library" will use the
+ \ref VMInterface "VM Interface".
+ </li>
+ <li>
+ The VM needs to be configured to use the boot classpath.
+ The boot classpath is a list of JAR files which contain the bootstrap Java class library code.
+ The launcher provides a command-line prepend of the kernel (VM-specific) classes to the VM
+ by specifying -Xbootclasspath/p to loads the kernel classes from the VM-specific subdirectory
+ of jre\bin.
+ The boot sequence configures the bootstrap class path in the JNI_OnLoad() function and
+ updates the "com.ibm.oti.system.class.path" system property using the
+ \ref VMInterface "VM Interface". Currently this is accomplished by reading the bootstrap
+ entries from the <i>bootclasspath.properties</i> file located in the
+ <i>jre/lib/boot</i> directory.
+ </li>
+ <li>
+ The VM should create the system ThreadGroup by calling
+ the \ref java::lang::ThreadGroup::ThreadGroup "ThreadGroup constructor", and stores
+ it in a private field of java.lang.Thread.
+ </li>
+ <li>
+ The VM calls a private
+ java.lang.Thread constructor to initialize a new Thread.
+ This constructor creates the "main" ThreadGroup by calling this
+ \ref java::lang::ThreadGroup::ThreadGroup "ThreadGroup constructor",
+ and the rest of the class library is loaded as a side effect
+ of initializing the Thread object.
+ </li>
+</ol>
+*/
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.gif
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.gif?rev=350181&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.sxd
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.sxd?rev=350181&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.sxd
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.gif
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.gif?rev=350181&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.sxd
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.sxd?rev=350181&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.sxd
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/README.txt
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/README.txt?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/README.txt (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/README.txt Wed Nov 30 21:29:27 2005
@@ -0,0 +1,3 @@
+The 'java-src' directory contains Java source files and manifest files
+stored under the <class library component>/src and
+<class library component>/META-INF respectively.
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/META-INF/MANIFEST.MF?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/META-INF/MANIFEST.MF (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/META-INF/MANIFEST.MF Wed Nov 30 21:29:27 2005
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.apache.harmony.archive
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Eclipse-JREBundle: true
+Export-Package: java.util.jar, java.util.zip
+Import-Package: java.lang, java.util, java.net, java.io, java.lang.re
+ f, java.lang.reflect, java.security, java.security.cert, java.nio, ja
+ va.nio.charset, com.ibm.oti.util
+Bundle-Name: Harmony Archive
+Require-Bundle: org.apache.harmony.luni,
+ org.apache.harmony.nio,
+ org.apache.harmony.nio_char,
+ org.apache.harmony.security
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/Attributes.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/Attributes.java?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/Attributes.java (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/Attributes.java Wed Nov 30 21:29:27 2005
@@ -0,0 +1,341 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.util.jar;
+
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * The Attributes class is used to store values for Manifest entries. Attributes
+ * keys are genrerally instances of Attributes.Name. Values associated with
+ * Attributes keys are of type String.
+ */
+public class Attributes implements Cloneable, Map {
+
+ protected Map map;
+
+ public static class Name {
+ private String name;
+
+ private int hashCode;
+
+ public static final Name CLASS_PATH = new Name("Class-Path", false);
+
+ public static final Name MANIFEST_VERSION = new Name(
+ "Manifest-Version", false);
+
+ public static final Name MAIN_CLASS = new Name("Main-Class", false);
+
+ public static final Name SIGNATURE_VERSION = new Name(
+ "Signature-Version", false);
+
+ public static final Name CONTENT_TYPE = new Name("Content-Type", false);
+
+ public static final Name SEALED = new Name("Sealed", false);
+
+ public static final Name IMPLEMENTATION_TITLE = new Name(
+ "Implementation-Title", false);
+
+ public static final Name IMPLEMENTATION_VERSION = new Name(
+ "Implementation-Version", false);
+
+ public static final Name IMPLEMENTATION_VENDOR = new Name(
+ "Implementation-Vendor", false);
+
+ public static final Name SPECIFICATION_TITLE = new Name(
+ "Specification-Title", false);
+
+ public static final Name SPECIFICATION_VERSION = new Name(
+ "Specification-Version", false);
+
+ public static final Name SPECIFICATION_VENDOR = new Name(
+ "Specification-Vendor", false);
+
+ public static final Name EXTENSION_LIST = new Name("Extension-List",
+ false);
+
+ public static final Name EXTENSION_NAME = new Name("Extension-Name",
+ false);
+
+ public static final Name EXTENSION_INSTALLATION = new Name(
+ "Extension-Installation", false);
+
+ public static final Name IMPLEMENTATION_VENDOR_ID = new Name(
+ "Implementation-Vendor-Id", false);
+
+ public static final Name IMPLEMENTATION_URL = new Name(
+ "Implementation-URL", false);
+
+ public Name(String s) {
+ int i = s.length();
+ if (i == 0)
+ throw new IllegalArgumentException();
+ for (; --i >= 0;) {
+ char ch = s.charAt(i);
+ if (!((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')
+ || ch == '_' || ch == '-' || (ch >= '0' && ch <= '9')))
+ throw new IllegalArgumentException(s);
+ }
+ name = s;
+ }
+
+ Name(String s, boolean ignored) {
+ name = s;
+ }
+
+ public String toString() {
+ return name;
+ }
+
+ public boolean equals(Object an) {
+ if (an == null)
+ return false;
+ return an.getClass() == this.getClass()
+ && name.equalsIgnoreCase(((Name) an).name);
+ }
+
+ public int hashCode() {
+ if (hashCode == 0)
+ hashCode = name.toLowerCase().hashCode();
+ return hashCode;
+ }
+ }
+
+ /**
+ * Constructs an Attributes instance
+ */
+ public Attributes() {
+ map = new HashMap();
+ }
+
+ /**
+ * Constructs an Attributes instance obtaining keys and values from the
+ * parameter Attributes, attrib
+ *
+ * @param attrib
+ * The Attributes to obtain entries from.
+ */
+ public Attributes(Attributes attrib) {
+ map = (Map) ((HashMap) attrib.map).clone();
+ }
+
+ /**
+ * Constructs an Attributes instance with initial capacity of size size
+ *
+ * @param size
+ * Initial size of this Attributes instance.
+ */
+ public Attributes(int size) {
+ map = new HashMap(size);
+ }
+
+ /**
+ * Removes all key/value pairs from this Attributes.
+ *
+ */
+ public void clear() {
+ map.clear();
+ }
+
+ /**
+ * Determines whether this Attributes contains the specified key
+ *
+ *
+ * @param key
+ * The key to search for.
+ * @return true if the key is found, false otherwise
+ */
+ public boolean containsKey(Object key) {
+ return map.containsKey(key);
+ }
+
+ /**
+ * Determines whether this Attributes contains the specified value
+ *
+ * @param value
+ * The value to search for.
+ * @return true if the value is found, false otherwise
+ */
+ public boolean containsValue(Object value) {
+ return map.containsValue(value);
+ }
+
+ /**
+ * Returns a set containing MapEntry's for each of the key/value pairs
+ * contained in this Attributes.
+ *
+ * @return a set of MapEntry's
+ */
+ public Set entrySet() {
+ return map.entrySet();
+ }
+
+ /**
+ * Returns the value associated with the parameter key
+ *
+ * @param key
+ * The key to search for.
+ * @return Object associated with key, or null if key does not exist.
+ */
+ public Object get(Object key) {
+ return map.get(key);
+ }
+
+ /**
+ * Determines whether this Attributes contains any keys
+ *
+ * @return true if one or more keys exist, false otherwise
+ */
+ public boolean isEmpty() {
+ return map.isEmpty();
+ }
+
+ /**
+ * Returns a Set containing all the keys found in this Attributes.
+ *
+ * @return a Set of all keys
+ */
+ public Set keySet() {
+ return map.keySet();
+ }
+
+ /**
+ * Store value value in this Attributes and associate it with key key.
+ *
+ * @param key
+ * The key to associate with value.
+ * @param value
+ * The value to sotre in this Attributes
+ * @return The value being stored
+ *
+ * @exception ClassCastException
+ * when key is not an Attributes.Name or value is not a
+ * String
+ */
+ public Object put(Object key, Object value) {
+ return map.put(key, value);
+ }
+
+ /**
+ * putAll method comment.
+ */
+ public void putAll(Map attrib) {
+ this.map.putAll(attrib);
+ }
+
+ /**
+ * Deletes the key/value pair with key key from this Attributes.
+ *
+ * @param key
+ * The key to remove
+ * @return the valuse associated with the removed key, null if not present.
+ */
+ public Object remove(Object key) {
+ return map.remove(key);
+ }
+
+ /**
+ * Returns the number of key.value pairs associated with this Attributes.
+ *
+ * @return the size of this Attributes
+ */
+ public int size() {
+ return map.size();
+ }
+
+ /**
+ * Returns a Colletion of all the values present in this Attributes.
+ *
+ * @return a Collection of all values present
+ */
+ public Collection values() {
+ return map.values();
+ }
+
+ public Object clone() {
+ Attributes clone;
+ try {
+ clone = (Attributes) super.clone();
+ } catch (CloneNotSupportedException e) {
+ return null;
+ }
+ clone.map = (Map) ((HashMap) this.map).clone();
+ return clone;
+ }
+
+ /**
+ * Returns the hashCode of this Attributes
+ *
+ * @return the hashCode of this Object.
+ */
+ public int hashCode() {
+ return map.hashCode();
+ }
+
+ /**
+ * Determines if this Attributes and the parameter Attributes are equal. Two
+ * Attributes instances are equal if they contain the same keys and values.
+ *
+ * @return true if the Attributes are equals, false otherwise
+ */
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj instanceof Attributes)
+ return map.equals(((Attributes) obj).map);
+ return false;
+ }
+
+ /**
+ * Returns the value associated with the parameter Attributes.Name key.
+ *
+ * @param name
+ * The key to obtain the value for.
+ * @return the String associated with name, or null if name is not a valid
+ * key
+ */
+ public String getValue(Attributes.Name name) {
+ return (String) map.get(name);
+ }
+
+ /**
+ * Returns the String associated with the parameter name.
+ *
+ * @param name
+ * The key to obtain the value for.
+ * @return the String associated with name, or null if name is not a valid
+ * key
+ */
+ public String getValue(String name) {
+ return (String) map.get(new Attributes.Name(name));
+ }
+
+ /**
+ * Stores value val against key name in this Attributes
+ *
+ * @param name
+ * The key to store against.
+ * @param val
+ * The value to store in this Attributes
+ * @return the Value being stored
+ */
+ public String putValue(String name, String val) {
+ return (String) map.put(new Attributes.Name(name), val);
+ }
+}
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/InitManifest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/InitManifest.java?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/InitManifest.java (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/InitManifest.java Wed Nov 30 21:29:27 2005
@@ -0,0 +1,254 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.util.jar;
+
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UTFDataFormatException;
+import java.security.AccessController;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import com.ibm.oti.util.Msg;
+import com.ibm.oti.util.PriviAction;
+import com.ibm.oti.util.Util;
+
+class InitManifest {
+ private byte[] inbuf = new byte[1024];
+
+ private int inbufCount = 0, inbufPos = 0;
+
+ private byte[] buffer = new byte[5];
+
+ private char[] charbuf = new char[0];
+
+ private ByteArrayOutputStream out = new ByteArrayOutputStream(256);
+
+ private String encoding;
+
+ private boolean usingUTF8 = true;
+
+ private Map attributeNames = new HashMap();
+
+ InitManifest(InputStream is, Attributes main, Map entries, Map chunks,
+ String verString) throws IOException {
+ encoding = (String) AccessController.doPrivileged(new PriviAction(
+ "manifest.read.encoding"));
+ if ("".equals(encoding)) {
+ encoding = null;
+ }
+
+ Attributes current = main;
+ ArrayList list = new ArrayList();
+ readLines(is, list);
+ Iterator it = list.iterator();
+ while (it.hasNext())
+ addAttribute((String) it.next(), current);
+
+ // Check for version attribute
+ if (verString != null && main.getValue(verString) == null)
+ throw new IOException(Msg.getString("K0009", verString));
+
+ list.clear();
+ byte[] chunk = null;
+ while (chunks == null ? readLines(is, list) : (chunk = nextChunk(is,
+ list)) != null) {
+ it = list.iterator();
+ String line = (String) it.next();
+ if (line.length() < 7
+ || !line.substring(0, 5).toLowerCase().equals("name:"))
+ throw new IOException(Msg.getString("K000a"));
+ // Name: length required space char
+ String name = line.substring(6, line.length());
+ current = new Attributes(12);
+ if (chunks != null)
+ chunks.put(name, chunk);
+ entries.put(name, current);
+ while (it.hasNext())
+ addAttribute((String) it.next(), current);
+ list.clear();
+ }
+
+ }
+
+ private void addLine(int length, List lines) throws IOException {
+ if (encoding != null) {
+ lines.add(new String(buffer, 0, length, encoding));
+ } else {
+ if (usingUTF8) {
+ try {
+ if (charbuf.length < length)
+ charbuf = new char[length];
+ lines.add(Util.convertUTF8WithBuf(buffer, charbuf, 0,
+ length));
+ } catch (UTFDataFormatException e) {
+ usingUTF8 = false;
+ }
+ }
+ if (!usingUTF8) {
+ if (charbuf.length < length)
+ charbuf = new char[length];
+ // If invalid UTF8, convert bytes to chars setting the upper
+ // bytes to zeros
+ int charOffset = 0;
+ int offset = 0;
+ for (int i = length; --i >= 0;) {
+ charbuf[charOffset++] = (char) ((int) buffer[offset++] & 0xff);
+ }
+ lines.add(new String(charbuf, 0, length));
+ }
+ }
+ }
+
+ private byte[] nextChunk(InputStream in, List lines) throws IOException {
+ if (inbufCount == -1)
+ return null;
+ byte next;
+ int pos = 0;
+ boolean blankline = false, lastCr = false;
+ out.reset();
+ while (true) {
+ if (inbufPos == inbufCount) {
+ if ((inbufCount = in.read(inbuf)) == -1) {
+ if (out.size() == 0)
+ return null;
+ if (blankline)
+ addLine(pos, lines);
+ return out.toByteArray();
+ }
+ inbufPos = 0;
+ }
+ next = inbuf[inbufPos++];
+ if (lastCr) {
+ if (next != '\n') {
+ inbufPos--;
+ next = '\r';
+ } else
+ out.write('\r');
+ lastCr = false;
+ } else if (next == '\r') {
+ lastCr = true;
+ continue;
+ }
+ if (blankline) {
+ if (next == ' ') {
+ out.write(next);
+ blankline = false;
+ continue;
+ }
+ addLine(pos, lines);
+ if (next == '\n') {
+ out.write(next);
+ return out.toByteArray();
+ }
+ pos = 0;
+ } else if (next == '\n') {
+ if (out.size() == 0)
+ continue;
+ out.write(next);
+ blankline = true;
+ continue;
+ }
+ blankline = false;
+ out.write(next);
+ if (pos == buffer.length) {
+ byte[] newBuf = new byte[buffer.length * 2];
+ System.arraycopy(buffer, 0, newBuf, 0, buffer.length);
+ buffer = newBuf;
+ }
+ buffer[pos++] = next;
+ }
+ }
+
+ private boolean readLines(InputStream in, List lines) throws IOException {
+ if (inbufCount == -1)
+ return false;
+ byte next;
+ int pos = 0;
+ boolean blankline = false, lastCr = false;
+ while (true) {
+ if (inbufPos == inbufCount) {
+ if ((inbufCount = in.read(inbuf)) == -1) {
+ if (blankline)
+ addLine(pos, lines);
+ return lines.size() != 0;
+ }
+ inbufPos = 0;
+ }
+ next = inbuf[inbufPos++];
+ if (lastCr) {
+ if (next != '\n') {
+ inbufPos--;
+ next = '\r';
+ }
+ lastCr = false;
+ } else if (next == '\r') {
+ lastCr = true;
+ continue;
+ }
+ if (blankline) {
+ if (next == ' ') {
+ blankline = false;
+ continue;
+ }
+ addLine(pos, lines);
+ if (next == '\n')
+ return true;
+ pos = 0;
+ } else if (next == '\n') {
+ if (pos == 0 && lines.size() == 0)
+ continue;
+ blankline = true;
+ continue;
+ }
+ blankline = false;
+ if (pos == buffer.length) {
+ byte[] newBuf = new byte[buffer.length * 2];
+ System.arraycopy(buffer, 0, newBuf, 0, buffer.length);
+ buffer = newBuf;
+ }
+ buffer[pos++] = next;
+ }
+ }
+
+ /* Get the next attribute and add it */
+ private void addAttribute(String line, Attributes current)
+ throws IOException {
+ String header;
+ int hdrIdx = line.indexOf(':');
+ if (hdrIdx < 1)
+ throw new IOException(Msg.getString("K000b", line));
+ header = line.substring(0, hdrIdx);
+ Attributes.Name name = (Attributes.Name) attributeNames.get(header);
+ if (name == null) {
+ try {
+ name = new Attributes.Name(header);
+ } catch (IllegalArgumentException e) {
+ throw new IOException(e.toString());
+ }
+ attributeNames.put(header, name);
+ }
+ if (hdrIdx + 1 >= line.length() || line.charAt(hdrIdx + 1) != ' ')
+ throw new IOException(Msg.getString("K000b", line));
+ // +2 due to required SPACE char
+ current.put(name, line.substring(hdrIdx + 2, line.length()));
+ }
+}
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarEntry.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarEntry.java?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarEntry.java (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarEntry.java Wed Nov 30 21:29:27 2005
@@ -0,0 +1,93 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.util.jar;
+
+
+import java.io.IOException;
+import java.security.cert.Certificate;
+import java.util.zip.ZipEntry;
+
+public class JarEntry extends ZipEntry {
+ private Attributes attributes;
+
+ JarFile parentJar;
+
+ Certificate certificates[];
+
+ /**
+ * Create a new JarEntry named name
+ *
+ * @param name
+ * The name of the new JarEntry
+ */
+ public JarEntry(String name) {
+ super(name);
+ }
+
+ /**
+ * Create a new JarEntry using the values obtained from entry.
+ *
+ * @param entry
+ * The ZipEntry to obtain values from.
+ */
+ public JarEntry(ZipEntry entry) {
+ super(entry);
+ }
+
+ /**
+ * Returns the Attributes object associated with this entry or null if none
+ * exists.
+ *
+ * @return java.util.jar.Attributes Attributes for this entry
+ * @exception java.io.IOException
+ * If an error occurs obtaining the Attributes
+ */
+ public Attributes getAttributes() throws IOException {
+ if (attributes != null || parentJar == null)
+ return attributes;
+ Manifest manifest = parentJar.getManifest();
+ if (manifest == null)
+ return null;
+ return attributes = manifest.getAttributes(getName());
+ }
+
+ /**
+ * Returns an array of Certificate Objects associated with this entry or
+ * null if none exist.
+ *
+ * @return java.security.cert.Certificate[] Certificates for this entry
+ */
+ public Certificate[] getCertificates() {
+ return certificates;
+ }
+
+ void setAttributes(Attributes attrib) {
+ attributes = attrib;
+ }
+
+ /**
+ * Create a new JarEntry using the values obtained from je.
+ *
+ * @param je
+ * The JarEntry to obtain values from
+ */
+ public JarEntry(JarEntry je) {
+ super(je);
+ parentJar = je.parentJar;
+ attributes = je.attributes;
+ certificates = je.certificates;
+ }
+}
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarException.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarException.java?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarException.java (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarException.java Wed Nov 30 21:29:27 2005
@@ -0,0 +1,45 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.util.jar;
+
+
+import java.util.zip.ZipException;
+
+/**
+ * This runtime exception is thrown when a problem occurrs while reading a JAR
+ * file.
+ *
+ */
+public class JarException extends ZipException {
+
+ /**
+ * Constructs a new instance of this class with its walkback filled in.
+ */
+ public JarException() {
+ super();
+ }
+
+ /**
+ * Constructs a new instance of this class with its walkback and message
+ * filled in.
+ *
+ * @param detailMessage
+ * String The detail message for the exception.
+ */
+ public JarException(String detailMessage) {
+ super(detailMessage);
+ }
+}