You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by va...@apache.org on 2010/03/23 23:01:25 UTC

svn commit: r926810 - in /lucene/pylucene/trunk: Makefile jcc/CHANGES jcc/_jcc/java/lang/Class.cpp jcc/_jcc/java/lang/Class.h jcc/helpers/mingw32.py jcc/jcc/python.py samples/LuceneInAction/lia/indexing/LockTest.py

Author: vajda
Date: Tue Mar 23 22:01:25 2010
New Revision: 926810

URL: http://svn.apache.org/viewvc?rev=926810&view=rev
Log:
  - moved to new lucene trunk
  - fixed bug in LockTest (failing because IndexWriter.unlock changed)
  - fixed bug with not inheriting type parameters to inner parameterized classes

Modified:
    lucene/pylucene/trunk/Makefile
    lucene/pylucene/trunk/jcc/CHANGES
    lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp
    lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h
    lucene/pylucene/trunk/jcc/helpers/mingw32.py
    lucene/pylucene/trunk/jcc/jcc/python.py
    lucene/pylucene/trunk/samples/LuceneInAction/lia/indexing/LockTest.py

Modified: lucene/pylucene/trunk/Makefile
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/Makefile?rev=926810&r1=926809&r2=926810&view=diff
==============================================================================
--- lucene/pylucene/trunk/Makefile (original)
+++ lucene/pylucene/trunk/Makefile Tue Mar 23 22:01:25 2010
@@ -14,10 +14,10 @@
 # site-packages directory.
 #
 
-VERSION=3.0.1-1
+VERSION=3.1-0
 LUCENE_SVN_VER=HEAD
-LUCENE_VER=3.0.1
-LUCENE_SVN=http://svn.apache.org/repos/asf/lucene/java/tags/lucene_3_0_1
+LUCENE_VER=3.1
+LUCENE_SVN=http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene
 PYLUCENE:=$(shell pwd)
 LUCENE=lucene-java-$(LUCENE_VER)
 
@@ -137,7 +137,6 @@ endif
 DEFINES=-DPYLUCENE_VER="\"$(VERSION)\"" -DLUCENE_VER="\"$(LUCENE_VER)\""
 
 LUCENE_JAR=$(LUCENE)/build/lucene-core-$(LUCENE_VER).jar
-SNOWBALL_JAR=$(LUCENE)/build/contrib/snowball/lucene-snowball-$(LUCENE_VER).jar
 ANALYZERS_JAR=$(LUCENE)/build/contrib/analyzers/common/lucene-analyzers-$(LUCENE_VER).jar
 HIGHLIGHTER_JAR=$(LUCENE)/build/contrib/highlighter/lucene-highlighter-$(LUCENE_VER).jar
 MEMORY_JAR=$(LUCENE)/build/contrib/memory/lucene-memory-$(LUCENE_VER).jar
@@ -171,9 +170,6 @@ lucene:
 $(LUCENE_JAR): $(LUCENE)
 	cd $(LUCENE); $(ANT) -Dversion=$(LUCENE_VER)
 
-$(SNOWBALL_JAR): $(LUCENE_JAR)
-	cd $(LUCENE)/contrib/snowball; $(ANT) -Dversion=$(LUCENE_VER)
-
 $(ANALYZERS_JAR): $(LUCENE_JAR)
 	cd $(LUCENE)/contrib/analyzers/common; $(ANT) -Dversion=$(LUCENE_VER)
 
@@ -192,7 +188,7 @@ $(QUERIES_JAR): $(LUCENE_JAR)
 $(EXTENSIONS_JAR): $(LUCENE_JAR)
 	$(ANT) -f extensions.xml -Dlucene.dir=$(LUCENE)
 
-JARS=$(LUCENE_JAR) $(SNOWBALL_JAR) $(ANALYZERS_JAR) \
+JARS=$(LUCENE_JAR) $(ANALYZERS_JAR) \
      $(REGEX_JAR) $(MEMORY_JAR) $(HIGHLIGHTER_JAR) $(QUERIES_JAR) \
      $(EXTENSIONS_JAR)
 

Modified: lucene/pylucene/trunk/jcc/CHANGES
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/CHANGES?rev=926810&r1=926809&r2=926810&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/CHANGES (original)
+++ lucene/pylucene/trunk/jcc/CHANGES Tue Mar 23 22:01:25 2010
@@ -7,6 +7,7 @@ Version 2.5 ->
  - updated MANIFEST.in as sdist started creating incomplete source archives
  - improved support for building on Windows with mingw32 (Bill Janssen)
  - added support for --find-jvm-dll jvm.dll (Bill Janssen)
