Package net.sf.cglib.proxy

Examples of net.sf.cglib.proxy.Enhancer


        public ManagedProxyFactory(Class type) {
            this(new Class[]{type});
        }

        public ManagedProxyFactory(Class[] type) {
            enhancer = new Enhancer();
            if(type.length > 1) { // shrink first -- may reduce from many to one
                type = reduceInterfaces(type);
            }
            if(type.length == 0) {
                throw new IllegalArgumentException("Cannot generate proxy for 0 interfaces!");
View Full Code Here


    public BasicProxyFactoryImpl(Class superClass, Class[] interfaces) {
      if ( superClass == null && ( interfaces == null || interfaces.length < 1 ) ) {
        throw new AssertionFailure( "attempting to build proxy without any superclass or interfaces" );
      }

      Enhancer en = new Enhancer();
      en.setUseCache( false );
      en.setInterceptDuringConstruction( false );
      en.setUseFactory( true );
      en.setCallbackTypes( CALLBACK_TYPES );
      en.setCallbackFilter( FINALIZE_FILTER );
      if ( superClass != null ) {
        en.setSuperclass( superClass );
      }
      if ( interfaces != null && interfaces.length > 0 ) {
        en.setInterfaces( interfaces );
      }
      proxyClass = en.createClass();
      try {
        factory = ( Factory ) proxyClass.newInstance();
      }
      catch ( Throwable t ) {
        throw new HibernateException( "Unable to build CGLIB Factory instance" );
View Full Code Here

  @Override
  public Service getService(User user) {

    ServiceImplProxy proxy = new ServiceImplProxy(new ServiceImpl(),user);

    Enhancer enhancer = new Enhancer();
    enhancer.setSuperclass(Service.class);
    enhancer.setCallback(proxy);

    return (Service) enhancer.create();
  }
View Full Code Here

    return proxy;
  }

  public static Class getProxyFactory(Class persistentClass, Class[] interfaces)
      throws HibernateException {
    Enhancer e = new Enhancer();
    e.setSuperclass( interfaces.length == 1 ? persistentClass : null );
    e.setInterfaces(interfaces);
    e.setCallbackTypes(new Class[]{
      InvocationHandler.class,
      NoOp.class,
        });
      e.setCallbackFilter(FINALIZE_FILTER);
      e.setUseFactory(false);
    e.setInterceptDuringConstruction( false );
    return e.createClass();
  }
View Full Code Here

    return proxy;
  }

  public static Class getProxyFactory(Class persistentClass, Class[] interfaces)
      throws HibernateException {
    Enhancer e = new Enhancer();
    e.setSuperclass( interfaces.length == 1 ? persistentClass : null );
    e.setInterfaces(interfaces);
    e.setCallbackTypes(new Class[]{
      InvocationHandler.class,
      NoOp.class,
        });
      e.setCallbackFilter(FINALIZE_FILTER);
      e.setUseFactory(false);
    e.setInterceptDuringConstruction( false );
    return e.createClass();
  }
View Full Code Here

    registered.add(objectName);
  }

  private Object createProxy(final org.apache.wicket.Application application, final Object o)
  {
    Enhancer e = new Enhancer();
    e.setInterfaces(o.getClass().getInterfaces());
    e.setSuperclass(Object.class);
    e.setCallback(new net.sf.cglib.proxy.InvocationHandler()
    {
      @Override
      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
      {
        boolean existed = ThreadContext.exists();

        if (existed == false)
        {
          ThreadContext.setApplication(application);
        }

        try
        {
          return method.invoke(o, args);
        }
        finally
        {
          if (existed == false)
          {
            ThreadContext.detach();
          }
        }
      }
    });
    e.setNamingPolicy(new DefaultNamingPolicy()
    {
      @Override
      public String getClassName(final String prefix, final String source, final Object key,
        final Predicate names)
      {
        return o.getClass().getName().replace(".wrapper", "");
      }
    });

    return e.create();
  }
View Full Code Here

        assertFileExists(file);
        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[]{Serializable.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

    }
    else
    {
      CGLibInterceptor handler = new CGLibInterceptor(type, locator);

      Enhancer e = new Enhancer();
      e.setInterfaces(new Class[] { Serializable.class, ILazyInitProxy.class,
          IWriteReplace.class });
      e.setSuperclass(type);
      e.setCallback(handler);
      e.setNamingPolicy(new DefaultNamingPolicy()
      {
        @Override
        public String getClassName(final String prefix, final String source,
          final Object key, final Predicate names)
        {
          return super.getClassName("WICKET_" + prefix, source, key, names);
        }
      });

      return e.create();
    }
  }
