protected BasicComponentInstance constructComponentInstance(ManagedReference instance, boolean invokePostConstruct, final Map<Object, Object> context) {
        waitForComponentStart();
        // create the component instance
        final BasicComponentInstance basicComponentInstance = this.instantiateComponentInstance(preDestroyInterceptor, interceptorInstanceMap, context);
        if(instance != null) {
            basicComponentInstance.setInstanceData(BasicComponentInstance.INSTANCE_KEY, instance);
        }
        if (invokePostConstruct) {
            // now invoke the postconstruct interceptors
            final InterceptorContext interceptorContext = new InterceptorContext();
            interceptorContext.putPrivateData(Component.class, this);
            interceptorContext.putPrivateData(ComponentInstance.class, basicComponentInstance);
            interceptorContext.putPrivateData(InvocationType.class, InvocationType.POST_CONSTRUCT);
            interceptorContext.setContextData(new HashMap<String, Object>());

            try {
                postConstructInterceptor.processInvocation(interceptorContext);
            } catch (Exception e) {
                throw EeLogger.ROOT_LOGGER.componentConstructionFailure(e);
            }
        }
        componentInstanceCreated(basicComponentInstance);
        // return the component instance
        return basicComponentInstance;
    }
protected BasicComponentInstance constructComponentInstance(ManagedReference instance, boolean invokePostConstruct, final Map<Object, Object> context) {
        waitForComponentStart();
        
        final BasicComponentInstance basicComponentInstance = this.instantiateComponentInstance(preDestroyInterceptor, interceptorInstanceMap, context);
        if(instance != null) {
            basicComponentInstance.setInstanceData(BasicComponentInstance.INSTANCE_KEY, instance);
        }
        if (invokePostConstruct) {
            
            final InterceptorContext interceptorContext = new InterceptorContext();
            interceptorContext.putPrivateData(Component.class, this);
            interceptorContext.putPrivateData(ComponentInstance.class, basicComponentInstance);
            interceptorContext.putPrivateData(InvocationType.class, InvocationType.POST_CONSTRUCT);
            interceptorContext.setContextData(new HashMap<String, Object>());

            try {
                postConstructInterceptor.processInvocation(interceptorContext);
            } catch (Exception e) {
                throw EeLogger.ROOT_LOGGER.componentConstructionFailure(e);
            }
        }
        componentInstanceCreated(basicComponentInstance);
        
        return basicComponentInstance;
    }
protected BasicComponentInstance constructComponentInstance ( ManagedReference instance , boolean invokePostConstruct , final Map < Object , Object > context ) { waitForComponentStart ( ) ; // create the component instance final BasicComponentInstance basicComponentInstance = this . instantiateComponentInstance ( preDestroyInterceptor , interceptorInstanceMap , context ) ; if ( instance != null ) { basicComponentInstance . setInstanceData ( BasicComponentInstance . INSTANCE_KEY , instance ) ; } if ( invokePostConstruct ) { // now invoke the postconstruct interceptors final InterceptorContext interceptorContext = new InterceptorContext ( ) ; interceptorContext . putPrivateData ( Component . class , this ) ; interceptorContext . putPrivateData ( ComponentInstance . class , basicComponentInstance ) ; interceptorContext . putPrivateData ( InvocationType . class , InvocationType . POST_CONSTRUCT ) ; interceptorContext . setContextData ( new HashMap < String , Object > ( ) ) ; try { postConstructInterceptor . processInvocation ( interceptorContext ) ; } catch ( Exception e ) { throw EeLogger . ROOT_LOGGER . componentConstructionFailure ( e ) ; } } componentInstanceCreated ( basicComponentInstance ) ; // return the component instance return basicComponentInstance ; }
Construct the component instance.  Upon return, the object instance should have injections and lifecycle
invocations completed already.


@param instance An instance to be wrapped, or null if a new instance should be created
@return the component instance
Construct the component instance . Upon return the object instance should have injections and lifecycle invocations completed already .