Package org.jvnet.hk2.component

Examples of org.jvnet.hk2.component.Inhabitant


    public T create(Inhabitant onBehalfOf) throws ComponentException {
        try {
            return type.newInstance();
        } catch (InstantiationException e) {
            throw new ComponentException("Failed to create "+type,e);
        } catch (IllegalAccessException e) {
            throw new ComponentException("Failed to create "+type,e);
        } catch (LinkageError e) {
            throw new ComponentException("Failed to create "+type,e);
        } catch (RuntimeException e) {
            throw new ComponentException("Failed to create "+type,e);
        }
    }
View Full Code Here


      }
 
      // other general case
      Scope scope = habitat.getByType(scopeClass);
      if (scope==null) {
          throw new ComponentException("Failed to look up %s", scopeClass);
      }
 
      return new ScopedInhabitant<T>(creator,scope);
  }
View Full Code Here

  static void validate(Object target, Object injectedVal) {
      if (null != injectedVal) {
          RunLevel targetRL = AbstractInhabitantImpl.getAnnotation(target.getClass(), RunLevel.class, false);
          RunLevel injectedValRL = AbstractInhabitantImpl.getAnnotation(injectedVal.getClass(), RunLevel.class, false);
          if (null == targetRL && null != injectedValRL) {
              throw new ComponentException("invalid dependency from a non-RunLevel instance " +
                  target + " to a RunLevel instance " + injectedVal);
        }
    }
  }
View Full Code Here

    public WonderlandAppServer(Server server) {
        this.server = server;

        // add a module to properly specify the classpath
        Habitat h = server.getHabitat();
        ModulesRegistry mr = h.getComponent(ModulesRegistry.class);
        mr.add(new ClasspathModuleDefinition(WebServerLauncher.getClassLoader()));
    }
View Full Code Here

    public Habitat createHabitat() throws ComponentException {
        if (null != habitatFactory) {
          return habitatFactory.newHabitat();
        }
       
        return new Habitat();
    }
View Full Code Here

            if (replacements.containsKey(typeName)) {
                // create a replacement instead
                Class<?> target = replacements.get(typeName);
                if(target!=null) {
                    inhabitantParser.setImplName(target.getName());
                    Inhabitant i = null;
                    try {
                      i = Inhabitants.create(target,habitat,inhabitantParser.getMetaData());
                    } catch (Exception e) {
                      log(typeName, e);
                    }
View Full Code Here

    /**
     * Obtains a {@link ConfigModel} for the given class (Which should have {@link Configured} annotation on it.)
     */
    public ConfigModel buildModel(String fullyQualifiedClassName) {
        Inhabitant i = habitat.getInhabitantByAnnotation(InjectionTarget.class, fullyQualifiedClassName);
        if(i==null)
            throw new ComponentException("ConfigInjector for %s is not found, is it annotated with @Configured",fullyQualifiedClassName);
        return buildModel(i);
    }
View Full Code Here

                        if (!caller.getClassName().contains("hk2")) {
                            break;
                        }
                    }
                    if (itr.hasNext()) {
                        Inhabitant reason = itr.next();
                        StackTraceElement caller = stack[j];
                        Module m = null;
                        try {
                            if (reason.isInstantiated()) {
                                m = registry.find(loader.loadClass(reason.typeName()));
                            }
                        } catch (ClassNotFoundException e) {
                            m = null;
                        }
                        if (m!=null && !m.getModuleDefinition().getName().equals(currentBundleName)) {
                            w.append("Looks like module " + currentBundleName + " was " + state + " because "+
                                    m.getName() + " was " + state + "\nSince " + m.getName() + " contains ");
                        } else {
                            w.append("Requested by ");
                        }
                        if (m!=null)
                            currentBundleName = m.getName();

                        w.append(reason + " called from " + caller.getClassName()
                                + "." + caller.getMethodName() + ":" + caller.getLineNumber()+" metadata \n" + reason.metadata()+"\n");
                        w.append("\n");

                    }

                }

            }
            w.append("\n");

            w.append("-----------------------------------\n");
            w.append("Inhabitants initialization stack\n");
            w.append("-----------------------------------\n");
            itr = tracing.inOrder();
            while (itr.hasNext()) {
                Inhabitant i = itr.next();
                w.append(prefix +"> requested from "+ i+"\n");
                prefix=prefix+"-";
            }

            w.append("\n");
View Full Code Here

    // Todo : take care of Deployer when unloading...
    public void stop(Logger logger)
    {
        if (getDeployer()!=null) {
            Inhabitant i = registry.habitat.getInhabitantByType(getDeployer().getClass());
            if (i!=null) {
                i.release();
            }
        }
        if (getContainer()!=null) {
            Inhabitant i = registry.habitat.getInhabitantByType(getContainer().getClass());
            if (i!=null) {
                i.release();
            }
        }
        registry.removeContainer(this);
        if (logger.isLoggable(Level.FINE)) {
            logger.fine("Container " + getContainer().getName() + " stopped");
View Full Code Here

      assert(null != rl) : typeName + " is a problem; " + i + " has no RunLevel annotation";
      assert(!i.isInstantiated()) : "inhabitant should not be active: " + i;

      // get the appropriate RLS for this RunLevel
      RunLevelService<?> rls = runLevelServices.get(habitat, rl);
      InhabitantListener listener = InhabitantListener.class.isInstance(rls) ?
          InhabitantListener.class.cast(rls) : null;

      // wrap the inhabitant with a RunLevelInhabitant
      int runLevel = rl.value();
     
View Full Code Here

TOP

Related Classes of org.jvnet.hk2.component.Inhabitant

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.