General

Components

Community

Development

PPMC

ASF

Simple API Release Notes

What is the Simple Java API for ODF?

The Simple Java API for ODF is an easy-to-use, high-level Java API for creating, modifying and extracting data from ODF 1.2 documents. It is written in pure Java and does not require that you install any document editor on your system. The Simple Java API for ODF is a high level abstraction of the lower-level ODFDOM API.

New Release 0.6.6

We are pleased to announce the release of the Simple Java API for ODF version 0.6.6 on Auguest 12th. The improvements in this version include:

You can download it here. The full release notes can be found here.

You are welcomed to give us any feedback by Bugzilla, eMail or forum.

Project roadmap and schedule

The Simple Java API for ODF adhears to the "Release Early and Often" development philosophy. We will target a monthly release, for the end of each month. Code that is ready makes it into that month's release. Code that is not yet ready will wait.

Proposed Roadmap:

More work will be started in Apache.

Frequently Asked Questions

For Users

How to download and install

You can get Simple Java API for ODF as binary distribution from the [http://odftoolkit.org/projects/simple/downloads download] area. There you'll find Javadocs as well. To obtain source code, please refer to [[#download_source|development section]].

How to start development

I suggest you to start from an overview of this project. [[PackageLayer|This page]] will give you an overall introduction of the package structures. After that, you can go to the [http://simple.odftoolkit.org/cookbook/ Cookbook] and [http://simple.odftoolkit.org/ Demos] to read some code samples. And then, you can start your own program to manipulate ODF document.

If you are familar with ODFDOM, [http://odftoolkit.org/projects/simple/pages/PackageLayer#APIchanges Here] are the API changes from ODFDOM.

Prerequisites

In addition to the Simple Java API JAR file you will need to download and install the following runtime prerequisite:

Code examples

You can find sample codes from our [http://simple.odftoolkit.org/ Cookbook] and [http://simple.odftoolkit.org/ Demos].

The Simple Java API for ODF uses Bugzilla to track the defects. You can report defects [http://odftoolkit.org/bugzilla/buglist.cgi?product=simple&order=bugs.bug_id here].

===For Developers===

How to download source

First, install [http://mercurial.selenic.com/wiki/ latest Mercurial]

Second, setup Mercurial (optional):
Config file Mercurial.ini on Windows or /.hgrc on Unix. Enhance the default configuration, using GIT diff and enable [http://mercurial.selenic.com/wiki/Win32TextExtension default plugin] avoid different line breaks in the source.

[ui]
username = your Name <yourLoginName@odftoolkit.org>
;merge = your-merge-program (or internal:merge)

[diff]
git = 1

[defaults]
diff=-p -U 8

[extensions]
# Enables mercurial EOL extension for line break handling
# See http://mercurial.selenic.com/wiki/EolExtension (bundled since 1.5.4)
eol =

# It'll remove unknown files and empty directories by default. 
# Usually you call 'hg update -C' and 'hg purge' in sequence
# See http://mercurial.selenic.com/wiki/PurgeExtension  (bundled)
hgext.purge=

[eol]
# Converts mixed line ending within a file to LF (Unix) format 
# before adding the file to the source repository
# See http://mercurial.selenic.com/wiki/EolExtension
only-consistent = False

Now, get the source code from the Simple project [http://www.selenic.com/mercurial/wiki/ Mercurial] repository. Please see below for a short introduction to using Mercurial on odftoolkit.org. There's also a more general help on how to use source control systems on odftoolkit.org. The command

hg clone https://hg.odftoolkit.org/hg/simple~code-base
will download the repository into a new directory.
Please note that by this you'll get the latest changeset. If you for example want stable release 0.2, you may want to use
hg clone https://odftoolkit.org/hg/simple~code-base -r v0.2
Developers however always work on the latest changeset.

====How to build and run the unit tests===== After the source code is checked out, now get and install [http://maven.apache.org/ Apache Maven]. On command line test your installation with "mvn -v".

If Maven is correctly installed, change into the project directory and build with command "mvn".

==Communications== You can subscribe to the project's mailing lists from [http://odftoolkit.org/projects/simple/lists this page]. The "users" list is for discussions about using the toolkit, and the "dev" list is for discussing the development of the toolkit. Active developers should also subscribe to the "issues" and "commit" mailing lists so they will receive those automatic notifications.

==Easy entry level tasks== TBD

==Design of the API== The design principle is "make it easy for users to locate the functions they want".

org.odftoolkit.simple.Document is the abstract base class which the specific document classes are derived from: TextDocument, SpreadsheetDocument, PresentationDocument, GraphicsDocument and ChartDocument.

For each document type we have a subpackage that contain additional classes related to that kind of documents. So org.odftoolkit.simple.chart has classes related to chart, org.odftoolkit.simple.text has classes related to text content, and org.odftoolkit.simple.presentation has classes related to presentation documents.

Besides the packages for different document types, there are additional packages defined for important common ODF features which are available across all kinds of documents, such as table, meta and style.

There is another package named org.odftoolkit.simple.common, which contains functions that are not related with a specific document type nor a specific feature. For example, the text extractor functions are put in this package.

==How to contribute patches== If you want to contribute a patch to this project, following below steps:

How to review patches

As a reviewer, you need to carefully read the source code, run the unit tests, to make sure the new contributed code won't hurt the quality of this project. Step 1. Write a comment to [http://odftoolkit.org/bugzilla/buglist.cgi?product=simple&order=bugs.bug_id bugzilla], saying you would like to review this patch. Step 2. Check out the source code following the steps in [[#download_source|development selection]], and download the patch. Step 3. Merge the patch to the source code with Mecurial command: hg import --no-commit ../someFile.patch Step 4. Carefully read the code to make sure the code follows the "[[#Design_of_the_API|Design of the API]]", the code can reach the goal and the code won't bring other problems. Step 5. Carefully check the unit test code to make sure every public method has been enough tested. Step 6. Run the unit tests with Maven command to see if all the unit tests pass: mvn Step 7. Write comment to bugzilla if you think anything needs to be improved. Step 8. Repeat step 2 to 7 after the contributor improves the patch. *Step 9. Push the patch to repository with Mecurial command if you think the patch is good enough: hg commit -A -u "Developer:xxx Reviewer:yyy" -m "#bug XY# Description of changes" hg push https://:@odftoolkit.org/hg/simple~code-base

Reference material

ODF

The current draft of the OASIS ODF 1.2 standard can be downloaded [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#odf12 here].

Commands line tools

[http://odftoolkit.org/projects/odfdom/pages/Development#Mercurial Here] is a list of the most frequently used commands for Mercurial. [http://odftoolkit.org/projects/odfdom/pages/Development#Maven Here] is a list of the most frequently used commands for Maven.


Powered by the Apache CMS.

Apache "ODF Toolkit" is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Copyright © 2011 The Apache Software Foundation Licensed under the Apache License, Version 2.0. Contact Us
Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
Other names appearing on the site may be trademarks of their respective owners.