Tutorial 5: Java bridge

This sections shows several examples how to use bridge to JVM.

API

Module hydratk.lib.bridge.java

Methods:

  • start: start JVM

  • stop: stop JVM

  • get_var: create Java variable

  • get_class: create Java class instance

  • desc_class: describe Java class

  • get_package: get reference to Java package

  • init_arraylist: initialize Java ArrayList collection (aka Python list)

  • init_hashmap: initialize Java HashMap collection (aka Python dict)

    Note

    API uses HydraTK core functionalities so it must be running.

    Note

    Java bridge is not supported for PyPy due to module JPype1.

Configuration

Common configuration file contains 2 parameters

  • jvm_path: path to JVM library (file libjvm.so), JVM is found by bridge in default configuration

  • classpath: path with Java files (class, jar) to be added to JVM classpath

    Libraries:
      hydratk.lib.bridge.java:
        jvm_path: default
        classpath: /var/local/hydratk/java
    

Examples

# import library
from hydratk.lib.bridge.java import JavaBridge

# initialize bridge
bridge = JavaBridge()

# start JVM
bridge.start()

# display status, JVM path and classpath
# classpath contains all included Java files
print jbridge.status
print jbridge.jvm_path
print jbridge.classpath

# create Java object
# bool variable is passed to constructor
jms = bridge.get_class('JMSClient', bridge.get_var('bool', True))

# describe class (aka Python __dict__)
print jbridge.desc_class('JMSClient')

# call method
# str is passed as Java string, None is passed as null
jms.connect('javax/jms/QueueConnectionFactory', 'weblogic.jndi.WLInitialContextFactory',
            't3://sxcipppr1.ux.to2cz.cz:8301,sxcipppr2.ux.to2cz.cz:8301', None, None)

# stop JVM
bridge.stop()