private static <T> T newProxy(Class<T> interfaceType, InvocationHandler handler) { Object object = Proxy.newProxyInstance( interfaceType.getClassLoader(), new Class<?>[] {interfaceType}, handler); return interfaceType.cast(object); }
private void initProxyClassLoader() { if (this.targetFactory instanceof EntityManagerFactoryInfo) { this.proxyClassLoader = ((EntityManagerFactoryInfo) this.targetFactory).getBeanClassLoader(); } else { this.proxyClassLoader = this.targetFactory.getClass().getClassLoader(); } }
@Override public void configureTlsExtensions( SSLSocket sslSocket, String hostname, List<Protocol> protocols) { List<String> names = alpnProtocolNames(protocols); try { Object alpnProvider = Proxy.newProxyInstance(Platform.class.getClassLoader(), new Class[] {clientProviderClass, serverProviderClass}, new AlpnProvider(names)); putMethod.invoke(null, sslSocket, alpnProvider); } catch (InvocationTargetException | IllegalAccessException e) { throw new AssertionError("failed to set ALPN", e); } }
/** Returns the URLs in the class path. */ static URL[] getClassPathUrls() { return ClassPathUtil.class.getClassLoader() instanceof URLClassLoader ? ((URLClassLoader) ClassPathUtil.class.getClassLoader()).getURLs() : parseJavaClassPath(); } }
private static Object newProxyWithEqualsForInterfaces(Class<?>... interfaces) { return Proxy.newProxyInstance( AbstractInvocationHandlerTest.class.getClassLoader(), interfaces, new DelegatingInvocationHandlerWithEquals("a string")); }
private static ResourceInfo resourceInfo(Class<?> cls) { String resource = cls.getName().replace('.', '/') + ".class"; ClassLoader loader = cls.getClassLoader(); return ResourceInfo.of(resource, loader); }
private URL[] getClassPathUrls() { ClassLoader classLoader = getClass().getClassLoader(); return classLoader instanceof URLClassLoader ? ((URLClassLoader) classLoader).getURLs() : parseJavaClassPath().toArray(new URL[0]); }
static File pickAnyJarFile() throws IOException { JarFileFinder finder = new JarFileFinder(); try { finder.scan(JarFileFinder.class.getClassLoader()); throw new IllegalStateException("No jar file found!"); } catch (StopScanningException expected) { return finder.found; } }
@GwtIncompatible // Class.getClassLoader() private URL[] getClassPathUrls() { ClassLoader classLoader = getClass().getClassLoader(); return classLoader instanceof URLClassLoader ? ((URLClassLoader) classLoader).getURLs() : parseJavaClassPath().toArray(new URL[0]); }
public void testScanFromFile_notJarFile() throws IOException { ClassLoader classLoader = ClassPathTest.class.getClassLoader(); File notJar = File.createTempFile("not_a_jar", "txt"); ClassPath.DefaultScanner scanner = new ClassPath.DefaultScanner(); try { scanner.scan(notJar, classLoader); } finally { notJar.delete(); } assertThat(scanner.getResources()).isEmpty(); }
public void testGetPackageName() { assertEquals("", new ClassInfo("Foo.class", getClass().getClassLoader()).getPackageName()); assertEquals( "a.b", new ClassInfo("a/b/Foo.class", getClass().getClassLoader()).getPackageName()); }
public void testScanFromFile_fileNotExists() throws IOException { ClassLoader classLoader = ClassPathTest.class.getClassLoader(); ClassPath.DefaultScanner scanner = new ClassPath.DefaultScanner(); scanner.scan(new File("no/such/file/anywhere"), classLoader); assertThat(scanner.getResources()).isEmpty(); }
public void testEquals() { new EqualsTester() .addEqualityGroup(classInfo(ClassPathTest.class), classInfo(ClassPathTest.class)) .addEqualityGroup(classInfo(Test.class), classInfo(Test.class, getClass().getClassLoader())) .addEqualityGroup( new ResourceInfo("a/b/c.txt", getClass().getClassLoader()), new ResourceInfo("a/b/c.txt", getClass().getClassLoader())) .addEqualityGroup(new ResourceInfo("x.txt", getClass().getClassLoader())) .testEquals(); }
public void testScan_classPathCycle() throws IOException { File jarFile = File.createTempFile("with_circular_class_path", ".jar"); try { writeSelfReferencingJarFile(jarFile, "test.txt"); ClassPath.DefaultScanner scanner = new ClassPath.DefaultScanner(); scanner.scan(jarFile, ClassPathTest.class.getClassLoader()); assertThat(scanner.getResources()).hasSize(1); } finally { jarFile.delete(); } }
@Test public void testResolvedMappedHandler() { DefaultNamespaceHandlerResolver resolver = new DefaultNamespaceHandlerResolver(getClass().getClassLoader()); NamespaceHandler handler = resolver.resolve("http://www.springframework.org/schema/util"); assertNotNull("Handler should not be null.", handler); assertEquals("Incorrect handler loaded", UtilNamespaceHandler.class, handler.getClass()); }
@Test public void defaultDomainWithIndex() { this.manager.setPackagesToScan("org.springframework.orm.jpa.domain"); this.manager.setResourceLoader(new DefaultResourceLoader( CandidateComponentsTestClassLoader.index(getClass().getClassLoader(), new ClassPathResource("spring.components", Person.class)))); testDefaultDomain(); }
@Test public void varargsAgainstProxy_SPR16122() { SpelExpressionParser parser = new SpelExpressionParser(); Expression expr = parser.parseExpression("process('a', 'b')"); VarargsReceiver receiver = new VarargsReceiver(); VarargsInterface proxy = (VarargsInterface) Proxy.newProxyInstance( getClass().getClassLoader(), new Class<?>[] {VarargsInterface.class}, (proxy1, method, args) -> method.invoke(receiver, args)); assertEquals("OK", expr.getValue(new StandardEvaluationContext(receiver))); assertEquals("OK", expr.getValue(new StandardEvaluationContext(proxy))); }
@Test public void withLocationAndExplicitNameAndExplicitClassLoader() throws IOException { PropertySource<?> ps = new ResourcePropertySource("ps1", PROPERTIES_LOCATION, getClass().getClassLoader()); assertEquals("bar", ps.getProperty("foo")); assertThat(ps.getName(), is("ps1")); }
public void testNulls() throws IOException { new NullPointerTester().testAllPublicStaticMethods(ClassPath.class); new NullPointerTester() .testAllPublicInstanceMethods(ClassPath.from(getClass().getClassLoader())); }
public void testGetSimpleName() { ClassLoader classLoader = getClass().getClassLoader(); assertEquals("Foo", new ClassInfo("Foo.class", classLoader).getSimpleName()); assertEquals("Foo", new ClassInfo("a/b/Foo.class", classLoader).getSimpleName()); assertEquals("Foo", new ClassInfo("a/b/Bar$Foo.class", classLoader).getSimpleName()); assertEquals("", new ClassInfo("a/b/Bar$1.class", classLoader).getSimpleName()); assertEquals("Foo", new ClassInfo("a/b/Bar$Foo.class", classLoader).getSimpleName()); assertEquals("", new ClassInfo("a/b/Bar$1.class", classLoader).getSimpleName()); assertEquals("Local", new ClassInfo("a/b/Bar$1Local.class", classLoader).getSimpleName()); }