Repository: focus-shift/jollyday (java)

Issue:
Austria: Martin of Tours Day, Josef of Nazaret Day, Day of the plebiscite, Leopold III. day, Florian of Lorch's Day, Rupert of Salzburg's day are no public holiday
### Affected country

Austria

### Affected public holiday

Martin of Tours Day, Josef of Nazaret Day, Day of the plebiscite, Leopold III. day, Florian of Lorch's Day, Rupert of Salzburg's day 

### Source of the information

https://de.wikipedia.org/wiki/Feiertage_in_%C3%96sterreich

### More information

Martin of Tours Day, Josef of Nazaret Day, Day of the plebiscite, Leopold III. Day, Florian of Lorch's day, Rupert of Salzburg's day are no public holiday in Austria. They are of the type observance.

Pull request:
austria: martins, josef, leopold, florian, rupert and plebiscite are …
…now observance

closes #769

<!--

Thanks for contributing.
Please review the following notes before submitting you pull request.

Please look for other issues or pull requests which already work on this topic. Is somebody already on it? Do you need to synchronize?

# Security Vulnerabilities

🛑 STOP! 🛑 If your contribution fixes a security vulnerability, please do not submit it.
Instead, please write an E-Mail to to one of the maintainer with all the information
to recreate the security vulnerability.

# Describing Your Changes

If, having reviewed the notes above, you're ready to submit your pull request, please
provide a brief description of the proposed changes.

If they:
 🐞 fix a bug, please describe the broken behaviour and how the changes fix it.
    Please label with 'type: bug' and 'status: new'
    
 🎁 make an enhancement, please describe the new functionality and why you believe it's useful.
    Please label with 'type: enhancement' and 'status: new'
 
If your pull request relates to any existing issues,
please reference them by using the issue number prefixed with #.

-->


Patch:
diff --git a/jollyday-core/src/main/resources/holidays/Holidays_at.xml b/jollyday-core/src/main/resources/holidays/Holidays_at.xml
index 301cd64d..2aa7be8d 100644
--- a/jollyday-core/src/main/resources/holidays/Holidays_at.xml
+++ b/jollyday-core/src/main/resources/holidays/Holidays_at.xml
@@ -23,58 +23,65 @@
     <ChristianHoliday type="CORPUS_CHRISTI" descriptionPropertiesKey="christian.CORPUS_CHRISTI"/>
   </Holidays>
 
+  <Sources>
+    <Source>https://www.wien.gv.at/amtshelfer/feiertage/</Source>
+    <Source>https://en.wikipedia.org/wiki/Public_holidays_in_Austria</Source>
+    <Source of="ISO 3166">https://www.iso.org/obp/ui/#iso:code:3166:AT</Source>
+    <Source of="ISO 3166-2">https://en.wikipedia.org/wiki/ISO_3166-2:AT</Source>
+  </Sources>
+
   <SubConfigurations hierarchy="1" description="Burgenland">
     <Holidays>
-      <Fixed month="NOVEMBER" day="11" descriptionPropertiesKey="MARTINS_DAY"/>
+      <Fixed month="NOVEMBER" day="11" descriptionPropertiesKey="MARTINS_DAY" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 
   <SubConfigurations hierarchy="2" description="Kärnten">
     <Holidays>
-      <Fixed month="MARCH" day="19" descriptionPropertiesKey="JOSEFS_DAY"/>
-      <Fixed month="OCTOBER" day="10" descriptionPropertiesKey="PLEBISCITE"/>
+      <Fixed month="MARCH" day="19" descriptionPropertiesKey="JOSEFS_DAY" localizedType="OBSERVANCE"/>
+      <Fixed month="OCTOBER" day="10" descriptionPropertiesKey="PLEBISCITE" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 
   <SubConfigurations hierarchy="3" description="Niederösterreich">
     <Holidays>
