diff --git a/NOTICE b/NOTICE
index 774e975..327047d 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Ivy (TM)
-Copyright 2007-2019 The Apache Software Foundation
+Copyright 2007-2019,2022 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/test/java/org/apache/ivy/core/settings/OnlineXmlSettingsParserTest.java b/test/java/org/apache/ivy/core/settings/OnlineXmlSettingsParserTest.java
index b98a147..24a5738 100644
--- a/test/java/org/apache/ivy/core/settings/OnlineXmlSettingsParserTest.java
+++ b/test/java/org/apache/ivy/core/settings/OnlineXmlSettingsParserTest.java
@@ -42,7 +42,7 @@
         configureURLHandler();
         IvySettings settings = new IvySettings();
         XmlSettingsParser parser = new XmlSettingsParser(settings);
-        parser.parse(new URL("http://ant.apache.org/ivy/test/ivysettings-include-http-url.xml"));
+        parser.parse(new URL("https://ant.apache.org/ivy/test/ivysettings-include-http-url.xml"));
 
         DependencyResolver resolver = settings.getResolver("ivyrep");
         assertNotNull(resolver);
@@ -56,7 +56,7 @@
         IvySettings settings = new IvySettings();
         XmlSettingsParser parser = new XmlSettingsParser(settings);
         parser.parse(new URL(
-                "http://ant.apache.org/ivy/test/ivysettings-include-http-relative-url.xml"));
+                "https://ant.apache.org/ivy/test/ivysettings-include-http-relative-url.xml"));
 
         DependencyResolver resolver = settings.getResolver("ivyrep");
         assertNotNull(resolver);
@@ -70,7 +70,7 @@
         IvySettings settings = new IvySettings();
         XmlSettingsParser parser = new XmlSettingsParser(settings);
         parser.parse(new URL(
-                "http://ant.apache.org/ivy/test/ivysettings-include-http-relative-file.xml"));
+                "https://ant.apache.org/ivy/test/ivysettings-include-http-relative-file.xml"));
 
         DependencyResolver resolver = settings.getResolver("ivyrep");
         assertNotNull(resolver);
@@ -86,7 +86,7 @@
         IvySettings settings = new IvySettings();
         XmlSettingsParser parser = new XmlSettingsParser(settings);
         parser.parse(new URL(
-                "http://ant.apache.org/ivy/test/ivysettings-include-http-absolute-file.xml"));
+                "https://ant.apache.org/ivy/test/ivysettings-include-http-absolute-file.xml"));
 
         DependencyResolver inc = settings.getResolver("includeworks");
         assertNotNull(inc);
diff --git a/test/java/org/apache/ivy/osgi/updatesite/UpdateSiteLoaderTest.java b/test/java/org/apache/ivy/osgi/updatesite/UpdateSiteLoaderTest.java
index b456634..81754e8 100644
--- a/test/java/org/apache/ivy/osgi/updatesite/UpdateSiteLoaderTest.java
+++ b/test/java/org/apache/ivy/osgi/updatesite/UpdateSiteLoaderTest.java
@@ -77,7 +77,7 @@
     public void testM2Eclipse() throws IOException, ParseException, SAXException,
             URISyntaxException {
         RepoDescriptor site = loader.load(new URI(
-                "http://download.eclipse.org/technology/m2e/releases/"));
+                "https://download.eclipse.org/technology/m2e/releases/"));
         assertTrue(CollectionUtils.toList(site.getModules()).size() > 20);
     }
 
@@ -85,7 +85,7 @@
     @Test
     public void testHeliosEclipse() throws IOException, ParseException, SAXException,
             URISyntaxException {
-        RepoDescriptor site = loader.load(new URI("http://download.eclipse.org/releases/helios/"));
+        RepoDescriptor site = loader.load(new URI("https://download.eclipse.org/releases/helios/"));
         assertTrue(CollectionUtils.toList(site.getModules()).size() > 900);
     }
 
