This is an automated email from the ASF dual-hosted git repository.

wave pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openoffice-org.git

commit e4fdea0fda112017f823d76136e782f120556b8e
Author: Dave Fisher <d...@davefisher.tech>
AuthorDate: Sun Nov 1 14:16:41 2020 -0800

    Migration of white_papers html content
---
 content/white_papers/OOo_project/OOo_project.html  |   52 +
 .../white_papers/OOo_project/contributions.html    |   51 +
 content/white_papers/OOo_project/introduction.html |  114 ++
 .../OOo_project/openofficefoundation.html          |   38 +
 content/white_papers/OOo_project/preface.html      |   42 +
 content/white_papers/OOo_project/strategy.html     |  137 ++
 content/white_papers/index.html                    |   30 +
 .../white_papers/tech_overview/tech_overview.html  | 1661 ++++++++++++++++++++
 8 files changed, 2125 insertions(+)

diff --git a/content/white_papers/OOo_project/OOo_project.html 
b/content/white_papers/OOo_project/OOo_project.html
new file mode 100644
index 0000000..6ebd639
--- /dev/null
+++ b/content/white_papers/OOo_project/OOo_project.html
@@ -0,0 +1,52 @@
+<html><head>
+<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
+</head>
+<body>
+
+<h2>The OpenOffice.org Project 
+</h2><br>
+<P><B>Foundations of Office Productivity in a Networked Age</b>
+
+<ul>
+  &nbsp;<a href="preface.html">Preface</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="preface.html#history">History</a> 
+  <BR>
+  <BR>
+  &nbsp;<a href="introduction.html">Introduction</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="introduction.html#what_is">What 
+  is OpenOffice.org?</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="introduction.html#why_is">Why 
is 
+  Sun Microsystems doing this?</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="introduction.html#strategic">Strategic 
+  Background</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="introduction.html#office_prod">Office 
+  Productivity for a Networked Age</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="introduction.html#future_prod">Future 
+  StarOffice Productivity Suite for Sun Microsystems</a> <BR>
+  <BR>
+  &nbsp;<a href="strategy.html">Licensing Strategy</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="strategy.html#dual_license">The 
+  Dual-License Strategy</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="strategy.html#specifics">Specifics 
+  of the OpenOffice.org License Strategy</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="strategy.html#dual_licensing_standards">Dual 
+  Licensing and Standards Compatibility</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="strategy.html#specification">Specification 
+  of Standard Versions</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="strategy.html#staroffice">StarOffice 
+  Brand Usage</a> <BR>
+  <BR>
+  &nbsp;<a href="contributions.html">Making Contributions to the 
OpenOffice.org 
+  Project</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. <a 
href="contributions.html#dual_license">Dual-License 
+  Usage</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. <a 
href="contributions.html#copyright">Copyright 
+  Assignment</a> <BR>
+  <BR>
+  &nbsp;<a href="openofficefoundation.html">The OpenOffice.org 
Foundation</a><BR>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="openofficefoundation.html#standards_process">OpenOffice.org 
+  Standards Process</a> 
+</ul>
+</body>
+</html>
+
diff --git a/content/white_papers/OOo_project/contributions.html 
b/content/white_papers/OOo_project/contributions.html
new file mode 100644
index 0000000..42f01cb
--- /dev/null
+++ b/content/white_papers/OOo_project/contributions.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html><head>
+<title>Making Contributions to the OpenOffice.org Project</title>
+<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
+</head>
+<body>
+<h2>The OpenOffice.org Project</h2>
+<BR><BR>
+
+<h4>Making Contributions to the OpenOffice.org Project</h4>
+
+<p>
+The use of the dual-license scheme is both open and beneficial for the 
development,
+access, distribution, and compatibility of OpenOffice.org technologies and
+standards. For contributions of technology from the open communities, it is
+necessary to use the identical mechanisms and terms already in use by the
+OpenOffice.org project. Specifically, the following two requirements regarding
+the terms under which such contributions are made must be met in order to 
allow a
+contribution to be accepted into the OpenOffice.org Project technology base.
+<BR><BR><BR>
+<A NAME=duel_license><B>1. Dual-License Usage</B></A>
+<BR>
+The contributing individual or organization should issue their contributions 
for
+inclusion within the OpenOffice.org project technology base using the 
dual-license
+mechanism of GPL/LGPL + OpenOffice.org SISSL, without modification to the
+license terms and conditions. Contributions that cannot be made available 
under this
+dual-licensing mechanism will be incompatible with the required open access to 
the
+OpenOffice.org technology, and thus cannot be incorporated into the 
OpenOffice.org
+technology base.
+Such dual-licensing practices are now common within the open source 
communities.
+Examples include technology projects such as Perl (Artistic + GPL) 
Mozilla&#153; (MPL + NPL), and various others.
+
+<BR><BR><BR>
+<A NAME=copyright><B>2. Copyright Assignment</B></A>
+<BR>
+To enable Sun Microsystems to effectively provide license management, enforce
+legal compliance, and issue technology adequately to commercial licensees,
+all contributions being made for inclusion in the OpenOffice.org technology 
base
+must make a copyright assignment of the source code to Sun Microsystems, Inc.
+This follows the same principals as recommended by the Free Software
+Foundation regarding copyright assignment for contributions to the GNU Project.
+Copyright assignment is a common requirement within open source projects for
+legal indemnification management and for flexibility of second licensing.
+<BR><BR>
+
+<P ALIGN=right VALIGN=bottom><A 
HREF="strategy.html">back</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A 
HREF="openofficefoundation.html">next</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
+
+
+</body>
+</html>
+
diff --git a/content/white_papers/OOo_project/introduction.html 
b/content/white_papers/OOo_project/introduction.html
new file mode 100644
index 0000000..37430dd
--- /dev/null
+++ b/content/white_papers/OOo_project/introduction.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>The OpenOffice.org Project</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+
+<h2>The OpenOffice.org Project
+</h2> <br>
+  <br>
+<p><b>Introduction</b>
+
+<br>
+The OpenOffice.org project is an historic development for the open systems 
world
+and the open source movement. In a networked age, the rules by which software 
is
+created, defined, and distributed are being redefined. Software, in essence a
+powerful form of expressing human knowledge and logic, is entering the realm of
+other free and open forms for the expression of human ideas. The pervasiveness 
of
+the network has been central in driving this redefinition of the qualities of 
software.
+The need for certain forms of software to be available in an equitable form 
becomes
+very apparent, especially when related to the creation, exchange, and 
communication
+of information. It is important to note that in recent times, some of the most
+significant forces that have influenced change in our information-centric 
world have
+resulted from the use of tools and formats for mechanisms such as e-mail, Web
+servers and Web browser, IRC, and even the very recent Instant Messenger 
service.
+All of these software-based infrastructures have shifted to be foundational in 
nature,
+based upon technology standards and formats available to all innovators, 
without
+restriction.<br><br>
+The OpenOffice.org project establishes these same freedoms for the software
+technology used for information collection commonly called office documents. 
As a
+result of these office document formats and the implementation of their 
accompanying
+software application utilities becoming foundational technologies — freely
+available to all through the OpenOffice.org project — office documents have 
made
+the important transition from the proprietary world to become universal,
+incorporated into the foundational network information standards. The
+OpenOffice.org project marks the beginning of an era of universality for office
+productivity documents as well as their arrival as network standard formats and
+services.
+<br><br><br>
+<a NAME=what_is><b>What is Open Office.org?</b></a>
+<br>
+OpenOffice.org is the open source project through which Sun Microsystems is
+releasing the technology that powers the globally popular StarOffice&#153; 
productivity
+suite. The OpenOffice.org project establishes the necessary facilities to make 
this
+open source technology available to the developer communities worldwide. Source
+code technology will be made publicly available via the Internet in both 
tar-ball and
+CVS formats. The project site will provide forums for direct communications and
+discussions among developers. Plus, the project site is constructed to provide 
a
+center for full and comprehensive information regarding all aspects of the 
project
+and its technology. This includes details on the technology and how it can be 
used as
+a basis for further innovation, for example, from API and architectural
+documentation through to planning, news, and promotional information.<br><br>
+The OpenOffice.org network hosted community can be found at <a HREF="/">
+/.</a>
+<br><br><br>
+<a NAME=why_is><b>Why is Sun Microsystems doing this?</b></a>
+<br><br>
+<a NAME=strategic><b>Strategic Background</b></a><br>Sun Microsystems was 
founded in 1982 upon three principles. First, that open
+systems' strategies for technology will ultimately expand the markets for
+information technology products more successfully than those derived from a
+proprietary basis. Second, that the network was to become the foundation upon
+which all computing platforms would be constructed in such an open systems
+world, expressed by Sun's visionary slogan "The Network is the 
Computer&#153;". And third, the law of innovation commonly described by Bill 
Joy, (co-founder of Sun
+Microsystems and original leader of the seminal open source BSD project) as
+"Innovation will occur" and its corollary, "that it will occur elsewhere" 
requires that
+strategies must be sought to embrace the concepts of the innovators who will be
+"elsewhere" by definition.<br><br>
+Sun recognizes that all the successful software and network technologies it 
uses and
+develops must have these foundational principles at their core. A brief review 
of
+Sun's statements and actions from its beginning will show a consistency in
+developing the means to build itself upon these same principles.
+<br><br>
+<a NAME=office_prod><b>Office Productivity for a Networked 
Age</b></a><br>Because future computing is being designed and built with the 
network as its
+foundation, Sun Microsystems has been committed to the development, adoption,
+and deployment of the network-based Open Information Architecture. From the 
core
+of TCP/IP to e-mail, NFS&#153;, XML, and Java&#153; technologies establishing 
the standards
+for this Open Information Architecture has always been a primary goal for
+contributing towards open systems and enabling a viable and compelling
+information computing future.<br><br>
+By 1998, it became clear that the office suite formats and utilities would 
need to
+become standardized and fully open definitions of the Open Information
+Architecture. The knowledge that the diverse forms of devices by which people
+would access and use the network and its computing resources would expand far
+beyond today's PC-class device meant that this would become a critical 
requirement.
+In August 1999, Sun acquired Star Division, Inc., the developer of a 
comprehensive,
+multi-platform, office productivity suite technology that was gaining momentum 
on
+open systems platforms. The Star Division technology offered the ideal 
technology
+basis and engineering talent to deliver on Sun's strategic objectives for an 
open
+definition of these formats and utilities. The component-based language and
+platform-neutral architecture of the StarOffice utilities were ideally suited 
to form
+the basis for an open office productivity suite. Prior to the acquisition, 
work towards
+XML-based office document file formats had also been progressing.<br><br>
+Since then, a focussed effort has been placed upon development of both the
+technologies and the details of the strategy necessary to introduce this next 
critical
+piece of the network-based Open Information Architecture. The launch of the
+OpenOffice.org project introduces this initiative.
+<br><br>
+<a NAME=future_prod><b>Future StarOffice Productivity Suite from Sun 
Microsystems</b></a><br>Sun Microsystems' engineering efforts that will deliver 
future versions of the
+StarOffice productivity suite will be derived directly from the OpenOffice.org
+technology base. Sun will use the single OpenOffice.org master CVS source base 
as
+its own engineering master source base. Thus, developers from all communities 
will
+be able to see Sun's development contributions on a daily basis and be able to
+become directly involved in the development of the OpenOffice.org technology as
+well as the branded StarOffice productivity suite.<br><br>
+For more detail regarding OpenOffice.org technology, a complementary white 
paper
+will be available that provides an in-depth overview of the component features,
+component system, XML formats, APIs, and environment enabling.
+
+<p ALIGN=right VALIGN=bottom><a 
HREF="preface.html">back</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
HREF="strategy.html">next</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
+</body>
+</html>
+
diff --git a/content/white_papers/OOo_project/openofficefoundation.html 
b/content/white_papers/OOo_project/openofficefoundation.html
new file mode 100644
index 0000000..4adb229
--- /dev/null
+++ b/content/white_papers/OOo_project/openofficefoundation.html
@@ -0,0 +1,38 @@
+<html><head>
+<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
+</head>
+<body>
+
+<h2>The OpenOffice.org Foundation</h2>
+<p><i>Last updated 2001 November 4</p>
+<BR>
+<p>The OpenOffice.org project currently does not have a foundation. Plans are 
in the works for creating such a foundation. The below text was composed at the 
project's birth and can serve as a proposal for the creation of a 
foundation.</p>
+<br>
+<p>The OpenOffice.org project will establish the OpenOffice.org Foundation, a
+non-profit organization that will oversee the operations, technology strategy,
+incorporation of technology contributions, and establishment of standards in
+conjunction with other standards bodies and open source projects as 
appropriate.
+The intention is that this foundation will be modeled after the Apache Software
+Foundation. A Steering Committee (or board) will be established with members
+from the open development community and SISSL licensees. Sun Microsystems will
+hold a minority representation in this governance structure.</p>
+<BR><BR><BR>
+<A NAME=standards_process><B>Open Office.org Standards Process</B></A>
+<BR>
+The key objectives of the OpenOffice.org project include:<UL>
+<LI TYPE=disc>Establishment of standard, open productivity, XML-based file 
formats and
+component application programming interfaces (APIs).
+<LI TYPE=disc>Creation of standard implementation source code for the open 
office productivity
+utilities that implement the APIs and utilize the XML-based file format 
standards.</UL>
+At various times, the OpenOffice.org Foundation will specify new versions of 
these
+standards. In the case of the file formats and the APIs, it is the intent to 
publish and
+submit these standards to appropriate standards bodies such as OASIS, IETF, 
and/or
+the W3C. As previously specified, these standards will bear specific version
+specifications, allowing the compliance testing of implementations and products
+against these standards.
+
+<P ALIGN=right VALIGN=bottom><A 
HREF="contributions.html">back</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
+
+</body>
+</html>
+
diff --git a/content/white_papers/OOo_project/preface.html 
b/content/white_papers/OOo_project/preface.html
new file mode 100644
index 0000000..c0ed2f6
--- /dev/null
+++ b/content/white_papers/OOo_project/preface.html
@@ -0,0 +1,42 @@
+<html><head>
+<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
+</head>
+<body>
+<h2>The OpenOffice.org Project</h2>
+<br><br>
+<P><B>Preface</B>
+
+<p>
+The purpose of this paper is to provide a strategic overview of the 
OpenOffice.org
+project. It is designed to deliver an introduction to the details of the 
principles and
+mechanisms involved in the operation project. Having a good understanding of
+these principles and mechanisms is key for anyone interested in becoming 
involved
+in the OpenOffice.org project.</p>
+<p>It is expected that as the OpenOffice.org project matures, some of these 
details will
+evolve. This document will be updated periodically to reflect the nature of 
these
+changes to the strategies of the OpenOffice.org project.</p>
+<BR>
+<p><A NAME=history><B>History</B></A></p><BR>
+<TABLE WIDTH=100% BORDER=0>
+<TR>
+<TD><B>Version</B></TD>
+<TD>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+<TD><B>Publication Date</B></TD>
+<TD>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+<TD><B>Change Notes</B></TD>
+</TR>
+<TR>
+<TD>Version 1.0</TD>
+<TD>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+<TD>7/19/00</TD>
+<TD>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+<TD>First version of this paper. Released at the OpenOffice.org launch</TD>
+</TR>
+</TABLE>
+
+<P ALIGN=right VALIGN=bottom><A 
HREF="introduction.html">next</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
+
+
+</body>
+</html>
+
diff --git a/content/white_papers/OOo_project/strategy.html 
b/content/white_papers/OOo_project/strategy.html
new file mode 100644
index 0000000..b7ada19
--- /dev/null
+++ b/content/white_papers/OOo_project/strategy.html
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>Licensing Strategy</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+<h2>Licensing Strategy</h2>
+
+<br>
+<p>
+OpenOffice.org uses a dual-license strategy for the source code of the projects
+technology. The two licenses are:
+</p>
+<ul>
+<li type=disc><a href="../../licenses/gpl_license.html">GNU General Public 
License (GPL)</a>
+<li type=disc><a href="../../licenses/sissl_license.html">Sun Industry 
Standard Source License (SISSL)</a></ul>
+<p>
+The dual-license mechanism enables the fullest degree of open and free access 
to the
+technology for both the GPL community as well as other developer communities
+that all wish to develop and deliver compatible, high-quality products for a
+networked world — powered with open office productivity services technology.
+</p>
+
+<br>
+<a name=dual_license><b>The Dual License Strategy</b></a>
+<br>
+<p>
+The key objectives for licensing the OpenOffice.org project source code are to 
enable
+it to:
+</p>
+<br>
+<p>
+1. Be compatible and accessible to projects using the GNU GPL. The diversity,
+innovation, and momentum of projects within the GPL community mandate that
+the OpenOffice.org technology use the GPL licensing.<br><br>
+2. Provide a licensing structure for other open communities that are 
incompatible
+with GNU GPL licensing. Again, the extensiveness of such projects and their
+diversity of application require OpenOffice.org to be accessible to these
+communities.
+</p>
+<br>
+<p>
+3. Be available for licensing to commercial companies wanting to utilize the
+technology within their products and/or provide branded versions of the
+technology as products to their customers. Many of these companies require more
+traditional commercial license terms and ancillary support services from 
another
+commercial vendor.
+</p>
+<br>
+<p>
+4. Support compliance with standards for the OpenOffice.org APIs and XML-based
+file formats. Keeping a cohesive adherence to these standards is recognized as 
key
+for the viability of such office productivity in a universal manner. Here, the 
use of
+a reference standard, open publishing of the reference specifications and any
+changes to such references, compliance testing mechanisms, and marks of
+compliance are the desirable tools required to achieve this goal for products 
and
+services.
+</p>
+<br>
+<p>
+Through dual licensing of OpenOffice.org technology, the first three points 
can be
+satisfied by choosing the companion license to the GPL. The second license 
must be
+able to specify requirements of compliance, while providing freedom of 
innovation
+by requiring that incompatible changes to the standard be openly published as
+source code. The second license also needs to provide adequate flexibility for
+enabling OpenOffice.org technology to be used within commercial products 
without
+compromise of the commercial vendors’ other licenses used in such products. The
+Sun Industry Standard Source License (SISSL) satisfies these requirements. The
+SISSL specification of a Standard (Exhibit B) to which compliance is required
+provides the clause to which licensees must retain compliance for their use of
+technology in distributed products. If a licensee makes incompatible 
modifications,
+the license specifies that a reference implementation of the modifications 
must be
+published back to Sun Microsystems under the original SISSL terms and 
conditions.
+</p>
+
+<br>
+<p>
+<a name=specifics><b>Specifics of the OpenOffice.org License Strategy</b></a>
+</p>
+
+<br>
+<p>
+<a name=dual_licensing_standards><b>Dual Licensing and Standards 
Compatibility</b></a><br>All source code of the OpenOffice.org project is dual 
licensed using the GNU GPL
+licenses<sup>1</sup> and the OpenOffice.org SISSL. Exhibit B of the 
OpenOffice.org SISSL will
+specify that the GNU GPL or LGPL source code, with the same version number, is
+the reference standard for that specific SISSL-licensed source code 
version.<br><br>
+This circular mechanism ensures that SISSL licensees are required to maintain
+compatibility with the GPL community versions of the same source code APIs and
+file formats. Sun Microsystems will publish any supplied modification reference
+implementations under the dual license (GPL/LGPL + SISSL) so that all
+communities have access to such modifications.<br><br>
+The SISSL License will be issued by Sun Microsystems, Inc., to SISSL licensees 
via a
+click-thru license hosted at the OpenOffice.org source code repository. This 
license is
+granted to the licensee for no fee or royalty charge.
+</p>
+<br>
+<p>
+<a name=specification><b>Specification of Standard Versions</b></a><br>The 
specification for each Standard Version as used by the licensing mechanism will
+be specified and published by the OpenOffice.org project under the governance 
of
+the OpenOffice.org Steering Committee.
+</p>
+
+<br>
+<p>
+<a name=staroffice><b>StarOffice Brand Usage</b></a>
+</p>
+
+<br>
+<p>
+In conjunction with the dual-license scheme, Sun Microsystems will provide a
+compatibility testing service to OpenOffice.org licensees for a fee. This 
service will
+be charged on a per-platform, per-version basis. Upon achieving compatibility
+certification for the specific product, the licensee will be authorized to use 
the
+StarOffice brand on the version of their product for that specifically tested 
platform
+version.
+</p>
+<br>
+<p>
+The provisions for use of the well-known StarOffice mark on a license's 
compatible
+products benefits them by delivering the market recognition already 
established by
+the mark and leveraging expanding market recognition of the mark developed by
+Sun Microsystems and other StarOffice mark vendors.<br><br>
+Additionally, the StarOffice mark conveys a signature of compatibility and
+confidence to users. This delivers a significant value to the vendor, their 
product,
+and the user.
+</p>
+
+<br>
+<p>
+1. <b>Note:</b> All libraries and embeddable components of the OpenOffice.org 
dual license will use the Lesser GPL (LGPL).
+</p>
+
+<p align=right valign=bottom><a 
href="introduction.html">back</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a 
href="contributions.html">next</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
+</body>
+</html>
+
diff --git a/content/white_papers/index.html b/content/white_papers/index.html
new file mode 100755
index 0000000..61c33fc
--- /dev/null
+++ b/content/white_papers/index.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+<title>White Papers</title>
+<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
+</head>
+<body>
+
+<h2>White Papers</h2>
+<p><i>Last Updated 2002-10-31</i></p>
+<p><br>
+  The following white papers are available. Please check back periodically as 
+  more information becomes available. 
+<ul>
+  <li>&quot;<a 
href="http://development.openoffice.org/releases/";>OpenOffice.org Roadmap and 
Codeline Information</a></li>
+  <br>
+  <li>&quot;The OpenOffice.org Project.&quot; Sun Microsystems<br>
+    &nbsp;&nbsp;&nbsp;&nbsp;<i>Foundations of Office Productivity in a 
Networked 
+    Age</i><br>
+    &nbsp;&nbsp;&nbsp;&nbsp;Formats: <a 
href="OOo_project/OOo_project.html">HTML</a>&nbsp;|&nbsp;<a 
href="OOo_project/OOo_project.pdf">PDF</a>&nbsp;| 
+    <a href="OOo_project/OOo_project.ps">Postscript</a> 
+  </li><br>
+   <li>&quot;OpenOffice.org Technical Overview.&quot; Sun Microsystems<br>
+    &nbsp;&nbsp;&nbsp;&nbsp;Formats: <a 
href="tech_overview/tech_overview.pdf">PDF</a> 
+    | <a href="tech_overview/tech_overview.sdw">SDW</a> | <a 
href="tech_overview/tech_overview.html">HTML</a> 
+     </li><br>
+</ul>
+<!-- comment -->
+</body>
+</html>
+
diff --git a/content/white_papers/tech_overview/tech_overview.html 
b/content/white_papers/tech_overview/tech_overview.html
new file mode 100644
index 0000000..61b4f56
--- /dev/null
+++ b/content/white_papers/tech_overview/tech_overview.html
@@ -0,0 +1,1661 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>The OpenOffice.org Source Project</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+
+<h2>The OpenOffice.org Source Project</h2><br><br>
+
+<b>Technical Overview</b>
+<p>
+<b>Sun Microsystems, Inc.</b><br>
+901 San Antonio Road<br>
+Palo Alto, CA 94303<br>
+1 (800) 786.7638<br>
+1.512.434.1511<br>
+<p>
+<b>Copyrights and Trademarks</b>
+<p>
+Copyright 2000 Sun Microsystems, Inc., 901 San Antonio Road, California 94303, 
U.S.A. All rights reserved.
+<p>
+This documentation is distributed under licenses restricting its use. You may 
make copies of and redistribute it, but you may not
+modify or make derivative works of this documentation without prior written 
authorization of Sun and its licensors, if any.
+<p>
+Sun, Sun Microsystems, the Sun logo, StarPortal, StarOffice,the StarOffice 
logo, Java, JavaBeans, JavaScript, and the Java
+Coffee Cup are trademarks or registered trademarks of Sun Microsystems, Inc. 
in the U.S. and other countries.
+<p>
+UNIX ® is a registered trademark in the United States and other countries, 
exclusively licensed through X/Open Company, Ltd.
+<p>
+DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS, 
REPRESENTATIONS AND
+WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A 
PARTICULAR
+PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH 
DISCLAIMERS ARE
+HELD TO BE LEGALLY INVALID.
+<p>
+<font SIZE="5">Contents</font>
+<p>
+<a href="#1">Preface</a><br>
+&nbsp; <a href="#2">History</a><br>
+<p>
+CHAPTER 1: <a href="#3">Summary</a><br>
+<p>
+CHAPTER 2: <a href="#4">OpenOffice.org Components</a><br>
+<p>
+&nbsp; <a href="#5">OpenOffice.org Suite</a><br>
+&nbsp; &nbsp; <a href="#6">OpenOffice.org wordprocessor application</a><br>
+&nbsp; &nbsp; <a href="#7">OpenOffice.org spreadsheet application</a><br>
+&nbsp; &nbsp; <a href="#8">OpenOffice.org presentation application</a><br>
+&nbsp; &nbsp; <a href="#9">OpenOffice.org drawing application</a><br>
+&nbsp; &nbsp; <a href="#10">OpenOffice.org data charting application</a><br>
+&nbsp; <a href="#11">System Integration</a><br>
+<p>
+CHAPTER 3: <a href="#12">Interoperability</a><br>
+<p>
+&nbsp; <a href="#13">File Formats</a><br>
+&nbsp; <a href="#14">Component Technology</a><br>
+&nbsp; <a href="#15">The OpenOffice.org Component Technology</a><br>
+<p>
+CHAPTER 4: <a href="#16">Openness</a><br>
+<p>
+&nbsp; <a href="#17">XML File Format</a><br>
+&nbsp; <a href="#18">Application Programming Interfaces</a><br>
+&nbsp; &nbsp; <a href="#19">Application Areas</a><br>
+&nbsp; &nbsp; <a href="#20">Design Principles</a><br>
+&nbsp; &nbsp; <a href="#21">Architectural Paradigm</a><br>
+&nbsp; &nbsp; <a href="#22">Object Model</a><br>
+&nbsp; &nbsp; <a href="#23">Common Design Patterns</a><br>
+&nbsp; &nbsp; <a href="#24">Module Categories</a><br>
+&nbsp; &nbsp; <a href="#25">Summary</a><br>
+<p>
+CHAPTER 5: <a href="#26">Architecture</a><br>
+<p>
+&nbsp; <a href="#27">Layered architecture</a><br>
+&nbsp; <a href="#28">System abstraction layer</a><br>
+&nbsp; &nbsp; <a href="#29">Operating system layer</a><br>
+&nbsp; &nbsp; <a href="#30">Runtime library</a><br>
+&nbsp; &nbsp; <a href="#31">Standard Template library</a><br>
+&nbsp; &nbsp; <a href="#32">Visual Class library</a><br>
+&nbsp; <a href="#33">Infrastructure layer</a><br>
+&nbsp; &nbsp; <a href="#34">Virtual Operating System layer</a><br>
+&nbsp; &nbsp; <a href="#35">Tools libraries</a><br>
+&nbsp; &nbsp; <a href="#36">Universal Network Objects</a><br>
+&nbsp; &nbsp; <a href="#37">Universal Content Broker</a><br>
+&nbsp; &nbsp; <a href="#38">OpenOffice.org Compound Objects</a><br>
+&nbsp; &nbsp; <a href="#39">OpenOffice.org Scripting and Basic library</a><br>
+&nbsp; <a href="#40">Framework layer</a><br>
+&nbsp; &nbsp; <a href="#41">OpenOffice.org Application framework 
library</a><br>
+&nbsp; &nbsp; <a href="#42">SVX Library</a><br>
+&nbsp; <a href="#43">Application layer</a><br>
+<p>
+CHAPTER 6: <a href="#44">Build Environment</a><br>
+<p>
+&nbsp; <a href="#45">Open Source projects</a><br>
+&nbsp; <a href="#46">The Build Experience</a><br>
+&nbsp; &nbsp; <a href="#47">Build Requirements</a><br>
+&nbsp; &nbsp; <a href="#48">Downloading the Source</a><br>
+&nbsp; &nbsp; <a href="#49">Build Prerequisites</a><br>
+&nbsp; &nbsp; <a href="#50">Build and Install Instructions</a><br>
+&nbsp; &nbsp; <a href="#51">Build Tools &amp; Makefiles</a><br>
+&nbsp; &nbsp; <a href="#52">Build Environment</a><br>
+&nbsp; &nbsp; <a href="#53">Build Troubleshooting</a><br>
+&nbsp; &nbsp; <a href="#54">Porting to Other Systems</a><br>
+&nbsp; &nbsp; <a href="#55">Build Documentation &amp; Infrastructure</a><br>
+&nbsp; <a href="#56">Outlook</a><br>
+&nbsp; <a href="#57">Current Source Tree</a><br>
+<p>
+CHAPTER 7: <a href="#58">Future Steps</a><br>
+<p>
+&nbsp; <a href="#59">An Open World Component Technology</a><br>
+&nbsp; &nbsp; <a href="#60">Current Situation</a><br>
+&nbsp; &nbsp; <a href="#61">A Short Term Solution</a><br>
+&nbsp; &nbsp; <a href="#62">Vision</a><br>
+&nbsp; &nbsp; <a href="#63">Unified Component Ware</a><br>
+&nbsp; &nbsp; <a href="#64">Outlook</a><br>
+<p>
+CHAPTER 8: <a href="#65">Appendix A</a><br>
+<p>
+<a NAME="1"></a><font SIZE="5">Preface</font>
+<p>
+The purpose of this paper is to provide a technical overview of the 
OpenOffice.org source
+project.
+<p>
+It is expected that as the OpenOffice.org source project matures, some of 
these details will
+evolve. This document will be updated periodically to reflect the nature of 
these changes
+to the OpenOffice.org source project. If you would like to contribute to any 
updates to
+this document, please join the OpenOffice.org general mailing list 
(www.openoffice.org).
+<p>
+The names used in this document for OpenOffice components, such as 
"OpenOffice.org
+wordprocessor application" are placeholders. The OpenOffice.org community will
+ultimately decide what these final names will be. This document will be 
updated when
+the component names have been finalized.
+<p>
+<a NAME="2"></a><font SIZE="5">History</font>
+<p>
+<pre>
+<b>
+Version         Publication Date     Change Notes</b>
+
+Version 1.0        9/12/2000         First version of this paper.
+</pre>
+<p>
+<a NAME="3"></a><font SIZE="5">CHAPTER 1</font>
+<br>
+<font SIZE="5">Summary</font>
+<p>
+Through the OpenOffice.org source project, Sun Microsystems is open-sourcing 
the
+technology that powers its StarOffice[tm] office productivity application 
suite. Sun
+recognizes that the open source community expects openness, interoperability, 
and
+adherence to standards and, now that the underlying technology of the 
StarOffice suite
+will be available to the community in the form of the OpenOffice.org sources 
and
+binaries, Sun presents in this document the OpenOffice.org suite's 
technological
+foundations and where they stand with respect to these expectations.
+<p>
+The OpenOffice.org suite's high level of interoperability derives from the 
standards it
+supports as well as its premier import/export interfaces with the various 
office
+productivity applications produced by Microsoft. The OpenOffice.org suite 
employs a
+component-based development system that exemplifies all the important 
characteristics of
+Component Ware - consistent interface allocation, support for important 
component
+standards, transparent localization components, batch job capability, and 
platform
+independence.
+<p>
+OpenOffice.org's component technology is open, object oriented, interface 
based, and
+independent of both platform and development system. The OpenOffice.org API is
+version independent, scalable, durable, and re-applicable. Because the 
component
+technology is used in its implementation, the OpenOffice.org API is programming
+language independent.
+<p>
+XML replaces binary as OpenOffice.org's file format and becomes the suite's 
new native
+file format. Sun and OpenOffice.org are positioning XML, with its extremely 
high
+standards profile, as the next standard for exchange of office documents.
+<p>
+<a NAME="4"></a><font SIZE="5">CHAPTER 2</font>
+<br>
+<font SIZE="5">OpenOffice.org Components</font>
+<p>
+<a NAME="5"></a><font SIZE="5">OpenOffice.org Suite</font>
+<p>
+OpenOffice.org is a unified suite of productivity applications for all common 
office
+applications, including such functions as word processing, spreadsheets, 
drawings,
+presentations, data charting and formula editing. All components of the suite 
employ the
+same user interface concepts and underlying technology. They interoperate 
closely with
+one another, supporting features like inter-application copy-and paste and 
drag-and-drop
+for creating compound documents. It is straightforward to embed a spreadsheet 
in a text
+document, for example. They also interoperate well with other common desktop
+productivity application suites, including the various office productivity 
applications
+produced by Microsoft, for ease of document exchange. A scripting environment 
called
+OpenOffice.org Basic is supported in all OpenOffice.org components to automate 
work or
+build solutions.</p>
+<p>
+<a NAME="6"></a><font SIZE="4">OpenOffice.org wordprocessor application 
<sup>1</sup></font>
+<p>
+The OpenOffice.org wordprocessor application is a powerful tool for creating
+professional documents, reports, newsletters, and brochures. It is easy to 
integrate images
+and charts in documents, create business letters and extensive text documents 
with
+professional layouts, as well as create and publish Web content.</p>
+<p>
+Footnote:
+<p>
+1 Component names are placeholders and will be replaced with actual names when 
said names are
+finalized; see the Preface for more information.
+<p>
+<a NAME="7"></a><font SIZE="4">OpenOffice.org spreadsheet application</font>
+<p>
+The OpenOffice.org spreadsheet application features decision making analysis 
tools for
+performing advanced spreadsheet functions and data analysis. Charting tools 
generate
+presentation applicationive, high-quality 2D and 3D charts.
+<p>
+<a NAME="8"></a><font SIZE="4">OpenOffice.org presentation application</font>
+<p>
+The OpenOffice.org presentation application is a tool for creating multimedia
+presentations. Included are 2D and 3D clipart, special effects animation, and 
high-impact
+drawing tools.
+<p>
+<a NAME="9"></a><font SIZE="4">OpenOffice.org drawing application</font>
+<p>
+The OpenOffice.org drawing application is a vector-oriented drawing module 
that enables
+the creation of dynamic 3D illustrations and special effects.
+<p>
+<a NAME="10"></a><font SIZE="4">OpenOffice.org data charting application</font>
+<p>
+The OpenOffice.org data charting application presents complex data in visually
+presentation applicationive ways, from colorful 3D charts to simple pie, bar, 
and line
+diagrams.
+<p>
+<a NAME="11"></a><font SIZE="5">System Integration</font>
+<p>
+The overarching goal for the OpenOffice.org suite is to provide a 
comprehensive set of
+solutions for all office related functionality in an open world. The focus for 
all
+OpenOffice.org components is office functionality.
+<p>
+This is the reason why all office components should provide a perfect 
integration into
+already existing environments. Instead of competing with already accepted 
applications,
+the OpenOffice.org source project will provide the flexibility to use the 
office
+functionality in these applications as integrated parts. This will allow the 
use, for
+example, of office productivity files from a variety of vendors, including 
Microsoft, as
+mail attachments on every platform. In the future, it will also open up a way 
to build
+highly sophisticated applications and solutions with integrated office 
functionality.
+<p>
+Future releases of the OpenOffice.org applications should provide the 
flexibility to use
+different messaging components for Mail and News or let the user decide which 
tools he
+wants to use to explore the filesystem, while at the same time the office 
components can
+be an integrated part inside this application to deal with word-processing, 
spreadsheet,
+etc. related content.
+<p>
+Some technology used in the StarOffice product was licensed from other 
companies.
+Accordingly we are not able to provide the following technologies as Open 
Source under
+the OpenOffice.org source project:
+<ul>
+<li>Bristol XPrinter - printing on UNIX ® platforms
+<li>L&amp;H International CorrectSpell, Intl. Electronic Thesaurus - spell 
checking,
+international dictionaries &amp; thesaurus
+<li>Inso Word for Word - document filters for document formats other than MS 
Office
+<li>Adabas D - database engine</li>    
+</ul>
+<p>
+Future releases of the OpenOffice.org components may provide open source 
replacement
+for these parts, which will provide similar functionality.
+<p>
+<a NAME="12"></a><font SIZE="5">CHAPTER 3</font>
+<br>
+<font SIZE="5">Interoperability</font>
+<p>
+For exchanging information it is important that two individuals have a common 
language.
+For exchange electronic information today it is not hard to transport this 
information to
+different system, instead the problem is in most cases that users use 
different applications
+to do their work and to create content. So very often in the domain of office 
productivity
+you can only read the document with the same application you created the 
content,
+because the file format are proprietary. In some case it is also required to 
use the same
+release of the application, the same operation system release or run this on 
the same
+platform.
+<p>
+To give the user the freedom to use applications and the system which is 
appropriate for his
+work, it is important that the system is able to handle a widespread set of 
file formats.
+Especially for word-processing, spreadsheet, presentation it is often 
necessary to be able
+to read the different binary formats used by the various office productivity 
applications
+produced by Microsoft.
+<p>
+On the other hand interoperability is not only necessary for content. It is 
also necessary
+that the components which are able to process the different file formats can 
be used in an
+heterogeneous environment to build up solutions. Otherwise you would be locked 
into
+another application space. Today's software technology is moving forward from 
having
+libraries to component technology, which will not only allow using different 
programming
+languages to build solutions, instead it will in most cases support using a 
scripting
+language to provide the logical glue between high-level component build 
rapidly easy
+adaptable software solutions.
+<p>
+<a NAME="13"></a><font SIZE="5">File Formats</font>
+<p>
+One of our primary objectives is to provide interoperability with existing 
solutions in the
+same application domain. We support a wide range of standard file formats such 
as
+HTML, RTF, GIF, and JPEG as well as Microsoft's proprietary file formats 
because of
+their widespread use. OpenOffice.org provides the highest quality document 
import and
+export functionality for the various office productivity applications produced 
by
+Microsoft.
+<p>
+<pre>
+<b>Documents formats</b>
+ASCII CSV                          Microsoft Excel for Windows 97/2000
+ASCII Text                         Microsoft Word for Windows 6.0
+dBase                              Microsoft Word for Windows 95
+DIF                                Microsoft Word for Windows 97/2000
+Encoded Text                       PowerPoint 97/2000
+HTML                               Rich Text Format (RTF)
+Lotus 1-2-3 1.0 DOS                SYLK
+Lotus 1-2-3 1.0 Windows            Text DOS
+Lotus Freelance                    Text OS/2
+Microsoft Excel for Windows 5.0    Text Unix
+Microsoft Excel for Windows 95    Text Win
+
+<b>Graphic formats</b>
+Adobe Photoshop (psd)              Portable Network Graphics (png)
+AutoCAD (dxf)                      PPM
+CompuServe Graphics (gif)          SGF
+Computer Graphics Metafile (cgm)   SGV
+Encapsulated PostScript (eps)      SUN Raster-Format
+JPEG Bitmaps (jpg)                 TGA
+Kodak Photo-CD (pcd)               TIFF-Bitmap
+Macintosh PICT (pct)               Truevision TARGA (tga)
+MS Windows Metafile (EMF)          Windows Bitmap (Bmp)
+OS/2 Metafile (met)                Windows Metafile (wmf)
+Paint Brush (pcx)                  XBM
+PBM                                XPM
+PGM
+</pre>
+<p>
+<a NAME="14"></a><font SIZE="5">Component Technology</font>
+<p>
+Despite the rise of the graphical user interface and a constant flow of new 
innovations in
+the software industry, software development has become only more complicated 
over the
+years. Creating high quality applications increases demands on the user, which 
in turn
+lead to more and more expendable programs. Component based program development
+systems promise a welcome change in this trend. They are based on the JavaBeans
+architecture or the Component Object Model (COM), which are also called 
Component
+Ware. The programmer can access previously prepared components (building 
blocks)
+with these products, and use them in applications. The components are ready for
+immediate use once they have been adapted to the operational area.</p>
+<p>
+The authors of the StarOffice product experienced this situation three years 
ago when
+developing a new software architecture, which for the first time made an 
office suite
+available on different platforms for use as an important building block. In 
the subsequent
+planning and development period, a need for the following attributes in this 
new
+architecture was realized:
+<ul>
+<li><font SIZE="4">Consistent Interface Allocation</font><br>
+An important aspect in Component Ware development is the way the overall
+application is dissected into individual units. The programmer must be offered 
exactly
+the needed number of single components. The more complex the application, the 
more
+difficult it is to distribute these components reasonably. The simpler and 
more logical
+the application, the higher its acceptability.
+<li><font SIZE="4">Support for Various Component Standards</font><br>
+While the COM standard in Windows software is the most widely known component
+standard, the JavaBeans components and CORBA interfaces are among the most
+common in the professional business field and are accepted as standards in the 
open
+world. Since there is not yet a general established industry standard in this 
area for all
+platforms, the component model has to provide bridges between these different
+technologies.
+<li><font SIZE="4">Localization-Transparent Components</font><br>
+Current Component Ware extensions should take advantage of the network for
+component communication. Pure client components are inapplicable for modern
+network use. Modern Component Ware must allow for delegation of a portion of an
+application to a central server. On the other hand, components running locally 
on a
+desktop system should not lose performance because of network communication
+protocols when all components are running on one machine.
+<li><font SIZE="4">Batch Job Ability</font><br>
+Previous Component Ware products employed a visual and user fixed basic 
approach
+for batch operations. User queries with hard coded components can bring the 
complete
+server operation to a halt. For batch operations within the server it should 
be possible
+to process content without requiring a visual representation.
+<li><font SIZE="4">Platform Independence</font><br>
+Especially in these times of 
+  network computers and operating system upheaval, it is important that modern 
+  Component Ware be able to select a platform independent extension. The 
+  interface should be defined in a platform independent way so that program 
code 
+  can be easily ported.</li>
+            
+           
+            
+     
+</ul>
+<a NAME="15"></a><font SIZE="5">The OpenOffice.org Component Technology</font>
+<p>
+The OpenOffice.org suite provides a component technology named Universal 
Network
+Objects, which adheres to all these requirements of modern Component Ware and 
it is
+formed on the Object Technology level, which is the basis upon which the 
OpenOffice.org
+API is set up.
+<p>
+This component technology is:
+<ul>
+<li><font SIZE="4">Open</font><br>
+It supports all the popular component standard communication protocols such as
+CORBA, JavaBeans, OLE Automation (Windows Scripting Host, Visual Basic,
+Delphi, and so forth), JavaScript, Phyton, Perl, etc. scripting languages, as 
well as
+native integration in the C++ and C programming languages.
+<li><font SIZE="4">Object Oriented</font><br>
+It is object oriented and therefore supports concepts such as aggregation, 
inheritance,
+exception handling and polymorphism.
+<li><font SIZE="4">Interface Based</font><br>
+Its functions are integrated into various interfaces. Function areas of 
similar structures
+have access to the same interfaces, so that the programmer can easily feel at 
home in
+the component world.
+<li><font SIZE="4">Platform Independent</font><br>
+It is specified to be platform independent and is available on all platforms 
that run
+OpenOffice.org.
+<li><font SIZE="4">Exception Able</font><br>
+It offers exception ability, which means that it can allow itself to be mapped 
onto the
+inserted development system mechanism - for example onto C++ Exceptions and 
Java
+Exceptions.
+<li><font SIZE="4">Development System Independent</font><br>
+It can be used with all current development environments and programming
+languages, including C++, C, Visual Basic, Windows Scripting Host and all 
systems
+which support COM, CORBA, JavaBeans components, and OLE Automation.
+<li><font SIZE="4">Network Able</font><br>
+Components based on the component 
+  technology can communicate on a network and can also delegate functions on a 
+  remote server, for example, to offer access to the complete text processing 
+  functions on Internet appliances.</li>
+           
+              
+      
+</ul>
+<p>
+<a NAME="16"></a><font SIZE="5">CHAPTER 4</font>
+<br>
+<font SIZE="5">Openness</font>
+<p>
+Opening up all specification, file formats, technologies and last but not 
least the source
+code, will help ensure that no one can be locked into an application, platform 
or
+environment space. But just providing all this information to everyone is not 
enough.
+Openness will also required that already existing open standards and 
technologies were
+used when ever appropriate and also the project over time will evolve newer 
technologies
+and adapt other open standards.</p>
+<p>
+<a NAME="17"></a><font SIZE="5">XML File Format</font>
+<p>
+We adopted XML to replace the old binary file format and become the 
OpenOffice.org
+suite's new native file format. Our goals were twofold: to have a complete 
specification
+encompassing all components, and to provide an open standard for office 
documents. One
+single XML format applies to different types of documents - e.g., the same 
definition
+applies for tables in texts and in spreadsheets. XML is ideal as an open 
standard because
+of the free availability of XML specifications and DTDs, and XML's support for 
XSL,
+XSLT, Xlink, SVG, MathML, and many other important and emerging standards.
+<p>
+Beside replacing the binary file format with XML, the OpenOffice.org suite 
will use XML
+internally for exchanging any type of content between the different 
applications.
+OpenOffice.org provides today an infrastructure for using different XML 
components.
+The XML-Parser and the XML-Printer are all implemented as components. Every of
+these component support the Simple API for XML (SAX). This infrastructure will 
allow
+in the future to dynamically configure a pipelines of different XML 
components, like
+XML-Parser, XSLT-Processor, etc. to process XML-Input and Output. This will 
allow
+transformation of XML-Data into different formats on the fly, without storing
+intermediate files and parse them again for every transformation step.
+<p>
+<a NAME="18"></a><font SIZE="5">Application Programming Interfaces</font>
+<p>
+The OpenOffice.org API is based on the OpenOffice.org component technology and
+consists of a wide range of interfaces defined in a CORBA-like IDL.
+While the component technology determines how the components or applications
+communicate with each other, the OpenOffice.org API defines the interface for 
accessing
+office functionality from different programming languages. This interface 
structure is very
+important in determining the degree to which re-application of a development 
is possible.
+<p>
+The interfaces defined by the OpenOffice.org API are characterized as follows:
+<ul>
+<li>They are completely defined component <b>interfaces</b> with the 
environment.
+<li>They are <b>version independent</b> and <b>scalable</b>.
+<li>They are <b>durable</b>.
+<li>They are <b>re-applicable</b>.</li>
+</ul>
+Unlike other office suite APIs, the OpenOffice.org API does not simply reflect 
the
+features of preexisting implementations. Rather, it has been designed from the 
viewpoint
+of application and component developers. It offers programming interfaces for 
nearly all
+OpenOffice.org components and makes it possible to integrate new components.
+<p>
+<a NAME="19"></a><font SIZE="4">Application Areas</font>
+<p>
+There are multiple ways to use OpenOffice.org APIs. First, there is the 
typical macro
+programming for running certain tasks automatically. Secondly, parts of 
OpenOffice.org
+can be run as components of other programs; e.g., OpenOffice.org components are
+accessible as JavaBeans components.
+<p>
+A more advanced application is to modify OpenOffice.org components by wrapping 
them
+into replacement components or integrating completely new components with
+OpenOffice.org.
+<p>
+A very interesting application area is to replace the user interface of 
OpenOffice.org and
+build a completely different application domain.
+<p>
+<a NAME="20"></a><font SIZE="4">Design Principles</font>
+<p>
+Some principles that are important in all our designs are:
+<ul>
+<li><font SIZE="4">orthogonality</font><br>
+The API consists of interfaces which can easily be combined to serve special 
needs of
+certain objects.
+<li><font SIZE="4">scalability</font><br>
+We distinguish between functionality that is commonly needed and that which is
+required by specialized versions. Developers can always start with a minimum 
set of
+interfaces and add more step by step to embody more features.
+<li><font SIZE="4">reusability</font><br>
+We avoid creating specialized interfaces when a generic version is possible.
+<li><font SIZE="4">Remote usability</font><br>
+Services can be used efficiently from different processes or even different 
machines.
+<li><font SIZE="4">multithread enabled</font><br>
+Services can be used from multiple 
+  threads.</li>
+      
+</ul>
+<a NAME="21"></a><font SIZE="4">Architectural Paradigm</font>
+<p>
+Our architectural decision is Interfaces and Support-Classes instead of 
Implementation
+Inheritance.
+<p>
+Interfaces and Support-Classes means that objects communicate only by 
interfaces.
+Support classes are used for recurring implementations. This was the choice 
for our
+design because components are highly independent of environment, language and 
version
+Implementation Inheritance means partly implemented base classes from which
+specialized classes derive interface and implementation. This paradigm was not 
our
+choice, because in larger systems this leads to fat interfaces or deep 
inheritance hierarchy.
+In addition, components depend on the environment, mostly via their base 
class, and are
+programming language dependent and highly version dependent.
+<p>
+<a NAME="22"></a><font SIZE="4">Object Model</font>
+<p>
+The OpenOffice.org API is designed for and implemented using the OpenOffice.org
+Component Technology. Therefore the OpenOffice.org API is programming language
+independent and can be used from C/C++, Java, and several scripting languages. 
For
+other languages, only a language binding needs to be provided to access the 
whole
+OpenOffice.org API. The API is made up by following stereotypes:
+<ul>
+<li><font SIZE="4">implementation classes</font><br>
+These are not actually part of the API, but are mentioned here for better
+understanding. Implementation classes are implementations of services using a 
real
+programming language. Normally developers who use services do not have to deal
+with the implementation itself on the API level. Objects are usually not 
translated into
+language concepts for an application that uses them, but rather for the 
implementer of
+the class. A good example is an implementation class similar to a concrete 
Java-class.
+<li><font SIZE="4">services</font><br>
+Specifications of objects are called services. One can think of a service as a 
contract
+which is beneficial to both sides: the implementation class that supports 
certain
+services and the application that uses this component for those services. 
Services
+usually describe the interfaces which they implement and a set of their 
properties.
+Although services are normally not translated into language concepts, a 
service may
+be considered to be similar to an abstract Java class.
+<li><font SIZE="4">interfaces</font><br>
+Specifications of a single aspect on an API level are called interfaces. A 
service can be
+considered to be a legally proven text module for contracts. Services can be 
combined
+to create contracts. Interfaces are very much like Java technology interfaces.
+<li><font SIZE="4">structs</font><br>
+Plain data blocks are specified as structs . Structs, therefore, do not have 
methods. The
+advantage of structs is that they can transferred as they are to a different 
process or
+even a different machine, which increases efficiency of interprocess and 
remote calls.
+With Java technology, structs are represented as a class which consist only of 
data
+members and get and set methods.
+<li><font SIZE="4">exceptions</font><br>
+Exceptions are extraordinary results from method calls. Exceptions are used 
for error
+handling just as in the Java technology.
+<li><font SIZE="4">constants/constant groups/enums</font><br>
+Constant values are split into two 
+  categories: constants - which can be grouped and can have numeric or 
character 
+  string values, and enums - which contain a fixed set of numeric values. In 
the 
+  Java technology, both are represented as classes with constant data 
members.</li>
+             
+               
+            
+ 
+</ul>
+<p>
+<a NAME="23"></a><font SIZE="4">Common Design Patterns</font>
+<p>
+The OpenOffice.org API uses heavily designed patterns, which provide a very 
consistent
+overall design. Some examples of application domain unspecific design patterns 
are:
+<ul>
+<li><font SIZE="4">Factory environment/container</font><br>
+New instances of services are created using factories. Factories of contents 
can
+emanate from the container object or from the environment. For efficiency, 
factories
+for iterators of all kinds, including cursors, are provided by the container.
+<li><font SIZE="4">Property Sets/-Access etc.</font><br>
+A set of interfaces makes the properties specified in the services accessible. 
Properties
+can be viewed as non-structural data members of objects, such as color or 
font. The
+variety of access interfaces covers the spectrum from convenient local access 
to fast
+remote access.
+<li><font SIZE="4">Collections/Containers</font><br>
+A collection in our terminology gives access to a set of similar sub-objects. A
+container allows replacement, insertion and removal of these sub-objects. A 
wide
+variety of predefined interfaces is available for this design pattern.
+<li><font SIZE="4">Enumerators/Iterators/Cursors</font><br>
+Enumerators, iterators and cursors are used for efficiently listing contained 
objects.
+Cursors in text play an especially major role, because indexing of text is not
+reasonable.
+<li><font SIZE="4">X...Supplier</font><br>
+To access structural but optional data members, we frequently offer supplier 
interfaces
+which in many cases only have one get method.
+<li><font SIZE="4">Events</font><br>
+Where it is of interest to get notification about certain status changes, 
there are
+services that offer methods to register and unregister listener interfaces. 
When the
+event occurs, a method at the listener interface is called and the event is 
given as an
+argument. This is the same as in the event concept in JavaBeans.
+<li><font SIZE="4">Exceptions for Error Handling</font><br>
+Exceptions constitute our 
+  principal error handling concept. For asynchronous calls, exceptions are 
+  transferred in callback events.</li>
+         
+     
+</ul>
+<a NAME="24"></a><font SIZE="4">Module Categories</font>
+<p>
+The OpenOffice.org API is organized in a hierarchical module concept which 
follows
+Java technology package or CORBA conventions.
+<ul>
+<li><font SIZE="4">office specific interfaces</font><br>
+e.g. For text documents, spreadsheet documents, drawing and presentation 
documents
+<li><font SIZE="4">integration framework</font><br>
+These interfaces make it possible to integrate new components into 
OpenOffice.org,
+e.g.: configuration management , Universal Content Broker
+<li><font SIZE="4">application domain independent</font><br>
+This very important category contains interfaces for property access, 
collections and
+contains, or streaming operations, as well as for attaching scripting engines 
and many
+more interfaces.
+<li><font SIZE="4">component system</font><br>
+The base of the suite is the handful of 
+  interfaces which are necessary to deal with object model topics such as 
+  lifetime control, querying interfaces, building bridges and instantiating 
+  remote objects.</li>
+               
+           
+  
+</ul>
+<a NAME="25"></a><font SIZE="4">Summary</font>
+<p>
+The results and benefits of the OpenOffice.org source projects principles and 
activities to
+date are manyfold. One can build new applications from components without 
modifying
+source code. One can use a familiar programming language. The entire API is
+documented in a reference manual ¯ http://soldc.sun.com/staroffice. A
+first release of a Development Kit, containing support of the OpenOffice.org 
Basic and
+also Java technology, is available.
+<p>
+<a NAME="26"></a><font SIZE="5">CHAPTER 5</font>
+<br>
+<font SIZE="5">Architecture</font>
+<p>
+The OpenOffice.org source project is based on an architecture that can provide
+comprehensive personal productivity to different UNIX-based systems and may be 
ported
+many other platforms as well. This is because the whole technology is based on 
a
+platform-independent approach. Less than 10% of the code is platform 
dependent. This
+acts as an abstraction layer for the upper software components. Because of the 
availability
+of C++-Compilers on every major platform, C++ is used as an implementation 
language.
+This allows to port the OpenOffice.org technology to a wide range of different 
platforms.
+The decision for an object oriented language gives the OpenOffice.org source 
project the
+opportunity deliver a fully object oriented architecture.
+<p>
+The following information will give just a rough overview over the overall 
architecture.
+Some components of the OpenOffice.org source project like the help-system or 
the setup
+application are not covered here. Many parts of the OpenOffice.org source 
project
+consists of more than one CVS module. In many cases one block in the 
architecture is
+covered by more than five CVS modules in the source tree.
+<p>
+<a NAME="27"></a><font SIZE="5">Layered architecture</font>
+<p>
+The whole architecture is based on a layered approach. There are four defined 
layers
+where each covers a special area of the functionality.
+<ul>
+<li><font SIZE="4">System Abstraction Layer</font><br>
+This layer encapsulates all system specific APIs and provide a consistent 
object
+oriented API to access system resources in a platform independent manner.
+<li><font SIZE="4">Infrastructure Layer</font><br>
+A platform independent environment for building application, components and 
services
+is provided by this layer. It covers many aspects of an object oriented API 
for a
+complete object oriented platform including a component model, scripting, 
compound
+documents, etc.
+<li><font SIZE="4">Framework Layer</font><br>
+To allow the reuse of implementations in different applications the layer 
provides the
+framework or environment for each application and all shared functionality like
+common dialogs, file access or the configuration management
+<li><font SIZE="4">Application Layer</font><br>
+All OpenOffice.org applications are part 
+  of this layer. The way these applications interact is based on the lower 
+  layers The chart shown below was created to depict the architecture of the 
+  StarOffice suite but it is the same for the OpenOffice.org suite:</li>
+           
+               
+             
+</ul>
+<p>
+<img alt="" border=0 height=330 src="staroffice_layers.gif" width=485>
+<p>
+<a NAME="28"></a><font SIZE="4">System abstraction layer</font>
+<p>
+The layered approach of the system architecture is one of the important facts 
to allow the
+easy porting of the technology to wide range of different system platforms. 
For this the
+architecture defines a virtual layer witch is called the System Abstraction 
Layer (SAL).
+All platform depended implementation take place below this layer or are part 
of some
+optional modules. In an ideal world an implementation of the SAL specific 
functionality
+and recompiling the upper layer module will allow you to run the applications. 
To provide
+the whole set of functionality the optional platform specific modules, like 
telephony
+support or speech recognition, have to be ported, too. To reduce the porting 
effort the set
+of functionality provide by the SAL is reduced to a minima set available on 
every
+platform. Also for some system the layer includes some implementations to 
emulate some
+functionality or behavior. For example on systems where no native multi 
threading is
+supported, the layer can support so called “user land” threads.
+<p>
+At this time the implementation of the platform dependent and independent 
parts of the
+graphical library is linked into one dynamically loaded shared library. So 
there is no well
+defined set of libraries which build up the SAL.
+<p>
+<a NAME="29"></a><font SIZE="4">Operating system layer</font>
+<p>
+The operating system layer (OSL) encapsulates all the operating system specific
+functionality for using and accessing system specific resources like files, 
memory,
+sockets, pipes, etc. The OSL is a very thin layer with an object oriented API. 
In contrast to
+the upper layer this object oriented API is a C-API. This will allow to easily 
port this
+layer to different platforms using different implementation languages. For 
embedded
+systems or internet appliances for examples an assembler language can be used 
to realize
+the implementation.
+<p>
+<a NAME="30"></a><font SIZE="4">Runtime library</font>
+<p>
+The runtime library provides all semi platform independent functionality. 
There is an
+implementation for string classes provided. Routines for conversion of strings 
to different
+character sets are implemented. The memory management functionality resides in 
this
+module.
+<p>
+<a NAME="31"></a><font SIZE="4">Standard Template library</font>
+<p>
+As a generic container library the standard template library is used. It 
supplies
+implementations for list, queues, stacks, maps, etc.
+<p>
+<a NAME="32"></a><font SIZE="4">Visual Class library</font>
+<p>
+The visual class library is one of the core libraries of the OpenOffice.org 
technology. The
+VCL encapsulate all access to the different underlying GUI systems. The 
implementation
+is separated into two major parts. One is completely platform independent and 
includes an
+object oriented 2D graphics API with metafiles, fonts, raster operations and 
the whole
+widget set use by the OpenOffice.org suite. This approach virtually guarantees 
that all
+widgets have the same behavior independently of the used GUI system on the 
different
+platforms. Also the look &amp; feel and the functionality of the widgets are 
on all platforms the
+same.
+<p>
+Because of this design VCL doesn't encapsulate the native widgets or controls 
of the
+underlying GUI system. The platform dependent part implements a 2D-graphic 
drawing
+canvas which is used by the platform independent parts. This canvas redirect 
every
+functionality directly to the underlying GUI system. Currently there exists 
implementation
+for the Win32, X-Windows, OS/2 and Mac. The access to the printing 
functionality,
+clipboard and Drag &amp; Drop is also realized inside the VCL.
+<p>
+<a NAME="33"></a><font SIZE="5">Infrastructure layer</font>
+<p>
+<a NAME="34"></a><font SIZE="4">Virtual Operating System layer</font>
+<p>
+To make the usage of system resources like files, threads, sockets,etc. more 
convenient
+the virtual operating system layer encapsulates all the functionality of the 
operating system layer
+into C++ classes. The C++ classes here offer an easy to use access to all 
system resources
+in an object oriented way.
+<p>
+<a NAME="35"></a><font SIZE="4">Tools libraries</font>
+<p>
+There are different small libraries building up a set of tool functionality. 
This includes a
+common implementation for handling date and time related data. There is in
+implementation for structured storages available. Other implementation provide 
a generic
+registry, typesafe management and persistence of property data.
+<p>
+<a NAME="36"></a><font SIZE="4">Universal Network Objects</font>
+<p>
+The so called Universal Network Objects are the component technology used 
inside the
+OpenOffice.org products. The component technology does not depend on any 
graphical
+subsystem, but is heavily based on multithreading and network communication
+capabilities.
+<p>
+The system consists of several pieces. An IDL-Compiler, which generates out of 
the
+specified definition of an interface a binary representation and the 
associated C-Header or
+Java technology files. The binary representation is platform and language 
independent
+and is at runtime used to marshall argument for remote function calls or to 
generate code
+on the fly for a specific language to access the implementation provided by 
the interface.
+This technique reduced the amount of generated code for the different language 
binding
+tremendously. The drawback is that not only for every language binding a 
specific
+backend for the code generation is needed, it is that for every specific 
compiler a bridging
+module is needed at runtime.
+<p>
+Many parts of the UNO technology are implemented as UNO components. This helps 
to
+create a very flexible system and also the extension of the system at runtime. 
For example
+by providing new bridges or communication protocols. UNO provides transparent 
access
+to components over the network or locally. For the communication over the 
network IIOP
+can be used. If the component are realized as shared libraries the component 
can be
+loaded by UNO into to the process memory of the application and every access 
of the
+component is just like a function call without any marshalling of arguments 
which is
+required for remote function call.
+<p>
+<a NAME="37"></a><font SIZE="4">Universal Content Broker</font>
+<p>
+The Universal Content Broker allows all upper layers to access different kind 
of structure
+content transparently. The UCB consists of a core and several Universal Content
+Providers which are used to integrate different access protocols. The current
+implementations provides content providers for the HTTP protocol, FTP protocol,
+WebDAV protocol and access to the local file system.
+<p>
+The UCB does not only provide access to the content, it also provides the 
associated meta
+information to the content. Actually there is synchronous and asynchronous 
mode for
+operations supported.
+<p>
+<a NAME="38"></a><font SIZE="4">OpenOffice.org Compound Objects</font>
+<p>
+The Compound Object implementation provide the functionality to build compound
+documents, where for example a spreadsheet is being embedded in a 
word-processor
+document.
+<p>
+The current implementation provides a platform independent implementation of 
all this
+functionality for compound documents and for embedding of visual controls like 
multi
+media players or different kind of viewers. All content of compound document 
is stored in
+a structured storage. The current implementation is compatible to the OLE 
structure
+storage format. This allows access to OLE compound documents on every platform 
where
+OpenOffice.org is available. On the Windows platform the implementation 
interact with
+the OLE services and will so allow a tight integration of all OLE capable 
applications.
+<p>
+<a NAME="39"></a><font SIZE="4">OpenOffice.org Scripting and Basic 
library</font>
+<p>
+The scripting functionality coming with the OpenOffice.org suite is a BASIC 
dialect
+featuring an interpreter that parses the source statements and generates meta 
instructions.
+These instructions can be executed directly by the supplied meta instructions 
processor or
+can be made persistent in modules or libraries for later access. All 
functionality supplied
+by the upper level application components is accessible via a scripting 
interface in the
+component technology. This will help to ensure that new components using the
+OpenOffice.org component technology can be fully scriptable without spending a 
huge
+amount of effort.
+<p>
+The scripting interfaces are also implemented as components which will allow 
an easy
+integration of other scripting languages. The interfaces provide functionality 
like core
+reflection and introspection similar to the functionality by the Java platform.
+<p>
+<a NAME="40"></a><font SIZE="5">Framework layer</font>
+<p>
+<a NAME="41"></a><font SIZE="4">OpenOffice.org Application framework 
library</font>
+<p>
+The Application framework library provides an environment for all 
applications. All
+functionality shared by all application and not provided by any other layer is 
realized
+here. For the framework every visual application has to provide a shell and 
can provide
+several views. The library provides all basic functionality so only the 
application specific
+features have to be added.
+<p>
+The Framework is also responsible for content detection and aggregation. The 
template
+management is provided here and the configuration management too. The 
Framework is
+in some areas related to the compound documents, because of the functionality 
for
+merging or switching menu- and toolbars. Also the capability for customization 
of all
+applications is provided by the library.
+<p>
+<a NAME="42"></a><font SIZE="4">SVX Library</font>
+<p>
+The SVX library provides shared functionality for all applications which is 
not related to
+a framework. So part of the library is a complete object oriented drawing 
layer which is
+used by several applications for graphic editing and output. Also a complete 
3D-rendering
+systems is part of the drawing functionality.
+<p>
+The common dialogs for font selection, color chooser, etc. are all part of 
this library. Also
+the whole database connectivity is realized here.
+<p>
+<a NAME="43"></a><font SIZE="5">Application layer</font>
+<p>
+All applications like the wordprocessor application, spreadsheet application, 
presentation
+application, charting application, etc. build up this layer. All these 
applications are realized
+as shared libraries, which are loaded by the application framework at runtime. 
The
+framework provides the environment for all these applications and also 
provides the
+functionality for how these applications can interact.
+<p>
+<a NAME="44"></a><font SIZE="5">CHAPTER 6</font>
+<br>
+<font SIZE="5">Build Environment</font>
+<p>
+The following information provides an overview of the proposed Build 
Experience for
+OpenOffice.org and how we hope it will evolve. This information is intended for
+developers and engineering managers.
+<p>
+<a NAME="45"></a><font SIZE="5">Open Source projects</font>
+<p>
+Open Source projects follow by now a very familiar pattern when it comes to 
providing a
+Build Experience. This translates as follows:
+<ol>
+<li>cvs checkout OpenOffice
+<li>./configure
+<li>make
+<li>make install</li> 
+</ol>
+The build tools are well known to the Open Source community - i.e., gmake, 
autconf, etc.
+This is the Build Experience that we want OpenOffice.org source project 
developers to
+work within. Not only should this be the sum total of the commands involved, 
but more
+importantly milestone builds should build cleanly on all supported platforms.
+The OpenOffice.org technology in its first release under the OpenOffice.org 
source
+project will not support the mode described above. The mode initially 
supported will not
+be far from this model, and it will contain the foundation for evolving to 
this model. The
+only implication is that build tools may not be the ones most familiar to the 
open source
+community. Sun is committed to providing a product that builds. This document 
will
+describe this Build Experience.
+<p>
+It is important to understand that the Build Experience will be an evolving 
model, one
+that will grow and gain from the experience of the Open Source Developer 
Community.
+<p>
+The task facing us is a challenging one. The OpenOffice.org suite is a very 
large
+application from any standpoint. It is a complex application consisting mainly 
of C++
+code employing templates and exception handling and supporting independent 
language
+binding for a distributed component based architecture.
+<p>
+<a NAME="46"></a><font SIZE="5">The Build Experience</font>
+<p>
+The Build Experience will cover the following areas:
+<ul>
+<li>Build Requirements
+<li>Downloading the Source
+<li>Build Prerequisites
+<li>Build and Install Instructions
+<li>Build Tools &amp; Makefiles
+<li>Build Environment
+<li>Build Troubleshooting
+<li>Porting to New Platforms
+<li>Build Documentation and Infrastructure</li>   
+</ul>
+<p>
+<a NAME="47"></a><font SIZE="4">Build Requirements</font>
+<p>
+The OpenOffice.org sources will build on the Solaris(TM) operating 
environment, Linux,
+and WIN32 platform. Work is in progress on the Macintosh platform. Each system 
will
+describe the software and hardware requirements to build on their respective 
systems.
+Typical of these will the version of gcc, the Java Technology JDK , hard disk 
and RAM
+sizes.
+<p>
+It is crucial that these requirements be understood at the outset. Building the
+OpenOffice.org sources is not a task to be taken lightly. It may turn out to 
be the largest
+open source project ever in terms of source size and time to build. The source 
and build
+environment size is in the region of 500MB and consists of approximately 
40,000 files. It
+can take up to 18 hours to fully build from scratch, but this is rarely 
needed. The build
+environment is prepared to allow working with milestone builds.
+<p>
+<a NAME="48"></a><font SIZE="4">Downloading the Source</font>
+<p>
+The source may be downloaded using CVS, or ftp can be employed to download 
gzipped
+tarballs of the source. In addition, milestone completed builds will be made 
available in
+gzipped tarball format plus daily snapshots of the source.
+<p>
+<a NAME="49"></a><font SIZE="4">Build Prerequisites</font>
+<p>
+The OpenOffice.org technology relies on a number of external sources to be 
built.
+Instructions on where to locate and download these will be available.
+<p>
+<a NAME="50"></a><font SIZE="4">Build and Install Instructions</font>
+<p>
+The OpenOffice.org technology will use autoconf to check the integrity of the 
build
+environment and to set up the correct build environment on the supported 
platforms.
+<p>
+After setting up the build environment, the build and install instructions 
will support the
+make and make install concepts. Details on building all the source as well as 
build
+components will be available.
+<p>
+<a NAME="51"></a><font SIZE="4">Build Tools &amp; Makefiles</font>
+<p>
+The OpenOffice.org technology is built using dmake from the 
http://dmake.wticorp.com .
+This is itself an open sourced project. The syntax is a make like syntax. The 
dmake
+options will support a dmake all, dmake &lt;component&gt; and dmake install 
concepts.
+<p>
+The OpenOffice.org source project team has also developed a number of 
development
+tools including support for Interface Definition Language formats, resource 
pre-processors
+and bitmap creators. All these will be fully explained.
+<p>
+<a NAME="52"></a><font SIZE="4">Build Environment</font>
+<p>
+The OpenOffice.org technology relies on a large set of environment variables 
as well as
+compiler pre-processor options and flags. These will be documented to support 
greater
+understanding of the build environment among developers.
+<p>
+The OpenOffice.org technology is a CVS module based source tree. These CVS 
modules
+will have an overview explanation plus an explanation of the order in which 
they are built.
+<p>
+<a NAME="53"></a><font SIZE="4">Build Troubleshooting</font>
+<p>
+A troubleshooting guide and Build FAQ will be published to support developers.
+<p>
+<a NAME="54"></a><font SIZE="4">Porting to Other Systems</font>
+<p>
+The OpenOffice.org technology for its supported platforms will rely on a 
bootstrap
+process that is in place in order to build it. To port the OpenOffice.org 
technology,
+developers will need to know how to create this bootstrap in the first place.
+<p>
+<a NAME="55"></a><font SIZE="4">Build Documentation &amp; Infrastructure</font>
+<p>
+An online Build manual will exist to cover all the topics described above. 
There will also
+be a support infrastructure in place to deal with specific build issues. 
Bugzilla will be
+employed to store all bugs and issues arising from the build.
+<p>
+<a NAME="56"></a><font SIZE="5">Outlook</font>
+<p>
+Providing a clean Build Experience which is familiar and consistent to the 
Open Source
+Community is not only our aim but we see it as critical to the success of this 
project.
+Although this experience has not yet reached full fruition, Sun has determined 
not to
+delay the release of the source for this reason. It is more important that we 
engage with
+the community than to wait until we have replicated the same build experience. 
To this
+end we are committed to providing as clean a build as possible now while 
putting an
+infrastructure in place to allow us to evolve to a more standard model.
+<p>
+<a NAME="57"></a><font SIZE="5">Current Source Tree</font>
+<p>
+The OpenOffice.org source project will be among the largest open source 
projects. There
+are about 70 CVS modules with more than 35,000 files providing about 5,000,000 
lines
+of code.
+<p>
+Appendix A gives a first overview over all CVS modules with a short 
description of the
+purpose. Additional information will be made available at the website
+/ .
+<p>
+<a NAME="58"></a><font SIZE="5">CHAPTER 7</font>
+<br>
+<font SIZE="5">Future Steps</font>
+<p>
+<a NAME="59"></a><font SIZE="5">An Open World Component Technology</font>
+<p>
+<a NAME="60"></a><font SIZE="4">Current Situation</font>
+<p>
+Nowadays there is no Component Technology in the Open world which is accepted 
by
+everyone. There exist different open source projects which are based on a 
component
+model, but each of them uses its own concept or technology.
+<p>
+KDE and GNOME are in the Desktop domain. Both of them are using CORBA as a
+low-level communication layer but the component models on top are completely 
different
+in each project. So today it is essentially impossible to write a component 
which can be
+used in both desktop environments. Also the current CORBA specification doesn't
+include a model for compound documents or other desktop software related 
functionality. 
+So there are different efforts underway to overcome these problems, but they 
lack
+interoperability. Another issue with most CORBA implementations is that these 
were
+designed to run distributed network based applications using remote services. 
So using
+such CORBA implementation with all the network communication overhead in an
+infrastructure for a desktop component model, which in most cases will run on 
one local
+machine, will be in most cases the wrong approach.
+<p>
+When the Mozilla open source project started, there was a requirement to have a
+lightweight component model which could be easily ported to different 
platforms. So
+XPCOM was created.
+<p>
+The reasons why the OpenOffice.org suite currently employs its own component 
model
+are all based on these issues. Additionally, there is the requirement to 
provide a similar set
+of office suite functionality and technology to the widely used Microsoft 
products in this
+domain.
+<p>
+<a NAME="61"></a><font SIZE="4">A Short Term Solution</font>
+<p>
+As discussed above, there is no component technology available which is well 
accepted,
+portable and used prevalently. So to provide office functionality in different
+environments, it is necessary that different component technologies be 
supported.
+Supporting different component technologies is difficult but possible, but 
supporting
+different concepts or philosophies is quite impossible.
+<p>
+Because OpenOffice.org's component technology is able to use software bridges 
to access
+other components' worlds, it is possible to integrate the office components 
into different
+environments, such as GNOME and Mozilla. The bridging can be easily done in an
+environment where the basic concept for the components are quite similar. In 
any other
+case in can be very hard to provide this bridging functionality hiding all 
conceptual
+differences. In most cases developers and users will have to deal with the 
different
+concepts and philosophies. One of the annoying problems for example will be the
+different naming convention. Also if a bridge needs to deal with a complex 
conversion of
+arguments and calling conventions, performance issues could arise.
+<p>
+So in the near future we will provide bridges from OpenOffice.org component 
technology
+to XPCOM and Bonobo. OpenOffice.org components can than be used in these
+environment as integrated components.
+<p>
+<a NAME="62"></a><font SIZE="4">Vision</font>
+<p>
+The past has shown the importance of a homogenous component technology and an
+object model which integrates all software components into one easy-to-use 
building set.
+The use of existing building blocks in different development environments like 
C/C++,
+Java technology, Pyton, Perl, VB, etc. should be transparently provided by a
+component technology.
+<p>
+The object model should define the reuse of existing interfaces and components 
and the
+matching of concepts over a wide array of applications. It should define 
common base
+concepts that will be used no matter what component is being reused or what 
application
+is being built.
+<p>
+One challenge for the Open World will be to provide one efficient component 
technology
+and a homogenous, superior object model for the desktop, the office 
productivity suite,
+and the browser.
+<p>
+<a NAME="63"></a><font SIZE="4">Unified Component Ware</font>
+<p>
+A unified Component Technology should meet what is required for today's
+solutions. 
+This will not guarantee that the technology will fulfill all future
+requirements, but it will allow the replacement of the existing solutions over 
time and it
+will increase acceptance by the Open World. To ensure a high level of 
acceptance, open
+standards should be used whenever appropriate.
+<p>
+CORBA is an open standard that is widely accepted for building heterogeneous
+distributed systems. On the other hand the CORBA specification falls short in 
the areas of
+compound documents and small components for personal productivity. This has 
changed
+to some extent with the CORBA 3.0 specification, but there are still open 
issues. For a
+desktop environment there is a need for support of in-process components and 
for local
+communication features, which are today still open to implementation in the 
CORBA
+environment. To the extent that these features are transparent to all 
components, there is
+no need for a clear specification, but in most cases today the developer of 
the component
+and the developer of the application using these components has to deal with 
this
+situation. Another problem for an open component system is the lack of a 
technology and
+a concept for writing cross-platform graphical components.
+<p>
+ORBit is the CORBA implementation used by most of the GNOME components. It is 
fast
+and lean, allowing the use of CORBA in areas that would not normally seem 
practical. It
+supports much of the CORBA 2.2 standard, and has hooks that allow easy 
integration
+with GNOME programs. ORBit provides language binding for Perl, C++, Tcl, 
Python,
+ADA and Eiffel, but currently not for Java technology. It allows C and C++ 
objects in the
+same address space to short-circuit calls (i.e. no on-the-wire marshaling) for 
maximum
+speed. The ORBit is a good candidate starting point for an open component 
technology.
+It could provide the functionality for all communication infrastructure and 
will allow
+interoperability with CORBA. While CORBA is an accepted standard, the ice 
Component
+Model provides the ability to bridge easily from one component environment to 
another,
+which will for example allow the usage of components in the Microsoft world. 
Also, the
+Mozilla XPCOM technology is a very lightweight and lean system that it could 
provide
+some advantages for an overall system.
+<p>
+On top of this communication and low level object infrastructure there should 
be a clear
+definition of interfaces for commonly used functionality, such as factories 
and reference-counted
+objects. There is also a requirement for a clear concept for lifetime 
management
+of components, activation, security and the integration into a graphical 
subsystems. All
+these interfaces should be designed for use in many different application 
domains.
+Especially for personal productivity tools and desktop environments, we need a 
clear
+concept and definition of interfaces to build up an infrastructure for:
+<ul>
+<li>Compound Documents and Component Reuse
+<li>Document Models
+<li>Content Storage
+<li>Monikers
+<li>Control Components
+<li>Component activation (Shared library components, process-based components 
and
+distributed components)
+<li>Printing</li>
+</ul>
+It is important that these specifications be useful in many application 
domains, and that
+standards that cover existing areas be used and supported.
+<p>
+Not every developer wants to deal with all the details of a component model. 
Therefore,
+to achieve acceptance, it is important to provide helper libraries for 
different languages
+that make the usage and the implementation of components as easy as possible.
+<p>
+<a NAME="64"></a><font SIZE="4">Outlook</font>
+<p>
+We have started an initiative for a new homogenous component technology by 
talking to
+several developers in different open source projects. We will work together 
with different
+groups to provide a leading edge component technology for a desktop 
environment and
+distributed applications. To the extent that standards are available and meet 
the
+requirements, they will be used. We would like to see the best pieces of 
today's existing
+technologies (e.g. Bonobo, XPCOM, UNO ...) be integrated into this technology.
+<p>
+Also we would like to start an effort with several open source projects to 
define the
+concept, the naming conventions and philosophy for an Open World component 
mode. By
+the time the component model is available it will be used by all OpenOffice.org
+components, and the OpenOffice.org API will be adapted over time to meet the
+specification of the new component model. In the future this will allow 
writing highly
+sophisticated applications and solutions by using existing components 
exclusively.
+<p>
+<a NAME="65"></a><font SIZE="5">CHAPTER 8</font>
+<br>
+<font SIZE="5">Appendix A</font>
+<p>
+<table BORDER="1" WIDTH="500">
+<tr>
+<th>Project</th>
+<th>Modules</th>
+<th>Description</th>
+</tr>
+<tr>
+<td>Xml file formats</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>xmloff</td>
+<td>Import/Exportfilter for XML</td>
+</tr>
+<tr>
+<td></td>
+<td>sax</td>
+<td>SAX UNO-components for xml-parsing and writing.</td>
+</tr>
+<tr>
+<td>L10N</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>i18n</td>
+<td>Internationalization Functionality.</td>
+</tr>
+<tr>
+<td></td>
+<td>transex3</td>
+<td>L10N Tools</td>
+</tr>
+<tr>
+<td>openoffice.org<br>wordprocessor<br>application</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>sw</td>
+<td>OpenOffice.org wordprocessor application</td>
+</tr>
+<tr>
+<td></td>
+<td>starmath</td>
+<td>OpenOffice.org math application</td>
+</tr>
+<tr>
+<td></td>
+<td>lingu</td>
+<td>Linguistics stub</td>
+</tr>
+<tr>
+<td>Openoffice.org spreadsheet application</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>sc</td>
+<td>openoffice.org spreadsheet application</td>
+</tr>
+<tr>
+<td></td>
+<td>scaddins</td>
+<td>openoffice.org spreadsheet application addins</td>
+</tr>
+<tr>
+<td>Graphic applications</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>sd</td>
+<td>OpenOffice.org drawing application</td>
+</tr>
+<tr>
+<td></td>
+<td>sch</td>
+<td>OpenOffice.org charting application</td>
+</tr>
+<tr>
+<td></td>
+<td>goodies</td>
+<td>Collection of graphic filters and 2d and 3d drawing</td>
+</tr>
+<tr>
+<td></td>
+<td>Svx</td>
+<td>Collection of graphic layers and Collection of API used by
+all OpenOffice.org Applications</td>
+</tr>
+<tr>
+<td>Database Access</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>sdb</td>
+<td>Database driver layer.</td>
+</tr>
+<tr>
+<td></td>
+<td>dbaccess</td>
+<td>Database access layer</td>
+</tr>
+<tr>
+<td></td>
+<td>connectivity</td>
+<td>OpenOffice.org Base Connectivity</td>
+</tr>
+<tr>
+<td>Porting</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>sal system abstraction layer</td>
+<td>Low level API for the integration of all supported platforms.</td>
+</tr>
+<tr>
+<td>Buildtools and Buildenvironment</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>solenv</td>
+<td>Buildenvironment tools</td>
+</tr>
+<tr>
+<td></td>
+<td>dmake</td>
+<td>Make application</td>
+</tr>
+<tr>
+<td></td>
+<td>rscpp</td>
+<td>Preprocessor for the Resource Compiler.</td>
+</tr>
+<tr>
+<td></td>
+<td>xml2cmp</td>
+<td>Processor for Uno-ComponentDescriptions</td>
+</tr>
+<tr>
+<td></td>
+<td>jtools</td>
+<td>Java technology helper applications</td>
+</tr>
+<tr>
+<td></td>
+<td>config_office</td>
+<td>Helper for buildenvironment configuration</td>
+</tr>
+<tr>
+<td>Graphic System Layer</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>vcl</td>
+<td>Visual Class Library</td>
+</tr>
+<tr>
+<td></td>
+<td>rsc</td>
+<td>Resource compiler</td>
+</tr>
+<tr>
+<td></td>
+<td>toolkit</td>
+<td>VCL Implementation of the UNO Toolkit and the UNO Controls</td>
+</tr>
+<tr>
+<td></td>
+<td>UnoControls</td>
+<td>UNO controls</td>
+</tr>
+<tr>
+<td></td>
+<td>forms</td>
+<td>Forms implementation</td>
+</tr>
+<tr>
+<td>Printing</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>xprinter</td>
+<td>Stubs for the Bristol X-Printer</td>
+</tr>
+<tr>
+<td>Scripting Engines</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>basic</td>
+<td>Basic interpreter and the basic runtime library</td>
+</tr>
+<tr>
+<td></td>
+<td>basctrl</td>
+<td>Basic IDE</td>
+</tr>
+<tr>
+<td>Utilities</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>tools</td>
+<td>Common used base classes (string, date, time, streams, ...)</td>
+</tr>
+<tr>
+<td></td>
+<td>svtools</td>
+<td>Collection of Patterns and help classes</td>
+</tr>
+<tr>
+<td></td>
+<td>std2</td>
+<td>STL port - a derivative from the SGI/STL.</td>
+</tr>
+<tr>
+<td></td>
+<td>io</td>
+<td>UNO I/O services</td>
+</tr>
+<tr>
+<td></td>
+<td>eventattacher</td>
+<td>Component based event handling</td>
+</tr>
+<tr>
+<td></td>
+<td>unzip</td>
+<td>Compression library</td>
+</tr>
+<tr>
+<td></td>
+<td>unotools</td>
+<td>UNO helper classes</td>
+</tr>
+<tr>
+<td></td>
+<td>extensions</td>
+<td>Additional components</td>
+</tr>
+<tr>
+<td></td>
+<td>external</td>
+<td>External references</td>
+</tr>
+<tr>
+<td></td>
+<td>configmgr</td>
+<td>Configuration management</td>
+</tr>
+<tr>
+<td></td>
+<td>sot</td>
+<td>Compatible storage implementation.</td>
+</tr>
+<tr>
+<td>Installation</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>setup2</td>
+<td>Setup Application</td>
+</tr>
+<tr>
+<td></td>
+<td>scp</td>
+<td>Packaging scripts</td>
+</tr>
+  <tr>
+<td></td>
+<tr>
+<td></td>
+<td>Scptools</td>
+<td>Packaging tools</td>
+</tr>
+<tr>
+<td></td>
+<td>Instsetoo</td>
+<td>Installation set creation</td>
+</tr>
+<tr>
+<td></td>
+<td>Readlicense</td>
+<td>Readme and license texts</td>
+</tr>
+<tr>
+<td></td>
+<td>Extras</td>
+<td>Demo documents, help files, resources...</td>
+</tr>
+<tr>
+<td></td>
+<td>Wizards</td>
+<td>Wizards</td>
+</tr>
+<tr>
+<td>UCB (Universal Content Broker)</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>chaos</td>
+<td>Universal Content Broker</td>
+</tr>
+<tr>
+<td></td>
+<td>inet</td>
+<td>Internet transport protocols (FTP, HTTP, LDAP, IMAP, NNTP, POP3, 
SMTP).</td>
+</tr>
+<tr>
+<td></td>
+<td>uui</td>
+<td>UCB Graphical User Interface Components</td>
+</tr>
+<tr>
+<td></td>
+<td>ucbhelper</td>
+<td>Helper classes for UCB users and Content Provider implementers</td>
+</tr>
+<tr>
+<td></td>
+<td>store</td>
+<td>Reliable, recoverable storage filesystem</td>
+</tr>
+<tr>
+<td></td>
+<td>ldapber</td>
+<td></td>
+</tr>
+<tr>
+<td>StarOffice API</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>api</td>
+<td>IDL definitions of all interfaces of the OpenOffice.org API</td>
+</tr>
+<tr>
+<td></td>
+<td>offuh</td>
+<td>Generates UNO headers.</td>
+</tr>
+<tr>
+<td>UDK (Uno
+Development
+Kit) /
+Componenet
+Technology</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>cppu</td>
+<td>C++ UNO core, C++ bridges</td>
+</tr>
+<tr>
+<td></td>
+<td>unoidl</td>
+<td>Interface Definition Language compiler.</td>
+</tr>
+<tr>
+<td></td>
+<td>cppuhelper</td>
+<td>C++ UNO implementation helpers</td>
+</tr>
+<tr>
+<td></td>
+<td>javaunohelper</td>
+<td>Java technology Uno helper implementations</td>
+</tr>
+<tr>
+<td></td>
+<td>jurt</td>
+<td>Java technology UNO Runtime</td>
+</tr>
+<tr>
+<td></td>
+<td>bridges</td>
+<td>UNO bridges from any language</td>
+</tr>
+<tr>
+<td></td>
+<td>remotebridges</td>
+<td>UNO interprocess bridges</td>
+</tr>
+<tr>
+<td></td>
+<td>stoc</td>
+<td>OpenOffice.org components - basic UNO services</td>
+</tr>
+<tr>
+<td></td>
+<td>cpputools</td>
+<td>Collection of UNO utility and runtime programs</td>
+</tr>
+<tr>
+<td></td>
+<td>registry</td>
+<td>Registry</td>
+</tr>
+<tr>
+<td></td>
+<td>codemaker</td>
+<td>IDL compiler backend</td>
+</tr>
+<tr>
+<td></td>
+<td>rdbmaker</td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>vos</td>
+<td>Object orientated Framework above sal. This module encapsulates sal in C++ 
classes for ease of use.</td>
+</tr>
+<tr>
+<td>Object Integration</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>So3</td>
+<td>Compound document implementation</td>
+</tr>
+<tr>
+<td></td>
+<td>Sj2</td>
+<td>Integration of embedded objects</td>
+</tr>
+<tr>
+<td></td>
+<td>Ie</td>
+<td>Integration of internet explorer</td>
+</tr>
+<tr>
+<td>Application Framework</td>
+<td></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td>Sfx2</td>
+<td>Application framework</td>
+</tr>
+<tr>
+<td></td>
+<td>offmgr</td>
+<td>Database components</td>
+</tr>
+<tr>
+<td></td>
+<td>res</td>
+<td>Bitmap resources</td>
+</tr>
+<tr>
+<td></td>
+<td>idl</td>
+<td>IDL compiler for the resources.</td>
+</tr>
+<tr>
+<td></td>
+<td>framework</td>
+<td>Provides Frames Hierarchy for logical managing of 
components/documents.</td>
+</tr>
+<tr>
+<td></td>
+<td>desktop</td>
+<td>OpenOffice.org (desktop) application</td>
+</tr>
+<tr>
+<td></td>
+<td>DocumentProperties</td>
+<td>Document properties handling</td>
+</tr>
+</table><p></p>
+</body>
+</html>

Reply via email to