Tabnine Logo
FileTransferNegotiator
Code IndexAdd Tabnine to your IDE (free)

How to use
FileTransferNegotiator
in
org.jivesoftware.smackx.filetransfer

Best Java code snippets using org.jivesoftware.smackx.filetransfer.FileTransferNegotiator (Showing top 20 results out of 315)

origin: igniterealtime/Smack

/**
 * Creates a file transfer manager to initiate and receive file transfers.
 *
 * @param connection
 *            The XMPPConnection that the file transfers will use.
 */
private FileTransferManager(XMPPConnection connection) {
  super(connection);
  this.fileTransferNegotiator = FileTransferNegotiator
      .getInstanceFor(connection);
  connection.registerIQRequestHandler(new AbstractIqRequestHandler(StreamInitiation.ELEMENT,
          StreamInitiation.NAMESPACE, IQ.Type.set, Mode.async) {
    @Override
    public IQ handleIQRequest(IQ packet) {
      StreamInitiation si = (StreamInitiation) packet;
      final FileTransferRequest request = new FileTransferRequest(FileTransferManager.this, si);
      for (final FileTransferListener listener : listeners) {
            listener.fileTransferRequest(request);
      }
      return null;
    }
  });
}
origin: igniterealtime/Smack

  @Test
  public void verifyForm() throws Exception {
    FileTransferNegotiator fileNeg = FileTransferNegotiator.getInstanceFor(connection);
    try {
      fileNeg.negotiateOutgoingTransfer(JidTestUtil.DUMMY_AT_EXAMPLE_ORG, "streamid", "file", 1024, null, 10);
    } catch (NoResponseException e) {
      // We do not expect an answer. This unit test only checks the request sent.
    }
    Stanza packet = connection.getSentPacket();
    String xml = packet.toXML(null).toString();
    assertTrue(xml.indexOf("var='stream-method' type='list-single'") != -1);
  }
}
origin: igniterealtime/Smack

/**
 * Returns the file transfer negotiator related to a particular connection.
 * When this class is requested on a particular connection the file transfer
 * service is automatically enabled.
 *
 * @param connection The connection for which the transfer manager is desired
 * @return The FileTransferNegotiator
 */
