/** Registers/subscribes the application for receiving BPS pushes */ public void registerBPSPush( final String appId, final String BPDSUri, final String contentUri, final String listenUri) { NonBlockingReceiverDestination listenDest = null; NonBlockingSenderDestination bpsServerDest = null; try { final MessageListener bpsListener = new DestinationListener("BPS", true); final InboundDestinationConfiguration config1 = InboundDestinationConfigurationFactory.createBPSConfiguration( true, true, false, appId, BPDSUri); // serverUrl listenDest = DestinationFactory.createNonBlockingReceiverDestination( config1, URI.create(listenUri), bpsListener); final MessageListener subscriptionListener = new SubscriptionResponseListener("Subscription"); bpsServerDest = DestinationFactory.createNonBlockingSenderDestination( _context, URI.create(contentUri), subscriptionListener); final ByteMessage subscrMsg = BpsSubscriptionMessageBuilder.createByteSubscriptionMessage( bpsServerDest, listenDest, "user", "pwd"); ((HttpMessage) subscrMsg).setQueryParam("field1", "xxxxx"); ((HttpMessage) subscrMsg).setQueryParam("osversion", "6.0"); bpsServerDest.send(subscrMsg); } catch (final Exception e) { alertDialog(e.toString()); } }
/** Sets the destination. Used by message cancellation test. */ public void setNonBlockingSenderDestination(final String uriStr) { final MessageListener responseListener = new DestinationListener("Cancellation Listener", true); try { final URI uri = URI.create(uriStr); SenderDestination destination = DestinationFactory.getSenderDestination(_context.getName(), uri); if (destination == null) { // Destination not registered yet destination = DestinationFactory.createNonBlockingSenderDestination(_context, uri, responseListener); } _cancellationDest = (NonBlockingSenderDestination) destination; } catch (final Exception e) { alertDialog(e.toString()); } }
/** * Sends get request message using non-blocking destination and listens for the response in the * created listener. * * @param uriStr Uri where the request is sent to * @param releaseDestination Release destination on completion of the method * @param callback Callback object responsible for updating UI upon message delivery / request * timeout */ public void sendNonBlocking( final String uriStr, final boolean releaseDestination, final ResponseCallback callback) { MonitoredDestinationListener responseListener; try { final URI uri = URI.create(uriStr); responseListener = new MonitoredDestinationListener( "SendNonBlocking MessageListener [id: " + _listenerId++ + "]"); final SenderDestination senderDestination = DestinationFactory.createNonBlockingSenderDestination(_context, uri, responseListener); final TimeoutMonitor timeoutThread = new TimeoutMonitor(senderDestination, releaseDestination, callback, responseListener); final Thread t1 = new Thread(timeoutThread, "monitor"); t1.start(); } catch (final Exception e) { alertDialog(e.toString()); } }
/** * Uploads data in the form of streams to a server * * @param callback Callback object responsible for updating UI upon message delivery / request * timeout */ public void uploadStream(final String uploadUri, final ResponseCallback callback) { MonitoredDestinationListener responseListener; try { final URI uri = URI.create(uploadUri + ";deviceSide=true"); responseListener = new MonitoredDestinationListener( "StreamData MessageListener [id: " + _listenerId++ + "]"); final SenderDestination senderDestination = DestinationFactory.createNonBlockingSenderDestination(_context, uri, responseListener); // Create a byte array of size 10000 final byte[] input = new byte[10000]; for (int i = 0; i < input.length; i++) { input[i] = '5'; } final ByteArrayInputStream bais = new ByteArrayInputStream(input); final StreamMessage message = senderDestination.createStreamMessage(); ((HttpMessage) message).setMethod(HttpMessage.POST); message.setStreamPayload(bais); message.setPriority(2); message.setTransportHeader("Transfer-Encoding", "chunked"); final TimeoutMonitor timeoutThread = new TimeoutMonitor(senderDestination, true, callback, responseListener, message); final Thread t1 = new Thread(timeoutThread, "monitor"); t1.start(); } catch (final Exception e) { alertDialog(e.toString()); } }
/** * Gets response from a URI which requires credentials * * @param callback Callback object responsible for updating UI upon message delivery / request * timeout */ public void authenticate( final String uriStr, final String username, final String password, final ResponseCallback callback) { MonitoredDestinationListener responseListener; try { final URI uri = URI.create(uriStr); final String user = username; final String pass = password; final CredentialsCollector credentialsCollector = new CredentialsCollector() { public UsernamePasswordCredentials getBasicAuthenticationCredentials( final String authenticatedEntityID, final Hashtable properties) { return new UsernamePasswordCredentials(user, pass); } }; final Context context = new Context("Authenticate", credentialsCollector); responseListener = new MonitoredDestinationListener( "Authentification MessageListener [id: " + _listenerId++ + "]"); final SenderDestination senderDestination = DestinationFactory.createNonBlockingSenderDestination(context, uri, responseListener); final TimeoutMonitor timeoutThread = new TimeoutMonitor(senderDestination, true, callback, responseListener); final Thread t1 = new Thread(timeoutThread, "monitor"); t1.start(); } catch (final Exception e) { alertDialog(e.toString()); } }