Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [geomesa-dev] integration trouble with geomesa / geoserver

Looks like Tom Ingold is having a crack at it. And yeah I will contact you privately for Jira access.

--
Jody Garnett

On 7 August 2015 at 11:37, Jim Hughes <jnh5y@xxxxxxxx> wrote:
Hi Jody,

Neither, we've been using JIRA for issue/bug tracking: https://geomesa.atlassian.net.  I know that's secretly the answer you wanted to hear;)  If you'd like accounts, let me know names and email address (on or off list, your choice), and I'll get those set up.

From what you've described, I think the issue is clear.  The method 'accepts' is analogous to the 'canProcess' from the vector datastore side of the house, no?  With that realization in view, this is obviously very wrong, and I'm happy to fix it ASAP.

Are you interested in taking a crack at quick fix or should we coordinate something else?  As a terribly simple fix, one could add the Scala regex (1) processing to 'accepts'.  If an exception is thrown, return false; else true.  (More pedantically, there should be a way to check for a match; the exact syntax would probably take 5-10 minutes to look up.)

Cheers,

Jim

1. http://www.scala-lang.org/api/current/index.html#scala.util.matching.Regex



On 08/07/2015 02:14 PM, Jody Garnett wrote:
Would like talk this one through so I can make a nice clear bug report. First up where do I make bug reports for geomesa? GitHub or bugzilla :)

The integration problem is with the implementation of CoverageFormat and GeoMesaCoverageFormat. Currently they will accept *any* provided content - this breaks GeoServer import (since it uses this method to try and determine which format is responsible for loading a file).

  override def accepts(input: AnyRef) = true
  override def accepts(source: AnyRef, hints: Hints) = true

Up a few lines I think I can see File and Path being accepted:

  override def getReader(source: AnyRef, hints: Hints) = source match {
    case file: File => new CoverageReader(file.getPath)
    case path: String => new CoverageReader(path)
    case unk => throw new Exception(s"unexpected data type for reader source: ${Option(unk).map(_.getClass.getName).getOrElse("null")}")
  }

Digging into CoverageReader there is logic to process a URL and extract credentials. If we can reproduce this same logic in the accepts method (and reject file references to a GeoTIFF) then GeoServer can continue to function. 
--
Jody Garnett


_______________________________________________
geomesa-dev mailing list
geomesa-dev@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
http://locationtech.org/mailman/listinfo/geomesa-dev


_______________________________________________
geomesa-dev mailing list
geomesa-dev@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
http://locationtech.org/mailman/listinfo/geomesa-dev


Back to the top