public static synchronized FileTransferNegotiator getInstanceFor(
    final XMPPConnection connection) {
  FileTransferNegotiator fileTransferNegotiator = INSTANCES.get(connection);
  if (fileTransferNegotiator == null) {
    fileTransferNegotiator = new FileTransferNegotiator(connection);
    INSTANCES.put(connection, fileTransferNegotiator);
  }
  return fileTransferNegotiator;
}
origin: igniterealtime/Smack

  FileTransferRequest request) throws NotConnectedException, NoStreamMethodsOfferedException, NoAcceptableTransferMechanisms, InterruptedException {
StreamInitiation si = request.getStreamInitiation();
FormField streamMethodField = getStreamMethodField(si
    .getFeatureNegotiationForm());
  StanzaError.Builder error = StanzaError.from(StanzaError.Condition.bad_request, errorMessage);
  IQ iqPacket = IQ.createErrorResponse(si, error);
  connection().sendStanza(iqPacket);
  throw new FileTransferException.NoStreamMethodsOfferedException();
  selectedStreamNegotiator = getNegotiator(streamMethodField);
  connection().sendStanza(iqPacket);
  throw e;
origin: igniterealtime/Smack

si.setFile(siFile);
si.setFeatureNegotiationForm(createDefaultInitiationForm());
si.setFrom(connection().getUser());
si.setTo(userID);
si.setType(IQ.Type.set);
Stanza siResponse = connection().createStanzaCollectorAndSend(si).nextResultOrThrow(
        responseTimeout);
  if (iqResponse.getType().equals(IQ.Type.result)) {
    StreamInitiation response = (StreamInitiation) siResponse;
    return getOutgoingNegotiator(getStreamMethodField(response
        .getFeatureNegotiationForm()));
origin: org.littleshoot/smack-xmpp-3-2-2

si.setFile(siFile);
si.setFeatureNegotiationForm(createDefaultInitiationForm());
  if (iqResponse.getType().equals(IQ.Type.RESULT)) {
    StreamInitiation response = (StreamInitiation) siResponse;
    return getOutgoingNegotiator(getStreamMethodField(response
        .getFeatureNegotiationForm()));
origin: org.igniterealtime.smack/smackx

  FileTransferRequest request) throws XMPPException {
StreamInitiation si = request.getStreamInitiation();
FormField streamMethodField = getStreamMethodField(si
    .getFeatureNegotiationForm());
  String errorMessage = "No stream methods contained in packet.";
  XMPPError error = new XMPPError(XMPPError.Condition.bad_request, errorMessage);
  IQ iqPacket = createIQ(si.getPacketID(), si.getFrom(), si.getTo(),
      IQ.Type.ERROR);
  iqPacket.setError(error);
  selectedStreamNegotiator = getNegotiator(streamMethodField);
  IQ iqPacket = createIQ(si.getPacketID(), si.getFrom(), si.getTo(),
      IQ.Type.ERROR);
  iqPacket.setError(e.getXMPPError());
origin: org.mobicents.resources/mobicents-slee-ra-xmpp-library

/**
 * Returns the file transfer negotiator related to a particular connection.
 * When this class is requested on a particular connection the file transfer
 * service is automatically enabled.
 *
 * @param connection The connection for which the transfer manager is desired
 * @return The IMFileTransferManager
 */
public static FileTransferNegotiator getInstanceFor(
    final XMPPConnection connection) {
  if (connection == null) {
    throw new IllegalArgumentException("Connection cannot be null");
  }
  if (!connection.isConnected()) {
    return null;
  }
  if (transferObject.containsKey(connection)) {
    return (FileTransferNegotiator) transferObject.get(connection);
  }
  else {
    FileTransferNegotiator transfer = new FileTransferNegotiator(
        connection);
    setServiceEnabled(connection, true);
    transferObject.put(connection, transfer);
    return transfer;
  }
}
origin: igniterealtime/Smack

private OutputStream negotiateStream(String fileName, long fileSize,
    String description) throws SmackException, XMPPException, InterruptedException {
  // Negotiate the file transfer profile
  if (!updateStatus(Status.initial, Status.negotiating_transfer)) {
    throw new IllegalStateChangeException();
  }
  StreamNegotiator streamNegotiator = negotiator.negotiateOutgoingTransfer(
      getPeer(), streamID, fileName, fileSize, description,
      RESPONSE_TIMEOUT);
  // Negotiate the stream
  if (!updateStatus(Status.negotiating_transfer, Status.negotiating_stream)) {
    throw new IllegalStateChangeException();
  }
  outputStream = streamNegotiator.createOutgoingStream(streamID,
      initiator, getPeer());
  if (!updateStatus(Status.negotiating_stream, Status.negotiated)) {
    throw new IllegalStateChangeException();
  }
  return outputStream;
}
origin: igniterealtime/Smack

/**
 * Creates an OutgoingFileTransfer to send a file to another user.
 *
 * @param userID
 *            The fully qualified jabber ID (i.e. full JID) with resource of the user to
 *            send the file to.
 * @return The send file object on which the negotiated transfer can be run.
 * @exception IllegalArgumentException if userID is null or not a full JID
 */
public OutgoingFileTransfer createOutgoingFileTransfer(EntityFullJid userID) {
  // We need to create outgoing file transfers with a full JID since this method will later
  // use XEP-0095 to negotiate the stream. This is done with IQ stanzas that need to be addressed to a full JID
  // in order to reach an client entity.
  if (userID == null) {
    throw new IllegalArgumentException("userID was null");
  }
  return new OutgoingFileTransfer(connection().getUser(), userID,
      FileTransferNegotiator.getNextStreamID(),
      fileTransferNegotiator);
}
origin: igniterealtime/Smack

private InputStream negotiateStream() throws SmackException, XMPPErrorException, InterruptedException {
  setStatus(Status.negotiating_transfer);
  final StreamNegotiator streamNegotiator = negotiator
      .selectStreamNegotiator(receiveRequest);
  setStatus(Status.negotiating_stream);
  FutureTask<InputStream> streamNegotiatorTask = new FutureTask<>(
origin: igniterealtime/Smack

private FileTransferNegotiator(final XMPPConnection connection) {
  super(connection);
  byteStreamTransferManager = new Socks5TransferNegotiator(connection);
  inbandTransferManager = new IBBTransferNegotiator(connection);
  setServiceEnabled(connection, true);
}
origin: tiandawu/IotXmpp

si.setFile(siFile);
si.setFeatureNegotiationForm(createDefaultInitiationForm());
  if (iqResponse.getType().equals(IQ.Type.RESULT)) {
    StreamInitiation response = (StreamInitiation) siResponse;
    return getOutgoingNegotiator(getStreamMethodField(response
        .getFeatureNegotiationForm()));
origin: org.mobicents.resources/mobicents-slee-ra-xmpp-library

  FileTransferRequest request) throws XMPPException {
StreamInitiation si = request.getStreamInitiation();
FormField streamMethodField = getStreamMethodField(si
    .getFeatureNegotiationForm());
  IQ iqPacket = createIQ(si.getPacketID(), si.getFrom(), si.getTo(),
      IQ.Type.ERROR);
  iqPacket.setError(error);
  selectedStreamNegotiator = getNegotiator(streamMethodField);
  IQ iqPacket = createIQ(si.getPacketID(), si.getFrom(), si.getTo(),
      IQ.Type.ERROR);
  iqPacket.setError(e.getXMPPError());
origin: org.igniterealtime.smack/smackx

/**
 * Returns the file transfer negotiator related to a particular connection.
 * When this class is requested on a particular connection the file transfer
 * service is automatically enabled.
 *
 * @param connection The connection for which the transfer manager is desired
 * @return The IMFileTransferManager
 */
public static FileTransferNegotiator getInstanceFor(
    final Connection connection) {
  if (connection == null) {
    throw new IllegalArgumentException("Connection cannot be null");
  }
  if (!connection.isConnected()) {
    return null;
  }
  if (transferObject.containsKey(connection)) {
    return transferObject.get(connection);
  }
  else {
    FileTransferNegotiator transfer = new FileTransferNegotiator(
        connection);
    setServiceEnabled(connection, true);
    transferObject.put(connection, transfer);
    return transfer;
  }
}
origin: org.mobicents.resources/mobicents-slee-ra-xmpp-library

private OutputStream negotiateStream(String fileName, long fileSize,
    String description) throws XMPPException {
  // Negotiate the file transfer profile
  setStatus(Status.NEGOTIATING_TRANSFER);
  StreamNegotiator streamNegotiator = negotiator.negotiateOutgoingTransfer(
      getPeer(), streamID, fileName, fileSize, description,
      RESPONSE_TIMEOUT);
  if (streamNegotiator == null) {
    setStatus(Status.ERROR);
    setError(Error.NO_RESPONSE);
    return null;
  }
  if (!getStatus().equals(Status.NEGOTIATING_TRANSFER)) {
    return null;
  }
  // Negotiate the stream
  setStatus(Status.NEGOTIATING_STREAM);
  outputStream = streamNegotiator.createOutgoingStream(streamID,
      initiator, getPeer());
  if (!getStatus().equals(Status.NEGOTIATING_STREAM)) {
    return null;
  }
  setStatus(Status.NEGOTIATED);
  return outputStream;
}
origin: org.littleshoot/smack-xmpp-3-2-2

  /**
   * Creates an OutgoingFileTransfer to send a file to another user.
   * 
   * @param userID
   *            The fully qualified jabber ID with resource of the user to
   *            send the file to.
   * @return The send file object on which the negotiated transfer can be run.
   */
  public OutgoingFileTransfer createOutgoingFileTransfer(String userID) {
//        Why is this only accepting fully qualified JID?
//        if (userID == null || StringUtils.parseName(userID).length() <= 0
//                || StringUtils.parseServer(userID).length() <= 0
//                || StringUtils.parseResource(userID).length() <= 0) {
//            throw new IllegalArgumentException(
//                    "The provided user id was not fully qualified");
//        }

    return new OutgoingFileTransfer(connection.getUser(), userID,
        fileTransferNegotiator.getNextStreamID(),
        fileTransferNegotiator);
  }
 
origin: org.littleshoot/smack-xmpp-3-2-2

private InputStream negotiateStream() throws XMPPException {
  setStatus(Status.negotiating_transfer);
  final StreamNegotiator streamNegotiator = negotiator
      .selectStreamNegotiator(recieveRequest);
  setStatus(Status.negotiating_stream);
  FutureTask<InputStream> streamNegotiatorTask = new FutureTask<InputStream>(
origin: org.igniterealtime.smack/smackx

si.setFile(siFile);
si.setFeatureNegotiationForm(createDefaultInitiationForm());
  if (iqResponse.getType().equals(IQ.Type.RESULT)) {
    StreamInitiation response = (StreamInitiation) siResponse;
    return getOutgoingNegotiator(getStreamMethodField(response
        .getFeatureNegotiationForm()));
origin: org.littleshoot/smack-xmpp-3-2-2

  FileTransferRequest request) throws XMPPException {
StreamInitiation si = request.getStreamInitiation();
FormField streamMethodField = getStreamMethodField(si
    .getFeatureNegotiationForm());
  String errorMessage = "No stream methods contained in packet.";
  XMPPError error = new XMPPError(XMPPError.Condition.bad_request, errorMessage);
  IQ iqPacket = createIQ(si.getPacketID(), si.getFrom(), si.getTo(),
      IQ.Type.ERROR);
  iqPacket.setError(error);
  selectedStreamNegotiator = getNegotiator(streamMethodField);
  IQ iqPacket = createIQ(si.getPacketID(), si.getFrom(), si.getTo(),
      IQ.Type.ERROR);
  iqPacket.setError(e.getXMPPError());
org.jivesoftware.smackx.filetransferFileTransferNegotiator

Javadoc

Manages the negotiation of file transfers according to JEP-0096. If a file is being sent the remote user chooses the type of stream under which the file will be sent.

Most used methods

  • getInstanceFor
    Returns the file transfer negotiator related to a particular connection. When this class is requeste
  • negotiateOutgoingTransfer
    Send a request to another user to send them a file. The other user has the option of, accepting, rej
  • <init>
  • createDefaultInitiationForm
  • getNegotiator
  • getNextStreamID
    Returns a new, unique, stream ID to identify a file transfer.
  • getOutgoingNegotiator
  • getStreamMethodField
  • selectStreamNegotiator
    Selects an appropriate stream negotiator after examining the incoming file transfer request.
  • setServiceEnabled
    Enable the Jabber services related to file transfer on the particular connection.
  • configureConnection
  • createIQ
    A convience method to create an IQ packet.
  • configureConnection,
  • createIQ,
  • connection

Popular in Java

  • Finding current android device location
  • getExternalFilesDir (Context)
  • getContentResolver (Context)
  • getOriginalFilename (MultipartFile)
    Return the original filename in the client's filesystem.This may contain path information depending
  • FlowLayout (java.awt)
    A flow layout arranges components in a left-to-right flow, much like lines of text in a paragraph. F
  • Locale (java.util)
    Locale represents a language/country/variant combination. Locales are used to alter the presentatio
  • Properties (java.util)
    A Properties object is a Hashtable where the keys and values must be Strings. Each property can have
  • Stack (java.util)
    Stack is a Last-In/First-Out(LIFO) data structure which represents a stack of objects. It enables u
  • ConcurrentHashMap (java.util.concurrent)
    A plug-in replacement for JDK1.5 java.util.concurrent.ConcurrentHashMap. This version is based on or
  • JButton (javax.swing)
  • Top plugins for Android Studio
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now