From 36fc3ad701c8f7830bd30bad3ffd0bbf665ac4e4 Mon Sep 17 00:00:00 2001 From: Christian Saide <2998524+supernomad@users.noreply.github.com> Date: Mon, 25 Mar 2024 11:03:57 -0400 Subject: [PATCH] feat(embedded-server): Allow for specifying extra_classpaths on startup of the embedded server. (#5282) --- py/embedded-server/deephaven_server/server.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/py/embedded-server/deephaven_server/server.py b/py/embedded-server/deephaven_server/server.py index 58e5260a721..8105539f4af 100644 --- a/py/embedded-server/deephaven_server/server.py +++ b/py/embedded-server/deephaven_server/server.py @@ -9,6 +9,8 @@ # This is explicitly not a JObjectWrapper, as that would require importing deephaven and jpy # before the JVM was running. + + class Server: """ Represents a Deephaven server that can be created from Python. @@ -24,7 +26,13 @@ def j_object(self): def port(self): return self.j_server.getPort() - def __init__(self, host: Optional[str] = None, port: Optional[int] = None, jvm_args: Optional[List[str]] = None, dh_args: Dict[str, str] = {}): + def __init__( + self, + host: Optional[str] = None, + port: Optional[int] = None, + jvm_args: Optional[List[str]] = None, + dh_args: Dict[str, str] = {}, + extra_classpath: Optional[List[str]] = None): """ Creates a Deephaven embedded server. Only one instance can be created at this time. """ @@ -34,8 +42,11 @@ def __init__(self, host: Optional[str] = None, port: Optional[int] = None, jvm_a if Server.instance is not None: from deephaven import DHError raise DHError('Cannot create more than one instance of the server') + if extra_classpath is None: + extra_classpath = [] + # given the jvm args, ensure that the jvm has started - start_jvm(jvm_args=jvm_args) + start_jvm(jvm_args=jvm_args, extra_classpath=extra_classpath) # it is now safe to import jpy import jpy