Package net.sf.cglib.reflect

Examples of net.sf.cglib.reflect.FastClass


    private ProxyInvoker[] createRawGBeanInvokers(RawInvoker rawInvoker, Class proxyType) {
        Map operations = rawInvoker.getOperationIndex();
        Map attributes = rawInvoker.getAttributeIndex();

        // build the method lookup table
        FastClass fastClass = FastClass.create(proxyType);
        ProxyInvoker[] invokers = new ProxyInvoker[fastClass.getMaxIndex() + 1];
        Method[] methods = proxyType.getMethods();
        for (int i = 0; i < methods.length; i++) {
            Method method = methods[i];
            int interfaceIndex = getSuperIndex(proxyType, method);
            if (interfaceIndex >= 0) {
View Full Code Here


            GOperationInfo operationInfo = (GOperationInfo) iterator.next();
            operationSignatures.add(new GOperationSignature(operationInfo.getName(), operationInfo.getParameterList()));
        }

        // build the method lookup table
        FastClass fastClass = FastClass.create(proxyType);
        ProxyInvoker[] invokers = new ProxyInvoker[fastClass.getMaxIndex() + 1];
        Method[] methods = proxyType.getMethods();
        for (int i = 0; i < methods.length; i++) {
            Method method = methods[i];
            int interfaceIndex = getSuperIndex(proxyType, method);
            if (interfaceIndex >= 0) {
View Full Code Here

        return gbeanInvoker.invoke(objectName, args);
    }

    private ProxyInvoker[] createGBeanInvokers(Kernel kernel) {
        // build the method lookup table
        FastClass fastClass = FastClass.create(proxyType);
        ProxyInvoker[] invokers = new ProxyInvoker[fastClass.getMaxIndex() + 1];
        Method[] methods = proxyType.getMethods();
        for (Method method : methods) {
            int interfaceIndex = getSuperIndex(proxyType, method);
            if (interfaceIndex >= 0) {
                invokers[interfaceIndex] = createProxyInvoker(kernel, method);
View Full Code Here

//    }

    private void doNothingTimings() throws Exception {
        Method myMethod = MockGBean.class.getMethod("doNothing", (Class[])null);

        FastClass myFastClass = FastClass.create(MockGBean.class);
        int myMethodIndex = myFastClass.getIndex("doNothing", new Class[0]);

        MockGBean instance = new MockGBean("foo", 12);

        // normal invoke
        int iterations = 100000000;
        String msg = "hhhh";
        for (int j=0 ; j < 10; j++) {
            for (int i = 0; i < iterations; i++) {
                msg= instance.echo(msg);
            }
        }
        long start = System.currentTimeMillis();
        for (int i = 0; i < iterations; i++) {
            instance.doNothing();
        }
        long end = System.currentTimeMillis();
        printResults("Normal", end, start, iterations);

        // reflection
        iterations = 1000000;
        for (int i = 0; i < iterations; i++) {
            myMethod.invoke(instance, (Class[])null);
        }
        start = System.currentTimeMillis();
        for (int i = 0; i < iterations; i++) {
            myMethod.invoke(instance, (Class[])null);
        }
        end = System.currentTimeMillis();
        printResults("Reflection", end, start, iterations);

        // fast class
        iterations = 5000000;
        for (int i = 0; i < iterations; i++) {
            myFastClass.invoke(myMethodIndex, instance, null);
        }
        start = System.currentTimeMillis();
        for (int i = 0; i < iterations; i++) {
            myFastClass.invoke(myMethodIndex, instance, null);
        }
        end = System.currentTimeMillis();
        printResults("FastClass", end, start, iterations);

        // start a kernel
View Full Code Here

    }

    public void echoTimings() throws Exception {
        Method myMethod = MockGBean.class.getMethod("echo", new Class[]{String.class});

        FastClass myFastClass = FastClass.create(MockGBean.class);
        int myMethodIndex = myFastClass.getIndex("echo", new Class[]{String.class});
        String msg = "Some message";
        Object[] args = new Object[]{msg};
        String result;

        MockGBean instance = new MockGBean("foo", 12);


        // normal invoke
        int iterations = 100000000;
        for (int i = 0; i < iterations; i++) {
            result = instance.echo(msg);
        }
        long start = System.currentTimeMillis();
        for (int i = 0; i < iterations; i++) {
            result = instance.echo(msg);
        }
        long end = System.currentTimeMillis();
        printResults("Normal", end, start, iterations);

        // reflection
        iterations = 10000000;
        for (int i = 0; i < iterations; i++) {
            result = (String) myMethod.invoke(instance, args);
        }
        start = System.currentTimeMillis();
        for (int i = 0; i < iterations; i++) {
            result = (String) myMethod.invoke(instance, args);
        }
        end = System.currentTimeMillis();
        printResults("Reflection", end, start, iterations);

        // fast class
        iterations = 10000000;
        for (int i = 0; i < iterations; i++) {
            result = (String) myFastClass.invoke(myMethodIndex, instance, args);
        }
        start = System.currentTimeMillis();
        for (int i = 0; i < iterations; i++) {
            result = (String) myFastClass.invoke(myMethodIndex, instance, args);
        }
        end = System.currentTimeMillis();
        printResults("FastClass", end, start, iterations);

        // start a kernel
View Full Code Here

                method = methodResolutionService.resolveMethod(optionalClass, methodName, paramTypes, allowEventBeanType, allowEventBeanCollType);
            }
            else {
                method = methodResolutionService.resolveMethod(className, methodName, paramTypes, allowEventBeanType, allowEventBeanCollType);
            }
            FastClass declaringClass = FastClass.create(Thread.currentThread().getContextClassLoader(), method.getDeclaringClass());
            staticMethod = declaringClass.getMethod(method);
        }
        catch(Exception e)
        {
            throw exceptionHandler.handle(e);
        }
View Full Code Here

    private FastMethod getFastMethod(Class clazz)
    {
        try
        {
            Method method = methodResolutionService.resolveMethod(clazz, methodName, parameterTypes, new boolean[parameterTypes.length], new boolean[parameterTypes.length]);
            FastClass declaringClass = FastClass.create(Thread.currentThread().getContextClassLoader(), method.getDeclaringClass());
            return declaringClass.getMethod(method);
        }
        catch(Exception e)
        {
            log.debug("Not resolved for class '" + clazz.getName() + "' method '" + methodName + "'");
        }
View Full Code Here

        FastMethod staticMethod;
        Method method;
    try
    {
      method = validationContext.getMethodResolutionService().resolveMethod(clazz.getName(), firstItem.getName(), paramTypes);
      FastClass declaringClass = FastClass.create(Thread.currentThread().getContextClassLoader(), method.getDeclaringClass());
      staticMethod = declaringClass.getMethod(method);
    }
    catch(Exception e)
    {
      throw new ExprValidationException(e.getMessage());
    }
View Full Code Here

                    }
                    else {
                        target = currentInputType.getEventType().getUnderlyingType();
                    }
                    Method method = validationContext.getMethodResolutionService().resolveMethod(target, chainElement.getName(), paramTypes);
                    FastClass declaringClass = FastClass.create(Thread.currentThread().getContextClassLoader(), method.getDeclaringClass());
                    FastMethod fastMethod = declaringClass.getMethod(method);

                    ExprDotEval eval;
                    if (currentInputType.isScalar()) {
                        eval = new ExprDotMethodEvalNoDuck(validationContext.getStatementName(), fastMethod, paramEvals);
                    }
View Full Code Here

    private FastMethod getFastMethod(Class clazz)
    {
        try
        {
            Method method = methodResolutionService.resolveMethod(clazz, methodName, parameterTypes);
            FastClass declaringClass = FastClass.create(Thread.currentThread().getContextClassLoader(), method.getDeclaringClass());
            return declaringClass.getMethod(method);
        }
        catch(Exception e)
        {
            log.debug("Not resolved for class '" + clazz.getName() + "' method '" + methodName + "'");
        }
View Full Code Here

TOP

Related Classes of net.sf.cglib.reflect.FastClass

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.