]> source.dussan.org Git - poi.git/commitdiff
Make a start on an Ant task to generate an OSGi jar, for #53866
authorNick Burch <nick@apache.org>
Mon, 16 Jun 2014 11:15:31 +0000 (11:15 +0000)
committerNick Burch <nick@apache.org>
Mon, 16 Jun 2014 11:15:31 +0000 (11:15 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1602846 13f79535-47bb-0310-9956-ffa450edef68

osgi/build.xml [new file with mode: 0644]
osgi/bundle.info [new file with mode: 0644]

diff --git a/osgi/build.xml b/osgi/build.xml
new file mode 100644 (file)
index 0000000..35dd87b
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<!-- POI OSGi Bundle System -->
+<project name="POI OSGi Bundle" default="bundle" basedir=".." xmlns:mvn="antlib:org.apache.maven.artifact.ant">
+    <description>The Apache POI OSGi Bundle System.</description>
+
+    <property name="bundle.lib" location="osgi/lib"/>
+
+    <!-- TODO Import these from the parent build file -->
+    <property name="repository.m2" value="http://repo1.maven.org"/>
+    <property name="version.id" value="3.11-beta1"/>
+    <property name="dist.dir" value="build/dist"/>
+
+    <!-- jars in the /lib directory, see the fetch-bundle-jars target-->
+    <property name="bundle.bnd.jar" location="${bundle.lib}/bnd-1.50.0.jar"/>
+    <property name="bundle.bnd.url" value="${repository.m2}/maven2/biz/aQute/bnd/1.50.0/bnd-1.50.0.jar"/>
+    <import file="../build.xml"/>
+
+    <target name="check-bundle-jars">
+       <condition property="jars.bundle.present">
+           <available file="${bundle.bnd.jar}"/>
+       </condition>
+    </target>
+
+    <target name="fetch-bundle-jars" unless="jars.bundle.present">
+        <mkdir dir="${bundle.lib}"/>
+        <antcall target="downloadfile">
+            <param name="sourcefile" value="${bundle.bnd.url}"/>
+            <param name="destfile" value="${bundle.bnd.jar}"/>
+        </antcall>
+    </target>
+
+<!--
+    <target name="bundle" depends="init, check-bundle-jars, fetch-bundle-jars, jar">
+-->
+    <target name="bundle" depends="init, check-bundle-jars, fetch-bundle-jars">
+        <taskdef resource="aQute/bnd/ant/taskdef.properties" classpath="${bundle.bnd.jar}"/>
+        <mkdir dir="build/osgi"/>
+        <bnd 
+           classpath="${dist.dir}/poi-${version.id}-${DSTAMP}.jar,${dist.dir}/poi-scratchpad-${version.id}-${DSTAMP}.jar,${dist.dir}/poi-ooxml-${version.id}-${DSTAMP}.jar"
+           eclipse="false" 
+           failok="false" 
+           exceptions="true" 
+           output="build/osgi"
+           files="test.bnd"/> 
+        <!-- TODO Include the settings from http://svn.apache.org/repos/asf/servicemix/smx4/bundles/trunk/poi-3.9/pom.xml -->
+        <!-- TODO Make this actually spit out an OSGi Jar -->
+    </target>
+</project>
diff --git a/osgi/bundle.info b/osgi/bundle.info
new file mode 100644 (file)
index 0000000..1886a0a
--- /dev/null
@@ -0,0 +1,38 @@
+\u001B[1mSYNOPSIS\u001B[0m
+    ${project.description}
+
+    Original Maven URLs:
+        \u001B[33mmvn:${pkgGroupId}/poi/${pkgVersion}\u001B[0m
+        \u001B[33mmvn:${pkgGroupId}/poi-ooxml/${pkgVersion}\u001B[0m
+        \u001B[33mmvn:${pkgGroupId}/poi-scratchpad/${pkgVersion}\u001B[0m
+
+\u001B[1mDESCRIPTION\u001B[0m
+    The Apache POI Project's mission is to create and maintain Java APIs for manipulating various file formats based
+    upon the Office Open XML standards (OOXML) and Microsoft's OLE 2 Compound Document format (OLE2). In short, you can
+    read and write MS Excel files using Java. In addition, you can read and write MS Word and MS PowerPoint files using
+    Java. Apache POI is your Java Excel solution (for Excel 97-2008). We have a complete API for porting other OOXML and
+    OLE2 formats and welcome others to participate.
+
+    OLE2 files include most Microsoft Office files such as XLS, DOC, and PPT as well as MFC serialization API based file
+    formats. The project provides APIs for the OLE2 Filesystem (POIFS) and OLE2 Document Properties (HPSF).
+
+    Office OpenXML Format is the new standards based XML file format found in Microsoft Office 2007 and 2008. This
+    includes XLSX, DOCX and PPTX. The project provides a low level API to support the Open Packaging Conventions using
+    openxml4j.
+
+    For each MS Office application there exists a component module that attempts to provide a common high level Java api
+    to both OLE2 and OOXML document formats. This is most developed for Excel workbooks (SS=HSSF+XSSF). Work is
+    progressing for Word documents (HWPF+XWPF) and PowerPoint presentations (HSLF+XSLF).
+
+    The project has recently added support for Outlook (HSMF). Microsoft opened the specifications to this format in
+    October 2007. We would welcome contributions.
+
+    There are also projects for Visio (HDGF), TNEF (HMEF), and Publisher (HPBF).
+
+    As a general policy we collaborate as much as possible with other projects to provide this functionality.
+    Examples include: Cocoon for which there are serializers for HSSF; Open Office.org with whom we collaborate in
+    documenting the XLS format; and Tika / Lucene, for which we provide format interpretors.
+    When practical, we donate components directly to those projects for POI-enabling them.
+
+\u001B[1mSEE ALSO\u001B[0m
+    \u001B[36mhttp://poi.apache.org/\u001B[0m