Package net.sf.cglib.proxy

Examples of net.sf.cglib.proxy.Enhancer


              .equals("getMetaClass") || method.getName().startsWith("$"))) ? 1 : 0;
    }
  };

  static Class<?> proxyClassFor(Class<?> type, Errors errors) throws ErrorsException {
    Enhancer enhancer = new Enhancer();
    enhancer.setSuperclass(type);
    enhancer.setUseFactory(true);
    enhancer.setUseCache(true);
    enhancer.setNamingPolicy(NAMING_POLICY);
    enhancer.setCallbackFilter(METHOD_FILTER);
    enhancer.setCallbackTypes(new Class[] { MethodInterceptor.class, NoOp.class });

    try {
      return enhancer.createClass();
    } catch (Throwable t) {
      throw errors.errorEnhancingClass(type, t).toException();
    }
  }
View Full Code Here


    assertEquals(Types.deProxy(proxy), Foo.class);
  }

  public void shouldDeProxyCGLibProxy() throws Exception {
    Enhancer enhancer = new Enhancer();
    enhancer.setSuperclass(ArrayList.class);
    enhancer.setCallbackTypes(new Class[] { NoOp.class });
    Class<?> proxy = enhancer.createClass();

    assertEquals(Types.deProxy(proxy), ArrayList.class);
  }
View Full Code Here

    this.collector = new ErrorCollector();
  }

  @SuppressWarnings("unchecked")
  protected <T, V> V proxy(Class<V> assertClass, Class<T> actualClass, T actual) {
    Enhancer enhancer = new Enhancer();
    enhancer.setSuperclass(assertClass);
    enhancer.setCallback(collector);
    return (V) enhancer.create(array(actualClass), array(actual));
  }
View Full Code Here

        }
        return portNumber;
    }

    private Remote createRmiService(final Interface serviceInterface) {
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(UnicastRemoteObject.class);
        enhancer.setCallback(new MethodInterceptor() {
            public Object intercept(Object arg0, Method method, Object[] args, MethodProxy arg3) throws Throwable {
                try {
                    return invokeTarget(JavaInterfaceUtil.findOperation(method, serviceInterface.getOperations()), args);
                } catch (InvocationTargetException e) {
                    final Throwable cause = e.getCause();
                    for (Class<?> declaredType : method.getExceptionTypes()) {
                        if (declaredType.isInstance(cause)) {
                            throw e;
                        }
                    }

                    if (cause.getCause() != null) {
                        // TUSCANY-2545: don't inlcude nested cause object
                        AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
                            public Object run() throws Exception {
                                Field field = Throwable.class.getDeclaredField("cause");
                                field.setAccessible(true);
                                field.set(cause, null);
                                field.setAccessible(false);
                                return null;
                            }
                        });
                    }

                    throw cause;
                }
            }
        });
        Class<?> targetJavaInterface = getTargetJavaClass(serviceInterface);
        targetJavaInterface = RemoteInterfaceGenerator.generate(targetJavaInterface);
        enhancer.setClassLoader(targetJavaInterface.getClassLoader());
        enhancer.setInterfaces(new Class[] {targetJavaInterface});
        return (Remote)enhancer.create();
    }
View Full Code Here

        return file;
    }

    private static byte[] createClass(final String name) {
        Enhancer enhancer = new Enhancer();
        enhancer.setNamingPolicy(new NamingPolicy() {
            public String getClassName(String prefix, String source, Object key, Predicate names) {
                return name;
            }
        });
        enhancer.setClassLoader(new URLClassLoader(new URL[0]));
        enhancer.setSuperclass(Object.class);
        enhancer.setInterfaces(new Class[]{SortedSet.class});
        enhancer.setCallbackTypes(new Class[]{NoOp.class});
        enhancer.setUseFactory(false);
        ByteCode byteCode = new ByteCode();
        enhancer.setStrategy(byteCode);
        enhancer.createClass();

        return byteCode.getByteCode();
    }
