コード例 #1
0
    def test_signals_started_from_python(self):
        listener = MockListener(self)

        with clientserver_example_app_process():
            server_started.connect(listener.started)

            client_server = ClientServer(
                JavaParameters(), PythonParameters())
            example = client_server.entry_point.getNewExample()
            impl = IHelloImpl()
            self.assertEqual("This is Hello!", example.callHello(impl))

            server_stopped.connect(
                listener.stopped, sender=client_server.get_callback_server())
            server_connection_started.connect(
                listener.connection_started,
                sender=client_server.get_callback_server())
            server_connection_stopped.connect(
                listener.connection_stopped,
                sender=client_server.get_callback_server())
            pre_server_shutdown.connect(
                listener.pre_shutdown,
                sender=client_server.get_callback_server())
            post_server_shutdown.connect(
                listener.post_shutdown,
                sender=client_server.get_callback_server())
            client_server.shutdown()

        self.assertEqual(1, listener.received["started"])
        self.assertEqual(1, listener.received["stopped"])
        self.assertEqual(1, listener.received["pre_shutdown"])
        self.assertEqual(1, listener.received["post_shutdown"])
        # Connection initiated from JavaClient, so no signal sent.
        self.assertEqual(0, listener.received["connection_started"])
        self.assertEqual(0, listener.received["connection_stopped"])
コード例 #2
0
    def test_all_regular_signals(self):
        listener = MockListener(self)

        server_started.connect(listener.started)

        hello_state = HelloState()
        client_server = ClientServer(
            JavaParameters(), PythonParameters(), hello_state)
        server_stopped.connect(
            listener.stopped, sender=client_server.get_callback_server())
        server_connection_started.connect(
            listener.connection_started,
            sender=client_server.get_callback_server())
        server_connection_stopped.connect(
            listener.connection_stopped,
            sender=client_server.get_callback_server())
        pre_server_shutdown.connect(
            listener.pre_shutdown, sender=client_server.get_callback_server())
        post_server_shutdown.connect(
            listener.post_shutdown, sender=client_server.get_callback_server())
        with clientserver_example_app_process(True):
            client_server.shutdown()

        self.assertEqual(1, listener.received["started"])
        self.assertEqual(1, listener.received["stopped"])
        self.assertEqual(1, listener.received["pre_shutdown"])
        self.assertEqual(1, listener.received["post_shutdown"])
        self.assertEqual(1, listener.received["connection_started"])
        self.assertEqual(1, listener.received["connection_stopped"])
コード例 #3
0
    def test_all_regular_signals(self):
        listener = MockListener(self)

        server_started.connect(listener.started)

        hello_state = HelloState()
        client_server = ClientServer(JavaParameters(), PythonParameters(),
                                     hello_state)
        server_stopped.connect(listener.stopped,
                               sender=client_server.get_callback_server())
        server_connection_started.connect(
            listener.connection_started,
            sender=client_server.get_callback_server())
        server_connection_stopped.connect(
            listener.connection_stopped,
            sender=client_server.get_callback_server())
        pre_server_shutdown.connect(listener.pre_shutdown,
                                    sender=client_server.get_callback_server())
        post_server_shutdown.connect(
            listener.post_shutdown, sender=client_server.get_callback_server())
        with clientserver_example_app_process(True):
            client_server.shutdown()

        self.assertEqual(1, listener.received["started"])
        self.assertEqual(1, listener.received["stopped"])
        self.assertEqual(1, listener.received["pre_shutdown"])
        self.assertEqual(1, listener.received["post_shutdown"])
        self.assertEqual(1, listener.received["connection_started"])
        self.assertEqual(1, listener.received["connection_stopped"])
