[pypy-commit] pypy kill-ootype: Kill rjvm

rlamy noreply at buildbot.pypy.org
Fri Jul 26 19:28:38 CEST 2013


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: kill-ootype
Changeset: r65695:18f60cc5840e
Date: 2013-07-26 18:28 +0100
http://bitbucket.org/pypy/pypy/changeset/18f60cc5840e/

Log:	Kill rjvm

diff --git a/rpython/rlib/rjvm.py b/rpython/rlib/rjvm.py
deleted file mode 100644
--- a/rpython/rlib/rjvm.py
+++ /dev/null
@@ -1,79 +0,0 @@
-
-import jpype
-import atexit
-
-
-class CallWrapper(object):    
-    
-    def wrap_item(self, item):
-        if isinstance(item, jpype.java.lang.Object):
-            return JavaInstanceWrapper(item)
-        elif isinstance(item, jpype._jclass._JavaClass):
-            return JavaInstanceWrapper(item.__javaclass__)
-        elif isinstance(item, tuple) or isinstance(item, list):
-            return self.wrap_list(item)
-        return item
-
-    def wrap_list(self, lst):
-        return [self.wrap_item(x) for x in lst]
-
-    def __call__(self, *args, **kwargs):
-        result =  self.__wrapped__(*args, **kwargs)
-        return self.wrap_item(result)
-
-
-class JavaWrapper(CallWrapper):
-    def __init__(self, name):
-        self.__javaname__ = name
-        all_names = name.split(".")
-        temp_module = jpype
-        for n in all_names:
-            temp_module = getattr(temp_module, n)
-        self.__wrapped__ = temp_module
-    def __getattr__(self, attr):
-        if isinstance(getattr(self.__wrapped__, attr), type):
-            return JavaClassWrapper(getattr(self.__wrapped__, attr))
-        elif isinstance(getattr(self.__wrapped__, attr), jpype.JPackage):
-            return JavaWrapper(self.__javaname__ + '.' + attr)
-
-class JavaInstanceWrapper(object):
-    def __init__(self, obj):
-        self.__wrapped__ = obj
-
-    def __getattr__(self, attr):
-        return JavaMethodWrapper(getattr(self.__wrapped__, attr))
-
-class JavaClassWrapper(CallWrapper):
-    def __init__(self, cls):
-        self.__wrapped__ = cls
-
-    def __getattr__(self, attr):
-        result = None
-        try:
-            result = JavaStaticMethodWrapper(getattr(self.__wrapped__, attr))
-        except AttributeError:
-            result = JavaStaticMethodWrapper(getattr(self.__wrapped__.__javaclass__, attr))
-        return result
-
-class JavaMethodWrapper(CallWrapper):
-
-    def __init__(self, meth):
-        self.__wrapped__ = meth
-
-class JavaStaticMethodWrapper(CallWrapper):
-    def __init__(self, static_meth):
-        self.__wrapped__ = static_meth
-    
-
-
-jpype.startJVM(jpype.getDefaultJVMPath(), "-ea")
-java = JavaWrapper("java")
-JavaMethod = type(jpype.java.lang.Math.abs)
-
-
-def cleanup():
-    jpype.shutdownJVM()
-
-atexit.register(cleanup)
-
-
diff --git a/rpython/rlib/test/test_rjvm.py b/rpython/rlib/test/test_rjvm.py
deleted file mode 100644
--- a/rpython/rlib/test/test_rjvm.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import py
-py.test.skip('this is outdated. Check the jvm-improvements branch')
-
-try:
-    import jpype
-except ImportError:
-    py.test.skip("In Progress...")
-
-from rpython.rlib.rjvm import java, JavaWrapper, JavaClassWrapper, JavaInstanceWrapper, JavaMethodWrapper, JavaStaticMethodWrapper
-
-def test_static_method():
-    assert isinstance(java.lang, JavaWrapper)
-    assert isinstance(java.lang.Math, JavaClassWrapper)
-    assert isinstance(java.lang.Math.abs, JavaStaticMethodWrapper)
-    result = java.lang.Math.abs(-42)
-    assert isinstance(result, int)
-    assert result == 42
-
-def test_class_instantiate():
-    al = java.util.ArrayList()
-    assert isinstance(al, JavaInstanceWrapper)
-    assert isinstance(al.add, JavaMethodWrapper)
-    al.add("test")
-    assert al.get(0) == "test"
-
-def test_reflection():
-    py.test.skip('in progress')
-    al_class = java.lang.Class.forName("java.util.ArrayList")
-    assert isinstance(al_class, JavaInstanceWrapper)
-    #meths = al_class.__javaclass__.getDeclaredMethods()
-    constructors = al_class.getDeclaredConstructors()
-    meths = al_class.getDeclaredMethods()
-    al = constructors[0].newInstance([])
-    al_org = java.util.ArrayList()
-    assert isinstance(al, JavaInstanceWrapper)
-    assert isinstance(al.add, JavaMethodWrapper)
-    al_add = meths[2]
-    assert isinstance(al_add, JavaInstanceWrapper)
-    assert isinstance(al_add.invoke, JavaMethodWrapper)
-    # This fail, but work on the command line
-    al_add.invoke(al_org, ["Hello"])
-    assert al_org[0] == "Hello"
-    al_add.invoke(al, ["Hello"])
-    assert al[0] == "Hello"


More information about the pypy-commit mailing list