<!--
  ~ Copyright (C) 2011 Brockmann Consult GmbH (info@brockmann-consult.de)
  ~
  ~ This program is free software; you can redistribute it and/or modify it
  ~ under the terms of the GNU General Public License as published by the Free
  ~ Software Foundation; either version 3 of the License, or (at your option)
  ~ any later version.
  ~ This program is distributed in the hope that it will be useful, but WITHOUT
  ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  ~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  ~ more details.
  ~
  ~ You should have received a copy of the GNU General Public License along
  ~ with this program; if not, see http://www.gnu.org/licenses/
  -->

<module>
    <manifestVersion>1.0.0</manifestVersion>
    <symbolicName>beam-gpf</symbolicName>
    <version>4.9</version>
    <name>BEAM Graph Processing Framework (GPF)</name>

    <description>The basic framework for processing using Operators and the GPT.</description>

    <vendor>Brockmann Consult GmbH</vendor>
    <contactAddress>Max Planck Str.2, 21502 Geesthacht (Germany)</contactAddress>
    <copyright>(C) 2010 by Brockmann Consult GmbH</copyright>
    <url>http://envisat.esa.int/beam</url>
    <licenseUrl>http://www.gnu.org/licenses/gpl.html</licenseUrl>

    <changelog>
        <![CDATA[
        <p>From 4.8 to 4.9:<br/>
            [BEAM-1301] gpt should be able to load the configuration saved from the UI<br/>
            [BEAM-1288] Add plausibility check for reprojection and orthorectification<br/>
            [BEAM-1284] Reprojection should preserve log-scaling of bands<br/>
            [BEAM-1278] GPF shall generate reports about tile computations<br/>
            [BEAM-1263] All processors shall provide help and "about" information<br/>
            [BEAM-1234] The target product of some operators shall not be written<br/>
        	[BEAM-1231] gpt command-line tool should have a 'parallelism' option<br/>
            [BEAM-1226] Subset operator does not extract flags automatically<br/>
            [BEAM-1223] gpt command-line usage generates incorrect XML templates<br/>
            [BEAM-1222] gpt command-line tool ignores -p option<br/>
            [BEAM-1220] GPF API does not use progress monitor<br/>
            [BEAM-1219] GPF API should implicitly convert parameter values<br/>
            [BEAM-1204] Reprojection changes product type<br/>
            [BEAM-1203] Application returns with exit code zero in error case<br/>
            [BEAM-1201] GPT does use the user LOCAL instead of ENGLISH<br/>
            [BEAM-1198] GPF operators should dispose themselves when no longer in use<br/>
            [BEAM-1156] SubsetOp does not copy metadata<br/>
            [BEAM-1197] GPF N1 patcher is not thread safe<br/>
            [BEAM-1172] Boolean parameter values are overridden by default values<br/> 
            [BEAM-1151] Geometry subset operator<br/>
            [BEAM-1133] Add missing help files for GPF and Operators<br/>
            [BEAM-1125] Outer scene region is not invalid for certain reprojected products<br/>
            [BEAM-1052] All processors should be able to store/reload their configuration<br/>
            [BEAM-961] GPT shall sort the list of available operators<br/>
        <p>From 4.7 to 4.8:<br/>
            [BEAM-1147] Signed byte data type interpreted as unsigned byte<br/>
            [BEAM-1134] Mosaic with polar stereographic projection<br/>
            [BEAM-1127] GPF geo-physical Tile API doesn't consider the valid-pixel mask<br/>
            [BEAM-1116] GPF Tile API and API-docs to better express difference between raw and physical samples<br/>
            [BEAM-1114] GPF Tile API to provide method to directly check sample validity<br/>
            [BEAM-1112] GPF Operator API to provide better support for image filters and convolutions<br/>
            [BEAM-1099] DefaultSingleTargetProductDialog without processing parameter leads to exception<br/>
            [BEAM-1097] Exception if reprojection results in large target product<br/>
        </p>
        <p>From 4.6 to 4.7:<br/>
         	[BEAM-1061] Corruption of band layer generated from command line using Band Maths Tool in BEAM 4.7 RC1<br/>
         	[BEAM-1004] X and Y variables always zero in band arithmetic<br/>
        </p>         	
        <p>From 4.2 to 4.6:<br/>
            [BEAM-988] Processor dialogs to output performance statistics<br/>
            [BEAM-987] Processor dialogs to output detailed error messages<br/>
            [BEAM-918] Source product selector label and tool tip text are not set<br/>
        </p>
        <p>From 4.1 to 4.2:<br/>
            [BEAM-836] Update product header if changed during computation<br/>
            [BEAM-833] GPT computes incomplete output rasters<br/>
            [BEAM-827] Standard dialogs for operators should be modeless<br/>
            [BEAM-822] GPT crash with virtual bands<br/>
            [BEAM-811] Graph XML should contain an application specific data section<br/>
            [BEAM-800] Graph XML shall support id/refid syntax<br/>
            [BEAM-799] Introduce version element in graph xml<br/>
            [BEAM-795] Computation of target properties<br/>
            [BEAM-792] Control setting of operator parameter default values<br/>
            [BEAM-790] Inherited parameter annotations of GPF operators ignored<br/>
            [BEAM-786] GPT reports NullPointerException if -f<format> option is missing<br/>
            [BEAM-776] Provide TileIterator to loop over all tile pixels<br/>
            [BEAM-774] GPT reports NullPointerException if called on a graph without parameters<br/>
            [BEAM-773] GPT shall no longer log warnings to console<br/>
            [BEAM-770] GPT prints stack trace when invoked without sources<br/>
            [BEAM-762] Operator within VISAT don't warn, when file already exist<br/>
            [BEAM-760] The target product selector throws NullPointerException<br/>
            [BEAM-530] Explicit declaration of sources, targets and parameters in graph xml<br/>
        </p>]]>
    </changelog>

    <dependency>
        <module>ceres-binding</module>
    </dependency>
    <dependency>
        <module>beam-core</module>
    </dependency>
    <dependency>
        <module>beam-ui</module>
        <optional>true</optional>
    </dependency>

    <categories>System,Application,Processing</categories>

    <extension point="ceres-core:serviceProviders">
        <serviceProvider>org.esa.beam.framework.gpf.OperatorSpi</serviceProvider>
    </extension>

    <extension point="beam-ui:helpSets">
        <helpSet>
            <parent>beam-help</parent>
            <path>doc/help/gpf.hs</path>
        </helpSet>
    </extension>

</module>