-      <Fixed month="NOVEMBER" day="15" descriptionPropertiesKey="LEOPOLD"/>
+      <Fixed month="NOVEMBER" day="15" descriptionPropertiesKey="LEOPOLD" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 
   <SubConfigurations hierarchy="4" description="Oberösterreich">
     <Holidays>
-      <Fixed month="MAY" day="4" descriptionPropertiesKey="FLORIAN"/>
+      <Fixed month="MAY" day="4" descriptionPropertiesKey="FLORIAN" validFrom="2004" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 
   <SubConfigurations hierarchy="5" description="Salzburg">
     <Holidays>
-      <Fixed month="SEPTEMBER" day="24" descriptionPropertiesKey="RUPERT"/>
+      <Fixed month="SEPTEMBER" day="24" descriptionPropertiesKey="RUPERT" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 
   <SubConfigurations hierarchy="6" description="Steiermark">
     <Holidays>
-      <Fixed month="MARCH" day="19" descriptionPropertiesKey="JOSEFS_DAY"/>
+      <Fixed month="MARCH" day="19" descriptionPropertiesKey="JOSEFS_DAY" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 
   <SubConfigurations hierarchy="7" description="Tirol">
     <Holidays>
-      <Fixed month="MARCH" day="19" descriptionPropertiesKey="JOSEFS_DAY"/>
+      <Fixed month="MARCH" day="19" descriptionPropertiesKey="JOSEFS_DAY" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 
   <SubConfigurations hierarchy="8" description="Vorarlberg">
     <Holidays>
-      <Fixed month="MARCH" day="19" descriptionPropertiesKey="JOSEFS_DAY"/>
+      <Fixed month="MARCH" day="19" descriptionPropertiesKey="JOSEFS_DAY" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 
   <SubConfigurations hierarchy="9" description="Wien">
     <Holidays>
-      <Fixed month="NOVEMBER" day="15" descriptionPropertiesKey="LEOPOLD"/>
+      <Fixed month="NOVEMBER" day="15" descriptionPropertiesKey="LEOPOLD" localizedType="OBSERVANCE"/>
     </Holidays>
   </SubConfigurations>
 </Configuration>
diff --git a/jollyday-jaxb/pom.xml b/jollyday-jaxb/pom.xml
index 39a679e5..79fd0b31 100644
--- a/jollyday-jaxb/pom.xml
+++ b/jollyday-jaxb/pom.xml
@@ -129,7 +129,7 @@
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>jaxb2-maven-plugin</artifactId>
-        <version>3.3.0</version>
+        <version>3.2.0</version>
         <executions>
           <execution>
             <id>generate</id>
diff --git a/pom.xml b/pom.xml
index 4a5af4b1..080267e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,7 +39,7 @@
     <tests.groups>!BenchmarkTest</tests.groups>
 
     <junit.version>5.12.1</junit.version>
-    <mockito.version>5.17.0</mockito.version>
+    <mockito.version>5.16.1</mockito.version>
     <assertj.version>3.27.3</assertj.version>
     <jqwik.version>1.9.2</jqwik.version>
     <jmh.version>1.37</jmh.version>
@@ -174,7 +174,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>3.5.3</version>
+          <version>3.5.2</version>
           <configuration>
             <groups>${tests.groups}</groups>
           </configuration>
@@ -189,13 +189,13 @@
         <plugin>
           <groupId>org.jacoco</groupId>
           <artifactId>jacoco-maven-plugin</artifactId>
-          <version>0.8.13</version>
+          <version>0.8.12</version>
         </plugin>
 
         <plugin>
           <groupId>org.sonarsource.scanner.maven</groupId>
           <artifactId>sonar-maven-plugin</artifactId>
-          <version>5.1.0.4751</version>
+          <version>5.0.0.4389</version>
         </plugin>
       </plugins>
     </pluginManagement>
@@ -251,7 +251,7 @@
           <dependency>
             <groupId>de.skuzzle.enforcer</groupId>
             <artifactId>restrict-imports-enforcer-rule</artifactId>
