Interoperability at Apache Software Foundation

Post on 08-May-2015

2,263 views 0 download

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

interop@apache.org

Paolo Mottadelli

p.mottadelli@sourcesense.com

http://www.sourcesense.com

Agenda

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

Paolo Mottadelli - p.mottadelli@sourcesense.com

Apache Software Foundation

Paolo Mottadelli - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

ASF principles

MeritocracyRespect

Consensus

Transparency

OpennessSimplicity

Responsibility

Voluntary work

Mutual assistance

Paolo Mottadelli - p.mottadelli@sourcesense.com

Apache projects

Apache HTTP Server

... other 63 projects

Paolo Mottadelli - p.mottadelli@sourcesense.com

Interoperability @ ASF

Paolo Mottadelli - p.mottadelli@sourcesense.com

Apache for Interoperability

Collaboration Transparency Neutrality Faith to standards High quality Reference implementations TCKs

Paolo Mottadelli - p.mottadelli@sourcesense.com

Some ASF projects for interop

Paolo Mottadelli - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

Apache POI

Paolo Mottadelli - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

OOXML dev status

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

Paolo Mottadelli - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

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 - p.mottadelli@sourcesense.com

Demo

Paolo Mottadelli - p.mottadelli@sourcesense.com