コード例 #4
0
    def test_signals_started_from_python(self):
        listener = MockListener(self)

        with clientserver_example_app_process():
            server_started.connect(listener.started)

            client_server = ClientServer(JavaParameters(), PythonParameters())
            example = client_server.entry_point.getNewExample()
            impl = IHelloImpl()
            self.assertEqual("This is Hello!", example.callHello(impl))

            server_stopped.connect(listener.stopped,
                                   sender=client_server.get_callback_server())
            server_connection_started.connect(
                listener.connection_started,
                sender=client_server.get_callback_server())
            server_connection_stopped.connect(
                listener.connection_stopped,
                sender=client_server.get_callback_server())
            pre_server_shutdown.connect(
                listener.pre_shutdown,
                sender=client_server.get_callback_server())
            post_server_shutdown.connect(
                listener.post_shutdown,
                sender=client_server.get_callback_server())
            client_server.shutdown()

        self.assertEqual(1, listener.received["started"])
        self.assertEqual(1, listener.received["stopped"])
        self.assertEqual(1, listener.received["pre_shutdown"])
        self.assertEqual(1, listener.received["post_shutdown"])
        # Connection initiated from JavaClient, so no signal sent.
        self.assertEqual(0, listener.received["connection_started"])
        self.assertEqual(0, listener.received["connection_stopped"])
コード例 #5
0
def connect_to_IDE():
    java_port = int(sys.argv[1]) if len(sys.argv) > 1 else DEFAULT_PORT
    # print("initiating Python ClientServer, connecting to port " + str(java_port))

    entry_point = PythonEntryPoint()

    gateway = ClientServer(java_parameters=JavaParameters(
        address="127.0.0.1",
        port=java_port,
        auto_field=True,
        auto_convert=True,
        auto_close=True,
        auth_token=os.environ["PY4J_AUTH_TOKEN"]),
                           python_parameters=PythonParameters(
                               address="127.0.0.1",
                               port=0,
                               daemonize=True,
                               daemonize_connections=True),
                           python_server_entry_point=entry_point)
    # Even though this won't erase it from the environment of the process itself at
    # the system level, at least it will be more difficult to access from Python.
    del os.environ["PY4J_AUTH_TOKEN"]

    Gateway.gateway = gateway

    python_port = gateway.get_callback_server().get_listening_port()

    # telling Java which port we listen on
    address = gateway.java_gateway_server.getCallbackClient().getAddress()
    gateway.java_gateway_server.resetCallbackClient(address, python_port)
コード例 #6
0
def connect_to_IDE():
    java_port = int(sys.argv[1]) if len(sys.argv) > 1 else DEFAULT_PORT
    # print("initiating Python ClientServer, connecting to port " + str(java_port))

    entry_point = PythonEntryPoint()

    gateway = ClientServer(
        java_parameters=JavaParameters(port=java_port, auto_field=True, auto_convert=True, auto_close=True),
        python_parameters=PythonParameters(port=0, daemonize=True, daemonize_connections=True),
        python_server_entry_point=entry_point)

    Gateway.gateway = gateway

    python_port = gateway.get_callback_server().get_listening_port()

    # telling Java which port we listen on
    address = gateway.java_gateway_server.getCallbackClient().getAddress()
    gateway.java_gateway_server.resetCallbackClient(address, python_port)
コード例 #7
0
ファイル: Gateway.py プロジェクト: yedan2010/omnetpp
print = functools.partial(print, flush=True)

from omnetpp.internal import PythonEntryPoint

from py4j.java_gateway import DEFAULT_PORT
from py4j.clientserver import ClientServer, JavaParameters, PythonParameters

java_port = int(sys.argv[1]) if len(sys.argv) > 1 else DEFAULT_PORT
# print("initiating Python ClientServer, connecting to port " + str(java_port))

entry_point = PythonEntryPoint.PythonEntryPoint()

properties_provider = None  # will be set later
results_provider = None  # will be set later
widget_provider = None  # will be set later
chart_plotter = None  # will be set later

gateway = ClientServer(
    java_parameters=JavaParameters(port=java_port, auto_field=True, auto_convert=True, auto_close=True),
    python_parameters=PythonParameters(port=0, daemonize=True, daemonize_connections=True),
    python_server_entry_point=entry_point)

python_port = gateway.get_callback_server().get_listening_port()

# telling Java which port we listen on
gateway.java_gateway_server.resetCallbackClient(
    gateway.java_gateway_server.getCallbackClient().getAddress(), python_port)

# print("Python ClientServer done, listening on port " + str(python_port))