GeoServer Code Sprint 2016

Purpose
The GeoServer web administration console is built on top of the Wicket 1.4.x series, which is pretty old and unmaintaned. The purpose of the sprint is to update it to Wicket 7.x, the current stable version.



Due to the large distance between the two releases and the number of backwards incompatible changes accumulated by Wicket in the years this will require the concerted effort of a handful of developers over a few days, including the changes to upgrade the code, and the thorough hand testing of the resulting modified interface.

Sponsors
We would like to extend our thanks to the following sponsors:

Organizers

 * Jody Garnett - Boundless
 * Andrea Aime - GeoSolutions

Venue and dates
The code sprint will be held in Victoria BC to minimize travel costs. Boundless has offered to provide a venue (either the Boundless Victoria offices or a local technology centre).

The date is tentatively set for the week of January 18th.

This date is selected towards of the GeoServer 2.9 release cycle prior to the code freeze in February, keeping resource availability in mind.

Accommodation and costs
Participants should plan the travel, accommodation and meals.


 * Depending on sponsorship level guests to Victoria will be hosted at or billeted with local community.
 * At the time of writing accommodation for four guests is available (thanks to Jody Garnett and Martin Davis).

We hope to raise enough financial support to cover overseas travel, and possibly meals.

Sponsorship
We have the following sponsorship levels:

Contributions will be put towards travel costs for overseas sprinters who would be otherwise unable to attend. Any surplus at the end of the event will be turned over to OSGeo or used for a future code sprint. We have set-up the sprint to minimize travel and accommodation costs.

Sponsors will receive the following honors:


 * Your logo at the top of this page
 * Mention in all of our public communication, including GeoServer 2.9 release announcement
 * Our gratitude :)

For more information on sponsorship, please contact Jody Garnett, Andrea Amie or the OSGeo Treasurer.

How to Sponsor

 * 1) Navigate to the OSGeo website
 * 2) Click on the "Donate" button in the top right corner
 * 3) Donations are handled through PayPal, when making the donation be sure to:
 * 4) * Check the currency (USD rates are provided above)
 * 5) * Use the "Add special instructions to the seller" field on the confirmation page to mention the event (example "GeoServer code sprint sponsorship")
 * 6) * To make alternative arrangements contact OSGeo Treasurer
 * 7) The OSGeo Treasurer will contact both you and the event organizers to acknowledge your sponsorship
 * 8) * Please have a logo ready for your organization if you wish to be acknowledged publicly
 * 9) * Your event sponsorship, at your request, can contribute towards being recognized as an OSGeo sponsor

Sponsorship Outreach
We are reaching out to organizations to see if there is interest in sponsorship:


 * International organizations (OSGeo, Boundless, GeoSolutions);
 * Local organizations (BC Government, Refractions, Vivid Solutions)

If there is a lot of local sponsorship we expect to drag the developers away from the task at hand and meet the local community (at a social evening or similar).

OSGeo Funding Request
The following information is requested by OSGeo Board Code_Sprint_Guidelines:


 * GeoServer Code Sprint 2016 Budget
 * TLDR: Looking to raise $6000 CAD ($4500 USD) to assist with overseas travel expenses

Participation
If you cannot attend in person you may still be in position to update screens or assist with testing a nightly build overnight. Close collaboration for manual testing will require use of IRC/Skype/Hangout as appropriate for the parties involved.

Sprint
The schedule has been broken down by day to help plan activities for those with limited availability. If you can stop by for an afternoon to help with testing, or volunteer online to test a nightly build, please let the team know.

In scope:


 * Use of Java 8 syntax to reduce wicket boiler plate code
 * Mike Pumphrey will be on hand to update user guide as each screen is completes manual testing

Out of scope:


 * Changing the codebase to use a different library (the effort would be at least an order of magnitude bigger)
 * Improve the behavior of the current UI (we can make improvements at the end, once everything works, if time remains)

Event suggestions:


 * Spinnakers Brew Pub: Locally sourced food, BC wines, and beer brewed on-site. 308 Catherine Street
 * Hoyne Brewing Co.: Craft beer brewed here: the Bitter, Pilsner, Lager and Dark Matter are outstanding. 101-2740 Bridge Street
 * Swans Brew Pub: Casual pub food and beer brewed on-site: Pilsner; Oatmeal Stout; Kolsch; IPA; Berry Ale. 506 Pandora Ave
 * Murchie's Coffee and Tea: Sandwiches, cakes, coffee and an extensive array of loose teas. Dine-in or take tea home as gifts. 1110 Government St
 * Orchard on View: Grab a sandwich and some fruit or cut veggies for lunch. 655 View Street
 * Silk Road Tea: Local tea and gifts - it's near Chinatown, so leave some time to explore the area. 1624 Government Street
 * Bengal Lounge: Curry buffet (reservations recommended) and cocktails in the famous Fairmont Empress Hotel. 721 Government Street
 * Board Game Cafe: Hang out, browse or buy a selection of 800 board games, and pay $5 to play as many as you want in the cafe. 723 Yates St.

Preflight
Sprint tasks on the GeoServer wiki:


 * https://github.com/geoserver/geoserver/wiki/Wicket-migration-code-sprint
 * module/package spreadsheet

Andrea has done the bulk changes - and good news you can start from eclipse! Bad news 200 compile errors.

Please: Review the above wiki page and the documentation links provided prior to the start of the sprint.

Monday 18 Jan
Activities:
 * change wicket Dependency
 * wicket 7 bootcamp / migration guide
 * migrate to wicket 7

Tuesday 19 Jan

 * migrate to wicket 7
 * migration/testing: workspace configuration screens
 * migration/testing: datastore configuration screens
 * oracle: martin

Wednesday 20 Jan

 * migration/testing: global configuration screens
 * migration/testing: service configuration screens (jody/volunteer)
 * migration/testing: layer configuration screens
 * vector:
 * raster:
 * image mosaic:

availability: martin

Thursday 21 Jan

 * migration/testing: tile cache configuration screens (kevin/volunteer)
 * migration/testing: security configuration screens
 * migration/testing: demos

Friday 22 Jan

 * manual testing: demos
 * manual testing: extensions
 * manual testing: select community modules