View Full Code Here

    }

    public static class CgLibProxyFactory implements ProxyFactory {

        public Object createProxy(final ClassLoader classLoader, final Class[] classes, final Callable<Object> dispatcher) {
            Enhancer e = new Enhancer();
            e.setClassLoader(classLoader);
            e.setSuperclass(getTargetClass(classes));
            e.setInterfaces(getInterfaces(classes));
            e.setInterceptDuringConstruction(false);
            e.setCallback(new Dispatcher() {
                public Object loadObject() throws Exception {
                    return dispatcher.call();
                }
            });
            e.setUseFactory(false);
            return e.create();
        }
View Full Code Here

            new ReverseEngineeringInvocationHandler(index, callbackIndexMap));
    }

    @Override
    public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) {
        final Enhancer enhancer = new Enhancer();
        reader.moveDown();
        enhancer.setSuperclass((Class<?>)context.convertAnother(null, Class.class));
        reader.moveUp();
        reader.moveDown();
        final List<Class<?>> interfaces = new ArrayList<Class<?>>();
        while (reader.hasMoreChildren()) {
            reader.moveDown();
            interfaces.add((Class<?>)context.convertAnother(null, mapper.realClass(reader.getNodeName())));
            reader.moveUp();
        }
        enhancer.setInterfaces(interfaces.toArray(new Class[interfaces.size()]));
        reader.moveUp();
        reader.moveDown();
        final boolean useFactory = Boolean.valueOf(reader.getValue()).booleanValue();
        enhancer.setUseFactory(useFactory);
        reader.moveUp();

        final List<Callback> callbacksToEnhance = new ArrayList<Callback>();
        final List<Callback> callbacks = new ArrayList<Callback>();
        Map<Method, Integer> callbackIndexMap = null;
        reader.moveDown();
        if ("callbacks".equals(reader.getNodeName())) {
            reader.moveDown();
            @SuppressWarnings("unchecked")
            final Map<Method, Integer> typedMap = (Map<Method, Integer>)context.convertAnother(null, HashMap.class);
            callbackIndexMap = typedMap;
            reader.moveUp();
            while (reader.hasMoreChildren()) {
                reader.moveDown();
                readCallback(reader, context, callbacksToEnhance, callbacks);
                reader.moveUp();
            }
        } else {
            readCallback(reader, context, callbacksToEnhance, callbacks);
        }
        enhancer.setCallbacks(callbacksToEnhance.toArray(new Callback[callbacksToEnhance.size()]));
        if (callbackIndexMap != null) {
            enhancer.setCallbackFilter(new ReverseEngineeredCallbackFilter(callbackIndexMap));
        }
        reader.moveUp();
        Object result = null;
        while (reader.hasMoreChildren()) {
            reader.moveDown();
            if (reader.getNodeName().equals("serialVersionUID")) {
                enhancer.setSerialVersionUID(Long.valueOf(reader.getValue()));
            } else if (reader.getNodeName().equals("instance")) {
                result = create(enhancer, callbacks, useFactory);
                super.doUnmarshalConditionally(result, reader, context);
            }
            reader.moveUp();
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.