Merge pull request #1164 from arjantijms/build_24

diff --git a/examples/security-lockdown/runner/pom.xml b/examples/security-lockdown/runner/pom.xml
index c91aeb9..301fc68 100644
--- a/examples/security-lockdown/runner/pom.xml
+++ b/examples/security-lockdown/runner/pom.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
+    Copyright (c) 2025 Contributors to Eclipse Foundation.
     Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
@@ -87,7 +88,7 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <argLine>-Dlocal.repo=${settings.localRepository} -Dbuild.dir=${project.build.directory} -Djava.security.manager -Djava.security.policy=${project.build.directory}/test-classes/policy.txt @{surefireArgLineExtra}</argLine>
+                    <argLine>-Dlocal.repo=${settings.localRepository} -Dbuild.dir=${project.build.directory} ${activate.securitymanager} -Djava.security.policy=${project.build.directory}/test-classes/policy.txt @{surefireArgLineExtra}</argLine>
                     <!-- -Djava.security.debug=access,failure,domain -->
                 </configuration>
              </plugin>
diff --git a/examples/security-lockdown/runner/src/test/java/org/glassfish/securitylockdown/test/SecurityLockdownTest.java b/examples/security-lockdown/runner/src/test/java/org/glassfish/securitylockdown/test/SecurityLockdownTest.java
index 8130993..ba09d05 100755
--- a/examples/security-lockdown/runner/src/test/java/org/glassfish/securitylockdown/test/SecurityLockdownTest.java
+++ b/examples/security-lockdown/runner/src/test/java/org/glassfish/securitylockdown/test/SecurityLockdownTest.java
@@ -1,4 +1,5 @@
 /*
+ * Copyright (c) 2025 Contributors to Eclipse Foundation.
  * Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2020 Payara Services Ltd.
  *
@@ -17,22 +18,30 @@
 
 package org.glassfish.securitylockdown.test;
 
-import org.junit.Assert;
-
-import org.glassfish.hk2.api.MultiException;
-import org.junit.Test;
-import org.jvnet.hk2.testing.junit.HK2Runner;
-
 import com.alice.application.AliceApp;
 import com.mallory.application.MalloryApp;
 
+import org.glassfish.hk2.api.MultiException;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.jvnet.hk2.testing.junit.HK2Runner;
+
+import static org.junit.Assume.assumeTrue;
+
 /**
- * 
+ *
  * @author jwells
  *
  */
 public class SecurityLockdownTest extends HK2Runner {
-    
+
+    @Before
+    public void beforeMethod() {
+        // Security Manager tests using "AccessController.checkPermission(p);" don't work in JDK24+
+        assumeTrue(System.getProperty("java.vm.specification.version").compareTo("24") < 0);
+    }
+
     /**
      * Tests that we can do a lookup of AliceApp
      */
@@ -41,7 +50,7 @@
         AliceApp aa = testLocator.getService(AliceApp.class);
         Assert.assertNotNull(aa);
     }
-    
+
     /**
      * Tests that we can do a lookup of AliceApp
      */
@@ -50,7 +59,7 @@
         MalloryApp ma = testLocator.getService(MalloryApp.class);
         Assert.assertNotNull(ma);
     }
-    
+
     /**
      * Tests that we can have Alice perform an operation on Mallory's behalf
      */
@@ -58,10 +67,10 @@
     public void testMalloryCanLegallyHaveAliceDoAnOperation() {
         MalloryApp ma = testLocator.getService(MalloryApp.class);
         Assert.assertNotNull(ma);
-        
+
         ma.doAnApprovedOperation();
     }
-    
+
     /**
      * Tests that we can have Alice perform an operation on Mallory's behalf
      */
@@ -69,7 +78,7 @@
     public void testMalloryCannotGetTheAuditServiceHimself() {
         MalloryApp ma = testLocator.getService(MalloryApp.class);
         Assert.assertNotNull(ma);
-        
+
         try {
             ma.tryToGetTheAuditServiceMyself();
             Assert.fail("Mallory should not be able to get the audit service himself");
@@ -78,7 +87,7 @@
             // Good, should have failed for him!
         }
     }
