Package javassist

Examples of javassist.CtClass.instrument()


               }
               // check if clazz should be added to classes
               clazz.defrost();
               byte[] previousByteCode = clazz.toBytecode();
               clazz.defrost();
               clazz.instrument(converter);
               if (!java.util.Arrays.equals(clazz.toBytecode(), previousByteCode))
               {
                  classes.add(clazz);
               }
               clazz.defrost();
View Full Code Here


            if (classFilter(definition, classMetaData, ctClass)) {
                return;
            }

            ctClass.instrument(
                    new ExprEditor() {
                        public void edit(Handler handlerExpr) throws CannotCompileException {
                            try {
                                CtClass exceptionClass = null;
                                try {
View Full Code Here

                                + '}'
                        );
                    }
                }
            };
            klass.instrument(defineClass0Pre);

            return pool.write("java.lang.ClassLoader");
        }
        catch (Exception e) {
            System.err.println("failed to patch ClassLoader:");
View Full Code Here

            ClassMetaData classMetaData = JavassistMetaDataMaker.createClassMetaData(ctClass);
            if (classFilter(definition, classMetaData, ctClass)) {
                return;
            }

            ctClass.instrument(
                    new ExprEditor() {
                        public void edit(NewExpr newExpr) throws CannotCompileException {
                            try {
                                CtBehavior where = null;
                                try {
View Full Code Here

            constructorExecutionTransformer.unwrap(clazz, unwrapTargets.constructorExecutions);
            methodExecutionTransformer.wrap(clazz, wrapTargets.methodExecutions);
            methodExecutionTransformer.unwrap(clazz, unwrapTargets.methodExecutions);
            if (!update.isEmpty())
            {
               clazz.instrument(converter);
               classes.add(clazz);
            }
         }
         // instrument classes that access the joinpoints whose status have changed, in
         // order to make this classes access the joinpoint wrapper instead
View Full Code Here

               }
               // check if clazz should be added to classes
               clazz.defrost();
               byte[] previousByteCode = clazz.toBytecode();
               clazz.defrost();
               clazz.instrument(converter);
               if (!java.util.Arrays.equals(clazz.toBytecode(), previousByteCode))
               {
                  classes.add(clazz);
               }
               clazz.defrost();
View Full Code Here

          try
          {
             processedClass.defrost();
             byte[] previousByteCode = processedClass.toBytecode();
             processedClass.defrost();
             processedClass.instrument(codeConverter);
             byte[] updatedByteCode = processedClass.toBytecode();
             if (!java.util.Arrays.equals(updatedByteCode, previousByteCode))
             {
               hotSwapper.registerChange(classPool.getClassLoader().loadClass(processedClass.getName()), updatedByteCode);
             }
View Full Code Here

/*     */
/*     */   public void onLoad(ClassPool pool, String classname)
/*     */     throws CannotCompileException, NotFoundException
/*     */   {
/* 128 */     CtClass clazz = pool.get(classname);
/* 129 */     clazz.instrument(this.converter);
/*     */   }
/*     */
/*     */   public boolean makeReflective(String classname, String metaobject, String metaclass)
/*     */     throws CannotCompileException, NotFoundException
/*     */   {
View Full Code Here

        ClassPool pool = new ClassPool(true);
        CtClass echoClass = pool.get(ArrayAccessReplaceTest.class.getName() + "$Echo");
        CtClass simpleClass = pool.get(ArrayAccessReplaceTest.class.getName() + "$Simple");
        CodeConverter converter = new CodeConverter();
        converter.replaceArrayAccess(echoClass, new CodeConverter.DefaultArrayAccessReplacementMethodNames());
        simpleClass.instrument(converter);
        //simpleClass.writeFile("/tmp");
        simple = (SimpleInterface) simpleClass.toClass(new URLClassLoader(new URL[0], getClass().getClassLoader()), Class.class.getProtectionDomain()).newInstance();
    }

    public void testComplex() throws Exception {
View Full Code Here

        ClassPool pool = new ClassPool(true);
        CtClass clazz = pool.get(ArrayAccessReplaceTest.class.getName() + "$Complex");

        CodeConverter converter = new CodeConverter();
        converter.replaceArrayAccess(clazz, new CodeConverter.DefaultArrayAccessReplacementMethodNames());
        clazz.instrument(converter);
        ComplexInterface instance = (ComplexInterface) clazz.toClass(new URLClassLoader(new URL[0], getClass().getClassLoader()), Class.class.getProtectionDomain()).newInstance();
        assertEquals(new Integer(5), instance.complexRead(4));
    }

    public void testBoolean() throws Exception {
View Full Code Here

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.