String mimetype = new MimetypesFileTypeMap().getContentType(f);
byte[] bytes = getBytesFromFile(f);
// start creating the request
TasStub tas = new TasStub();
AddRequest req = new AddRequest();
// add the content of the file
AddRequestChoice_type0 choice = new AddRequestChoice_type0();
DataHandler h = new DataHandler(new ByteArrayDataSource(bytes, "base64"));
choice.setPayload(h);
req.setAddRequestChoice_type0(choice);
// add the TAS metadata
AttachmentMetadata meta = new AttachmentMetadata();
meta.setFilename(fileName);
meta.setMimeType(mimetype);
req.setAttachmentMetadata(meta);
// add TAS credentials
AuthCredentials cred = new AuthCredentials();
AuthorizedRoles_type0 roles = new AuthorizedRoles_type0();
roles.setRole(ROLES);
cred.setAuthorizedRoles(roles);
cred.setParticipantToken(TOKEN);
req.setAuthCredentials(cred);
// test resulting url
// this will throw an exception if the URL is not valid
URL url = new URL(tas.add(req).getUrl().toString());
Assert.assertNotNull(url);