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"])
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"])
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"])
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"])
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)
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)
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))