View Full Code Here

    return _callbackMethod;
  }

  @SuppressWarnings("unchecked")
  public T getTarget() {
      Enhancer en = new Enhancer();

      Class<?> clz = _targetObject.getClass();
      String clzName = clz.getName();
      if(clzName.contains("EnhancerByCloudStack"))
          clz = clz.getSuperclass();

      en.setSuperclass(clz);
      en.setCallbacks(new Callback[]{new MethodInterceptor() {
            @Override
            public Object intercept(Object arg0, Method arg1, Object[] arg2,
                MethodProxy arg3) throws Throwable {
                _callbackMethod = arg1;
                _callbackMethod.setAccessible(true);
                return null;
            }
        },
        new MethodInterceptor() {
            @Override
            public Object intercept(Object arg0, Method arg1, Object[] arg2,
                MethodProxy arg3) throws Throwable {
                return null;
            }
        }
      });
      en.setCallbackFilter(new CallbackFilter() {
          public int accept(Method method) {
              if (method.getParameterTypes().length == 0 && method.getName().equals("finalize")) {
                  return 1;
              }
              return 0;
          }}
         );

      try {
          return (T)en.create();
      } catch(Throwable e) {
          s_logger.error("Unexpected exception", e);
      }

      return null;
View Full Code Here

            _tgs.put(tg.name(), tg);
        }

        Callback[] callbacks = new Callback[] { NoOp.INSTANCE, new UpdateBuilder(this) };

        _enhancer = new Enhancer();
        _enhancer.setSuperclass(_entityBeanType);
        _enhancer.setCallbackFilter(s_callbackFilter);
        _enhancer.setCallbacks(callbacks);
        _factory = (Factory)_enhancer.create();

        _searchEnhancer = new Enhancer();
        _searchEnhancer.setSuperclass(_entityBeanType);
        _searchEnhancer.setCallback(new UpdateBuilder(this));

        if (s_logger.isTraceEnabled()) {
            s_logger.trace("Select SQL: " + _partialSelectSql.first().toString());
View Full Code Here

  @Override
  public Object postProcessBeforeInstantiation(Class<?> beanClass,
      String beanName) throws BeansException {
    if(_interceptors != null && _interceptors.size() > 0) {
      if(ComponentMethodInterceptable.class.isAssignableFrom(beanClass)) {
            Enhancer enhancer = new Enhancer();
            enhancer.setSuperclass(beanClass);
            enhancer.setCallbacks(getCallbacks());
            enhancer.setCallbackFilter(getCallbackFilter());
            enhancer.setNamingPolicy(ComponentNamingPolicy.INSTANCE);
           
            Object bean = enhancer.create();
            return bean;
      }
    }
    return null;
  }
View Full Code Here

   
    public QueryBuilder(Class<T> resultSetClass, Class<?>... clazzes) {
        _entities = new HashMap<Class<?>, Pair<GenericDao<?,?>, Object>>(clazzes.length);
        for (Class<?> clazz : clazzes) {
            GenericDao<?,?> dao = GenericDaoBase.getDao(clazz);
            Enhancer searchEnhancer = new Enhancer();
            searchEnhancer.setSuperclass(clazz);
            searchEnhancer.setCallback(this);
            Object entity = searchEnhancer.create();
           
            _entities.put(clazz, new Pair<GenericDao<?, ?>, Object>(dao, entity));
        }
    }
View Full Code Here

     * @param resultSetClass result class to put the result set in.
     */
    public QueryBuilder(Class<S> entityClass, Class<T> resultSetClass) {
        _entities = new HashMap<Class<?>, Pair<GenericDao<?,?>, Object>>(1);
        GenericDao<?,?> dao = GenericDaoBase.getDao(entityClass);
        Enhancer searchEnhancer = new Enhancer();
        searchEnhancer.setSuperclass(entityClass);
        searchEnhancer.setCallback(this);
        Object entity = searchEnhancer.create();
       
        _entities.put(entityClass, new Pair<GenericDao<?, ?>, Object>(dao, entity));
    }
View Full Code Here

TOP

Related Classes of net.sf.cglib.proxy.Enhancer

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.