Package java.lang.instrument

Examples of java.lang.instrument.ClassFileTransformer


  }

  public void testCtorWithClassLoaderThatDoesNotExposeAGetThrowawayClassLoaderMethodIsOkay() throws Exception {
    JustAddTransformerClassLoader classLoader = new JustAddTransformerClassLoader();
    ReflectiveLoadTimeWeaver weaver = new ReflectiveLoadTimeWeaver(classLoader);
    weaver.addTransformer(new ClassFileTransformer() {
      public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) {
        return "CAFEDEAD".getBytes();
      }
    });
    assertEquals(1, classLoader.getNumTimesGetThrowawayClassLoaderCalled());
View Full Code Here


    ltw = new GlassFishLoadTimeWeaver(cl4);
    assertSame(cl4, ltw.getInstrumentableClassLoader());
  }

  public void testAddTransformer() {
    ClassFileTransformer transformer = (ClassFileTransformer) MockControl.createNiceControl(
        ClassFileTransformer.class).getMock();
    loaderCtrl.reset();
    loader.addTransformer(new ClassTransformerAdapter(transformer));
    loaderCtrl.setMatcher(new ArgumentsMatcher() {
View Full Code Here

  public void testClassNameIsUnMangledPriorToTransformation() throws Exception {
    final byte[] classBytes = "CAFEBABE".getBytes();
    final ClassLoader classLoader = getClass().getClassLoader();

    MockControl mockTransformer = MockControl.createControl(ClassFileTransformer.class);
    ClassFileTransformer transformer = (ClassFileTransformer) mockTransformer.getMock();

    transformer.transform(classLoader, "com/foo/Bar", null, null, classBytes);
    mockTransformer.setMatcher(new AbstractMatcher() {
      public boolean matches(Object[] expected, Object[] actual) {
        return expected[1].equals(actual[1]);
      }
    });
View Full Code Here

      }
    }
  }

  public static void premain(String args, Instrumentation inst) {
    ClassFileTransformer transformer = new ContractClassFileTransformer();

    String dumpDir = System.getProperty("com.google.java.contract.dump");
    if (dumpDir != null) {
      transformer = new DumpClassFileTransformer(transformer, dumpDir);
    }
View Full Code Here

  }

  private Collection<ClassFileTransformer> getAgents() throws MojoExecutionException {
    final Collection<ClassFileTransformer> agents = new ArrayList<ClassFileTransformer>();
    for ( final String className : classTransformers ) {
      final ClassFileTransformer instance = createAgentInstance( className );
      agents.add( instance );
    }
    return agents;
  }
View Full Code Here

       @Override
       public void addTransformer(final ClassTransformer transformer) {
           // Bridge between java.lang.instrument.ClassFileTransformer that DeploymentContext accepts
           // and javax.persistence.spi.ClassTransformer that JPA supplies.
           deploymentContext.addTransformer(new ClassFileTransformer() {
               public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined,
                                       ProtectionDomain protectionDomain, byte[] classfileBuffer)
                       throws IllegalClassFormatException {
                   return transformer.transform(loader, className, classBeingRedefined, protectionDomain, classfileBuffer);
               }
View Full Code Here

            public ClassLoader getNewTempClassLoader(ClassLoader classLoader) {
                return new TemporaryClassLoader(classLoader);
            }
        };

        Agent.getInstrumentation().addTransformer(new ClassFileTransformer() {
            public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) {
                if (!className.equals("org/apache/openejb/core/cmp/jpa/Employee")) {
                    return null;
                }
                byte[] newBytes = addNewField(classfileBuffer);
View Full Code Here

        if (classes == null || classes.size() == 0 || !canRedefineClasses())
            return;

        Log log = conf.getLog(OpenJPAConfiguration.LOG_ENHANCE);
        Instrumentation inst = null;
        ClassFileTransformer t = null;
        try {
            inst = InstrumentationFactory.getInstrumentation();

            Class[] array = classes.keySet().toArray(new Class[classes.size()]);
            if (JavaVersions.VERSION >= 6) {
                log.trace(_loc.get("retransform-types", classes.keySet()));

                t = new ClassFileTransformer() {
                    public byte[] transform(ClassLoader loader, String clsName,
                        Class<?> classBeingRedefined, ProtectionDomain pd,
                        byte[] classfileBuffer) {
                        return classes.get(classBeingRedefined);
                    }
View Full Code Here

            EntityMapLoader loader = new EntityMapLoader(unit);

            // add transformer before DataMapConverter starts loading the classes via app
            // class loader
            ClassFileTransformer enhancer = new Enhancer(new JpaEnhancerVisitorFactory(
                    loader.getEntityMap()));
            Map<String, JpaClassDescriptor> managedClasses = loader
                    .getEntityMap()
                    .getManagedClasses();
            unit.addTransformer(new UnitClassTransformer(managedClasses, loader
View Full Code Here

    @Override
    public void addTransformer(final ClassTransformer transformer) {

        // wrap in a ClassFileTransformer
        ClassFileTransformer transformerWrapper = new ClassFileTransformer() {

            public byte[] transform(
                    ClassLoader loader,
                    String className,
                    Class<?> classBeingRedefined,
View Full Code Here

TOP

Related Classes of java.lang.instrument.ClassFileTransformer

Copyright © 2018 www.massapicom. 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.