Hello!

I'm trying to wrap pdfbox with JCC and I run into multiple issues. At
first the list of required jars kept on growing. I had to remove two
packages and one class to keep the list small. Is there a better way to
omit some packages from getting wrapped? --exclude didn't do what I was
expecting it to do.

Once I got the wrappring right I run into another issue. The generated
code failed to compile:

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
-Wstrict-prototypes -fPIC -DPYTHON=1 -I/usr/lib/jvm/java-6-sun/include
-I/usr/lib/jvm/java-6-sun/include/linux -Ibuild/_pdfbox
-I/usr/lib/python2.5/site-packages/JCC-2.1-py2.5-linux-x86_64.egg/jcc/sources
-I/usr/include/python2.5 -c build/_pdfbox/__init__.cpp -o
build/temp.linux-x86_64-2.5/build/_pdfbox/__init__.o
-fno-strict-aliasing -Wno-write-strings
cc1plus: Warnung: Kommandozeilenoption "-Wstrict-prototypes" ist gültig
für Ada/C/ObjC, aber nicht für C++
In file included from build/_pdfbox/__init__.cpp:597:
build/_pdfbox/com/ibm/icu/impl/duration/impl/XMLRecordReader.h:52:
Fehler: expected unqualified-id before »const«
build/_pdfbox/com/ibm/icu/impl/duration/impl/XMLRecordReader.h:52:
Fehler: expected `)' before »const«
In file included from build/_pdfbox/__init__.cpp:598:
build/_pdfbox/com/ibm/icu/impl/duration/impl/XMLRecordWriter.h:54:
Fehler: expected unqualified-id before »const«
build/_pdfbox/com/ibm/icu/impl/duration/impl/XMLRecordWriter.h:54:
Fehler: expected `)' before »const«
In file included from
build/_pdfbox/org/apache/pdfbox/examples/util/PrintImageLocations.h:4,
                 from build/_pdfbox/__init__.cpp:2497:
...


XMLRecordReader.h
-----------------
...
XMLRecordReader(const XMLRecordReader& obj) : java::lang::Object(obj) {}

jboolean bool(const java::lang::String&) const; # <<< line 52
JArray<jboolean> boolArray(const java::lang::String&) const;
jchar character(const java::lang::String&) const;
JArray<jchar> characterArray(const java::lang::String&) const;
jboolean close() const;
...

I'm using JCC 2.1 (from pypi.python.org) on an AMD64 Linux box with
Python 2.5 and java-6-sun-1.6.0.10.


Project
=======
homepage: http://incubator.apache.org/pdfbox/
svn repository: http://svn.apache.org/repos/asf/incubator/pdfbox/trunk


Remove some files and packages
==============================
rm -r src/main/java/org/apache/pdfbox/ant
rm -r src/main/java/org/apache/pdfbox/searchengine
rm
src/main/java/org/apache/pdfbox/pdmodel/encryption/PublicKeySecurityHandler.java


Patch one file
==============

src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandlersManager.java
@@ -21,8 +21,6 @@
 import java.security.Security;
 import java.util.Hashtable;

-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
 /**
  * This class manages security handlers for the application. It follows
the singleton pattern.
  * To be usable, security managers must be registered in it. Security
managers are retrieved by
@@ -69,10 +67,6 @@
                 StandardSecurityHandler.FILTER,
                 StandardSecurityHandler.class,
                 StandardProtectionPolicy.class);
-            this.registerHandler(
-                PublicKeySecurityHandler.FILTER,
-                PublicKeySecurityHandler.class,
-                PublicKeyProtectionPolicy.class);
         }
         catch(Exception e)
         {
@@ -144,7 +138,6 @@
         {
             instance = new SecurityHandlersManager();
         }
-        Security.addProvider(new BouncyCastleProvider());

         return instance;
     }


build
=====

python2.5 -m jcc.__main__ \
    --jar lib/apache-pdfbox-0.8.0-incubator-dev.jar \
    --jar external/junit.jar \
    --jar external/FontBox-0.2.0-dev.jar \
    --jar external/JempBox-0.2.0.jar \
    --jar external/icu4j-4_0.jar \
    --package java.lang \
    --python pdfbox --version 0.8.0 --files 2 --build

Reply via email to