return request.getAttributes().get(ROLE_ID).toString();
}
@Override
public PlexusComponentListResourceResponse get(Context context, Request request, Response response, Variant variant) throws ResourceException {
PlexusComponentListResourceResponse result = new PlexusComponentListResourceResponse();
// get role from request
String role = getRole(request);
try {
Key<?> roleKey = Key.get(uberClassLoader.loadClass(role), Named.class);
Iterable<? extends BeanEntry<Named, ?>> components = beanLocator.locate(roleKey);
if (!components.iterator().hasNext()) {
throw new ResourceException(Status.CLIENT_ERROR_NOT_FOUND);
}
for (BeanEntry<Named, ?> entry : components) {
PlexusComponentListResource resource = new PlexusComponentListResource();
String hint = entry.getKey().value();
String description = entry.getDescription();
resource.setRoleHint(hint);
resource.setDescription(StringUtils.isNotEmpty(description) ? description : hint);
// add it to the collection
result.addData(resource);
}
}
catch (ClassNotFoundException | LinkageError e) {
if (this.getLogger().isDebugEnabled()) {
getLogger().debug("Unable to look up plexus component with role '" + role + "'.", e);