<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
h1
        {mso-style-priority:9;
        mso-style-link:"Otsikko 1 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:24.0pt;
        font-family:"Calibri",sans-serif;
        font-weight:bold;}
h2
        {mso-style-priority:9;
        mso-style-link:"Otsikko 2 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:18.0pt;
        font-family:"Calibri",sans-serif;
        font-weight:bold;}
h3
        {mso-style-priority:9;
        mso-style-link:"Otsikko 3 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:13.5pt;
        font-family:"Calibri",sans-serif;
        font-weight:bold;}
h4
        {mso-style-priority:9;
        mso-style-link:"Otsikko 4 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;
        font-weight:bold;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.Shkpostityyli17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.Otsikko1Char
        {mso-style-name:"Otsikko 1 Char";
        mso-style-priority:9;
        mso-style-link:"Otsikko 1";
        font-family:"Calibri",sans-serif;
        mso-fareast-language:FI;
        font-weight:bold;}
span.Otsikko2Char
        {mso-style-name:"Otsikko 2 Char";
        mso-style-priority:9;
        mso-style-link:"Otsikko 2";
        font-family:"Calibri",sans-serif;
        mso-fareast-language:FI;
        font-weight:bold;}
span.Otsikko3Char
        {mso-style-name:"Otsikko 3 Char";
        mso-style-priority:9;
        mso-style-link:"Otsikko 3";
        font-family:"Calibri",sans-serif;
        mso-fareast-language:FI;
        font-weight:bold;}
span.Otsikko4Char
        {mso-style-name:"Otsikko 4 Char";
        mso-style-priority:9;
        mso-style-link:"Otsikko 4";
        font-family:"Calibri",sans-serif;
        mso-fareast-language:FI;
        font-weight:bold;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 70.85pt 2.0cm;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1863602;
        mso-list-template-ids:-1100168848;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1
        {mso-list-id:297956469;
        mso-list-template-ids:205920844;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2
        {mso-list-id:307591703;
        mso-list-template-ids:607559462;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l3
        {mso-list-id:934822338;
        mso-list-type:hybrid;
        mso-list-template-ids:-1578194838 924090192 67829763 67829765 67829761 67829763 67829765 67829761 67829763 67829765;}
@list l3:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:Calibri;}
@list l3:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l3:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l3:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l3:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l3:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l4
        {mso-list-id:1038162938;
        mso-list-template-ids:356941150;}
@list l4:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l4:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l5
        {mso-list-id:1217203139;
        mso-list-template-ids:-1300592746;}
@list l5:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l5:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l5:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l5:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l5:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l5:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l5:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l5:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l6
        {mso-list-id:1375233301;
        mso-list-template-ids:1758249140;}
@list l6:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l6:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l6:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l6:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l6:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l6:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l6:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l6:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FI" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Good news everyone,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">We released Oskari 2.3.0 this week and it is now available on GitHub (<a href="https://github.com/oskariorg">https://github.com/oskariorg</a>) and Oskari.org Maven repository. The sample application package has been updated
 on the download link in Oskari.org (<a href="https://oskari.org/download">https://oskari.org/download</a>) and
</span><a href="http://download.osgeo.org/oskari/"><span lang="EN-US">http://download.osgeo.org/oskari/</span></a><span lang="EN-US">. As always you can take a peek at the latest at
<a href="https://demo.oskari.org/">https://demo.oskari.org/</a>.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">The major changes in this version are:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<ul style="margin-top:0cm" type="disc">
<li class="MsoListParagraph" style="margin-left:0cm;mso-list:l3 level1 lfo1"><span lang="EN-US">Group hierarchy support for the React-based layer listing implementation<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0cm;mso-list:l3 level1 lfo1"><span lang="EN-US">Improvements on the scattered timeseries visualization UI<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0cm;mso-list:l3 level1 lfo1"><span lang="EN-US">Layer comparison tool aka layerswipe<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0cm;mso-list:l3 level1 lfo1"><span lang="EN-US">New hooks for extending Oskari with application specific code for RPC and GFI response formatting<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0cm;mso-list:l3 level1 lfo1"><span lang="EN-US">Bunch of improvements for layer administration UI</span><span lang="EN-US"><o:p></o:p></span></li></ul>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<h1 style="margin-bottom:12.0pt;background:white"><span lang="EN-US" style="font-size:22.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Release Notes<o:p></o:p></span></h1>
<h2 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;border-bottom:var(--color-border-secondary);font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:16.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">oskari-frontend<o:p></o:p></span></h2>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">For a full list of changes see: </span><span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><a href="https://github.com/oskariorg/oskari-frontend/milestone/30?closed=1"><span lang="EN-US">https://github.com/oskariorg/oskari-frontend/milestone/30?closed=1</span></a></span><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><o:p></o:p></span></p>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:14.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Swipe tool<o:p></o:p></span></h3>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">New tool for geoportals to allow users to compare two layers. The tool adds a vertical "splitter bar" in middle of the map where the layers are shown normally on the
 other side and the top layer is not shown on the other side. This allows the user to compare layers side by side and drag the viewport for easy comparison (especially for fully opaque layers).<o:p></o:p></span></p>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white">
<span style="font-size:14.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Admin functionalities<o:p></o:p></span></h3>
<ul type="disc">
<li class="MsoNormal" style="color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Layers are now updated properly on listing and map when admin modifies them (without page reload).<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">The additional data tab now provides layer id with created/updated timestamps data.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Fixes to capabilities handling and "update now" on layer capabilities data.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Layer metadata UUID improvements: now shows both the original and possible override for it. Previously original wasn't saved so it couldn't be updated automatically from capabilities
 either.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">WMS layer legend improvements: legend can now be defined per style instead of one per layer and admin is shown the url from capabilities in addition to the one that has been overridden
 by the admin tools.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Unique name is no longer required or asked by the admin UI for MVT layers.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Credentials fields should no longer autocomplete saved passwords when registering layers.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Improved error handling for unsupported layer types.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Fixed an issue where the visual vector feature style editor resulted in different color for features compared to the one that was selected on the editor.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo2;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added maximumScreenSpaceError field for 3D-tiles layers.<o:p></o:p></span></li></ul>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:14.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Scattered timeseries user interface improvements<o:p></o:p></span></h3>
<ul type="disc">
<li class="MsoNormal" style="color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added a new mode called "single year" which enables the user to select one year at a time using the timeseries slider.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">The user can now switch between "single year" and "time range" modes when admin selects "range" type UI for end-users.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Single year UI is the default for end-users.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Timeseries map tiles are only loaded as singleTile for "player" UI (for buffering) making the scattered timeseries more slick to use with tiled maps (making them cacheable etc).<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Changed how WFS-based metadata is visualized. The features are no longer drawn on the screen if admin doesn't specifically enable them. When zoomed out of range for WFS-metadata the
 timeseries data "dots" on the UI control used from the WMS timeseries data which is not as accurate. The WFS features are no longer used as an index map.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">The selected time can now be saved as part of appsetup state and requested with a control parameter in URL i.e. a view can be now shared as a link with selected time or range of time.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Other visual and usability fixes.<o:p></o:p></span></li></ul>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:14.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Hierarchy support for layer listing<o:p></o:p></span></h3>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">The React-based layer listing UI have been improved to support group hierarchy as described here: </span><span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><a href="https://github.com/oskariorg/oskari-docs/issues/234"><span lang="EN-US">https://github.com/oskariorg/oskari-docs/issues/234</span></a></span><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><o:p></o:p></span></p>
<p style="margin:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">This change makes the </span><code><span lang="EN-US" style="font-size:10.0pt;font-family:Consolas;color:#24292E">hierachical-layerlist</span></code><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"> bundle
 obsolete and enables us to move forward with removing the old/deprecated versions of layer listing and administration implementations from oskari-frontend. This will be removed in the next version and allows us to further optimize and enhance the layerlisting
 to make these functionalities better for everyone.<o:p></o:p></span></p>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Note! Layers are now required to have "group" registered in the map layer service to be listed in a group. Previously groups were generated based on group names without
 the requirement for explicit groups to link to.<o:p></o:p></span></p>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:14.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Application specific extension hooks added<o:p></o:p></span></h3>
<h4 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#24292E">RPC improvements<o:p></o:p></span></h4>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Application specific code can now register new functions for RPC that can be exposed as API for embedded maps. See an example here: </span><span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><a href="https://github.com/oskariorg/oskari-frontend/pull/1485"><span lang="EN-US">https://github.com/oskariorg/oskari-frontend/pull/1485</span></a></span><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><o:p></o:p></span></p>
<h4 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#24292E">Custom GFI response formatting<o:p></o:p></span></h4>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Added support for application specific formatters for GFI response: </span><span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><a href="https://github.com/oskariorg/oskari-frontend/pull/1481"><span lang="EN-US">https://github.com/oskariorg/oskari-frontend/pull/1481</span></a></span><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><o:p></o:p></span></p>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:14.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Runtime vector layer improvements<o:p></o:p></span></h3>
<ul type="disc">
<li class="MsoNormal" style="color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level1 lfo4;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Layer can now be registered for frontend service without adding it to the map.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l5 level1 lfo4;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Adding features to a hidden layer leaves the layer hidden instead of making it partly visible.<o:p></o:p></span></li></ul>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:14.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Thematic maps<o:p></o:p></span></h3>
<ul type="disc">
<li class="MsoNormal" style="color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo5;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Removing the statistical region set layer from map no longer removes selected indicators.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo5;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">The statistical region set layer is available in layer listing before any indicators are selected.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo5;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">If no indicators have been added and the user adds the region set layer to map the statistical data search window is opened automatically.<o:p></o:p></span></li></ul>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:14.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">Other<o:p></o:p></span></h3>
<ul type="disc">
<li class="MsoNormal" style="color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Changed the way WFS-/vector feature layers handle feature property name localization. The data is now available in a more usable format for the frontend.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Vectorlayertile now supports options.declutter flag that is passed to OpenLayers if configured.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">GFI requests can now have layer specific additional parameters. For example "time" parameter is now sent to GFI requests for timeseries layers.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">My places descriptions now allow more characters (for example </span><code><span lang="EN-US" style="font-size:10.0pt;font-family:Consolas">&</span></code><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">).<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added a button for end-users to download my places features as GeoJSON.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Layer names with special characters are now shown correctly.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">3D tiles layers now support the same "Oskari style" definition structure as WFS layers.
</span><span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Previously the extra featureStyle key was not supported.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Tooltip and Confirm components in 'oskari-ui' import should no longer give warnings when they have a styled-component as direct child.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Trying to set application state with "null" or empty object will now be ignored and triggers a warning to dev-console to use resetState() instead.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Oskari.app.playBundle() no longer causes another </span><code><span lang="EN-US" style="font-size:10.0pt;font-family:Consolas">app.start</span></code><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif"> event
 to be triggered.<o:p></o:p></span></li></ul>
<h2 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:16.5pt;font-family:"Segoe UI",sans-serif;color:#24292E">oskari-server<o:p></o:p></span></h2>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing: border-box;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;word-spacing:0px">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E">For a full list of changes see: </span><span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><a href="https://github.com/oskariorg/oskari-server/milestone/29?closed=1"><span lang="EN-US">https://github.com/oskariorg/oskari-server/milestone/29?closed=1</span></a></span><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif;color:#24292E"><o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal" style="color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added support for GeoPackages for userlayer import (the UI doesn't say so but importing these should work).<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">When layer is loaded for editing the capabilities are now refreshed before the data is written out for frontend.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Metadata UUID is now included in the layer capabilities response<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added support for a new control parameter "timeseries" to pass URL-parameter as part of frontend state.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">GetWFSLayerFields now returns "filter" and "geometryType" as part of it's response.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Fixed an issue where bundle states were not written for appsetups on saved views listing when bundle config was missing.
</span><span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Fixes for example saved map rotation on views.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">GFI requests now include identifier headers declaring that an Oskari instance is requesting the data.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added a route that can be used to request a listing of users "my places" features as GeoJSON with a filename header.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added support for localized layer names for user generated data.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Fixed an issue with global search result limit (defaulted to 100 because of timing issues instead of configured limit).<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added support for updating capabilities for layers based on data provider or group (previously available options were only by layer or all layers).<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Improved user layer import parsing to allow folders inside zip for the imported files.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">GeoServer artifacts updated for GeoServer 2.19 (updated bundled GeoServer as well/requires manual updating to update, but older installs work as well so update isn't necessary).<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Fix for setup.war webapp (didn't work properly after some internal layers got removed).<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Compiling oskari-server with latest Java 11 update works again.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Fixes for legend url proxying.<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Added support for AWS ElastiCache Redis setup: </span><span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif"><a href="https://github.com/oskariorg/oskari-server/pull/716"><span lang="EN-US">https://github.com/oskariorg/oskari-server/pull/716</span></a></span><span lang="EN-US" style="font-size:12.0pt;font-family:"Segoe UI",sans-serif"><o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo7;background:white;box-sizing: border-box">
<span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Updated dependencies:<o:p></o:p></span>
<ul type="circle">
<li class="MsoNormal" style="color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l6 level2 lfo7;background:white;box-sizing: border-box">
<span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">GeoTools 23.2 -> 24.2<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level2 lfo7;background:white;box-sizing: border-box">
<span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Spring 5.3.3 -> 5.3.5<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level2 lfo7;background:white;box-sizing: border-box">
<span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Spring-security 5.4.2 -> 5.4.6<o:p></o:p></span></li><li class="MsoNormal" style="color:#24292E;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l6 level2 lfo7;background:white;box-sizing: border-box">
<span style="font-size:12.0pt;font-family:"Segoe UI",sans-serif">Session 2020.0.3 -> 2020.0.4<o:p></o:p></span></li></ul>
</li></ul>
<p class="MsoNormal"><span lang="EN-US">Note! The 2.3.0 downloadable zip-bundle includes updated GeoServer and Jetty. It’s not required to update them but you will get new versions for new installs automatically.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Have a nice weekend and happy updating,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">          Sami<o:p></o:p></span></p>
</div>
</body>
</html>