< prev index next >

test/javax/management/loading/ArrayClassTest.java

Print this page
rev 11832 : 8078896: Add @modules as needed to the jdk_svc tests
Reviewed-by: alanb, mchung

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -25,34 +25,37 @@
  * @test
  * @bug 4974913
  * @summary Test that array classes can be found in signatures always
  * and can be deserialized by the deprecated MBeanServer.deserialize method
  * @author Eamonn McManus
+ * @modules java.management
  * @run clean ArrayClassTest
  * @run build ArrayClassTest
  * @run main ArrayClassTest
  */
 
 import java.io.*;
 import java.lang.reflect.*;
 import java.net.*;
+import java.nio.file.Paths;
 import javax.management.*;
 import javax.management.loading.*;
 
 public class ArrayClassTest {
     public static void main(String[] args) throws Exception {
         MBeanServer mbs = MBeanServerFactory.createMBeanServer();
 
-        /* If this test isn't loaded by a URLClassLoader we will get
-           a ClassCastException here, which is good because it means
-           this test isn't valid.  */
-        URLClassLoader testLoader =
-            (URLClassLoader) ArrayClassTest.class.getClassLoader();
+        String[] cpaths = System.getProperty("test.classes", ".")
+                                .split(File.pathSeparator);
+        URL[] urls = new URL[cpaths.length];
+        for (int i=0; i < cpaths.length; i++) {
+            urls[i] = Paths.get(cpaths[i]).toUri().toURL();
+        }
 
         // Create an MLet that can load the same class names but
         // will produce different results.
-        ClassLoader loader = new SpyLoader(testLoader.getURLs());
+        ClassLoader loader = new SpyLoader(urls);
         ObjectName loaderName = new ObjectName("test:type=SpyLoader");
         mbs.registerMBean(loader, loaderName);
 
         ObjectName testName = new ObjectName("test:type=Test");
         mbs.createMBean(Test.class.getName(), testName, loaderName,
< prev index next >