Examples of InjectionContext


Examples of juzu.impl.inject.spi.InjectionContext

    bootstrap.declareBean(Properties.class, Scope.SINGLETON, null, null);
    bootstrap.bindBean(HashSet.class, null, singleton);
    Injector injector = bootstrap.get();
    bootstrap.declareBean(Date.class, Scope.SINGLETON, null, null);
    boot();
    InjectionContext context = boot(injector);

    //
    Properties p1 = getBean(Properties.class);
    Properties p2 = getBean(Properties.class);
    assertSame(p1, p2);
    Date s1 = getBean(Date.class);
    Date s2 = getBean(Date.class);
    assertSame(s1, s2);
    assertSame(singleton, getBean(HashSet.class));

    //
    Properties p3 = getBean(context, Properties.class);
    Properties p4 = getBean(context, Properties.class);
    assertSame(p3, p4);
    assertNotSame(p1, p3);
    if (di != InjectorProvider.GUICE) {
      assertNull(context.get(Date.class));
    }
    assertSame(singleton, getBean(context, HashSet.class));
  }
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.InjectionContext

      }
    }, Rule.after(EntryPoint.class, ApplicationScoped.class, Singleton.class));

    procFactory.registerHandler(ApplicationScoped.class, new AnnotationHandler<ApplicationScoped>() {
      public boolean handle(InjectableInstance instance, ApplicationScoped annotation, IOCProcessingContext context) {
        InjectionContext injectionContext = injectorFactory.getInjectionContext();
        TypeInjector i = (TypeInjector) instance.getInjector();

        if (!i.isInjected()) {
          // instantiate the bean.
          i.setSingleton(true);
          i.getType(injectionContext, null);
          injectionContext.registerInjector(i);
        }
        return true;
      }
    });
  }
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.InjectionContext

    super(decoratesWith);
  }

  @Override
  public Statement generateDecorator(InjectableInstance<Service> decContext) {
    final InjectionContext ctx = decContext.getInjectionContext();

    /**
     * Ensure the the container generates a stub to internally expose the field if it's private.
     */
    decContext.ensureMemberExposed();

    /**
     * Get an instance of the message bus.
     */
    final MetaClass busClass = MetaClassFactory.get(decContext.getInjectionContext()
            .getProcessingContext().loadClassType(MessageBus.class));

    final Statement busHandle = ctx.getInjector(busClass).getType(ctx, decContext);

    /**
     * Figure out the service name;
     */
    final String svcName = decContext.getAnnotation().value().equals("")
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.InjectionContext

    super(decoratesWith);
  }

  @Override
  public Statement generateDecorator(InjectableInstance<Service> decContext) {
    final InjectionContext ctx = decContext.getInjectionContext();

    /**
     * Ensure the the container generates a stub to internally expose the field if it's private.
     */
    decContext.ensureMemberExposed();

    final Statement busHandle = ctx.getInjector(MessageBus.class).getType(ctx, decContext);

    /**
     * Figure out the service name;
     */
    final String svcName = decContext.getAnnotation().value().equals("")
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.InjectionContext

        super(decoratesWith);
    }

    @Override
    public String generateDecorator(InjectionPoint<Service> decContext) {
        final InjectionContext ctx = decContext.getInjectionContext();

        /**
         * Get an instance of the message bus.
         */
        final String inj = ctx.getInjector(decContext.getInjectionContext()
                .getProcessingContext().loadClassType(MessageBus.class)).getType(ctx, decContext);

        /**
         * Figure out the service name;
         */
 
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.injector.api.InjectionContext

    super(decoratesWith);
  }

  @Override
  public List<? extends Statement> generateDecorator(final InjectableInstance<Service> injectableInstance) {
    final InjectionContext ctx = injectableInstance.getInjectionContext();

    /**
     * Ensure the the container generates a stub to internally expose the field if it's private.
     */
    injectableInstance.ensureMemberExposed();
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.injector.api.InjectionContext

  public ProducerInjector(final MetaClass injectedType,
                          final MetaClassMember producerMember,
                          final InjectableInstance producerInjectableInstance) {

    final InjectionContext injectionContext = producerInjectableInstance.getInjectionContext();

    switch (producerInjectableInstance.getTaskType()) {
      case PrivateField:
      case PrivateMethod:
        producerInjectableInstance.ensureMemberExposed(PrivateAccessType.Read);
    }

    super.qualifyingMetadata = producerInjectableInstance.getQualifyingMetadata();
    this.provider = true;
    this.injectedType = injectedType;
    this.enclosingType = producerMember.getDeclaringClass();
    this.producerMember = producerMember;
    this.producerInjectableInstance = producerInjectableInstance;

    this.singleton = injectionContext.isElementType(WiringElementType.SingletonBean, getProducerMember());

    this.disposerMethod = findDisposerMethod(injectionContext.getProcessingContext());

    this.creationalCallbackVarName = InjectUtil.getNewInjectorName().concat("_")
        .concat(injectedType.getName().concat("_creational"));

    final Set<Annotation> qualifiers = new HashSet<Annotation>();
    qualifiers.addAll(InjectUtil.getQualifiersFromAnnotations(producerMember.getAnnotations()));

    if (qualifiers.isEmpty()) {
      qualifiers.add(BuiltInQualifiers.DEFAULT_INSTANCE);
    }

    qualifiers.add(BuiltInQualifiers.ANY_INSTANCE);

    qualifyingMetadata = injectionContext.getProcessingContext().getQualifyingMetadataFactory()
        .createFrom(qualifiers.toArray(new Annotation[qualifiers.size()]));

    if (producerMember.isAnnotationPresent(Specializes.class)) {
      makeSpecialized(injectionContext);
    }

    if (producerMember.isAnnotationPresent(Named.class)) {
      final Named namedAnnotation = producerMember.getAnnotation(Named.class);

      this.beanName = namedAnnotation.value().equals("")
          ? ReflectionUtil.getPropertyFromAccessor(producerMember.getName()) : namedAnnotation.value();
    }

    injectionContext.addInjectorRegistrationListener(producerMember.getDeclaringClass(),
        new InjectorRegistrationListener() {
          @Override
          public void onRegister(final MetaClass type, final Injector injector) {
            injector.addDisablingHook(new Runnable() {
              @Override
              public void run() {
                setEnabled(false);
              }
            });
          }
        });

    injectionContext.addInjectorRegistrationListener(injectedType,
        new InjectorRegistrationListener() {
          @Override
          public void onRegister(final MetaClass type, Injector injector) {
            while (injector instanceof QualifiedTypeInjectorDelegate) {
              injector = ((QualifiedTypeInjectorDelegate) injector).getDelegate();
            }

            if (!(injector instanceof ProducerInjector)) {
              injector.setEnabled(false);
            }
          }
        });

    if (producerMember instanceof MetaMethod && injectionContext.isOverridden((MetaMethod) producerMember)) {
      setEnabled(false);
    }

    if (injectionContext.isInjectorRegistered(enclosingType, qualifyingMetadata)) {
      setRendered(true);
    }
    else {
      injectionContext.getProcessingContext().registerTypeDiscoveryListener(new TypeDiscoveryListener() {
        @Override
        public void onDiscovery(final IOCProcessingContext context,
                                final InjectionPoint injectionPoint,
                                final MetaClass injectedType) {
          if (injectionPoint.getEnclosingType().equals(enclosingType)) {
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.injector.api.InjectionContext

    renderGlobalProvider(injectableInstance);
  }

  @Override
  public Statement getBeanInstance(final InjectableInstance injectableInstance) {
    final InjectionContext injectionContext = injectableInstance.getInjectionContext();

    if (isDependent()) {
      renderGlobalProvider(injectableInstance);
      return registerDestructorCallback(injectionContext, injectionContext.getProcessingContext().getBlockBuilder(),
          producerInjectableInstance.getValueStatement(), disposerMethod);
    }

    final BlockBuilder callbackBuilder = injectionContext.getProcessingContext().getBlockBuilder();

    final MetaClass creationCallbackRef = parameterizedAs(BeanProvider.class,
        typeParametersOf(injectedType));

    final String var = InjectUtil.getUniqueVarName();
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.injector.api.InjectionContext

    return Refs.get(varName);
  }

  private void renderGlobalProvider(final InjectableInstance injectableInstance) {
    final InjectionContext injectionContext = injectableInstance.getInjectionContext();
    if (!injectionContext.isTypeInjectable(producerMember.getDeclaringClass())) {
      injectionContext.getInjector(producerMember.getDeclaringClass()).addRenderingHook(
          new RenderingHook() {
            @Override
            public void onRender(final InjectableInstance instance) {
              renderGlobalProvider(injectableInstance);
            }
          }
      );
      return;
    }

    if (creationalCallbackRendered) {
      return;
    }

    creationalCallbackRendered = true;

    final MetaClass creationCallbackRef = parameterizedAs(BeanProvider.class,
        typeParametersOf(injectedType));

    final String var = InjectUtil.getUniqueVarName();

    final BlockBuilder<AnonymousClassStructureBuilder> statements = ObjectBuilder.newInstanceOf(creationCallbackRef)
        .extend()
        .publicOverridesMethod("getInstance", Parameter.of(CreationalContext.class, "pContext"));

    injectionContext.getProcessingContext().pushBlockBuilder(statements);

    final Statement producerCreationalCallback = statements
        ._(Stmt.declareVariable(injectedType)
            .named(var).initializeWith(getValueStatement(injectionContext,
                injectionContext.getInjector(producerMember.getDeclaringClass()).getBeanInstance(injectableInstance))))
        ._(loadVariable("context").invoke("addBean",
            loadVariable("context").invoke("getBeanReference",
                Stmt.load(injectedType),
                Stmt.load(qualifyingMetadata.getQualifiers())), Refs.get(var)))
        ._(Stmt.loadVariable(var).returnValue())
        .finish().finish();

    injectionContext.getProcessingContext().getBootstrapBuilder()
        .privateField(creationalCallbackVarName, creationCallbackRef).modifiers(Modifier.Final)
        .initializesWith(producerCreationalCallback).finish();

    registerWithBeanManager(injectionContext, null);

    injectionContext.getProcessingContext().popBlockBuilder();
  }
View Full Code Here

Examples of org.jboss.errai.ioc.rebind.ioc.injector.api.InjectionContext

    final IOCProcessingContext procContext = iocProcContextBuilder.build();

    injectionContextBuilder.processingContext(procContext);
    injectionContextBuilder.reachableTypes(allDeps);
    final InjectionContext injectionContext = injectionContextBuilder.build();

    defaultConfigureProcessor(injectionContext);

    // generator constructor source code
    final IOCProcessorFactory procFactory = new IOCProcessorFactory(injectionContext);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.