Package org.codehaus.plexus.component.repository

Examples of org.codehaus.plexus.component.repository.ComponentRequirement


        for ( int i = 0; i < requirements.length; i++ )
        {
            PlexusConfiguration requirement = requirements[i];

            ComponentRequirement cr = new ComponentRequirement();

            cr.setRole( requirement.getChild( "role" ).getValue() );

            cr.setRoleHint( requirement.getChild( "role-hint" ).getValue() );

            cr.setFieldName( requirement.getChild( "field-name" ).getValue() );

            cd.addRequirement( cr );
        }

        return cd;
View Full Code Here


        component.setIsolatedRealm(anno.isolatedRealm());

        for (AnnClass c : getClasses(annClass, cl)) {
            for (AnnField field : c.getFields().values()) {
                ComponentRequirement requirement = findRequirement(field, c, cl);

                if (requirement != null) {
                    component.addRequirement(requirement);
                }
View Full Code Here

        } catch (ClassNotFoundException ex) {
          // TODO Auto-generated catch block
          throw new ComponentGleanerException("Can't load class " + fieldType);
        }

        ComponentRequirement requirement;

        if (isRequirementListType(type)) {
            requirement = new ComponentRequirementList();

            String[] hints = anno.hints();

            if (hints != null && hints.length > 0) {
                ((ComponentRequirementList)requirement).setRoleHints(Arrays.asList(hints));
            }

            //
            // TODO: See if we can glean any type details out of any generic information from the map or collection
            //
        }
        else {
            requirement = new ComponentRequirement();

            requirement.setRoleHint(filterEmptyAsNull(anno.hint()));
        }

        // TODO need to read default annotation values
        // if (anno.role()==null || anno.role().isAssignableFrom(Object.class)) {
        if (anno.role().isAssignableFrom(Object.class)) {
            requirement.setRole(type.getName());
        }
        else {
            requirement.setRole(anno.role().getName());
        }

        requirement.setFieldName(field.getName());

        requirement.setFieldMappingType(type.getName());

        return requirement;
    }
View Full Code Here

                // ignore the assignable Collection test, though this should never happen
            }

            boolean isList = requirementClass.equals( List.class.getName() );

            ComponentRequirement cr;

            String hint = getParameter( parameters, PLEXUS_ROLE_HINT_PARAMETER );

            if ( isMap || isList )
            {
                cr = new ComponentRequirementList();

                String hintList = getParameter( parameters, PLEXUS_ROLE_HINT_LIST_PARAMETER );

                if ( hintList != null )
                {
                    String[] hintArr = hintList.split( "," );

                    ( (ComponentRequirementList) cr).setRoleHints( Arrays.asList( hintArr ) );
                }
            }
            else
            {
                cr = new ComponentRequirement();

                cr.setRoleHint( hint );
            }

            String role = getParameter( parameters, PLEXUS_ROLE_PARAMETER );

            if ( role == null )
            {
                cr.setRole( requirementClass );
            }
            else
            {
                cr.setRole( role );
            }

            cr.setFieldName( field.getName() );

            if ( isMap || isList )
            {
                if ( hint != null )
                {
                    /*
                    log.warn( "Field: '" + field.getName() + "': A role hint cannot be specified if the " +
                        "field is a java.util.Map or a java.util.List" );
                        */

                    continue;
                }

                if ( role == null )
                {
                    /*
                    log.warn( "Field: '" + field.getName() + "': A java.util.Map or java.util.List " +
                        "requirement has to specify a '" + PLEXUS_ROLE_PARAMETER + "' parameter on " + "the @" +
                        PLEXUS_REQUIREMENT_TAG + " tag so Plexus can know which components to " +
                        "put in the map or list." );
                        */

                    continue;
                }

                JavaClass roleClass = classCache.getClassByName( role );

                if ( role.indexOf( '.' ) == -1 && StringUtils.isEmpty( getPackage( roleClass ) ) )
                {
                    role = getPackage( javaClass ) + "." + roleClass.getName();
                }

                cr.setRole( role );

                findExtraParameters( PLEXUS_REQUIREMENT_TAG, parameters );
            }

            // ----------------------------------------------------------------------
View Full Code Here

    for (final ComponentRequirement requirement : source.getRequirements()) {
      target.addRequirement(requirement);
    }

    // TODO this should not be needed
    final ComponentRequirement manager = new ComponentRequirement();
    manager.setFieldName("manager");
    manager.setRole("org.sonatype.maven.polyglot.PolyglotModelManager");
    manager.setRoleHint("default");
    target.addRequirement(manager);

    try {
      container.addComponentDescriptor(target);
    } catch (final CycleDetectedInComponentGraphException e) {
View Full Code Here

TOP

Related Classes of org.codehaus.plexus.component.repository.ComponentRequirement

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.