Opened 12 years ago

Closed 11 years ago

#183 closed enhancement (fixed)

SECORE only recognizes URN identifiers of new uploaded definitions

Reported by: Piero Campalani Owned by: msahakyan
Priority: minor Milestone: 8.4
Component: secore Version: 8.3
Keywords: Cc:
Complexity: Medium

Description

When uploading new CRS definitions to SECORE, the correct {authority,version,code} are understood if set in URN format, like:

<gml:GeographicCRS gml:id="ogrcrs1">
  <identifier codeSpace="OGP">urn:ogc:def:crs:FOO::1</identifier>
  <gml:srsName>My Ellipse</gml:srsName>
  <gml:usesEllipsoidalCS>
    <gml:EllipsoidalCS gml:id="ogrcrs2">
      <gml:csName>ellipsoidal</gml:csName>
      ...

will properly be accessible at http://host:port/def/crs/FOO/0/1, but providing instead a URI identifier like:

<identifier codeSpace="OGP">http://host:port/def/crs/FOO/0/1</identifier>

will not work.

Change History (7)

comment:1 by Dimitar Misev, 12 years ago

Owner: changed from mrusu to msahakyan
Status: newassigned

SECORE is in applications/secore, you can open secore-core and secore-web in NetBeans directly.

To deploy SECORE you can run the applications/secore/deploy script. It's best to download Tomcat from the website, instead of installing from the Ubuntu repos.

comment:2 by Piero Campalani, 11 years ago

Not really sure that this is a valid bug however.
URN notation does not allow for GML elements with an identifier contained in a definition to move away to an other host.
This is instead possible with URL:

<gml:GeographicCRS gml:id="ogrcrs1">
  <identifier codeSpace="OGP">http://localhost:8080/def/crs/XXX/0/MyCRS</identifier>
  <gml:srsName>My Ellipse</gml:srsName>
  <gml:usesEllipsoidalCS>
    <gml:EllipsoidalCS gml:id="ogrcrs2">
      <gml:csName>ellipsoidal</gml:csName>
      <gml:identifier codeSpace="OGP">http://some.other.domain.com/def/cs/XXX/0/MyCS</gml:identifier>
      ...

I don't know if this is good behavior: when you define a new definition with new custom elements, they are added to the database where SECORE is, not where the URL points to.
URN seems to me better, it can avoid these kind of conflicts.

Opinions?

comment:3 by Dimitar Misev, 11 years ago

I guess the right way would be for secore to be able to properly resolve any URL, irrelevant of whether it's in the same database as the definition itself or not. This only affects the flattening of definitions, I can't remember if the URLs are properly resolved or directly looked up in the database.

comment:4 by Dimitar Misev, 11 years ago

Probably we should add some check, to test that the identifier actually points to the secore where the definition is being added, and reject if it doesn't.

comment:5 by Peter Baumann, 11 years ago

Milestone: 9.0
Version: 8.3

comment:6 by Dimitar Misev, 11 years ago

Complexity: Medium
Milestone: 9.08.4

Submitted patch

comment:7 by Dimitar Misev, 11 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.