File: testJpypeSubscriber.py

package info (click to toggle)
python-jpype 1.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,308 kB
  • sloc: python: 19,275; cpp: 18,053; java: 8,638; xml: 1,454; makefile: 155; sh: 37
file content (48 lines) | stat: -rw-r--r-- 1,423 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from jpype import *
import time


def pySubscriber(proxy,
                 javaNamingFactory="weblogic.jndi.WLInitialContextFactory",
                 javaNamingProvider="t3://158.188.40.21:7001",
                 connectionFactory="weblogic.jms.ConnectionFactory",
                 topicName="defaultTopic"):
    return messaging.JpypeSubscriber(proxy, javaNamingFactory, javaNamingProvider,
                                     connectionFactory, topicName)


# Startup Jpype and import the messaging java package
startJVM("C:\\program files\\Java\\j2re1.4.2_02\\bin\\client\\jvm.dll",
         "-Djava.class.path=D:/jIRAD/JpypeJMS/src;D:/jIRAD/JpypeJMS/classes;C:/bea/weblogic81/server/lib/weblogic.jar")
messaging = JPackage('messaging')

# Setup the JProxy for the messaging.JpypeSubscriberCallback interface


class pyCallback:
    startTime = 0
    count = 0

    def onMessage(self, text):
        print(text)
        if text == 'Start':
            pyCallback.startTime = time.time()
            pyCallback.count = 0
        elif text == 'Stop':
            print("Message Rate =", float(pyCallback.count) / (time.time() - pyCallback.startTime))
        else:
            pyCallback.count += 1


c = pyCallback()
proxy = JProxy(messaging.JpypeSubscriberCallback, inst=c)

# Get a subscriber
sub = pySubscriber(proxy)
print("Listening...")

# Prevent this thread from exiting
time.sleep(1000)

# exit
shutdownJVM()