+ - fixed bug with not inheriting type parameters to inner parameterized classes
  - 
 
 Version 2.4 -> 2.5

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp?rev=926810&r1=926809&r2=926810&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp Tue Mar 23 22:01:25 2010
@@ -46,6 +46,8 @@ namespace java {
             mid_isAssignableFrom,
             mid_getComponentType,
             mid_getSuperclass,
+            mid_getDeclaringClass,
+            mid_getEnclosingClass,
             mid_getInterfaces,
             mid_getName,
             mid_getModifiers,
@@ -110,6 +112,12 @@ namespace java {
                 _mids[mid_getSuperclass] =
                     env->getMethodID(cls, "getSuperclass",
                                      "()Ljava/lang/Class;");
+                _mids[mid_getDeclaringClass] =
+                    env->getMethodID(cls, "getDeclaringClass",
+                                     "()Ljava/lang/Class;");
+                _mids[mid_getEnclosingClass] =
+                    env->getMethodID(cls, "getEnclosingClass",
+                                     "()Ljava/lang/Class;");
                 _mids[mid_getInterfaces] =
                     env->getMethodID(cls, "getInterfaces",
                                      "()[Ljava/lang/Class;");
@@ -228,6 +236,16 @@ namespace java {
             return Class(env->callObjectMethod(this$, _mids[mid_getSuperclass]));
         }
 
+        Class Class::getDeclaringClass() const
+        {
+            return Class(env->callObjectMethod(this$, _mids[mid_getDeclaringClass]));
+        }
+
+        Class Class::getEnclosingClass() const
+        {
+            return Class(env->callObjectMethod(this$, _mids[mid_getEnclosingClass]));
+        }
+
         JArray<Class> Class::getInterfaces() const
         {
             jobjectArray array = (jobjectArray)
@@ -296,6 +314,8 @@ namespace java {
         static PyObject *t_Class_isAssignableFrom(t_Class *self, PyObject *arg);
         static PyObject *t_Class_getComponentType(t_Class *self);
         static PyObject *t_Class_getSuperclass(t_Class *self);
+        static PyObject *t_Class_getDeclaringClass(t_Class *self);
+        static PyObject *t_Class_getEnclosingClass(t_Class *self);
         static PyObject *t_Class_getInterfaces(t_Class *self);
         static PyObject *t_Class_getName(t_Class *self);
         static PyObject *t_Class_getModifiers(t_Class *self);
@@ -332,6 +352,8 @@ namespace java {
             DECLARE_METHOD(t_Class, isAssignableFrom, METH_O),
             DECLARE_METHOD(t_Class, getComponentType, METH_NOARGS),
             DECLARE_METHOD(t_Class, getSuperclass, METH_NOARGS),
+            DECLARE_METHOD(t_Class, getDeclaringClass, METH_NOARGS),
+            DECLARE_METHOD(t_Class, getEnclosingClass, METH_NOARGS),
             DECLARE_METHOD(t_Class, getInterfaces, METH_NOARGS),
             DECLARE_METHOD(t_Class, getName, METH_NOARGS),
             DECLARE_METHOD(t_Class, getModifiers, METH_NOARGS),
@@ -517,6 +539,22 @@ namespace java {
             return t_Class::wrap_Object(cls);
         }
 
+        static PyObject *t_Class_getDeclaringClass(t_Class *self)
+        {
+            Class cls((jobject) NULL);
+
+            OBJ_CALL(cls = self->object.getDeclaringClass());
+            return t_Class::wrap_Object(cls);
+        }
+
+        static PyObject *t_Class_getEnclosingClass(t_Class *self)
+        {
+            Class cls((jobject) NULL);
+
+            OBJ_CALL(cls = self->object.getEnclosingClass());
+            return t_Class::wrap_Object(cls);
+        }
+
         static PyObject *t_Class_getInterfaces(t_Class *self)
         {
             JArray<Class> interfaces((jobject) NULL);

Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h?rev=926810&r1=926809&r2=926810&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h Tue Mar 23 22:01:25 2010
@@ -58,6 +58,8 @@ namespace java {
             int isAssignableFrom(const Class& obj) const;
             Class getComponentType() const;
             Class getSuperclass() const;
+            Class getDeclaringClass() const;
+            Class getEnclosingClass() const;
             JArray<Class> getInterfaces() const;
             String getName() const;
             int getModifiers() const;

Modified: lucene/pylucene/trunk/jcc/helpers/mingw32.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/helpers/mingw32.py?rev=926810&r1=926809&r2=926810&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/helpers/mingw32.py (original)
+++ lucene/pylucene/trunk/jcc/helpers/mingw32.py Tue Mar 23 22:01:25 2010
@@ -1,11 +1,8 @@
 
-import os
-import distutils.cygwinccompiler, copy
+import os, copy
+from distutils.cygwinccompiler import Mingw32CCompiler
 
-orig_Mingw32CCompiler = distutils.cygwinccompiler.Mingw32CCompiler
-
-
-class JCCMinGW32CCompiler(orig_Mingw32CCompiler):
+class JCCMinGW32CCompiler(Mingw32CCompiler):
 
     def link(self, target_desc, objects, output_filename, output_dir=None,
              libraries=None, library_dirs=None, runtime_library_dirs=None,

Modified: lucene/pylucene/trunk/jcc/jcc/python.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/python.py?rev=926810&r1=926809&r2=926810&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/python.py (original)
+++ lucene/pylucene/trunk/jcc/jcc/python.py Tue Mar 23 22:01:25 2010
@@ -52,6 +52,29 @@ CALLARGS = { 'boolean': ('O', '(%s ? Py_
              'java.lang.String': ('O', 'env->fromJString((jstring) %s, 0)', True) }
 
 
+def getTypeParameters(cls):
+
+    while True:
+        parameters = cls.getTypeParameters()
+        if parameters:
+            return parameters
+        cls = cls.getDeclaringClass()
+        if cls is None:
+            return []
+
+
+def getActualTypeArguments(pt):
+
+    while True:
+        arguments = pt.getActualTypeArguments()
+        if arguments:
+            return arguments
+        pt = pt.getOwnerType()
+        if pt is None or not ParameterizedType.instance_(pt):
+            return []
+        pt = ParameterizedType.cast_(pt)
+
+
 def parseArgs(params, current, generics):
 
     def signature(cls):
@@ -66,7 +89,7 @@ def parseArgs(params, current, generics)
             return array + 's'
         if clsName == 'java.lang.Object':
             return array + 'o'
-        if generics and cls.getTypeParameters():
+        if generics and getTypeParameters(cls):
             return array + 'K'
         else:
             return array + 'k'
@@ -83,7 +106,7 @@ def parseArgs(params, current, generics)
         if generics:
             while cls.isArray():
                 cls = cls.getComponentType()
-            if cls.getTypeParameters():
+            if getTypeParameters(cls):
                 ns, sep, n = rpartition(typename(cls, current, False), '::')
                 return ', &a%d, &p%d, %s%st_%s::parameters_' %(i, i, ns, sep, n)
         return ', &a%d' %(i)
@@ -103,7 +126,7 @@ def declareVars(out, indent, params, cur
         if generics:
             while param.isArray():
                 param = param.getComponentType()
-            if param.getTypeParameters():
+            if getTypeParameters(param):
                 line(out, indent, 'PyTypeObject **p%d;', i)
                 typeParams.add(i)
     
@@ -212,7 +235,7 @@ def returnValue(cls, returnType, value, 
         if ParameterizedType.instance_(genericRT):
             genericRT = ParameterizedType.cast_(genericRT)
             clsArgs = []
-            for clsArg in genericRT.getActualTypeArguments():
+            for clsArg in getActualTypeArguments(genericRT):
                 if Class.instance_(clsArg):
                     clsNames = Class.cast_(clsArg).getName().split('.')
                     clsArg = '&%s::%s$$Type' %('::'.join(cppnames(clsNames[:-1])), cppname(clsNames[-1]))
@@ -221,7 +244,7 @@ def returnValue(cls, returnType, value, 
                     gd = TypeVariable.cast_(clsArg).getGenericDeclaration()
                     if Class.instance_(gd):
                         i = 0
-                        for clsParam in gd.getTypeParameters():
+                        for clsParam in getTypeParameters(gd):
                             if clsArg == clsParam:
                                 clsArgs.append('self->parameters[%d]' %(i))
                                 break
@@ -234,16 +257,17 @@ def returnValue(cls, returnType, value, 
                     break
             else:
                 return 'return %s%st_%s::wrap_Object(%s, %s);' %(ns, sep, n, value, ', '.join(clsArgs))
+
         elif TypeVariable.instance_(genericRT):
             gd = TypeVariable.cast_(genericRT).getGenericDeclaration()
             i = 0
             if Class.instance_(gd):
-                for clsParam in gd.getTypeParameters():
+                for clsParam in getTypeParameters(gd):
                     if genericRT == clsParam:
                         return 'return self->parameters[%d] != NULL ? wrapType(self->parameters[%d], %s.this$) : %s%st_%s::wrap_Object(%s);' %(i, i, value, ns, sep, n, value)
                     i += 1
             elif Method.instance_(gd):
-                for clsParam in gd.getTypeParameters():
+                for clsParam in getTypeParameters(gd):
                     if genericRT == clsParam and i in typeParams:
                         return 'return p%d != NULL && p%d[0] != NULL ? wrapType(p%d[0], %s.this$) : %s%st_%s::wrap_Object(%s);' %(i, i, i, value, ns, sep, n, value)
                     i += 1
@@ -478,7 +502,7 @@ def python(env, out_h, out, cls, superCl
     line(out_h, indent, 'extern PyTypeObject %s$$Type;', names[-1])
 
     if generics:
-        clsParams = cls.getTypeParameters()
+        clsParams = getTypeParameters(cls)
     else:
         clsParams = None
 

Modified: lucene/pylucene/trunk/samples/LuceneInAction/lia/indexing/LockTest.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/samples/LuceneInAction/lia/indexing/LockTest.py?rev=926810&r1=926809&r2=926810&view=diff
==============================================================================
--- lucene/pylucene/trunk/samples/LuceneInAction/lia/indexing/LockTest.py (original)
+++ lucene/pylucene/trunk/samples/LuceneInAction/lia/indexing/LockTest.py Tue Mar 23 22:01:25 2010
@@ -42,6 +42,5 @@ class LockTest(TestCase):
             except:
                 pass
         finally:
-            IndexWriter.unlock(self.dir)
             writer1.close()
             self.assert_(writer2 is None)