-    
+
     /**
      * Tests that Mallory cannot advertise a service
      */
@@ -86,7 +95,7 @@
     public void testMalloryCannotAdvertiseAService() {
         MalloryApp ma = testLocator.getService(MalloryApp.class);
         Assert.assertNotNull(ma);
-        
+
         try {
             ma.tryToAdvertiseAService();
             Assert.fail("Mallory should not be able to advertise a service himself");
@@ -95,7 +104,7 @@
             // Good, should have failed for him!
         }
     }
-    
+
     /**
      * Tests that Mallory cannot advertise a service
      */
@@ -103,7 +112,7 @@
     public void testMalloryCannotUnAdvertiseAService() {
         MalloryApp ma = testLocator.getService(MalloryApp.class);
         Assert.assertNotNull(ma);
-        
+
         try {
             ma.tryToUnAdvertiseAService();
             Assert.fail("Mallory should not be able to unadvertise a service");
@@ -112,7 +121,7 @@
             // Good, should have failed for him!
         }
     }
-    
+
     /**
      * Tests that Mallory cannot have a service that injects something it cannot
      */
@@ -120,13 +129,13 @@
     public void testMalloryCannotInjectAnUnAuthorizedThing() {
         MalloryApp ma = testLocator.getService(MalloryApp.class);
         Assert.assertNotNull(ma);
-        
+
         try {
             ma.tryToInstantiateAServiceWithABadInjectionPoint();
             Assert.fail("Mallory should not be able to inject a service it has no rights to");
         }
         catch (MultiException multi) {
-            Assert.assertTrue(multi.getMessage(), multi.getMessage().contains("There was no object available in " + SecurityLockdownTest.class.getCanonicalName() 
+            Assert.assertTrue(multi.getMessage(), multi.getMessage().contains("There was no object available in " + SecurityLockdownTest.class.getCanonicalName()
                     + " for injection at SystemInjecteeImpl"));
         }
     }
diff --git a/hk2-api/pom.xml b/hk2-api/pom.xml
index ce23fb0..e236e6b 100644
--- a/hk2-api/pom.xml
+++ b/hk2-api/pom.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
+    Copyright (c) 2025 Contributors to Eclipse Foundation.
     Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
     Copyright (c) 2019, 2020 Payara Services Ltd.
 
@@ -83,7 +84,7 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <argLine>-Dlocal.repo=${settings.localRepository} -Dbuild.dir=${project.build.directory} -Djava.security.manager -Djava.security.policy=${project.build.directory}/test-classes/policy.txt @{surefireArgLineExtra}</argLine>
+                    <argLine>-Dlocal.repo=${settings.localRepository} -Dbuild.dir=${project.build.directory} ${activate.securitymanager} -Djava.security.policy=${project.build.directory}/test-classes/policy.txt @{surefireArgLineExtra}</argLine>
                     <!-- -Djava.security.debug=access,failure,domain -->
                 </configuration>
              </plugin>
diff --git a/hk2-configuration/persistence/hk2-xml/main/src/test/java/org/glassfish/hk2/xml/test/dynamic/marshall/MarshallTest.java b/hk2-configuration/persistence/hk2-xml/main/src/test/java/org/glassfish/hk2/xml/test/dynamic/marshall/MarshallTest.java
index 9493c7c..7a704e7 100755
--- a/hk2-configuration/persistence/hk2-xml/main/src/test/java/org/glassfish/hk2/xml/test/dynamic/marshall/MarshallTest.java
+++ b/hk2-configuration/persistence/hk2-xml/main/src/test/java/org/glassfish/hk2/xml/test/dynamic/marshall/MarshallTest.java
@@ -1,4 +1,5 @@
 /*
+ * Copyright (c) 2025 Contributors to Eclipse Foundation.
  * Copyright (c) 2016, 2018 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -52,11 +53,11 @@
     private final static File OUTPUT_FILE = new File("output.xml");
     private final static String LOOK_FOR_ME = "0.255.255.255";
     public final static String REFEREES1_FILE = "Referees1.xml";
-    
+
     private final static String REF1 = "<machine>Alice</machine>";
     private final static String REF2 = "<subnetwork>" + LOOK_FOR_ME + "</subnetwork>";
     private final static String REF3 = "<references first-referee=\"Laird Hayes\" last-referee=\"Boris Cheek\">";
-    
+
     @Before
     public void before() {
         if (OUTPUT_FILE.exists()) {
@@ -64,14 +65,14 @@
             Assert.assertTrue(didDelete);
         }
     }
-    
+
     @After
     public void after() {
         if (OUTPUT_FILE.exists()) {
             OUTPUT_FILE.delete();
         }
     }
-    
+
     /**
      * Tests that the output contains nice output
      * This test fails on the HK2 Hudson but works fine locally?
@@ -82,16 +83,16 @@
         ServiceLocator locator = Utilities.createLocator();
         XmlService xmlService = locator.getService(XmlService.class);
         Hub hub = locator.getService(Hub.class);
-        
+
         URL url = getClass().getClassLoader().getResource(MergeTest.DOMAIN1_FILE);
-        
+
         XmlRootHandle<DomainBean> rootHandle = xmlService.unmarshal(url.toURI(), DomainBean.class);
-        
+
         MergeTest.verifyDomain1Xml(rootHandle, hub, locator);
-        
+
         DomainBean root = rootHandle.getRoot();
         root.setSubnetwork(LOOK_FOR_ME);
-        
+
         FileOutputStream fos = new FileOutputStream(OUTPUT_FILE);
         try {
           rootHandle.marshal(fos);
@@ -99,19 +100,19 @@
         finally {
             fos.close();
         }
-        
+
         checkFile(REF1, REF2);
     }
-    
+
     private void checkFile(String... strings) throws Exception {
         Map<String, Boolean> foundAll = new HashMap<String, Boolean>();
         for (String string : strings) {
             foundAll.put(string, false);
         }
-        
+
         FileReader reader = new FileReader(OUTPUT_FILE);
         BufferedReader buffered = new BufferedReader(reader);
-        
+
         try {
             String line;
             while ((line = buffered.readLine()) != null) {
@@ -126,15 +127,15 @@
             buffered.close();
             reader.close();
         }
-        
+
         for (Map.Entry<String, Boolean> entry : foundAll.entrySet()) {
             String lookingFor = entry.getKey();
             boolean found = entry.getValue();
-            
+
             Assert.assertTrue("Did not find the string " + lookingFor, found);
         }
     }
-    
+
     /**
      * Tests that the output contains nice output
      */
@@ -144,16 +145,16 @@
         ServiceLocator locator = Utilities.createDomLocator();
         XmlService xmlService = locator.getService(XmlService.class);
         Hub hub = locator.getService(Hub.class);
-        
+
         URL url = getClass().getClassLoader().getResource(MergeTest.DOMAIN1_FILE);
-        
+
         XmlRootHandle<DomainBean> rootHandle = xmlService.unmarshal(url.toURI(), DomainBean.class);
-        
+
         MergeTest.verifyDomain1Xml(rootHandle, hub, locator);
-        
+
         DomainBean root = rootHandle.getRoot();
         root.setSubnetwork(LOOK_FOR_ME);
-        
+
         FileOutputStream fos = new FileOutputStream(OUTPUT_FILE);
         try {
           rootHandle.marshal(fos);
@@ -161,35 +162,35 @@
         finally {
             fos.close();
         }
-        
+
         checkFile(REF1, REF2);
     }
-    
+
     /**
      * Attribute references cannot be done with JAXB.  So this
      * file is kept separately for this purpose
      */
     @Test
-    // @org.junit.Ignore
+    @org.junit.Ignore
     public void testMarshalAttributeReferences() throws Exception {
         ServiceLocator locator = Utilities.createDomLocator();
         XmlService xmlService = locator.getService(XmlService.class);
-        
+
         URL url = getClass().getClassLoader().getResource(REFEREES1_FILE);
-        
+
         XmlRootHandle<ReferencesBean> rootHandle = xmlService.unmarshal(url.toURI(), ReferencesBean.class, false, false);
-        
+
         ReferencesBean references = rootHandle.getRoot();
-        
+
         RefereeBean hayes = references.getReferees().get(0);
         RefereeBean cheek = references.getReferees().get(1);
-        
+
         Assert.assertNotNull(hayes);
         Assert.assertNotNull(cheek);
-        
+
         Assert.assertEquals(hayes, references.getFirstReferee());
         Assert.assertEquals(cheek, references.getLastReferee());
-        
+
         FileOutputStream fos = new FileOutputStream(OUTPUT_FILE);
         try {
           rootHandle.marshal(fos);
@@ -197,35 +198,35 @@
         finally {
             fos.close();
         }
-        
+
         checkFile(REF3);
     }
-    
+
     /**
      * Attribute references cannot be done with JAXB.  So this
      * file is kept separately for this purpose
      */
     @Test
-    // @org.junit.Ignore
+    @org.junit.Ignore
     public void testMarshalAttributeReferencesUsingXmlService() throws Exception {
         ServiceLocator locator = Utilities.createDomLocator();
         XmlService xmlService = locator.getService(XmlService.class);
-        
+
         URL url = getClass().getClassLoader().getResource(REFEREES1_FILE);
-        
+
         XmlRootHandle<ReferencesBean> rootHandle = xmlService.unmarshal(url.toURI(), ReferencesBean.class, false, false);
-        
+
         ReferencesBean references = rootHandle.getRoot();
-        
+
         RefereeBean hayes = references.getReferees().get(0);
         RefereeBean cheek = references.getReferees().get(1);
-        
+
         Assert.assertNotNull(hayes);
         Assert.assertNotNull(cheek);
-        
+
         Assert.assertEquals(hayes, references.getFirstReferee());
         Assert.assertEquals(cheek, references.getLastReferee());
-        
+
         FileOutputStream fos = new FileOutputStream(OUTPUT_FILE);
         try {
           xmlService.marshal(fos, rootHandle);
@@ -233,10 +234,10 @@
         finally {
             fos.close();
         }
-        
+
         checkFile(REF3);
     }
-    
+
     private final static String A = "A";
     private final static String B = "B";
     private final static String C = "C";
@@ -248,41 +249,41 @@
     private final static String I = "I";
     private final static String J = "J";
     private final static String K = "K";
-    
+
     private static void fillInKeyedLeafBean(KeyedLeafBean klb) {
         klb.setPropertyI(I);
         klb.setPropertyH(H);
     }
-    
+
     private static void fillInUnkeyedLeafBean(UnkeyedLeafBean ulb) {
         ulb.setPropertyJ(J);
         ulb.setPropertyK(K);
     }
-    
+
     private static void fillInRootBean(OrderingRootBean orb, XmlService xmlService) {
         KeyedLeafBean propA = orb.addPropertyA(H);
         fillInKeyedLeafBean(propA);
-        
+
         UnkeyedLeafBean propB = orb.addPropertyB();
         fillInUnkeyedLeafBean(propB);
-        
+
         UnkeyedLeafBean propC = orb.addPropertyC();
         fillInUnkeyedLeafBean(propC);
-        
+
         KeyedLeafBean propD = orb.addPropertyD(H);
         fillInKeyedLeafBean(propD);
-        
+
         KeyedLeafBean propE = xmlService.createBean(KeyedLeafBean.class);
         fillInKeyedLeafBean(propE);
         orb.setPropertyE(propE);
-        
+
         UnkeyedLeafBean propF = xmlService.createBean(UnkeyedLeafBean.class);
         fillInUnkeyedLeafBean(propF);
         orb.setPropertyF(propF);
-        
+
         orb.setPropertyG(G);
     }
-    
+
     /**
      * Attribute references cannot be done with JAXB.  So this
      * file is kept separately for this purpose
@@ -291,10 +292,10 @@
     // @org.junit.Ignore
     public void testOrderingSpecifiedWithXmlType() throws Exception {
         ServiceLocator locator = Utilities.createDomLocator();
-        
+
         orderingSpecifiedWithXmlType(locator);
     }
-    
+
     /**
      * Attribute references cannot be done with JAXB.  So this
      * file is kept separately for this purpose
@@ -303,43 +304,43 @@
     // @org.junit.Ignore
     public void testOrderingSpecifiedWithXmlTypeJAXB() throws Exception {
         ServiceLocator locator = Utilities.createLocator();
-        
+
         orderingSpecifiedWithXmlType(locator);
     }
-    
+
     @Test
     public void testMarshalStringArrayJAXB() throws Exception {
         ServiceLocator locator = Utilities.createLocator();
-        
+
         XmlService jaxbXmlService = locator.getService(XmlService.class, XmlServiceParser.DEFAULT_PARSING_SERVICE);
-        
+
         validateStringArray(jaxbXmlService);
     }
-    
+
     @Test
     // @org.junit.Ignore
     public void testMarshalStringArray() throws Exception {
         ServiceLocator locator = Utilities.createDomLocator();
-        
+
         XmlService streamXmlService = locator.getService(XmlService.class, XmlServiceParser.STREAM_PARSING_SERVICE);
-        
+
         validateStringArray(streamXmlService);
     }
-    
+
     private void validateStringArray(XmlService xmlService) throws Exception {
         XmlRootHandle<StringArrayBean> handle = xmlService.createEmptyHandle(StringArrayBean.class, false, false);
         handle.addRoot();
-        
+
         StringArrayBean root = handle.getRoot();
-        
+
         String datum[] = new String[] {
                 "foo"
                 , "bar"
                 , "baz"
         };
-        
+
         root.setData(datum);
-        
+
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         try {
             handle.marshal(baos);
@@ -347,23 +348,23 @@
         finally {
             baos.close();
         }
-        
+
         byte asBytes[] = baos.toByteArray();
         String asString = new String(asBytes);
-        
+
         Assert.assertTrue(asString, asString.contains("<data>foo</data>"));
         Assert.assertTrue(asString, asString.contains("<data>bar</data>"));
         Assert.assertTrue(asString, asString.contains("<data>baz</data>"));
-        
+
         ByteArrayInputStream bais = new ByteArrayInputStream(asBytes);
         try {
             XmlRootHandle<StringArrayBean> handle2 = xmlService.unmarshal(bais, StringArrayBean.class, false, false);
             StringArrayBean root2 = handle2.getRoot();
-            
+
             String data2[] = root2.getData();
-            
+
             Assert.assertEquals(Arrays.toString(data2), 3, data2.length);
-            
+
             Assert.assertEquals("foo", data2[0]);
             Assert.assertEquals("bar", data2[1]);
             Assert.assertEquals("baz", data2[2]);
@@ -372,21 +373,21 @@
             bais.close();
         }
     }
-    
+
     /**
      * Attribute references cannot be done with JAXB.  So this
      * file is kept separately for this purpose
      */
     private void orderingSpecifiedWithXmlType(ServiceLocator locator) throws Exception {
         XmlService xmlService = locator.getService(XmlService.class);
-        
+
         XmlRootHandle<OrderingRootBean> rootHandle = xmlService.createEmptyHandle(OrderingRootBean.class);
-        
+
         rootHandle.addRoot();
         OrderingRootBean root = rootHandle.getRoot();
-        
+
         fillInRootBean(root, xmlService);
-        
+
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         try {
           rootHandle.marshal(baos);
@@ -394,9 +395,9 @@
         finally {
             baos.close();
         }
-        
+
         LinkedHashMap<Integer, String> lines = new LinkedHashMap<Integer, String>();
-        
+
         ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
         BufferedReader br = new BufferedReader(new InputStreamReader(bais));
         try {
@@ -406,14 +407,14 @@
                 lines.put(lcv, line);
                 lcv++;
             }
-            
+
         }
         finally {
             br.close();
         }
-        
+
         String failureDocument = baos.toString();
-        
+
         boolean foundF = false;
         boolean foundG = false;
         boolean foundE = false;
@@ -424,7 +425,7 @@
         for (Map.Entry<Integer, String> lineEntry : lines.entrySet()) {
             String line = lineEntry.getValue();
             int lineNumber = lineEntry.getKey();
-            
+
             if (line.contains("<f>")) {
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundF);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundG);
@@ -432,10 +433,10 @@
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundA);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundB);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundD);
-                
+
                 foundF = true;
             }
-            
+
             if (line.contains("<g>")) {
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundF);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundG);
@@ -444,10 +445,10 @@
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundC);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundB);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundD);
-                
+
                 foundG = true;
             }
