You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pylucene-commits@lucene.apache.org by va...@apache.org on 2020/08/21 23:31:23 UTC
svn commit: r1881067 - in /lucene/pylucene/trunk/jcc: CHANGES jcc2/cpp.py
jcc3/__main__.py jcc3/cpp.py
Author: vajda
Date: Fri Aug 21 23:31:23 2020
New Revision: 1881067
URL: http://svn.apache.org/viewvc?rev=1881067&view=rev
Log:
Fixed bug with class order dependent missing required dependencies.
Modified:
lucene/pylucene/trunk/jcc/CHANGES
lucene/pylucene/trunk/jcc/jcc2/cpp.py
lucene/pylucene/trunk/jcc/jcc3/__main__.py
lucene/pylucene/trunk/jcc/jcc3/cpp.py
Modified: lucene/pylucene/trunk/jcc/CHANGES
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/CHANGES?rev=1881067&r1=1881066&r2=1881067&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/CHANGES (original)
+++ lucene/pylucene/trunk/jcc/CHANGES Fri Aug 21 23:31:23 2020
@@ -1,6 +1,7 @@
Version 3.7 ->
------------------
- added support for building wheels via --wheel flag (Chee Yong Teh)
+ - fixed bug with class order dependent missing required dependencies
-
Version 3.6 -> 3.7
Modified: lucene/pylucene/trunk/jcc/jcc2/cpp.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc2/cpp.py?rev=1881067&r1=1881066&r2=1881067&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc2/cpp.py (original)
+++ lucene/pylucene/trunk/jcc/jcc2/cpp.py Fri Aug 21 23:31:23 2020
@@ -63,6 +63,13 @@ class InvalidArgsError(Exception):
pass
+class RequiredPackageError(Exception):
+
+ def __str__(self):
+ return "%s is required, please add a --package declaration for it, " \
+ "or its parameters, to the JCC invocation." %(self.args[0])
+
+
_jcc2._set_exception_types(JavaError, InvalidArgsError)
from _jcc2 import findClass as _findClass
from _jcc2 import *
@@ -808,6 +815,9 @@ def header(env, out, cls, typeset, packa
interfaces.append(interface)
if pt is not None:
for ta in pt.getActualTypeArguments():
+ if not known(ta, typeset, declares, packages,
+ excludes, True):
+ raise RequiredPackageError(ta)
addRequiredTypes(ta, typeset, True)
else:
for interface in cls.getInterfaces():
@@ -827,8 +837,10 @@ def header(env, out, cls, typeset, packa
if generics:
for clsParam in getTypeParameters(cls):
if Class.instance_(clsParam):
+ if not known(clsParam, typeset, declares, packages,
+ excludes, True):
+ raise RequiredPackageError(clsParam)
addRequiredTypes(clsParam, typeset, True)
- known(clsParam, typeset, declares, packages, excludes, True)
else:
superClsName = 'JObject'
Modified: lucene/pylucene/trunk/jcc/jcc3/__main__.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc3/__main__.py?rev=1881067&r1=1881066&r2=1881067&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc3/__main__.py (original)
+++ lucene/pylucene/trunk/jcc/jcc3/__main__.py Fri Aug 21 23:31:23 2020
@@ -7,7 +7,7 @@ if len(sys.argv) == 1 or '--help' in sys
help = '''
JCC - C++/Python Java Native Interface Code Generator
- Usage: python -m jcc [options] [actions]
+ Usage: python -m jcc [options] [actions] classes...
Input options:
--jar JARFILE - make JCC wrap all public classes found in
@@ -21,6 +21,7 @@ if len(sys.argv) == 1 or '--help' in sys
--exclude CLASS - explicitly don't wrap CLASS
--package PACKAGE - add PACKAGE to the list of packages from
which dependencies are automatically wrapped
+ in addition to java.lang, --jar or classes
--classpath [PATH|JAR] - add [PATH|JAR] to CLASSPATH while generating
wrappers
--libpath [PATH] - add [PATH] to java.library.path while generating
Modified: lucene/pylucene/trunk/jcc/jcc3/cpp.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc3/cpp.py?rev=1881067&r1=1881066&r2=1881067&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc3/cpp.py (original)
+++ lucene/pylucene/trunk/jcc/jcc3/cpp.py Fri Aug 21 23:31:23 2020
@@ -33,6 +33,13 @@ class InvalidArgsError(Exception):
pass
+class RequiredPackageError(Exception):
+
+ def __str__(self):
+ return "%s is required, please add a --package declaration for it, " \
+ "or its parameters, to the JCC invocation." %(self.args[0])
+
+
_jcc3._set_exception_types(JavaError, InvalidArgsError)
from ._jcc3 import findClass as _findClass
from ._jcc3 import *
@@ -797,6 +804,9 @@ def header(env, out, cls, typeset, packa
interfaces.append(interface)
if pt is not None:
for ta in pt.getActualTypeArguments():
+ if not known(ta, typeset, declares, packages,
+ excludes, True):
+ raise RequiredPackageError(ta)
addRequiredTypes(ta, typeset, True)
else:
for interface in cls.getInterfaces():
@@ -817,8 +827,10 @@ def header(env, out, cls, typeset, packa
if generics:
for clsParam in getTypeParameters(cls):
if Class.instance_(clsParam):
+ if not known(clsParam, typeset, declares, packages,
+ excludes, True):
+ raise RequiredPackageError(clsParam)
addRequiredTypes(clsParam, typeset, True)
- known(clsParam, typeset, declares, packages, excludes, True)
else:
superClsNames = ['JObject']