Package org.apache.tapestry.ioc

Examples of org.apache.tapestry.ioc.ObjectCreator


            ServiceBuilderResources resources = new ServiceResourcesImpl(_registry, this, def, log);

            // Build up a stack of operations that will be needed to instantiate the service
            // (by the proxy, at a later date).

            ObjectCreator creator = def.createServiceCreator(resources);

            creator = new LifecycleWrappedServiceCreator(lifecycle, resources, creator);

            // Don't allow the tapestry.ioc services to be decorated.
View Full Code Here


        if (constructor == null)
            throw new RuntimeException(IOCMessages.noAutobuildConstructor(clazz));

        String description = _classFactory.getConstructorLocation(constructor).toString();

        ObjectCreator creator = new ConstructorServiceCreator(this, description, constructor);

        return clazz.cast(creator.createObject());
    }
View Full Code Here

                    _classFactory, logger);

            // Build up a stack of operations that will be needed to realize the service
            // (by the proxy, at a later date).

            ObjectCreator creator = def.createServiceCreator(resources);

            Class serviceInterface = def.getServiceInterface();

            // For non-proxyable services, we immediately create the service implementation
            // and return it. There's no interface to proxy, which throws out the possibility of
            // deferred instantiation, service lifecycles, and decorators.

            if (!serviceInterface.isInterface()) return creator.createObject();

            creator = new LifecycleWrappedServiceCreator(_registry, def.getServiceScope(),
                    resources, creator);

            // Don't allow the core IOC services services to be decorated.
View Full Code Here

    public Object createService(ServiceResources resources, final ObjectCreator creator)
    {
        Class proxyClass = createProxyClass(resources);

        ObjectCreator perThreadCreator = new PerThreadServiceCreator(_threadCleanupHub, creator);

        try
        {
            Constructor ctor = proxyClass.getConstructors()[0];
View Full Code Here

                    return _context.getType(beanName);
                }

                public ObjectCreator createServiceCreator(ServiceBuilderResources resources)
                {
                    return new ObjectCreator()
                    {
                        public Object createObject()
                        {
                            return getBean();
                        }
                    };
                }

                public String getServiceId()
                {
                    return beanName;
                }

                public Class getServiceInterface()
                {
                    return getBeanType();
                }

                public String getServiceScope()
                {
                    return IOCConstants.DEFAULT_SCOPE;
                }

                public boolean isEagerLoad()
                {
                    return false;
                }

                /** Returns null, Spring has no concept of a marker annotation. */
                public Class getMarker()
                {
                    return null;
                }

            };

            _serviceDefs.put(beanName, serviceDef);
        }

        // And add one service that is the Spring WebApplicationContext.

        ServiceDef serviceDef = new ServiceDef()
        {

            public ObjectCreator createServiceCreator(ServiceBuilderResources resources)
            {
                return new ObjectCreator()
                {
                    public Object createObject()
                    {
                        return _context;
                    }
View Full Code Here

    public Object createService(ServiceResources resources, ObjectCreator creator)
    {
        Class proxyClass = createProxyClass(resources);

        ObjectCreator perThreadCreator = new PerThreadServiceCreator(_perthreadManager, creator);

        try
        {
            Constructor ctor = proxyClass.getConstructors()[0];
View Full Code Here

{
    @Test
    public void test()
    {
        ServiceResources resources = newServiceResources();
        ObjectCreator creator = newObjectCreator();
        Object expected = new Object();

        train_createObject(creator, expected);

        replay();
View Full Code Here

    private static final String SERVICE_ID = "foo.bar.Baz";

    @Test
    public void no_decorators()
    {
        ObjectCreator core = newObjectCreator();
        Module module = newModule();
        Object coreObject = new Object();
        List<ServiceDecorator> decorators = newList();

        train_createObject(core, coreObject);

        train_findDecoratorsForService(module, SERVICE_ID, decorators);

        replay();

        ObjectCreator isb = new InterceptorStackBuilder(module, SERVICE_ID, core);

        Object intercepted = isb.createObject();

        assertSame(intercepted, coreObject);

        verify();
    }
View Full Code Here

    }

    @Test
    public void decorator_returns_null_interceptor()
    {
        ObjectCreator core = newObjectCreator();
        Module module = newModule();
        Object coreObject = new Object();
        ServiceDecorator decorator = newServiceDecorator();

        List<ServiceDecorator> decorators = asList(decorator);

        train_createObject(core, coreObject);

        train_findDecoratorsForService(module, SERVICE_ID, decorators);

        train_createInterceptor(decorator, coreObject, null);

        replay();

        ObjectCreator isb = new InterceptorStackBuilder(module, SERVICE_ID, core);

        Object intercepted = isb.createObject();

        assertSame(intercepted, coreObject);

        verify();
    }
View Full Code Here

    }

    @Test
    public void decorator_orderering()
    {
        ObjectCreator core = newObjectCreator();
        Module module = newModule();
        Object coreObject = new Object();
        Object interceptor1 = new Object();
        Object interceptor2 = new Object();
        ServiceDecorator decorator1 = newServiceDecorator();
        ServiceDecorator decorator2 = newServiceDecorator();

        List<ServiceDecorator> decorators = asList(decorator1, decorator2);

        train_createObject(core, coreObject);

        train_findDecoratorsForService(module, SERVICE_ID, decorators);

        // Notice: reverse order!

        train_createInterceptor(decorator2, coreObject, interceptor2);
        train_createInterceptor(decorator1, interceptor2, interceptor1);

        replay();

        ObjectCreator isb = new InterceptorStackBuilder(module, SERVICE_ID, core);

        Object intercepted = isb.createObject();

        assertSame(intercepted, interceptor1);

        verify();
    }
View Full Code Here

TOP

Related Classes of org.apache.tapestry.ioc.ObjectCreator

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.