Interoperability at Apache Software Foundation

21
[email protected] Paolo Mottadelli [email protected] http://www.sourcesense.com

description

This presentation was presented at a Document Inteop Initiative event held in Brussels and promoted by Microsoft. It gives a view of projects related to interoperability within the Apache Software Foundation.

Transcript of Interoperability at Apache Software Foundation

Page 2: Interoperability at Apache Software Foundation

Agenda

Apache Software Foundation (ASF) Interoperability @ ASF Some ASF projects for interoperability Apache POI Demo

Paolo Mottadelli - [email protected]

Page 3: Interoperability at Apache Software Foundation

Apache Software Foundation

Paolo Mottadelli - [email protected]

Page 4: Interoperability at Apache Software Foundation

Apache Software Foundation

The Apache Software Foundation provides support for the Apache community of open-source

software projects.

“We consider ourselves not simply a group of projects sharing a server, but rather a community

of developers and users.”

Paolo Mottadelli - [email protected]

Page 5: Interoperability at Apache Software Foundation

ASF roles

Supports Apache projects with an infrastructure for open development

Plays as a legal entity for donations Offers legal support to Apache projects Promotes and protects the Apache brand

Paolo Mottadelli - [email protected]

Page 6: Interoperability at Apache Software Foundation

ASF actions

Supports collaborative software development Provides a Commercial Friendly License Produces high quality software Promotes an 'healthy' interaction among people Provides faithful standard implementations

Paolo Mottadelli - [email protected]

Page 7: Interoperability at Apache Software Foundation

ASF principles

MeritocracyRespect

Consensus

Transparency

OpennessSimplicity

Responsibility

Voluntary work

Mutual assistance

Paolo Mottadelli - [email protected]

Page 8: Interoperability at Apache Software Foundation

Apache projects

Apache HTTP Server

... other 63 projects

Paolo Mottadelli - [email protected]

Page 9: Interoperability at Apache Software Foundation

Interoperability @ ASF

Paolo Mottadelli - [email protected]

Page 10: Interoperability at Apache Software Foundation

Apache for Interoperability

Collaboration Transparency Neutrality Faith to standards High quality Reference implementations TCKs

Paolo Mottadelli - [email protected]

Page 11: Interoperability at Apache Software Foundation

Some ASF projects for interop

Paolo Mottadelli - [email protected]

Page 12: Interoperability at Apache Software Foundation

Some Interop ASF projects

Apache Stonehenge Apache QPID Apache Axis Apache POI (some) Reference Implementations

Apache Pluto: Java Portlet Specification (JSR-268) Apache Tomcat: Java Servet Container & JSP Apache Jackrabbit: JCR (JSR-170)

Paolo Mottadelli - [email protected]

Page 13: Interoperability at Apache Software Foundation

Apache POI

Paolo Mottadelli - [email protected]

Page 14: Interoperability at Apache Software Foundation

What is Apache POI ?

Apache top level project for developing pure Java ports of file formats based on Microsoft's OLE2

Compound Document Format,

and now for Office Open XML format.

Paolo Mottadelli - [email protected]

Page 15: Interoperability at Apache Software Foundation

POI modules (1)

Different sets of APIs:

POIFS: reading and writing Office Documents HSSF: r/w Excel spreadsheets HWPF: r/w Word documents HSLF: r/w Power Point presentations HPSF: r/w property sets

Paolo Mottadelli - [email protected]

Page 16: Interoperability at Apache Software Foundation

POI modules (2)

Support for Office Open XML format:

XSSF: r/w OXML Excel Spreadsheets XSLF: r/w OXML Power Point Presentations XWPF: r/w OXML Word Documents

Paolo Mottadelli - [email protected]

Page 17: Interoperability at Apache Software Foundation

OOXML dev status

XSSF module : FINAL status (in POI-3.5) XWPF module : DRAFT status XSLF module : not covered yet

Paolo Mottadelli - [email protected]

Page 18: Interoperability at Apache Software Foundation

HSSF & XSSF

Common User Model (DOM-like) interface User Model based on the existing HSSF one Using OpenXML4J and SAX to do event

Paolo Mottadelli - [email protected]

Page 19: Interoperability at Apache Software Foundation

XSSF Usermodel

Workbook A Workbook holds a Sheet A Sheet contains Rows A Row contains cells From a Cell get Content and others

Paolo Mottadelli - [email protected]

Page 20: Interoperability at Apache Software Foundation

Common HSSF & XSSF access

org.apache.poi.ss

Workbook wb;

if(args.length > 0 && args[0].equals("-xls")) wb = new HSSFWorkbook(); else wb = new XSSFWorkbook();

Sheet sheet = wb.createSheet("Timesheet"); .................................................................................. ............ same implementation for xls & xlsx ........ ..................................................................................

String file = "timesheet.xls"; if(wb instanceof XSSFWorkbook) file += "x";

Paolo Mottadelli - [email protected]

Page 21: Interoperability at Apache Software Foundation

Demo

Paolo Mottadelli - [email protected]