The NASA WorldWind Server Kit (WWSK) is an open source Java project that assembles GeoServer for easy distribution and implementation.
Clone or download
emxsys Merge tag 'v0.6.0' into develop
# Conflicts:
#	README.md
Latest commit 35bca80 Jun 26, 2018

README.md

WorldWindServerKit

Build Status Download

The NASA WorldWind Server Kit (WWSK) is an open source Java project that assembles GeoServer for easy distribution and implementation.

License

Copyright 2004-2006, 2008, 2017, United States Government, as represented by the Administrator of the National Aeronautics and Space Administration. All rights reserved.

The NASA WorldWind Server Kit (WWSK) framework is licensed under the Apache License, Version 2.0 (the "License"); you may not use this application except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

GeoServer is licensed under the GPL Version 2.

Building

The WWSK uses Apache Maven for a build system. To build GeoServer and its dependencies run maven from the root of the WWSK repository. Example:

$ mvn clean install

Versions

The versions for GeoServer, GeoTools, ImageIO, JAI and others are defined and maintained in the properties section of the WWSK parent POM.

  • Also review travis scripts and installation scripts for the old GeoServer version
  • If you update the GeoServer version you must download the GDAL extension for the new version from the GeoServer distribution site and copy the zip file to the resources folder. For example, for GeoServer 2.13.0, download geoserver-2.13.0-gdal-plugin.zip. You will need to create a .tgz version of the .zip file for inclusion in the Linux distribution.
  • If you update the ImageIO version you must download the artifacts for the new version from geo-solutions.it and copy them to the resources folder. For example, for ImageIO 1.0.20, download imageio-ext-1.1.20-jars.zip. You will need to create a .tgz version of the .zip file for inclusion in the Linux distribution.

Integration Tests

The integration tests are run via a script via Maven and a JMeter maven plugin. The tests can be run in Travis-CI and on a local development workstation.

  • To run the tests locally, run ./travis/run_integration_tests.sh (Linux/Ubuntu only at this time).
  • See the worldwind-geoserver/src/test/uris folder for the URI CSV files used by the JMeter tests.
  • The maven based test plan is worldwind-geoserver/src/test/jmeter/test.jmx
  • Review the worldwind-geoserver/src/test/jmeter folder for the JMeter test plans.
  • The test data is located in the resources/data/test folder

The tests are controlled the following profiles found in the worldwind-geoserver.pom:

integration-test

Runs JMeter tests against the standard geoserver build.

integration-test-gdal

Runs JMeter tests against the a standard geoserver build after adding GDAL to the geoserver instance.

integration-test-jai

Runs JMeter tests against the a standard geoserver build after adding JAI native to the JRE

What to do if a test fails

The worldwind-geoserver/src/test/jmeter/test.jmx outputs assertion error and the associated responses to log files in the worldwind-geoserver/target/jmeter/logs folder. These logs may be voluminous do the nature of the responses, but the nature of the assertion failures can be obtained examining messsages. If its a Content-Type error, compare the expected content type to the received header a few lines down in the log. If required, you can change the expected content type in the URI text file(s) located in worldwind-geoserver/src/test/uris folder.

Test Results

The test results from the last Travis-CI build can be viewed here:

Functional Tests

To run the functional tests you must install Apache JMeter. Launch JMeter from the {project root}/jmeter folder. From the JMeter client, open the functional_test/GeoServer Functional Tests.jmx. Prerequisites:

  • GeoServer Functional Tests requires running instance of GeoServer. Configure the test suite to point to the server.
  • The server instance must have the internal test data and workspaces installed.

Debugging

To allow a debugger to be attached to an instance of WWSK, add or uncomment the following code block in env.sh right after the existing DEBUG variable assignment.

# Allow Java JPDA debugger to be attached to this process via SocketAttach with transport dt_socket on port 8000
DEBUG=${DEBUG}" -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "

Running

Option 1. Deploy a standalone WWSK distribution

Copy and unzip the worldwind-geoserver-<version>-<platform> tar/zip distribution for your platform (found in the worldwind-geoserver-dist/target folder) to a folder on the target computer. Then navigate to the root of the distribution folder and launch the setup script to install the Oracle Server JRE and the GDAL dependencies. Afterwards, you can launch GeoServer with the run script.

a) Setup the GeoServer environment, (one time, Linux only)

Linux example:

$ ./setup.sh

b) Run the script to launch GeoServer

Windows example:

C:\...> run.bat

Linux example:

$ ./run.sh 

Then point your browser to http://localhost:8080/geoserver/index.html to access the GeoServer web admin interface.

Option 2. Deploy the WAR file

Deploy the worldwind-geoserver.war file (found in the worldwind-geoserver/target folder) to your preferred servlet container, e.g., Apache Tomcat. Then point your browser to the geoserver web context on your server.

Option 3. Run in NetBeans

Simply invoke "Run" on the WorldWind GeoServer Application module (worldwind-geoserver) and NetBeans will automatically deploy the war file to your configured application server and launch your browser (typically http://localhost:8084/geoserver/index.html).

Option 4. Run in Jetty from Maven

Run the preconfigured jetty-maven-plugin with maven from the root of the WorldWind GeoServer Application module (worldwind-geoserver). Example:

$ mvn jetty:run

Then point your browser to http://localhost:8080/geoserver/index.html to access the GeoServer web admin interface.

Option 5. Deploy a binary distribution

Copy and unzip a binary distribution (found in the worldwind-geoserver-dist/target folder) to a folder on your target computer. Then navigate to the root of the distribution folder and launch the appropriate startup script found in the bin folder. You must establish some requisite environment variables to run GeoServer. The startup script will prompt you to satisfy any missing prerequisites.

Windows example:

C:\...> bin\startup.bat

Linux example

$ ./bin/startup.sh  

Then point your browser to http://localhost:8080/geoserver/index.html to access the GeoServer web admin interface.

OGC GeoPackage

The WWSK adds support for reading and writing OGC GeoPackages in GeoServer. WWSK manifests the GeoPackage (tiles) raster data source for OGC GeoPackages.

Note: the GeoPackage (mosaic) raster data source is the GeoServer/GeoTools GeoPackage community extension is not compatible with GeoPackages conforming to the OGC GeoPackage Encoding Standard (http://www.geopackage.org/spec/). Do not use the community extension data source for OGC GeoPackages.

Reading

Add an OGC GeoPackage layer:

  1. Login to the GeoServer web admin interface.
  2. Add a Workspace (if not already done)
  3. In the left hand pane under 'Data' select the Workspaces hyperlink to navigate to the Workspaces page.
  4. Select "Add new workspaces" under "Manage GeoServer workspaces".
  5. Complete the workspace configuration and select 'Submit'
  6. Add a new Store
  7. In the left hand pane under 'Data' select the Stores hyperlink to navigate to the Stores page.
  8. Select "Add new Store" under "Manage the stores providing data to GeoServer".
  9. Select "GeoPackage (tiles)" under "Raster Data Sources"
  10. Complete the store configuration and select 'Submit'
  11. Select "Save"
  12. Select "Publish" under the "Action" column on the "New Layer" page.
  13. Scroll down and select "Save" at the bottom of the "Edit Layer" page.

Writing

Raster layers can be exported to GeoPackages via the Web Administration's Layer Preview or through Web Processing Service (WPS) requests.

GeoWebCache

The WWSK has integrated support the GeoWebCache (GWC) enabled by default. Tile Caching options available on Layers are applicable.

Bugs

NASA WorldWind uses GitHub Issues for issue tracking.