Migrate Class.newInstance() user 45/84345/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 5 Sep 2019 09:35:19 +0000 (11:35 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 12 Sep 2019 17:12:19 +0000 (19:12 +0200)
Class.newInstance() is deprecated since Java 9, migrate to explicit
constructor invocation.

Change-Id: Ifc2e67aa4a56a9ccc306eb540100ebc299eb00c9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit ba34613f883014ecc308f83d8786a08624f910c5)

yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java

index 4cb29984ed8f82532eac19ef3da89d642a9d938b..2879f03fd94cf8cc51556d39668264e88639d7ca 100644 (file)
@@ -224,7 +224,7 @@ class YangToSourcesProcessor {
             final BasicCodeGenerator generator;
             try {
                 generator = getInstance(arg.getCodeGeneratorClass(), BasicCodeGenerator.class);
-            } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
+            } catch (ReflectiveOperationException e) {
                 throw new MojoExecutionException("Failed to instantiate code generator "
                         + arg.getCodeGeneratorClass(), e);
             }
@@ -391,10 +391,10 @@ class YangToSourcesProcessor {
     /**
      * Instantiate object from fully qualified class name.
      */
-    private static <T> T getInstance(final String codeGeneratorClass, final Class<T> baseType) throws
-            ClassNotFoundException, InstantiationException, IllegalAccessException {
+    private static <T> T getInstance(final String codeGeneratorClass, final Class<T> baseType)
+            throws ReflectiveOperationException {
         final Class<?> clazz = Class.forName(codeGeneratorClass);
         checkArgument(baseType.isAssignableFrom(clazz), "Code generator %s has to implement %s", clazz, baseType);
-        return baseType.cast(clazz.newInstance());
+        return baseType.cast(clazz.getConstructor().newInstance());
     }
 }