public Map<Component, DeferredClass<?>> scan( final ClassSpace space, final boolean localSearch ) throws IOException { final NexusComponentClassVisitor visitor = new NexusComponentClassVisitor( space, repositoryTypes, exportedClassNames ); return visitClassResources( space, visitor ).getComponents(); } }
@Override public void visit( final String name, final Object value ) { setHint( (String) value ); } }
scanInterfaces( interfaces ); setHint( className ); // default to implementation name as extension hint setInstantiationStrategy( "per-lookup" );
private void scanInterfaces( final String... interfaces ) throws IOException { // look for @ExtensionPoint / @Managed for ( final String i : interfaces ) { // check cached results type = knownTypes.get( i ); if ( null == type ) { searchForComponentType( i ); } if ( type.isComponent() ) { // we now know the Plexus role setRole( i.replace( '/', '.' ) ); break; } } }