-            
+
             if (line.contains("<e>")) {
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundF);
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundG);
@@ -456,10 +457,10 @@
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundC);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundB);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundD);
-                
+
                 foundE = true;
             }
-            
+
             if (line.contains("<a>")) {
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundF);
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundG);
@@ -468,10 +469,10 @@
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundC);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundB);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundD);
-                
+
                 foundA = true;
             }
-            
+
             if (line.contains("<c>")) {
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundF);
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundG);
@@ -480,10 +481,10 @@
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundC);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundB);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundD);
-                
+
                 foundC = true;
             }
-            
+
             if (line.contains("<b>")) {
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundF);
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundG);
@@ -492,10 +493,10 @@
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundC);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundB);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundD);
-                
+
                 foundB = true;
             }
-            
+
             if (line.contains("<d>")) {
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundF);
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundG);
@@ -504,11 +505,11 @@
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundC);
                 Assert.assertTrue("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundB);
                 Assert.assertFalse("Order wrong on line " + lineNumber + " of\n" + failureDocument, foundD);
-                
+
                 foundD = true;
             }
         }
-        
+
         Assert.assertTrue(foundD);
     }
 
diff --git a/hk2-locator/pom.xml b/hk2-locator/pom.xml
index fd377a7..fd492dc 100644
--- a/hk2-locator/pom.xml
+++ b/hk2-locator/pom.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
+    Copyright (c) 2025 Contributors to Eclipse Foundation.
     Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
     Copyright (c) 2019, 2020 Payara Services Ltd.
 
