On Thu, 3 Nov 2011, Bill Janssen wrote:

Andi Vajda <[email protected]> wrote:


On Nov 2, 2011, at 10:02, Bill Janssen <[email protected]> wrote:

I'm trying to export the javax.imageio.ImageIO class from a Python
module.  I use the following command:

$ sudo python -m jcc.__main__ --jar GoodStuff.jar --package java.awt.image 
--package javax.imageio --python goodstuff --version 1.0.0 --vmarg 
-Djava.awt.headless=true --build --install

Won't specifying "--package javax.imageio" cause all public classes in
that package to be wrapped?  Seems to work that way for java.awt.image.

No, and it never has. All --package blah does is enable dependencies in that package to be wrapped as well. If you list no classes that depend on that package then --package blah is a no-op. --package != --jar.

From the docs in __main__.py:
    --package PACKAGE       - add PACKAGE to the list of packages from
                              which dependencies are automatically wrapped

If you don't list --package blah and you wrap classes that depend on other classes in that blah package, then all methods with these dependencies will be skipped.

Andi..


Bill


It doesn't look like you asked for the ImageIO class to be wrapped.

Andi..


Everything seems to build just fine, no issues (This is JCC 2.9, Python
2.6, Ubuntu 10.04, amd64, OpenJDK 6).

Then to examine the module, I say,

$ python -c "import goodstuff; goodstuff.initVM(classpath=goodstuff.CLASSPATH); 
print dir(goodstuff)"
['AbstractStringBuilder', 'Appendable', 'Boolean', 'BufferedImage', 'Byte', 
'CLASSPATH', 'CharSequence', 'Character', 'Class', 'ClassLoader', 
'ClassNotFoundException', 'ColorModel', 'Comparable', 
'ConstVariableDescriptor', 'DataBuffer', 'Double', 'Enumeration', 'Exception', 
'FinalizerClass', 'FinalizerProxy', 'Float', 'GoodStuff', 
'IllegalAccessException', 'IllegalArgumentException', 'Image', 'ImageConsumer', 
'ImageObserver', 'ImageProducer', 'IndexColorModel', 'InstantiationException', 
'Integer', 'InterruptedException', 'InvalidArgsError', 'Iterator', 'JArray', 
'JArray_bool', 'JArray_byte', 'JArray_char', 'JArray_double', 'JArray_float', 
'JArray_int', 'JArray_long', 'JArray_object', 'JArray_short', 'JArray_string', 
'JCCEnv', 'JCC_VERSION', 'JObject', 'JavaError', 'Long', 'Number', 
'NumberFormatException', 'Object', 'Package', 'PrintWriter', 'Raster', 
'RenderedImage', 'RuntimeException', 'SampleModel', 'SecurityException', 
'Short', 'StackTraceElement', 'String', 'StringBu
ffer
', 'StringBuilder', 'StringWriter', 'Throwable', 'TileObserver', 'VERSION', 
'WritableRaster', 'WritableRenderedImage', 'Writer', '__builtins__', '__dir__', 
'__doc__', '__file__', '__name__', '__package__', '__path__', '_goodstuff', 
'findClass', 'getVMEnv', 'initVM', 'os']

There's no ImageIO.

Any ideas?  I see no C++ code generated for the javax package, either:

 /tmp/build/_goodstuff:
 total used in directory 1248 available 11434880
 drwxr-xr-x 3 root root    4096 2011-11-02 09:51 .
 drwxr-xr-x 9 root root    4096 2011-11-02 09:51 ..
 -rw-r--r-- 1 root root   51101 2011-06-28 16:44 functions.cpp
 -rw-r--r-- 1 root root     705 2011-11-02 09:53 goodstuff.cpp
 -rw-r--r-- 1 root root    1147 2011-11-02 09:53 GoodStuff.h
 -rw-r--r-- 1 root root    9441 2011-11-02 09:53 __init__.cpp
 -rw-r--r-- 1 root root   30824 2011-06-28 16:44 JArray.cpp
 drwxr-xr-x 6 root root    4096 2011-11-02 09:53 java
 -rw-r--r-- 1 root root   21968 2011-06-28 16:44 jcc.cpp
 -rw-r--r-- 1 root root   27892 2011-06-28 16:44 JCCEnv.cpp
 -rw-r--r-- 1 root root    6093 2011-06-28 16:44 JObject.cpp
 -rw-r--r-- 1 root root   18386 2011-06-28 16:44 types.cpp
 -rw-r--r-- 1 root root 1076444 2011-11-02 09:53 __wrap__.cpp

Bill

Reply via email to