If connecting as an application, you will need to register an app and make a note of the app key and app secret.The WWClient can be instantiated by calling the static method WWClient.buildClientApplicationAccess(appId, appSecret, authenticationEndpoint). Once built, the WWClient can be authenticated. Once authenticated, all relevant Watson Work Services calls can be made.

    @Test(enabled = true)
    @Parameters({ "appId", "appSecret" })
    public void testGetSpacesAsApp(String appId, String appSecret) throws UnsupportedEncodingException, WWException {
        WWClient client = WWClient.buildClientApplicationAccess(appId, appSecret, new WWAuthenticationEndpoint());
        assert !client.isAuthenticated();
        client.authenticate();
        assert client.isAuthenticated();

        List<? extends Space> spaces = client.getSpaces();
        assert (spaces.size() > 0);
    } 

Authentication as an application returns an AppToken which is passed to the authenticationResult property of the WWClient. This includes setting the expiry date for authentication. Subsequent calls using the same WWClient object will check whether the expiry date has passed, in which case it will re-authenticate.

When authenticating as an application, there is no refresh token, so no need to store the AppToken.