Browse Source

inactive test case for Classloader repository sharing

tags/post_pr_153572
aclement 18 years ago
parent
commit
282188781f

+ 69
- 0
weaver/testsrc/org/aspectj/weaver/bcel/ClassLoaderRepositoryTests.java View File

@@ -0,0 +1,69 @@
/* *******************************************************************
* Copyright (c) 2006 Contributors
* All rights reserved.
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License v1.0
* which accompanies this distribution and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andy Clement initial implementation
* ******************************************************************/


package org.aspectj.weaver.bcel;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

import junit.framework.TestCase;

import org.aspectj.apache.bcel.util.ClassLoaderRepository;

/** NOT YET INCLUDED IN A FULL TEST RUN - WORK IN PROGRESS CHECKING CLASSLOADERREPOSITORY OPTIMIZATIONS */
public class ClassLoaderRepositoryTests extends TestCase {

public void testRepositorySharing() throws Exception {
ClassLoaderRepository.useSharedCache=false;
File f = new File("../lib/aspectj/lib/aspectjtools.jar");
ClassLoader cl = Thread.currentThread().getContextClassLoader();
ClassLoader cl1 = new URLClassLoader(new URL[]{f.toURL()},cl);
ClassLoader cl2 = new URLClassLoader(new URL[]{f.toURL()},cl);
ClassLoaderRepository rep1 = new ClassLoaderRepository(cl1);
ClassLoaderRepository rep2 = new ClassLoaderRepository(cl2);
try {
assertTrue("Couldnt find aspectjtools to test. Tried: "+f.getAbsolutePath(),f.exists());
ZipFile zf = new ZipFile(f);
int i = 0;
Enumeration entries = zf.entries();
while (entries.hasMoreElements()) {
ZipEntry zfe = (ZipEntry)entries.nextElement();
String classfileName = zfe.getName();
if (classfileName.endsWith(".class")) {
String clazzname = classfileName.substring(0,classfileName.length()-6).replace('/','.');
// twice by each
rep1.loadClass(clazzname);
rep1.loadClass(clazzname);
rep2.loadClass(clazzname);
rep2.loadClass(clazzname);
i++;
}
}
System.err.println("Successfully compared "+i+" entries!!");
} catch (IOException e) {
e.printStackTrace();
fail(e.getMessage());
}
System.err.println(rep1.reportAllStatistics());
System.err.println(rep2.reportAllStatistics());
}
}

Loading…
Cancel
Save