public Set<String> getServerFeatures() {
        ServerTask serverTask = runningServer.get();
        try {
            if (serverTask != null)
                return serverTask.getServerFeatures();
        } catch (InterruptedException e) {
            // nothing to do here, we couldn't get the results from the server
        }

        return Collections.emptySet();
    }
public Set < String > getServerFeatures ( ) { ServerTask serverTask = runningServer . get ( ) ; try { if ( serverTask != null ) return serverTask . getServerFeatures ( ) ; } catch ( InterruptedException e ) { } return Collections . emptySet ( ) ; }
The feature gather operation needs to launch the server far enough for it to read
config and figure out all of the features that would be loaded. It doesn't actually
start any of those features, but it needs to get far enough to evaluate the full
feature set, including features and auto-features that are part of Liberty or are
provided by product extensions.

@return Set of strings describing the required features for the server. Will not return null.