Generating PDF Documents with Java CAPS Introduction

Total Page:16

File Type:pdf, Size:1020Kb

Generating PDF Documents with Java CAPS Introduction Generating PDF Documents with Java CAPS Holger Paffrath July 2009 This tutorial will go through how to create a PDF document in Java CAPS. To create the PDF document, we will use an Open Office document as the template and then use Open Office to generate the PDF with calls from Java CAPS. This is handy in generating automated letters or reports and rather than using a flat file allows you to add a little formatting to your report. This example is used to generate a PDF document, but you can use the same call to generate Microsoft Word Documents, HTML pages, RTF pages and other numerous outputs. The differences are only a single parameter value which will be indicated in the tutorial. Introduction Open Office was built using a base technology called UNO (Universal Network Object). This technology allows you to utilize components that interact across different computer languages, platforms and technology. You can access UNO components through the UNO API (Application Programming Interface). This technology thus allows us to interact with OpenOffice which is how we will generate our PDF documents. Therefore for this tutorial, you will need to download and install OpenOffice. The latest version of OpenOffice can be found at http://OpenOffice.org . To give you an overview of what we will be doing in this tutorial, see the diagram below. Java CAPS will be picking up an Open Office Document which will have fields specified. This document will then be streamed to Open Office through the UNO API Calls. Java CAPS will then specify which fields will be populated in the document and their respective values. Java CAPS will request OpenOffice to stream back the populated document to Java CAPS in the specified format. In this case it will be PDF. A Web service will be created to expose the whole process as a service. Open Office Install First off, if you haven't already got open office or StarOffice, install OpenOffice from http://OpenOffice.org. OpenOffice is a free open source alternative to Microsoft Office. It is supported on a number of platforms including Windows, Linux, Mac, Solaris. OpenOffice will quite happily sit on a computer already running Microsoft Office. Alternatively, you do not need to install OpenOffice on the computer that is running Java CAPS. It can be running on a separate system. We just need to have a network connection between the two systems and communication over port 8000 open. Install OpenOffice SDK The OpenOffice SDK (Software Development Kit) gives us the APIs to communicate with UNO. The SDK can be found at http://download.openoffice.org/3.0.0/sdk.html The OpenOffice SDK needs to be installed on the same system that OpenOffice is installed obviously. Running OpenOffice Before we can use anything developed to communicate with OpenOffice, we need to start OpenOffice. Since OpenOffice is to be used as a service, not as an application, we need to start it up in what is known as “Headless” mode. In this mode, OpenOffice runs in the background. Any documents opened by OpenOffice will not be shown on the screen. This gives us a clean runtime environment. The only problem is that if you need to modify the template, you have to kill the headless instance of OpenOffice then you can start OpenOffice normally. To start OpenOffice in Headless mode, enter the following on the command line in the “<OpenOffice>/program” directory. soffice.exe -headless -accept="socket,host=localhost,port=8100;urp;StarOffice.Service" Create Template Before we continue, lets create an OpenOffice document ready for population. If you have started OpenOffice in headless mode as per the above command line, kill the soffice.exe process. You can re-start OpenOffice in headless mode after you have created your template. Create an OpenOffice Document with fields ready for population. Create a new Document in Open Office. For the purposes of this tutorial, I have created a simple form where the Name and address is displayed. In this template, we have areas to put the details, but no place markers, so we'll add them now. Select the “Name” entry box and select “Insert/Fields/Other”. Select the “Variables” tab, then the Type as “Set Variable” and the Format as “Text”. Give the variable a name, in this case “NAME” and a default value. In this case I have given it “%NAME%”. Click “Insert” then “Close”. You will now have a new field in your document with “%NAME% as the value. Repeat this Process for Other Fields giving Street %STREET% City %CITY% PostCode %POSTCODE% State %STATE% Note : There is no relevance to the percentage “%” symbol wrapping the values. I'm just using this as an indicator for the default values. Save your template. OpenOffice Plugin Once we have installed OpenOffice, we now need to install the OpenOffice plugin into Netbeans. Bring up Netbeans and select “Tools” then “Plugins”. You will then see a Dialog box with the installed plugins. Select the “Plugins Settings” tab. Make sure that the “NetBeans Beta” check box is checked. As of writing, the OpenOffice plugin was still in Beta, but works quite well. Once you have checked “NetBeans Beta”, the “Available Plugins” tab will be available if it isn't already and a number of new Plugins will now be available. Click on the “Available Plugins” Tab. Scroll down the list and select the “OpenOffice.org API Plugin” and click the “Install” button on the bottom left of the box. Accept the defaults and license agreement and the plugin should start installing. Once complete, click Finished. The OpenOffice plugin is now installed. To configure the plugin, go to “Tools/Options” Select the “Miscellaneous” Button, then the “OOo API Plugin” tab. Make sure that the “OpenOffice.org Installation” and the “OpenOffice.org SDK Installation” are populated correctly. That's it for the preparation. Now we can start coding. Creating the Wrapper For this implementation, I created a wrapper for the OpenOffice API. This allowed me to hide a lot of the complexity in the Java CAPS implementation. It also allows me to re-use the implementation for future use in JBI projects or basically any other implementation in the future. So lets start by creating a new project. In Netbeans, select “File” then “New Project” Select “OpenOffice.org” then “OpenOffice.org Client Application”. Then click Next. Give the Project a name and Package name, and a location where the project will be saved. Then click “Finish”. You should now have a new project called “OpenOfficeWrapper” or whatever name you gave it previously. As a base for this Wrapper API, I have taken the code written by hol.sten (Great beer!!) which can be found at “http://user.services.openoffice.org/en/forum/viewtopic.php?f=44&t=3801 “ In this tutorial, the author has given 3 classes. The first, OOoInputStream implements XInputStream and the XSeekable. The OOoInputStream constructor allows us to take a byte array (Our document) and converts it into a stream format that the OpenOffice API can handle. The OOoOutputStream class allows us to do the opposite, convert the OpenOffice stream back into a byte array. The third class provided gives us an example of converting an odt (OpenOffice native document format) document into a PDF document. It might be a worth while exercise to try to get this example working before continuing. In the mean time, add the OOoInputStream and OOoOutputStream classes to your project and delete the OpenOfficeWrapper.java file. We won't be needing it. Right Click the com.sun.OpenOffice package and select “New/Java Class...”. Give this class the name “populateTemplate” and accept all other defaults and click “Finish”. Replace the code with that supplied in the Source Code section of this document for “populateTemplate.java”. Save and build the project. There are two areas of interest in the source code. The first area is the argument to the call to populateTemplate. public byte[] populateTemplate(OOoInputStream input, OOoOutputStream output, HashMap hm) throws Exception { Here we see that we are providing an OooInputStream, OooOutputStream for the input and output result. The final is a hashmap. This hashmap contains the variable names and values that we are going to populate into the document. The names have to match exactly the names specified in the OpenOffice Document template. For example, for our test template, the following would be used to populate the hashmap. HashMap hm = new HashMap(46); hm.put("Name", "Holger Paffrath"); hm.put("Street", "476 St Kilda Rd"); hm.put("City", "Melbourne"); hm.put("PostCode", "3000"); hm.put("State", "Victoria"); The next area of interest in the source code is how we do the pair matching with what is in the document and what is in the hash map. Then going about setting/replacing the value. Here we are going through the fields in the OpenOffice document. Then we check to see if the field exists in the hashmap. If the field exists, we then replace the value with that stored in the hashmap. while (e.hasMoreElements()) { Any tf = (Any) e.nextElement(); XTextField xtf = (XTextField) tf.getObject(); // get the properties of the field XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xtf); Property[] arrprop = xPropertySet.getPropertySetInfo().getProperties(); try { // for ms-word mailmergefield the fieldcode looks // like: MERGEFIELD FIELD_3 * MERGEFORMAT String fieldName = (String) xPropertySet.getPropertyValue("VariableName"); // Check if the field exists in the hashmap. if (hm.containsKey(fieldName)) { String value = (String) hm.get(fieldName); // set the content of the field xPropertySet.setPropertyValue("Content", value); } } catch (UnknownPropertyException ex) { // Fieldcode property doesn't exist, ignore System.out.println("[===] Field property does not exist - ignore"); } } If you recall from above when we set the variables in the template, there was a number of types of fields that could be added.
Recommended publications
  • Thin Server Architecture
    HTML5 Application Development with Java Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Agenda . Motivation . HTML5 Overview – Related Java Technologies . Thin Server Architecture . Demo Motivation . Need for clarification Gartner’s 2012 Emerging Technologies Hype Cycle – What is behind the hype . Architectural consequences of new trends . What offers the Java platform to meet the new challenges . Building of common understanding Web Technology History . 1991 HTML . 1995 JavaScript @ Netscape . 1994 HTML2 . 1996 ECMAScript 1.0, 1.1 . 1996 CSS1 . 1997 ECMAScript 1.2 . 1997 HTML4 . 1998 ECMAScript 1.3 . 1998 CSS2 . 2000 ECMAScript 3 . 2000 XHTML1 . 2010 ECMAScript 5 . 2002 Tableless Web Design . Next: ECMAScript 6 Harmony . 2005 AJAX . 2009 HTML5: as of Dec 2012 W3C CR HTML5 Features W3C / Web Hypertext Application Technology Working Group(WHATWG) . Markup – Semantic markup replacing common usages of generic <span>, <div> . <nav>, <footer>,<audio>, <video>, ... API – Canvas 2D (for immidate mode 2D drawing),Timed media playback – Offline Web Applications, Local Srorage and Filesystem, Web Storage – Geolocation, Web Storage, IndexedDB – File API, Drag-and-Drop, Browser History – ... HTML5 Features Offloaded to other specs, originally part of HTML5 . WebSocket API, Server-Sent Events(SSE), Web Messaging, Web Workers, Web Storage (Web Apps WG ) .
    [Show full text]
  • Background Information History, Licensing, and File Formats Copyright This Document Is Copyright © 2008 by Its Contributors As Listed in the Section Titled Authors
    Getting Started Guide Appendix B Background Information History, licensing, and file formats Copyright This document is Copyright © 2008 by its contributors as listed in the section titled Authors. You may distribute it and/or modify it under the terms of either the GNU General Public License, version 3 or later, or the Creative Commons Attribution License, version 3.0 or later. All trademarks within this guide belong to their legitimate owners. Authors Jean Hollis Weber Feedback Please direct any comments or suggestions about this document to: [email protected] Acknowledgments This Appendix includes material written by Richard Barnes and others for Chapter 1 of Getting Started with OpenOffice.org 2.x. Publication date and software version Published 13 October 2008. Based on OpenOffice.org 3.0. You can download an editable version of this document from http://oooauthors.org/en/authors/userguide3/published/ Contents Introduction...........................................................................................4 A short history of OpenOffice.org..........................................................4 The OpenOffice.org community.............................................................4 How is OpenOffice.org licensed?...........................................................5 What is “open source”?..........................................................................5 What is OpenDocument?........................................................................6 File formats OOo can open.....................................................................6
    [Show full text]
  • Openoffice.Org News Highlights Table of Contents Octo Ber 2004
    OpenOffice.org News Highlights Table of Contents Octo ber 2004 ................................................................................................ R eplacing FrameMaker with OOo Writer ............................................................................................. Ger mans claim Linux lowers costs ......................................................................................................... Ope n approach offers Mindef more choice ............................................................................................ Ball mer calls for horse-based attack on Star Office ............................................................................... Ope n for Business - The 2004 OfB Choice Awards .............................................................................. Sep tember 2004 ............................................................................................ Ope nOffice.org reveals marketing ambitions ......................................................................................... No nprofit brings Linux and open source to Hawaii ............................................................................... UK charity builds Linux network on a shoestring .................................................................................. N SW opens door to Linux offers ............................................................................................................ L eading Edge Forum Report 2004 - Open Source: Open for Business .................................................
    [Show full text]
  • [1 ] Glassfish Server Open Source Edition
    GlassFish[1] Server Open Source Edition Installation Guide Release 5.0 September 2017 This book contains instructions for installing and uninstalling GlassFish Server Open Source Edition software. GlassFish Server Open Source Edition Installation Guide, Release 5.0 Copyright © 2010, 2017 Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Staroffice 6.0 Software Setting up Database Connections
    StarOffice™ 6.0 Software Setting Up Database Connections Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 U.S.A. 650-960-1300 Part No. 817-0364-05 September 2002, Revision A Copyrights and Trademarks Copyright © 2002 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved. Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent applications in the U.S. and in other countries. This document and the product to which it pertains are distributed under licenses restricting their use, copying, distribution, and decompilation. No part of the product or of this document may be repro- duced in any form by any means without prior written authorization of Sun and its licensors, if any. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. This product is based in part on the work of the Independent JPEG Group, The FreeType Project and the Catharon Typography Project. Portions Copyright 2000 SuSE, Inc. Word for Word Copyright © 1996 Inso Corp. International CorrectSpell spelling correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Source code for portions of this product are available under the Mozilla Public License at the following sites: http://www.mozilla.org/, http://www.jclark.com/, and http://www.gingerall.com.
    [Show full text]
  • Sun Previews Staroffice 8 Software and Sun Java Desktop System, Release 3 at Linuxworld 2005
    2005-02-15 14:24 CET Sun Previews StarOffice 8 Software And Sun Java Desktop System, Release 3 At Linuxworld 2005 StarOffice 8 Beta Available For Public Download on Feb. 17; Sun to Showcase Enhanced Desktop Interoperability and Usability at Booth #123 WHAT: StarOffice 8 Beta and Sun Java Desktop System, Release 3 Beta WHEN: Tuesday, February 15 to Thursday, February 17, 2005 TIME: 10:00 AM - 5:00 PM WHERE: LinuxWorld Conference & Expo, Hynes Convention Center, Boston, MA; Sun booth #123 This week at LinuxWorld, Sun Microsystems, Inc. will showcase the latest beta versions of StarOffice 8 software and the Sun Java Desktop System, Release 3. StarOffice 8 Beta, the leading alternative office suite and the number one productivity software for Linux, features enhanced interoperability with Microsoft Office software and an improved "look and feel." The Sun Java Desktop System, Release 3 -- the first complete enterprise Linux desktop environment -- will deliver improved device support and interoperability functions. Starting February 17, StarOffice 8 Beta will be available for public download at http://www.sun.com/staroffice. Sun encourages open source developers and customers to download the beta version, and general availability is expected by mid-year 2005. For more information on Sun at LinuxWorld, please visit: http://www.sun.com/news or visit booth #123 Om Sun Microsystems Ända sedan starten 1982 har Sun Microsystems (Nasdaq: SUNW) styrts av visionen "The Network is the Computer". Denna vision har fört fram företaget till positionen som ledande leverantör av professionell hård- och mjukvara samt tjänster som får Internet att fungera. Sun bedriver verksamhet i över hundra länder och på nätet på adressen: http://se.sun.com.
    [Show full text]
  • Mysql Query Browser Mysql Query Browser This Is a Translation of the Mysql Query Browser Manual That Can Be Found at Dev.Mysql.Com
    MySQL Query Browser MySQL Query Browser This is a translation of the MySQL Query Browser Manual that can be found at dev.mysql.com. The original MySQL Query Browser Manual is in English, and this translation is not necessarily as up to date as the English version. Esta es una traduccion del manual de MySQL Query Browser el cual puede ser encontrado en dev.mysql.com. El Manual original de MySQL Query Browser se encuentra en Inglés, y esta traduccion no necesariamente es tan actualizada como la versión en Inglés. Edwin Cruz <ecruz @ medel.com.mx> ha traducido este manual del Inglés. El es gerente de sistemas y vive en Aguascalientes, México. Edwin cumplió su educación en 2005 con grado de ingenieria en ciencias de la computa- ción. Como desarrollador, Edwin ha estado trabajando con LAMP Stack por tres años. Antes de obtener su empleo actual, en una compañia de transporte, Edwin trabajo en Texas Instruments Mexico. Resumen Este es el Manual de MySQL Query Browser Documento generado en: 2010-03-14 (revision: 542) Copyright © 1997-2007 MySQL AB, 2008-2010 Sun Microsystems, Inc. All rights reserved. U.S. Government Rights - Commercial software. Govern- ment users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. Use is sub- ject to license terms. Sun, Sun Microsystems, the Sun logo, Java, Solaris, StarOffice, MySQL Enterprise Monitor 2.0, MySQL logo™ and MySQL™ are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. UNIX is a registered trademark in the U.S.
    [Show full text]
  • Sun Glassfish Enterprise Server V3 Preludetroubleshooting Guide
    Sun GlassFish Enterprise Server v3 PreludeTroubleshooting Guide Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 820–6823–10 November 2008 Copyright 2008 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. All rights reserved. Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries. U.S. Government Rights – Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. This distribution may include materials developed by third parties. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, the Solaris logo, the Java Coffee Cup logo, docs.sun.com, Enterprise JavaBeans, EJB, GlassFish, J2EE, J2SE, Java Naming and Directory Interface, JavaBeans, Javadoc, JDBC, JDK, JavaScript, JavaServer, JavaServer Pages, JMX, JSP,JVM, MySQL, NetBeans, OpenSolaris, SunSolve, Sun GlassFish, Java, and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. or its subsidiaries in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
    [Show full text]
  • E-Mail: [email protected] , Phone: +61 (412) 421-925
    Joshua M. Clulow E-mail: [email protected] , Phone: +61 (412) 421-925 TECHNICAL Software Development: SKILLS • Proficient in many high-level programming languages including Javascript (node.js), C, Java, Korn Shell (ksh), awk, etc. • Web application development with particular focus on delegated administration tools • System programming with particular focus on distributed job control and au- tomation • Kernel-level development and debugging of Illumos with mdb(1) and DTrace, with recent focus on porting support for the AMD-V instruction set extensions from Linux to Illumos KVM See: https://github.com/jclulow/illumos-kvm • Kernel-level development and debugging of OpenBSD with ddb and gdb, most recently due to my final year engineering project to create a single-system image cluster of OpenBSD machines See: https://jmc.sysmgr.org/~leftwing/files/fyp.pdf System Administration: • A range of operating systems including Illumos, Solaris, BSD, Linux, Mac OS and Windows • Web servers including Apache and Sun Web Server • Web proxies including Squid and Sun Proxy Server • Java application servers including Glassfish and Tomcat • Networking concepts including DHCP, DNS, IP networks (subnetting and rout- ing) and Firewalls • Solaris-specific technologies including Zones, SMF, ZFS and DTrace • Sun Cluster for highly available and load balanced systems • F5 BIG-IP Load Balancers • Sun 7000-series Unified Storage Systems • Entry-level and mid-range Sun x86 and SPARC hardware • Discrete servers and Blade systems EMPLOYMENT UNIX System Administrator (Manager)
    [Show full text]
  • Oracle Glassfish Server Application Development Guide Release 3.1.2 E24930-01
    Oracle GlassFish Server Application Development Guide Release 3.1.2 E24930-01 February 2012 This Application Development Guide describes how to create and run Java Platform, Enterprise Edition (Java EE platform) applications that follow the open Java standards model for Java EE components and APIs in the Oracle GlassFish Server environment. Topics include developer tools, security, and debugging. This book is intended for use by software developers who create, assemble, and deploy Java EE applications using Oracle servers and software. Oracle GlassFish Server Application Development Guide, Release 3.1.2 E24930-01 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.
    [Show full text]
  • Openjdk – the Future of Open Source Java on GNU/Linux
    OpenJDK – The Future of Open Source Java on GNU/Linux Dalibor Topić Java F/OSS Ambassador Blog aggregated on http://planetjdk.org Java Implementations Become Open Source Java ME, Java SE, and Java EE 2 Why now? Maturity Java is everywhere Adoption F/OSS growing globally Innovation Faster progress through participation 3 Why GNU/Linux? Values Freedom as a core value Stack Free Software above and below the JVM Demand Increasing demand for Java integration 4 Who profits? Developers New markets, new possibilities Customers More innovations, reduced risk Sun Mindshare, anchoring Java in GNU/Linux 5 License + Classpath GPL v2 Exception • No proprietary forks (for SE, EE) • Popular & trusted • Programs can have license any license • Compatible with • Improvements GNU/Linux remain in the community • Fostering adoption • FSFs license for GNU Classpath 6 A Little Bit Of History Jun 1996: Work on gcj starts Nov 1996: Work on Kaffe starts Feb 1998: First GNU Classpath Release Mar 2000: GNU Classpath and libgcj merge Dec 2002: Eclipse runs on gcj/Classpath Oct 2003: Kaffe switches to GNU Classpath Feb 2004: First FOSDEM Java Libre track Apr 2004: Richard Stallman on the 'Java Trap' Jan 2005: OpenOffice.org runs on gcj Mai 2005: Work on Harmony starts 7 Sun & Open Source Java RIs Juni 2005: Java EE RI Glassfish goes Open Source Mai 2006: First Glassfish release Mai 2006: Java announced to go Open Source November 2006: Java ME RI PhoneME goes Open Source November 2006: Java SE RI Hotspot und Javac go Open Source Mai 2007: The rest of Java SE follows suit 8 Status: JavaOne, Mai 2007 OpenJDK can be fully built from source, 'mostly' Open Source 25,169 Source code files 894 (4%) Binary files (“plugs”) 1,885 (8%) Open Source, though not GPLv2 The rest is GPLv2 (+ CP exception) Sun couldn't release the 4% back then as free software.
    [Show full text]
  • Libreoffice Architecture, Accessibility and QA
    static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; /* Party code attribute */ LibreOffice pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", Architecture, accessibility and 0, G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE QA | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, Jacobo Aragunde Pérez blogs.igalia.com/jaragunde Project history Some history ● 1985: StarWriter for Z80 micros ● 1986: StarDivision founded, StarOffice ● 1999: Sun Microsystems acquires StarDivision StarWriter 1.0, 1986 (source) StarOffice 2.0, 1994 (source) StarOffice 2.0, 1994 (source) StarOffice 5.2, 2000 (source) Some history ● 2000: OpenOffice becomes Free Software ● 2002: OpenOffice 1.0 ● 2005: OASIS standard, OpenOffice 2.0 OpenOffice.org 1.0, 2002 (source) OpenOffice.org 2.0, 2005 (source) Some history ● 2010: Oracle acquires Sun ● 2010: LibreOffice and The Document Foundation ● 2011: Apache OpenOffice LibreOffice 3.3, 2010 (source) LibreOffice 4.x, 2013-15 (source) LibreOffice 5.x, 2015-17 LibreOffice Online, 2016 (source) Apache OpenOffice 4.1.5, 2017 LibreOffice 6.0, 2018 (source) The project today Development figures ● Around 400 weekly commits by 50 different authors ● 9M lines of code ● ~28 years of history “Exact history was lost before Sept. 18th, 2000, but old source code comments show that Writer core dates bac until at least !o"ember 1##0.$ ● Still 50000 lines of German code comments when LibreOffice
    [Show full text]