class VSensorLoader extends Thread {

    public boolean createInputStreams ( VirtualSensor pool ) throws InstantiationException, IllegalAccessException {
        if ( logger.isDebugEnabled ( ) ) logger.debug ( new StringBuilder ( ).append ( "Preparing input streams for: " ).append ( pool.getConfig().getName ( ) ).toString ( ) );
        if ( pool.getConfig().getInputStreams ( ).size ( ) == 0 ) logger.warn ( new StringBuilder ( "There is no input streams defined for *" ).append ( pool.getConfig().getName ( ) ).append ( "*" ).toString ( ) );
        for ( Iterator < InputStream > inputStreamIterator = pool.getConfig().getInputStreams ( ).iterator ( ) ; inputStreamIterator.hasNext ( ) ; ) {
            InputStream inputStream = inputStreamIterator.next ( );
            for ( StreamSource  dataSouce : inputStream.getSources ( )) {
                if ( prepareStreamSource ( pool.getConfig(),inputStream , dataSouce ) == false ) return false;
                // TODO if one stream source fails all the resources used by other successfuly initialized stream sources
                // for this input stream should be released.
            }
            inputStream.setPool (pool );
        }
        return true;
    }

    public  VSensorLoader();
    public  VSensorLoader( String pluginsPath );

}