-            <version>2.6.1</version>
+            <version>2.6.0</version>
           </dependency>
         </dependencies>
         <executions>
@@ -297,7 +297,7 @@
           <plugin>
             <groupId>org.jacoco</groupId>
             <artifactId>jacoco-maven-plugin</artifactId>
-            <version>0.8.13</version>
+            <version>0.8.12</version>
             <executions>
               <execution>
                 <id>prepare-agent</id>


Test patch:
diff --git a/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidayATTest.java b/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidayATTest.java
index 060ba568..faa2ce15 100644
--- a/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidayATTest.java
+++ b/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidayATTest.java
@@ -2,6 +2,8 @@ package de.focus_shift.jollyday.tests.country;
 
 import org.junit.jupiter.api.Test;
 
+import java.time.Year;
+
 import static de.focus_shift.jollyday.core.HolidayCalendar.AUSTRIA;
 import static de.focus_shift.jollyday.core.HolidayType.OBSERVANCE;
 import static de.focus_shift.jollyday.tests.CalendarCheckerApi.assertFor;
@@ -36,16 +38,19 @@ class HolidayATTest {
       .hasChristianHoliday("ASCENSION_DAY").and()
       .hasChristianHoliday("WHIT_MONDAY").and()
       .hasChristianHoliday("CORPUS_CHRISTI").and()
-      .hasFixedHoliday("MARTINS_DAY", NOVEMBER, 11).inSubdivision("1").and()
-      .hasFixedHoliday("JOSEFS_DAY", MARCH, 19).inSubdivision("2").and()
-      .hasFixedHoliday("PLEBISCITE", OCTOBER, 10).inSubdivision("2").and()
-      .hasFixedHoliday("LEOPOLD", NOVEMBER, 15).inSubdivision("3").and()
-      .hasFixedHoliday("FLORIAN", MAY, 4).inSubdivision("4").and()
-      .hasFixedHoliday("RUPERT", SEPTEMBER, 24).inSubdivision("5").and()
-      .hasFixedHoliday("JOSEFS_DAY", MARCH, 19).inSubdivision("6").and()
-      .hasFixedHoliday("JOSEFS_DAY", MARCH, 19).inSubdivision("7").and()
-      .hasFixedHoliday("JOSEFS_DAY", MARCH, 19).inSubdivision("8").and()
-      .hasFixedHoliday("LEOPOLD", NOVEMBER, 15).inSubdivision("9")
+      .hasFixedHoliday("MARTINS_DAY", NOVEMBER, 11, OBSERVANCE).inSubdivision("1").and()
+      .hasFixedHoliday("JOSEFS_DAY", MARCH, 19, OBSERVANCE).inSubdivision("2").and()
+      .hasFixedHoliday("PLEBISCITE", OCTOBER, 10, OBSERVANCE).inSubdivision("2").and()
+      .hasFixedHoliday("LEOPOLD", NOVEMBER, 15, OBSERVANCE).inSubdivision("3").and()
+      .hasFixedHoliday("FLORIAN", MAY, 4, OBSERVANCE).inSubdivision("4")
+        .notBetween(Year.of(1900), Year.of(2003))
+        .between(Year.of(2004), Year.of(2500))
+      .and()
+      .hasFixedHoliday("RUPERT", SEPTEMBER, 24, OBSERVANCE).inSubdivision("5").and()
+      .hasFixedHoliday("JOSEFS_DAY", MARCH, 19, OBSERVANCE).inSubdivision("6").and()
+      .hasFixedHoliday("JOSEFS_DAY", MARCH, 19, OBSERVANCE).inSubdivision("7").and()
+      .hasFixedHoliday("JOSEFS_DAY", MARCH, 19, OBSERVANCE).inSubdivision("8").and()
+      .hasFixedHoliday("LEOPOLD", NOVEMBER, 15, OBSERVANCE).inSubdivision("9")
       .check();
   }
 }