Package org.apache.hivemind.service

Examples of org.apache.hivemind.service.ClassFab


    }

    /** @since 1.1 */
    public void testToString() throws Exception
    {
        ClassFab cf = newClassFab("FredRunnable", BaseLocatable.class);

        cf.addInterface(Runnable.class);
        cf.addInterface(Serializable.class);

        cf.addField("_map", Map.class);

        cf.addConstructor(new Class[]
        { Map.class, Runnable.class }, new Class[]
        { IllegalArgumentException.class, DataFormatException.class }, "{ _map = $1; }");

        MethodSignature sig = new MethodSignature(Map.class, "doTheNasty", new Class[]
        { int.class, String.class }, new Class[]
        { InstantiationException.class, IllegalAccessException.class });

        MethodFab mf = cf.addMethod(
                Modifier.PUBLIC + Modifier.FINAL + Modifier.SYNCHRONIZED,
                sig,
                "{ return _map; }");

        mf.addCatch(NullPointerException.class, "return null;");
        mf.extend("_map.clear();", true);

        String toString = cf.toString();

        contains(
                toString,
                "public class FredRunnable extends org.apache.hivemind.impl.BaseLocatable\n"
                        + "  implements java.lang.Runnable, java.io.Serializable");
View Full Code Here


    }

    public void testCanConvert()
    {
      final ClassFab cf = newClassFab("BamBam", Object.class);
      assertTrue( cf.canConvert( String.class ) );
      assertFalse(cf.canConvert(CglibBeanInterfaceFactory.createCglibBean().getClass()));
      assertFalse(cf.canConvert(JavassistBeanInterfaceFactory.createJavassistBean().getClass()));
      assertFalse(cf.canConvert(JdkBeanInterfaceFactory.createJdkBean().getClass()));
    }
View Full Code Here

 

  public void testGetInstanceClass() {
    final HiveMindClassPool pool = new HiveMindClassPool();
    final CtClassSource classSource = new CtClassSource(pool);
    final ClassFab classFab = new ClassFabImpl(classSource, pool
        .makeClass("Dummy"));
    assertSame(ClassFabUtils.getInstanceClass(classFab,
        new BeanInterfaceImpl(), BeanInterface.class),
        BeanInterfaceImpl.class);
    assertSame( ClassFabUtils.getInstanceClass(classFab,CglibBeanInterfaceFactory.createCglibBean(), BeanInterface.class ), BeanInterface.class );
View Full Code Here

  private void tryAddNoOpMethod(Class returnClass, String expectedBody) {
    MethodSignature sig = new MethodSignature(returnClass, "run", null,
        null);

    MockControl control = newControl(ClassFab.class);
    ClassFab cf = (ClassFab) control.getMock();
    MethodFab mf = (MethodFab) newMock(MethodFab.class);

    cf.addMethod(Modifier.PUBLIC, sig, expectedBody);
    control.setReturnValue(mf);

    replayControls();

    ClassFabUtils.addNoOpMethod(cf, sig);
View Full Code Here

            String delegationMethodName, ServicePoint servicePoint)
    {
        ProxyBuilder builder = new ProxyBuilder(type, servicePoint.getModule(),
                servicePoint.getServiceInterface(), servicePoint.getDeclaredInterface(), false);

        ClassFab classFab = builder.getClassFab();

        addConstructor(classFab, serviceModel);

        addServiceAccessor(classFab, delegationMethodName, servicePoint);

        builder.addServiceMethods(SERVICE_ACCESSOR_METHOD_NAME + "()");

        Class proxyClass = classFab.createClass();

        try
        {
            Constructor c = proxyClass.getConstructor(new Class[]
            { String.class, serviceModel.getClass() });
View Full Code Here

            ServicePoint servicePoint)
    {
        ProxyBuilder builder = new ProxyBuilder("OuterProxy", servicePoint.getModule(),
                servicePoint.getServiceInterface(), servicePoint.getDeclaredInterface(), true);

        ClassFab classFab = builder.getClassFab();

        addDelegateAccessor(classFab, servicePoint, delegate);

        builder.addServiceMethods(DELEGATE_ACCESSOR_METHOD_NAME + "()");

        Class proxyClass = classFab.createClass();

        try
        {
            return (RegistryShutdownListener) ConstructorUtils.invokeConstructor(
                    proxyClass,
View Full Code Here

    private Class constructBridgeProxyClass(Object service)
    {
        ProxyBuilder builder = new ProxyBuilder("BridgeProxy", getServicePoint().getModule(),
                getServicePoint().getServiceInterface(), getServicePoint().getDeclaredInterface(), false);

        ClassFab cf = builder.getClassFab();

        Class serviceType = service.getClass();

        cf.addField("_service", serviceType);

        cf.addConstructor(new Class[]
        { String.class, serviceType }, null, "{ this($1); _service = $2; }");

        builder.addServiceMethods("_service");

        return cf.createClass();
    }
View Full Code Here

        Class homeInterface = invokingModule.getClassResolver().findClass(homeInterfaceClassName);

        String proxyClassName = ClassFabUtils.generateClassName("EJBProxy");

        ClassFab classFab =
            _classFactory.newClass(proxyClassName, AbstractEJBProxy.class, invokingModule);

        classFab.addInterface(serviceInterface);

        classFab.addField("_remote", serviceInterface);

        addClearCachedMethod(classFab);

        addLookupMethod(classFab, homeInterface, serviceInterface, jndiName);

        addServiceMethods(classFab, serviceInterface, serviceId, jndiName);

        addConstructor(classFab);

        Class proxyClass = classFab.createClass();

        return invokeConstructor(proxyClass, proxyParameters.getNameLookup(_nameLookup));
    }
View Full Code Here

        // Now we're good to go.

        String name = ClassFabUtils.generateClassName("ServicePropertyProxy");

        ClassFab cf = _classFactory.newClass(name, Object.class, invokingModule);

        addInfrastructure(cf, targetService, serviceInterface, propertyName, readMethodName);

        addMethods(cf, serviceId, serviceInterface, propertyName, targetService);

        Class proxyClass = cf.createClass();

        try
        {
            return ConstructorUtils.invokeConstructor(proxyClass, new Object[] { targetService });
        }
View Full Code Here

        if (!interfaceType.isInterface())
            throw new ApplicationRuntimeException(ImplMessages.notAnInterface(interfaceType));

        String name = ClassFabUtils.generateClassName(interfaceType);

        ClassFab cf = _classFactory.newClass(name, Object.class);

        cf.addInterface(interfaceType);

        MethodIterator mi = new MethodIterator(interfaceType);

        while (mi.hasNext())
        {
            ClassFabUtils.addNoOpMethod(cf, mi.next());
        }

        if (!mi.getToString())
            ClassFabUtils.addToStringMethod(cf, ImplMessages
                    .defaultImplementationDescription(interfaceType));

        return cf.createClass();
    }
View Full Code Here

TOP

Related Classes of org.apache.hivemind.service.ClassFab

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.