Package org.springsource.loaded.perf.test

Source Code of org.springsource.loaded.perf.test.WeavingPerformanceTests

/*
* Copyright 2013 VMware and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springsource.loaded.perf.test;

import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

import org.junit.Ignore;
import org.junit.Test;
import org.springsource.loaded.test.SpringLoadedTests;
import org.springsource.loaded.test.infra.TestClassLoader;

/**
* Check the performance of weaving code.
*
* @author Andy Clement
* @since 1.1.5
*/
public class WeavingPerformanceTests extends SpringLoadedTests {

  protected String ExpressionsJar = "../testdata/lib/spring-expression-4.0.0.M3.jar";
 
  /**
   * Work in progress...
   *
   * Process a jar file and pretend that everything in it is reloadable. How long does it take?
   *
   * Possible approaches here:
   * - load all the types through a reloading classloader?
   *   This will not be testing the agent specifically, just the lower level infrastructure
   * - Run this test inside a JVM that has reloading turned on
   *   This would test the agent.
   *  
   *
   */
  @Ignore
  @Test
  public void jar() throws Exception {

    TestClassLoader tcl = new TestClassLoader(toURLs(ExpressionsJar), this.getClass().getClassLoader());
    ZipFile zf = new ZipFile(ExpressionsJar);
    Enumeration<? extends ZipEntry> entries = zf.entries();
    while (entries.hasMoreElements()) {
      ZipEntry ze = entries.nextElement();
      System.out.println(ze.getName());
      String name = ze.getName();
      if (name.endsWith(".class")) {
        name = name.substring(0,name.length()-6);
        tcl.loadClass(name.replaceAll("/","."));
      }
    }
//    URL url = tcl.findResource("data/SimpleClass.class");
//    Assert.assertNotNull(url);
//    url = tcl.findResource("data/MissingClass.class");
//    Assert.assertNull(url);
 
//    TypeRegistry typeRegistry = getTypeRegistry("data.SimpleClass");
//    byte[] sc = loadBytesForClass("data.SimpleClass");
//    ReloadableType rtype = new ReloadableType("data.SimpleClass", sc, 1, typeRegistry, null);
//
//    assertEquals(1, rtype.getId());
//    assertEquals("data.SimpleClass", rtype.getName());
//    assertEquals("data/SimpleClass", rtype.getSlashedName());
//    assertNotNull(rtype.getTypeDescriptor());
//    assertEquals(typeRegistry, rtype.getTypeRegistry());
 
  }
}
TOP

Related Classes of org.springsource.loaded.perf.test.WeavingPerformanceTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.