Repository navigation
Conversation
…the first connection message
|
Tick the box to add this pull request to the merge queue (same as
|
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved critical defects leave Jetty running after bundle shutdown, can cause clients to permanently miss WebSocket updates, and make prism movement loop indefinitely for accepted targets.
6 open issues
Use a thread-safe session set for broadcasts · New Keep the application reference until it is stopped · New Make both movement sequences reach every target · New Implement value equality for status DTOs · New Read observation mode into the correct variable · New Base the countdown on elapsed time · New
What changed in this PR
Introduces the Scorpio ISD prototype backend from PR #85 as a GMP module, bridging GIAPI instrument status updates to web clients.
Changes:
- Adds status configuration, name translation, caching, and WebSocket delivery.
- Integrates the new OSGi module and removes Pax Web dependencies and configuration.
- Adds simulation scripts, setup instructions, and architecture documentation.
| File | Description |
|---|---|
src/main/config/services/org.ops4j.pax.web.cfg |
Removes Pax Web server settings. |
src/main/config/services/edu.gemini.isd.statusItemsConfiguration.json |
Maps Scorpio status names to frontend identifiers. |
pom.xml |
Registers the ISD module and removes Pax Web configuration. |
integration-tests/pom.xml |
Removes Pax Web test dependencies. |
edu.gemini.isd/src/main/resources/temperatures.sh |
Simulates detector and bench temperatures. |
edu.gemini.isd/src/main/resources/prism.sh |
Simulates prism movement. |
edu.gemini.isd/src/main/resources/overallStatus.sh |
Sets component health statuses. |
edu.gemini.isd/src/main/resources/observation.sh |
Simulates observation status and progress. |
edu.gemini.isd/src/main/resources/obs1.sh |
Adds an observation scenario with cover and shutter updates. |
edu.gemini.isd/src/main/resources/mainGeneralTest.sh |
Provides interactive component-status scenarios. |
edu.gemini.isd/src/main/java/edu/gemini/isd/scorpio/utils/StatusNameDictionary.java |
Translates GIAPI names into frontend identifiers. |
edu.gemini.isd/src/main/java/edu/gemini/isd/scorpio/repository/StatusRepository.java |
Stores current status data in memory. |
edu.gemini.isd/src/main/java/edu/gemini/isd/scorpio/osgi/Activator.java |
Registers the status handler and manages server lifecycle. |
edu.gemini.isd/src/main/java/edu/gemini/isd/scorpio/handler/StatusCacheHandler.java |
Filters updates and provides snapshots and changes. |
edu.gemini.isd/src/main/java/edu/gemini/isd/scorpio/dto/StatusMapper.java |
Converts GIAPI status items into frontend data. |
edu.gemini.isd/src/main/java/edu/gemini/isd/scorpio/dto/StatusDTO.java |
Defines the transmitted status fields. |
edu.gemini.isd/src/main/java/edu/gemini/isd/scorpio/controller/WebsocketController.java |
Sends initial snapshots and periodic changes over WebSockets. |
edu.gemini.isd/src/main/java/edu/gemini/isd/scorpio/config/ConfigurationReader.java |
Loads status subscriptions and translations from JSON. |
edu.gemini.isd/src/main/docs/devDiary.md |
Documents architecture, configuration, and development steps. |
edu.gemini.isd/src/main/docs/classDiagram.plantuml |
Illustrates module classes and relationships. |
edu.gemini.isd/README.md |
Documents installation, operation, and simulation scripts. |
edu.gemini.isd/pom.xml |
Defines the ISD bundle and dependencies. |
edu.gemini.isd/osgi.bnd |
Configures bundle activation, packaging, and imports. |
Review effort: Balanced
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Implement equals and hashCode methods for StatusDTO. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Refactor observation.sh to calculate time left using a deadline variable and sleep for 1 second in the loop. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
Tick the box to add this pull request to the merge queue (same as
|
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


This is a local branch started from #85 uploaded by Alejandro Villarroel plus some small additional changes.