-
Notifications
You must be signed in to change notification settings - Fork 90
feat: DH-20578: Groovy remote file sourcing #7451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: DH-20578: Groovy remote file sourcing #7451
Conversation
No docs changes detected for 325f688 |
a48276f to
fc106d6
Compare
777b0b4 to
4d1b51c
Compare
server/jetty-app-11/build.gradle
Outdated
| implementation project(':server-jetty-11') | ||
|
|
||
| implementation project(':extensions-flight-sql') | ||
| implementation project(':plugin-remotefilesource') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if these should have been added here since I don't see any other plugins.
server/jetty-app/build.gradle
Outdated
| implementation project(':server-jetty') | ||
|
|
||
| implementation project(':extensions-flight-sql') | ||
| implementation project(':plugin-remotefilesource') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if these should have been added here since I don't see any other plugins.
3d7a03e to
f0ced57
Compare
f0ced57 to
b70f606
Compare
...otefilesource/src/main/java/io.deephaven.remotefilesource/RemoteFileSourceMessageStream.java
Outdated
Show resolved
Hide resolved
| /** | ||
| * Utility methods for working with protobuf messages in the client-side JavaScript environment. | ||
| */ | ||
| public class JsProtobufUtils { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...how sure are we that we actually need any/all of this? doesnt the generated message types give us this for free?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought we needed it in order to support the Any wrapper?
| @JsType(namespace = "dh.remotefilesource", name = "RemoteFileSourceService") | ||
| public class JsRemoteFileSourceService extends HasEventHandling { | ||
| /** Event name for generic messages from the server */ | ||
| @JsProperty(namespace = "dh.remotefilesource.RemoteFileSourceService") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this annotation shouldnt be necessary, should get it from the type's namespace+name, ditto below
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got warnings for the @link #EVENT_MESSAGE in the header comment. Claude suggested this fix which worked. Is there a better way?
...pi/src/main/java/io/deephaven/web/client/api/remotefilesource/JsRemoteFileSourceService.java
Outdated
Show resolved
Hide resolved
...pi/src/main/java/io/deephaven/web/client/api/remotefilesource/JsRemoteFileSourceService.java
Show resolved
Hide resolved
...otefilesource/src/main/java/io.deephaven.remotefilesource/RemoteFileSourceMessageStream.java
Show resolved
Hide resolved
...otefilesource/src/main/java/io.deephaven.remotefilesource/RemoteFileSourceMessageStream.java
Outdated
Show resolved
Hide resolved
...otefilesource/src/main/java/io.deephaven.remotefilesource/RemoteFileSourceMessageStream.java
Outdated
Show resolved
Hide resolved
plugin/src/main/java/io/deephaven/plugin/type/PluginMarker.java
Outdated
Show resolved
Hide resolved
| "RemoteFileSourcePluginFetchRequest must contain a valid result_id"); | ||
| } | ||
|
|
||
| final String pluginName = request.getPluginName(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it appears that DeephavenRemoteFileSourcePlugin is always the pluginName set by the client, so we end up with exactly one PluginMarker. Do we anticipate more of these, or specific clients who can control this? Nothing seems able to clear old instances, do we want a mechanism (liveness?) for that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I anticipate that the Python version of the plugin may make use of this at some point.
Clearing instances is probably a good idea. Any suggestions on best way to do that?
DH-20578: This PR implements a RemoteFileSource plugin in Deephaven Core that can request file sources from a remote client. Key points of interest
Related PRs
Testing
Community
:web-client-api:gwtCompile server-jetty-app:run -Panonymous -Pgroovy)Workspace/Groovy/groovy-remote-docs-demofolder underREMOTE IMPORT SOURCESand click the + button to add test folder.Core+
Changes are deployed to
bmingles-remote-file-sourcevm. Can also configure VS Code to connect to https://bmingles-remote-file-source.int.illumon.com:8123/ and run same code