Merge pull request #556 from jansupol/xml.jdk17

diff --git a/hk2-configuration/persistence/hk2-xml/main/src/main/java/org/glassfish/hk2/xml/internal/JAUtilities.java b/hk2-configuration/persistence/hk2-xml/main/src/main/java/org/glassfish/hk2/xml/internal/JAUtilities.java
index 0d44733..12408e4 100755
--- a/hk2-configuration/persistence/hk2-xml/main/src/main/java/org/glassfish/hk2/xml/internal/JAUtilities.java
+++ b/hk2-configuration/persistence/hk2-xml/main/src/main/java/org/glassfish/hk2/xml/internal/JAUtilities.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,7 +16,6 @@
 
 package org.glassfish.hk2.xml.internal;
 
-import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
@@ -29,6 +28,7 @@
 import javassist.CtClass;
 import javassist.LoaderClassPath;
 import javassist.NotFoundException;
+import javassist.bytecode.ClassFile;
 
 import org.glassfish.hk2.api.MultiException;
 import org.glassfish.hk2.utilities.cache.Computable;
@@ -65,7 +65,7 @@
         }
             
     });
-    
+
     public final static String GET = "get";
     public final static String SET = "set";
     public final static String IS = "is";
@@ -238,8 +238,12 @@
                   CtClass generated = Generator.generate(new ClassAltClassImpl(key, classReflectionHelper),
                         jaUtilities.getBaseClass(),
                         jaUtilities.getClassPool());
-                  
-                  proxyClass = generated.toClass(key.getClassLoader(), key.getProtectionDomain());
+
+                  if (ClassFile.MAJOR_VERSION > ClassFile.JAVA_8) {
+                      proxyClass = generated.toClass(key);
+                  } else {
+                      proxyClass = generated.toClass(key.getClassLoader(), key.getProtectionDomain());
+                  }
                 }
                 catch (RuntimeException re) {
                     throw new RuntimeException("Could not compile proxy for class " + iFaceName, re);
diff --git a/hk2-locator/src/test/resources/policy.txt b/hk2-locator/src/test/resources/policy.txt
index 7d56a79..e046501 100755
--- a/hk2-locator/src/test/resources/policy.txt
+++ b/hk2-locator/src/test/resources/policy.txt
@@ -1,4 +1,4 @@
-//Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
+//Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
 //
 //This program and the accompanying materials are made available under the
 //terms of the Eclipse Public License v. 2.0, which is available at
@@ -85,6 +85,8 @@
   permission java.lang.RuntimePermission "accessDeclaredMembers";
   permission java.lang.RuntimePermission "setContextClassLoader";
   permission java.lang.RuntimePermission "createClassLoader";
+  permission java.lang.RuntimePermission "createSecurityManager";
+  permission java.lang.RuntimePermission "defineClass";
   permission java.util.PropertyPermission "javassist.*", "read";
   permission java.util.PropertyPermission "org.jvnet.*", "read";
   permission java.lang.RuntimePermission "getProtectionDomain";
diff --git a/pom.xml b/pom.xml
index 93c4129..9ba96f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 2021 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0, which is available at
@@ -150,7 +150,7 @@
         <glassfish.javax.el.version>3.0.1-b10</glassfish.javax.el.version>
         <jakarta.el.version>3.0.2</jakarta.el.version>
         <jtype.version>0.1.0</jtype.version>
-        <javassist.version>3.22.0-CR2</javassist.version>
+        <javassist.version>3.27.0-GA</javassist.version>
         <junit.version>4.12</junit.version>
         <asm.version>7.1</asm.version>
         <woodstox.version>4.1.2</woodstox.version>