{"action":"created","issue":{"url":"https://api.github.com/repos/ngageoint/geowave/issues/360","labels_url":"https://api.github.com/repos/ngageoint/geowave/issues/360/labels{/name}","comments_url":"https://api.github.com/repos/ngageoint/geowave/issues/360/comments","events_url":"https://api.github.com/repos/ngageoint/geowave/issues/360/events","html_url":"https://github.com/ngageoint/geowave/pull/360","id":72243347,"number":360,"title":"Refactor project to separate core from extensions (#320)","user":{"login":"rfecher","id":5320618,"avatar_url":"https://avatars.githubusercontent.com/u/5320618?v=3","gravatar_id":"","url":"https://api.github.com/users/rfecher","html_url":"https://github.com/rfecher","followers_url":"https://api.github.com/users/rfecher/followers","following_url":"https://api.github.com/users/rfecher/following{/other_user}","gists_url":"https://api.github.com/users/rfecher/gists{/gist_id}","starred_url":"https://api.github.com/users/rfecher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rfecher/subscriptions","organizations_url":"https://api.github.com/users/rfecher/orgs","repos_url":"https://api.github.com/users/rfecher/repos","events_url":"https://api.github.com/users/rfecher/events{/privacy}","received_events_url":"https://api.github.com/users/rfecher/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-04-30T18:32:59Z","updated_at":"2015-05-03T13:29:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ngageoint/geowave/pulls/360","html_url":"https://github.com/ngageoint/geowave/pull/360","diff_url":"https://github.com/ngageoint/geowave/pull/360.diff","patch_url":"https://github.com/ngageoint/geowave/pull/360.patch"},"body":"Generally speaking there is now a hierarchy of projects to allow the project to more easily grow, rather than the previous flat module structure.\r\n\r\nThis did introduce breaking changes to the persistence model.\r\n\r\nHere's a set of points covered within this issue:\r\n* To separate Spatial temporal core implementation details from the more general purpose multi-dimensional index and key-value store, a new core module, 'geotime' was created.  To separate all spatial-temporal components from the core, field readers and writers are now pluggable through SPI.\r\n\r\n* Also, analytics and ingest are now both able to run through GeoWaveMain using SPI to inject commandline operations (and there's a new \"cli\" module that contains the core for the command line tooling).\r\n\r\n* The ingest framework now allows the optional dimensionality types to be injected through SPI, in which the geotime module injects \"spatial\" and \"spatial-temporal\".\r\n\r\n* The different ingest types within geowave-types are now broken out individually in extensions/formats (and the term \"type\" is replaced by the term \"format\" to avoid confusion between ingest formats and data adapters).\r\n\r\n* Analytics was quickly broken out between \"api\" and \"mapreduce\" but perhaps its worth revisiting to look more closely at the logical breakdown, because I didn't want to go down too deep a rabbit hole with this initial cut.\r\n\r\n* Services were broken out between the service API (jax-rs interfaces), the java client stub (and if we were to provide more languages as clients than just java, this could become a directory), and the service implementation webapp\r\n\r\n* \"packaging\" was placed in deploy to limit the top-level directories\r\n\r\n* the eclipse formatter and cleanup were place in dev-resources as a standalone maven module so projects do not depend on a relative path to the formatter when running the maven format goal - therefore in order to run maven commands for geowave, the dev-resources must be installed first.  We should look to publish this artifact to maven central.\r\n\r\n* deleted benchmarks and vagrant setup from the root geowave project and separated each into its own project on github/ngageoint"},"comment":{"url":"https://api.github.com/repos/ngageoint/geowave/issues/comments/98482041","html_url":"https://github.com/ngageoint/geowave/pull/360#issuecomment-98482041","issue_url":"https://api.github.com/repos/ngageoint/geowave/issues/360","id":98482041,"user":{"login":"rfecher","id":5320618,"avatar_url":"https://avatars.githubusercontent.com/u/5320618?v=3","gravatar_id":"","url":"https://api.github.com/users/rfecher","html_url":"https://github.com/rfecher","followers_url":"https://api.github.com/users/rfecher/followers","following_url":"https://api.github.com/users/rfecher/following{/other_user}","gists_url":"https://api.github.com/users/rfecher/gists{/gist_id}","starred_url":"https://api.github.com/users/rfecher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rfecher/subscriptions","organizations_url":"https://api.github.com/users/rfecher/orgs","repos_url":"https://api.github.com/users/rfecher/repos","events_url":"https://api.github.com/users/rfecher/events{/privacy}","received_events_url":"https://api.github.com/users/rfecher/received_events","type":"User","site_admin":false},"created_at":"2015-05-03T13:29:38Z","updated_at":"2015-05-03T13:29:38Z","body":"good catch on the CLI analytic category, the category class existed, just the provider was still using the ingest category - it should be fixed now"}}