<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type"
 content="text/html; charset=ISO-8859-1">
  <title>binfilter</title>
</head>
<body>
<h1>binfilter project<br>
</h1>
(short form of binary filters)<br>
<h2>Summary:</h2>
Before implementing the OpenOffice XML formats the main file
format was the binary format for all applications. In OOo 1.0 and OOo
1.1 we have both file formats included and did change the default
format to XML. The binary formats exist as long as the applications
exist. They were developed straightforward and run through various bug
fixing/extension cycles. When starting implementing that filters it was
straightforward to directly stream in and out the object model data.
This was done mostly in implementing streaming operators at/for that
classes defining the object model.<br>
<p>
Today, after that fixing/extension cycles, that format has several
problems:<br>
Due to extensions/changes (which is possible in small amounts in the
binary files but always needs to stay readable for older versions,
including previously made errors) the format is no longer
straightforward. In many parts huge transitions to older object model
data are done at saving and transition to newer data structures at
loading.<br>
The biggest problem is the streaming approach itself. This prevents us
from doing necessary bigger changes at the application cores. It is
possible to add new data to the binary format in a compatible manner,
but at least at writing the corresponding older document model data
needs to be created and written compatible for older versions. This
also leads to having much data twice in the files. It is not possible
to change the structure between the data chunks (which are the core
classes normally) at all.<br>
To get rid of that not well structured approach, the XML formats were
developed and introduced as a first step. Now, in a second step, we
want to break that document model core blockage by removing the old
binary formats from the cores. Thus, a OOo 1.1 should be the last
version containing XML and the binary filters. This will allow us to do
a lot of more than necessary changes in the application cores for
future versions.<br>
This opens the problem that for later versions we still want to offer
the user the possibility to read/write our 'old' binary file formats.
There are different possibilities to do that which will now be shown.</p>
<p>Thus, the targets of this project are:</p>
<ul>
  <li>Remove the binary filters from the document model cores</li>
</ul>
<ul>
  <li>
    <p> Find and supply a possibility for the users of OOo after 1.1
to work with the 'old' binary file formats. This is called Filter
Migration</p>
  </li>
</ul>
The first point is obvoiusly not a big problem, but the 2nd one is.
This new project thus deals with solvong the second point.<br>
After the evaluation of different possibilities of Filter Migration it
seems to be the safest and simplest to take a copy of the modules
containing the binary filters and 'strip' everything that is not
needed. Thus, the remaining modules will still contain the old data
model cores, parts of the API implementations and the XML
implementations. It is simplest to use XML as exchange format since we
have a way to read/write XML with the current application cores and XML
is well defined and will stay compatible to later OOo versions.<br>
<br>
<h2>Project Description:</h2>
This OOo project covers the Filter Stripping approach to enable us
to remove the outdated binary filters contained in OOo. Main reason is
that the old filters are blocking future development. Since in later
OOo versions there needs to be a possibiulity offered to still work
with file formats from OOo 1.0 and OOo 1.1, this project will develop a
solution for that. The solution will provide 'stripped' (reduced)
versions of the core modules which keep the binary filter functionality
and will be able to import/export from there to XML. Thus we will
derive isolated, reduced filter modules for the old binary file formats.<br>
</body>
</html>
