Skip to content
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

Factor Sedona out into a plugin #288

Open
5 of 12 tasks
okennedy opened this issue Oct 27, 2023 · 0 comments
Open
5 of 12 tasks

Factor Sedona out into a plugin #288

okennedy opened this issue Oct 27, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request layer-api An issue involving the vizier API layer layer-ui An issue involving the UI layer
Milestone

Comments

@okennedy
Copy link
Contributor

okennedy commented Oct 27, 2023

At some point, we're going to need to start enabling support for plugins. In particular, things seem to be getting to the point where Sedona has tendrils in enough parts of Vizier that it's probably worth taking some time to come up with a cleaner API so that any plugin can similarly modify Vizier's behavior.

Some immediate factor points

  • Sedona needs to be initialized with Spark
  • Sedona introduces several new UDTs. These need to be registered with both SparkSchema (which needs to be able to serialize/deserialize DataType objects), as well as SparkPrimitives which needs a Serde for instances of the respective UDTs.
  • There are two Sedona-specific cell types:
    • Geolookup
      • This will require adding support for plugin specific preferences / command line arguments (i.e., Google/MapBox API keys)
    • Geotag
    • Map Plot
      • Map Plot additionally has UI-specific display hacks in the editor. Do we want to factor those out into the backend?
  • There are some QoL hacks that should be added as well. Notably:
    • Spreadsheet view should display PNGs of raster data
    • Spreadsheet view could display PNGs of vector data too
    • Spreadsheet view must display the output of RS_AsPNG
@okennedy okennedy added enhancement New feature or request layer-ui An issue involving the UI layer layer-api An issue involving the vizier API layer labels Oct 27, 2023
@okennedy okennedy added this to the Version 2.1 milestone Dec 1, 2023
okennedy added a commit that referenced this issue Jan 28, 2024
- Added a 'Plugin' manager object that dynamically loads a jar, parses out plugin metadata, and in
- Added --plugin/-P command-line option to load plugins at startup
- Added a vizier-plugins option to the Vizier properties file to load plugins at startup
- Fixed typo in capitalization of Class__L__oader in ClassLoaderUtils
@okennedy okennedy mentioned this issue Jan 28, 2024
4 tasks
@okennedy okennedy self-assigned this Aug 8, 2024
okennedy added a commit that referenced this issue Aug 8, 2024
- Added support for registering UDTs to Plugin API
- Internal plugins now correctly loaded, even if no external plugins defined
- Sedona Plugin now handles initializing spark, PNG support, and UDT initialization (moved from InitSpark, SparkPrimitive, and SparkSchema)
- SparkPrimitive no longer handles geometry/raster codecs, instead directing codec requests for unknown UDTs to Plugin API
- SparkSchema no longer decodes geometry/raster UDTs, instead hooking the Plugin API
- SharedTestResources now correctly loads internal plugins
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request layer-api An issue involving the vizier API layer layer-ui An issue involving the UI layer
Projects
None yet
Development

No branches or pull requests

1 participant