Skip to content
This repository was archived by the owner on Oct 11, 2024. It is now read-only.
This repository was archived by the owner on Oct 11, 2024. It is now read-only.

Integrate with SOS by using Iceland #49

Description

@nuest

Things to consider/steps to be taken:

Switch to Iceland

  • create a maintenance branch of OSS > tag https://github.com/52North/OpenSensorSearch/releases/tag/pre-iceland
  • add new 52N parent pom
  • create branch oss-iceland
    • switch from Guice modules to iceland providers, might have to reorganize the source code so that functionality is more closely modelled after the interfaces and operations
    • change license of OSS (back to) GPL (because of SOS dependencies)
    • re-check licenses of depedencies
    • switch to latest Solr and fix compile time errors
    • move concrete logging dependencies and configurations to webapp module
    • breakthroughs to be done by @nuest
      • GetCapabilities works in standalone version of the OSS based on iceland
      • GetCapabilities in bundle with the SOS, which contains the bundled SOS as harvested service (see http://52north.org/schema/sir/0.3.2/sirGetCapabilities.xsd) read from iceland configuration, maybe to the webapp-bundle, see comment below by @autermann
      • OpenSearch works using the SOS DAOs (sensor count) and database model, i.e. reading from a database created by the SOS
      • transactional operations from the SIR result in "not implemented" OWS Exception
    • prioritized list of features (remove implementations of not required features, http://52north.org/communities/sensorweb/discovery/index.html); in the OSS becomes read-only
      • SensorSearch operation of SIR (high), if SIR then also do DescribeSensor
      • JSON binding (high)
      • Autocomplete endpoint with document index database (high)
      • UI (medium)
      • Harvesting (medium)
        • re-add document database (becomes relevant only with external harvested SOS, or with millions of sensors)
        • concept of "internal" and "external" sensors to the document database (e.g. listen to SOS event bus and delete internal sensors on DeleteSensor@SOS)
      • Validation endpoints (low)
      • deactivate transactional interface of SIR (throw exceptions)
      • deactivate status operations of SIR (throw exceptions)
      • optional: JSON binding and autocomplete works with Angular UI
  • switch from XMLBeans to JAXB

Notes about modules

  • arsearch > not needed anymore, remove
  • common > only home dir config mechanism > replaced by iceland configuration, remove??
  • it > fix first! remove JS-harvesting stuff, ignore tests
  • misc > keep, of course, will use SOS code so change the license to GPL
  • service > actual business logic, keep all classes but focus on OpenSearch + SOS DAOs
  • sir-common >
  • sir-it > SIR integration tests
  • sir-json > keep as needed for JSON encoding
  • sor-common > Sensor Observable Registry > drop it.
  • sor > Sensor Observable Registry > drop it.
  • website > keep as independent search client / landing page, remove some unneeded code (SOR, all the Java classes, JSPs, and login-related stuff, remove all "under development", ..), test update Angular
  • remove Swagger

Adjustments for SOS-integration

  • extend data model to include "internal" and "external" sensor descriptions
    • internal = in SOS database using SOS DAOs, need some internal harvesting for search DB
    • external = in Solr using OSS DAOs, or just use Lucene internally without Solr?
    • fromt the outside (to a client) there is no distinguishment between the
  • check Esri Geoportal Server how they can automatically create a Solr instance at installation time - or do they just use Lucene?
  • switch configuration to use iceland's Settings API
  • add internal harvesting (e.g. add internal sensors to the search database)
  • remove SOR
  • What about the validation endpoints?
  • And the conversion endpoints?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions