"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"
-- VictorTey - 13 Jul 2012

Automating SISS Release

Introduction

SISS release can be a complicated process having to test the right version for each component and then finally packing all the different component into a SISS installer. Here we will start on discussing a strategy to automating this process.

Prequisite

Testing:

Every release of SISS will require testing GeoServer against some of our existing deployments. Since we have GeoServer building on Jenkins, perhaps we can utilise that and use jenkin to perform some form of online testing.

For more documentation on how to set up a test instance with your own data, refer to SettingUpContinuousTestInstance

Jenkins.png

Example of a configuration file:

<?xml version="1.0" encoding="UTF-8"?>
<TestService url='http://www.example.com/geoserver/wfs'>
   <test id='1'>
      <xpath>aaa/bbb/ccc</xpath>
      <expected>test result 2</expected>
   </test>
   <test id='2'>
      <xpath>aaa/bbb/ccc</xpath>
      <expected>1234</expected>
      <filter><![CDATA[ 
            <?xml version="1.0" encoding="UTF-8"?>
            <wfs:GetFeature service="WFS" version="1.1.0" xmlns:wfs="http://www.opengis.net/wfs"
            xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"
            xmlns:er="urn:cgi:xmlns:GGIC:EarthResource:1.1" xmlns:gsml="urn:cgi:xmlns:CGI:GeoSciML:2.0" maxFeatures="20">
               <wfs:Query typeName="er:MiningFeatureOccurrence" srsName="EPSG:4326">
                  <ogc:Filter>
                     <ogc:And>
                        <ogc:BBOX>
                           <ogc:PropertyName>er:location</ogc:PropertyName>
                           <gml:Envelope srsName="EPSG:4326">
                              <gml:lowerCorner>78.75 -55.67758441108951 </gml:lowerCorner>
                              <gml:upperCorner>352.08984375 13.239945499286312 </gml:upperCorner>
                           </gml:Envelope>
                        </ogc:BBOX>
                        <ogc:PropertyIsLike escapeChar="!" wildCard="*" singleChar="#">
                           <ogc:PropertyName>er:specification/er:Mine/gml:name</ogc:PropertyName>
                           <ogc:Literal>*</ogc:Literal>
                        </ogc:PropertyIsLike>
                     </ogc:And>
                  </ogc:Filter>
               </wfs:Query>
            </wfs:GetFeature>         
         ]]></filter>
   </test>
</TestService>

Con:

There are limitation to testing ERML and NVCL via this strategy because it will restrict the database instance we test on. If we choose to test both NVCL and ERML on postgis and oracle then that will require 4 instances of geoserver to be deployed by jenkins. What if we decide to test the different container? Tomcat, glassfish and Jetty. That will require 12 instances of geoserver. To manage the scope creep, We will be required to restrict our testing boundary.

Pro:

This will allow people not familar withi GeoServer to have a hands on testing GeoServer. Anyone can configure the configuration file that can be fed to perform online testing. Anyone with access and has knowledge on the mapping configuration can also have full access and the test and modify as require. This provides blackbox testing will provide visiblity to "non GeoServer developer", scalability(if we choose to extend our testing to more then just NVCL and ERML) and flexibility.

Packaging

Topic revision: r2 - 31 Jul 2012, VictorTey
 

Current license: All material on this collaboration platform is licensed under a Creative Commons Attribution 3.0 Australia Licence (CC BY 3.0).