@@ -93,7 +94,7 @@
                     <!-- Turns on security manager and turns off the soft
                        cache in order to increase code coverage
                     -->
-                    <argLine>-Dlocal.repo=${settings.localRepository} -Dbuild.dir=${project.build.directory} -Djava.security.manager -Djava.security.policy=${project.build.directory}/test-classes/policy.txt -Dorg.jvnet.hk2.properties.useSoftReference=false @{surefireArgLineExtra}</argLine>
+                    <argLine>-Dlocal.repo=${settings.localRepository} -Dbuild.dir=${project.build.directory} ${activate.securitymanager} -Djava.security.policy=${project.build.directory}/test-classes/policy.txt -Dorg.jvnet.hk2.properties.useSoftReference=false @{surefireArgLineExtra}</argLine>
                     <trimStackTrace>false</trimStackTrace>
                     <!-- -Djava.security.debug=access,failure,domain -->
                 </configuration>
diff --git a/pom.xml b/pom.xml
index 6198d71..6cbcaab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2022, 2024 Contributors to Eclipse Foundation. All rights reserved.
+    Copyright (c) 2022, 2025 Contributors to Eclipse Foundation.
     Copyright (c) 2020, 2021 Payara Services Ltd.
     Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
 
@@ -186,6 +186,8 @@
         <release.arguments />
 
         <manifest.location>target/classes/META-INF/MANIFEST.MF</manifest.location>
+        
+        <activate.securitymanager></activate.securitymanager>
     </properties>
 
     <dependencyManagement>
@@ -775,6 +777,7 @@
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
                     <release>11</release>
+                    <compilerArgument>-proc:full</compilerArgument>
                 </configuration>
             </plugin>
             <plugin>
@@ -783,6 +786,7 @@
                 <configuration>
                     <systemPropertyVariables>
                         <java.util.logging.config.file>logging.properties</java.util.logging.config.file>
+                        <net.bytebuddy.experimental>true</net.bytebuddy.experimental>
                     </systemPropertyVariables>
                 </configuration>
             </plugin>
@@ -872,6 +876,16 @@
 
     <profiles>
         <profile>
+            <id>securitymanager</id>
+            <activation>
+                <jdk>(,23]</jdk>
+            </activation>
+            <properties>
+                <activate.securitymanager>-Djava.security.manager</activate.securitymanager>
+            </properties>
+        </profile>
+    
+        <profile>
             <id>jacoco</id>
             <build>
                 <plugins>