ComponentRequirement cr = new ComponentRequirement(); cr.setRole( requirement.getChild( "role" ).getValue() ); cr.setRoleHint( requirement.getChild( "role-hint" ).getValue() ); cr.setFieldName( requirement.getChild( "field-name" ).getValue() );
public String toString() { return "ComponentRequirement{" + "role='" + getRole() + "'" + ", " + "roleHint='" + getRoleHint() + "', " + "fieldName='" + getFieldName() + "'" + "}"; }
if ( sourceReq.getFieldName() != null ) if ( sourceReq.getFieldName().equals( targetReq.getFieldName() ) ) else if ( targetReq.getFieldName() == null ) if ( sourceReq.getRole().equals( targetReq.getRole() ) )
public List gleanAutowiringRequirements( Map compositionContext, PlexusContainer container, ClassRealm componentRealm ) { PropertyDescriptor[] propertyDescriptors = (PropertyDescriptor[]) compositionContext.get( PROPERTY_DESCRIPTORS ); List requirements = new ArrayList(); for ( int i = 0; i < propertyDescriptors.length; i++ ) { PropertyDescriptor pd = propertyDescriptors[i]; String role = pd.getPropertyType().getName(); ComponentDescriptor componentDescriptor = container.getComponentDescriptor( role, componentRealm ); if ( componentDescriptor != null ) { ComponentRequirement requirement = new ComponentRequirement(); requirement.setRole( role ); requirements.add( requirement ); } } return requirements; }
desc.setRoleClass(ArtifactContextProducer.class); desc.setImplementationClass(CustomArtifactContextProducer.class); ComponentRequirement req = new ComponentRequirement(); // XXX why is this not automatic? req.setFieldName("mapper"); req.setRole(ArtifactPackagingMapper.class.getName()); desc.addRequirement(req); embedder.addComponentDescriptor(desc);
ComponentRequirement cr = new ComponentRequirement(); cr.setRole( component.getRole() ); cr.setRoleHint( component.getHint() );
reqMap.put( req.getRole(), req ); ComponentRequirement req = new ComponentRequirement(); req.setRole( PathTranslator.class.getName() );
String role = requirement.getRole(); List<String> roleHints = null; if (requirement instanceof ComponentRequirementList) { String roleHint = requirement.getRoleHint(); assignment = container.lookup(propertyType, role, roleHint); if ( requirement.isOptional() ) throw new ConstructionException("Composition failed of field " + requirement.getFieldName() + " " + "in object of type " + componentDescriptor.getImplementation() + " because the requirement " + requirement + " was missing)", e);
String role = requirement.getRole(); String hint = requirement.getRoleHint(); String mappingType = requirement.getFieldMappingType();
public boolean canCreate(Type expectedType) { if (!autoMatch) { return true; } Class<?> propertyType = toClass(expectedType); // Never auto match array, map or collection if (propertyType.isArray() || Map.class.isAssignableFrom(propertyType) || Collection.class.isAssignableFrom(propertyType) || requirement instanceof ComponentRequirementList) { return false; } // if the type to be created is an instance of the expected type, return true try { ComponentRegistry componentRegistry = container.getComponentRegistry(); return componentRegistry.getComponentDescriptor(propertyType, requirement.getRole(), requirement.getRoleHint()) != null; } catch (Exception e) { } return false; }
@SuppressWarnings("unchecked") private <T> ComponentDescriptor<T> createXWikiComponentDescriptor( org.codehaus.plexus.component.repository.ComponentDescriptor pcd) { DefaultComponentDescriptor<T> descriptor = null; if (pcd != null) { descriptor = new DefaultComponentDescriptor<T>(); descriptor.setImplementation((Class< ? extends T>) loadClass(pcd.getImplementation())); descriptor.setRoleHint(pcd.getRoleHint()); descriptor.setRole((Class<T>) loadClass(pcd.getRole())); if ("per-lookup".equals(pcd.getInstantiationStrategy())) { descriptor.setInstantiationStrategy(ComponentInstantiationStrategy.PER_LOOKUP); } else { descriptor.setInstantiationStrategy(ComponentInstantiationStrategy.SINGLETON); } // Copy dependencies for (ComponentRequirement requirement : (List<ComponentRequirement>) pcd.getRequirements()) { DefaultComponentDependency dependency = new DefaultComponentDependency(); dependency.setRole(loadClass(requirement.getRole())); dependency.setRoleHint(requirement.getRoleHint()); dependency.setMappingType(loadClass(requirement.getFieldMappingType())); dependency.setName(requirement.getFieldName()); // TODO: Handle specific hints when we move to a more recent Plexus version. // See createPlexusComponentDescriptor descriptor.addComponentDependency(dependency); } } return descriptor; }
static Requirement newRequirement( final ClassSpace space, final ComponentRequirement cr ) { return new RequirementImpl( space.deferLoadClass( cr.getRole() ), cr.isOptional(), Collections.singletonList( cr.getRoleHint() ) ); }
public void addComponentRequirement( ComponentRequirement rd, Object rv ) throws ComponentConfigurationException { if ( !descriptor.getRequirements().contains( rd ) ) { throw new ComponentConfigurationException( "Requirement: " + rd.getHumanReadableKey() + " is not listed in this component's descriptor." ); } references.put( rd.getRole() + "_" + rd.getRoleHint(), rv ); }
@Override public String toString() { return "RequirementRecipe[fieldName=" + requirement.getFieldName() + ", role=" + componentDescriptor.getRole() + "]"; } }
public void customize(PlexusContainer plexusContainer) { try { ComponentDescriptor desc = new ComponentDescriptor(); desc.setRole(TransferListener.class.getName()); plexusContainer.addComponentDescriptor(desc); desc.setImplementation("org.codehaus.mevenide.netbeans.embedder.exec.ProgressTransferListener"); //NOI18N desc = plexusContainer.getComponentDescriptor(WagonManager.ROLE); ComponentRequirement requirement = new ComponentRequirement(); requirement.setRole(TransferListener.class.getName()); desc.addRequirement(requirement); //MEVENIDE-634 desc = plexusContainer.getComponentDescriptor(KnownHostsProvider.ROLE, "file"); desc.getConfiguration().getChild("hostKeyChecking").setValue("no"); //MEVENIDE-634 desc = plexusContainer.getComponentDescriptor(KnownHostsProvider.ROLE, "null"); desc.getConfiguration().getChild("hostKeyChecking").setValue("no"); } catch (ComponentRepositoryException ex) { ex.printStackTrace(); } } });
String name = requirement.getFieldName(); RequirementRecipe requirementRecipe = new RequirementRecipe(descriptor, requirement, getContainer(), name == null); recipe.setProperty(name, requirementRecipe); } else { recipe.setAutoMatchProperty(requirement.getRole(), requirementRecipe);
element( w, "role", cr.getRole() ); element( w, "role-hint", "".equals( cr.getRoleHint() ) ? null : cr.getRoleHint() ); element( w, "field-name", cr.getFieldName() ); element( w, "optional", cr.isOptional() ? Boolean.TRUE.toString() : null );
String role = requirement.getRole(); String hint = requirement.getRoleHint(); String mappingType = requirement.getFieldMappingType();
public void addComponentDescriptor( ComponentDescriptor<?> componentDescriptor ) throws CycleDetectedInComponentGraphException { String key = getDAGKey( componentDescriptor.getRole(), componentDescriptor.getRoleHint() ); List<ComponentRequirement> requirements = componentDescriptor.getRequirements(); for ( ComponentRequirement requirement : requirements ) { try { if ( requirement instanceof ComponentRequirementList ) { for ( String hint : ( (ComponentRequirementList) requirement ).getRoleHints() ) { dag.addEdge( key, getDAGKey( requirement.getRole(), hint ) ); } } else { dag.addEdge( key, getDAGKey( requirement.getRole(), requirement.getRoleHint() ) ); } } catch ( CycleDetectedException e ) { throw new CycleDetectedInComponentGraphException( "Cyclic requirement detected", e ); } } }
ComponentMetadata( final ClassSpace space, final List<ComponentRequirement> requirements ) { for ( int i = 0, size = requirements.size(); i < size; i++ ) { final ComponentRequirement cr = requirements.get( i ); requirementMap.put( cr.getFieldName(), newRequirement( space, cr ) ); } }