List of usage examples for com.rabbitmq.client BasicProperties getAppId
public abstract String getAppId();
From source file:com.analogmountains.flume.RabbitMQSource.java
License:Open Source License
private Map<String, String> eventHeadersFromBasicProperties(BasicProperties properties) { Map<String, String> headers = new HashMap<String, String>(); if (properties.getAppId() != null) { headers.put("appId", properties.getAppId()); }/* www . j a va 2 s. co m*/ if (properties.getContentEncoding() != null) { headers.put("contentEncoding", properties.getContentEncoding()); } if (properties.getContentType() != null) { headers.put("contentType", properties.getContentType()); } if (properties.getCorrelationId() != null) { headers.put("correlationId", properties.getCorrelationId()); } if (properties.getDeliveryMode() != null) { headers.put("deliveryMode", Integer.toString(properties.getDeliveryMode())); } if (properties.getExpiration() != null) { headers.put("expiration", properties.getExpiration()); } if (properties.getMessageId() != null) { headers.put("messageId", properties.getMessageId()); } if (properties.getPriority() != null) { headers.put("priority", Integer.toString(properties.getPriority())); } if (properties.getReplyTo() != null) { headers.put("replyTo", properties.getReplyTo()); } if (properties.getType() != null) { headers.put("type", properties.getType()); } if (properties.getUserId() != null) { headers.put("userId", properties.getUserId()); } return headers; }
From source file:com.shopwiki.roger.MessagingUtil.java
License:Apache License
public static String prettyPrint(BasicProperties props) { StringBuilder sb = new StringBuilder(); sb.append("\t" + "ContentType: " + props.getContentType() + "\n"); sb.append("\t" + "ContentEncoding: " + props.getContentEncoding() + "\n"); sb.append("\t" + "Headers: " + props.getHeaders() + "\n"); sb.append("\t" + "DeliveryMode: " + props.getDeliveryMode() + "\n"); sb.append("\t" + "Priority: " + props.getPriority() + "\n"); sb.append("\t" + "CorrelationId: " + props.getCorrelationId() + "\n"); sb.append("\t" + "ReplyTo: " + props.getReplyTo() + "\n"); sb.append("\t" + "Expiration: " + props.getExpiration() + "\n"); sb.append("\t" + "MessageId: " + props.getMessageId() + "\n"); sb.append("\t" + "Timestamp: " + props.getTimestamp() + "\n"); sb.append("\t" + "Type: " + props.getType() + "\n"); sb.append("\t" + "UserId: " + props.getUserId() + "\n"); sb.append("\t" + "AppId: " + props.getAppId()); return sb.toString(); }
From source file:com.springsource.insight.plugin.rabbitmqClient.AbstractRabbitMQCollectionAspect.java
License:Apache License
protected void applyPropertiesData(Operation op, BasicProperties props) { OperationMap map = op.createMap("props"); map.putAnyNonEmpty("Type", props.getType()); map.putAnyNonEmpty("App Id", props.getAppId()); map.putAnyNonEmpty("User Id", props.getUserId()); map.put("Class Id", props.getClassId()); map.putAnyNonEmpty("Reply To", props.getReplyTo()); map.putAnyNonEmpty("Priority", props.getPriority()); map.putAnyNonEmpty("Class Name", props.getClassName()); map.putAnyNonEmpty("Timestamp", props.getTimestamp()); map.putAnyNonEmpty("Message Id", props.getMessageId()); map.putAnyNonEmpty("Expiration", props.getExpiration()); map.putAnyNonEmpty("Content Type", props.getContentType()); map.putAnyNonEmpty("Delivery Mode", props.getDeliveryMode()); map.putAnyNonEmpty("Correlation Id", props.getCorrelationId()); map.putAnyNonEmpty("Content Encoding", props.getContentEncoding()); Map<String, Object> headers = props.getHeaders(); if (headers != null) { OperationMap headersMap = op.createMap("headers"); for (Entry<String, Object> entry : headers.entrySet()) { Object value = entry.getValue(); if (value instanceof LongString) { byte[] bytes = ((LongString) value).getBytes(); value = new String(bytes); }/*from ww w. j a v a 2 s. c o m*/ headersMap.putAnyNonEmpty(entry.getKey(), value); } } }
From source file:com.springsource.insight.plugin.rabbitmqClient.AbstractRabbitMQCollectionAspectTestSupport.java
License:Open Source License
protected Operation assertBasicOperation(Operation op, BasicProperties props, byte[] body, String opLabel) { assertEquals("Mismatched body length", ArrayUtil.length(body), op.getInt("bytes", (-1))); assertEquals("Mismatched label", opLabel, op.getLabel()); for (String propName : new String[] { "connectionUrl", "serverVersion", "clientVersion" }) { assertNullValue(propName, op.get(propName)); }/*from www .jav a 2 s .co m*/ OperationMap propsMap = op.get("props", OperationMap.class); assertNotNull("No properties extracted", propsMap); assertEquals("Mismatched application ID", props.getAppId(), propsMap.get("App Id")); assertEquals("Mismatched content encoding", props.getContentEncoding(), propsMap.get("Content Encoding")); assertEquals("Mismatched content type", props.getContentType(), propsMap.get("Content Type")); assertEquals("Mismatched delivery mode", props.getDeliveryMode().intValue(), propsMap.getInt("Delivery Mode", (-1))); assertEquals("Mismatched expiration", props.getExpiration(), propsMap.get("Expiration")); return op; }
From source file:com.springsource.insight.plugin.rabbitmqClient.RabbitMQConsumerCollectionAspectTest.java
License:Apache License
void assertOperation(Envelope envelope, BasicProperties props, byte[] body) { Operation op = getLastEntered(); assertEquals(OperationType.valueOf("rabbitmq-client-consumer"), op.getType()); assertEquals("Consume", op.getLabel()); assertEquals(Integer.valueOf(body.length), op.get("bytes", Integer.class)); OperationMap envMap = op.get("envelope", OperationMap.class); assertNotNull(envMap);/*from w w w . j ava 2 s . c om*/ assertEquals(Long.valueOf(envelope.getDeliveryTag()), envMap.get("deliveryTag", Long.class)); assertEquals(envelope.getExchange(), envMap.get("exchange", String.class)); assertEquals(envelope.getRoutingKey(), envMap.get("routingKey", String.class)); assertNull(op.get("connectionUrl")); assertNull(op.get("serverVersion")); assertNull(op.get("clientVersion")); OperationMap propsMap = op.get("props", OperationMap.class); assertEquals(props.getAppId(), propsMap.get("App Id")); assertEquals(props.getContentEncoding(), propsMap.get("Content Encoding")); assertEquals(props.getContentType(), propsMap.get("Content Type")); assertEquals(props.getDeliveryMode(), propsMap.get("Delivery Mode")); assertEquals(props.getExpiration(), propsMap.get("Expiration")); }
From source file:com.springsource.insight.plugin.rabbitmqClient.RabbitMQPublishCollectionAspectTest.java
License:Apache License
void assertOperation(Operation op, BasicProperties props, byte[] body) { assertEquals(OperationType.valueOf("rabbitmq-client-publish"), op.getType()); assertEquals("Publish", op.getLabel()); assertEquals(Integer.valueOf(body.length), op.get("bytes", Integer.class)); assertNull(op.get("connectionUrl")); assertNull(op.get("serverVersion")); assertNull(op.get("clientVersion")); OperationMap propsMap = op.get("props", OperationMap.class); assertEquals(props.getAppId(), propsMap.get("App Id")); assertEquals(props.getContentEncoding(), propsMap.get("Content Encoding")); assertEquals(props.getContentType(), propsMap.get("Content Type")); assertEquals(props.getDeliveryMode(), propsMap.get("Delivery Mode")); assertEquals(props.getExpiration(), propsMap.get("Expiration")); }
From source file:com.streamsets.pipeline.stage.origin.rabbitmq.RabbitSource.java
License:Apache License
@Override public String produce(String lastSourceOffset, int maxBatchSize, BatchMaker batchMaker) throws StageException { if (!isConnected() && !conf.advanced.automaticRecoveryEnabled) { // If we don't have automatic recovery enabled and the connection is closed, we should stop the pipeline. throw new StageException(Errors.RABBITMQ_05); }/* ww w . j a v a2 s. c o m*/ long maxTime = System.currentTimeMillis() + conf.basicConfig.maxWaitTime; int maxRecords = Math.min(maxBatchSize, conf.basicConfig.maxBatchSize); int numRecords = 0; String nextSourceOffset = lastSourceOffset; while (System.currentTimeMillis() < maxTime && numRecords < maxRecords) { try { RabbitMessage message = messages.poll(conf.basicConfig.maxWaitTime, TimeUnit.MILLISECONDS); if (message == null) { continue; } String recordId = message.getEnvelope().toString(); List<Record> records = parseRabbitMessage(recordId, message.getBody()); for (Record record : records) { Envelope envelope = message.getEnvelope(); BasicProperties properties = message.getProperties(); Record.Header outHeader = record.getHeader(); if (envelope != null) { setHeaderIfNotNull(outHeader, "deliveryTag", envelope.getDeliveryTag()); setHeaderIfNotNull(outHeader, "exchange", envelope.getExchange()); setHeaderIfNotNull(outHeader, "routingKey", envelope.getRoutingKey()); setHeaderIfNotNull(outHeader, "redelivered", envelope.isRedeliver()); } setHeaderIfNotNull(outHeader, "contentType", properties.getContentType()); setHeaderIfNotNull(outHeader, "contentEncoding", properties.getContentEncoding()); setHeaderIfNotNull(outHeader, "deliveryMode", properties.getDeliveryMode()); setHeaderIfNotNull(outHeader, "priority", properties.getPriority()); setHeaderIfNotNull(outHeader, "correlationId", properties.getCorrelationId()); setHeaderIfNotNull(outHeader, "replyTo", properties.getReplyTo()); setHeaderIfNotNull(outHeader, "expiration", properties.getExpiration()); setHeaderIfNotNull(outHeader, "messageId", properties.getMessageId()); setHeaderIfNotNull(outHeader, "timestamp", properties.getTimestamp()); setHeaderIfNotNull(outHeader, "messageType", properties.getType()); setHeaderIfNotNull(outHeader, "userId", properties.getUserId()); setHeaderIfNotNull(outHeader, "appId", properties.getAppId()); Map<String, Object> inHeaders = properties.getHeaders(); if (inHeaders != null) { for (Map.Entry<String, Object> pair : inHeaders.entrySet()) { // I am concerned about overlapping with the above headers but it seems somewhat unlikely // in addition the behavior of copying these attributes in with no custom prefix is // how the jms origin behaves setHeaderIfNotNull(outHeader, pair.getKey(), pair.getValue()); } } batchMaker.addRecord(record); nextSourceOffset = outHeader.getAttribute("deliveryTag"); numRecords++; } } catch (InterruptedException e) { LOG.warn("Pipeline is shutting down."); } } return nextSourceOffset; }
From source file:de.tuberlin.cit.livescale.messaging.endpoints.AMQPEndpoint.java
License:Apache License
/** * Sets up a consumer that passes received messages to the * {@link MessageEndpointListener}s./*from w w w .ja v a 2 s. com*/ */ private void setUpConsumer() throws IOException { DefaultConsumer consumer = new DefaultConsumer(this.channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties, byte[] body) throws IOException { long deliveryTag = envelope.getDeliveryTag(); super.getChannel().basicAck(deliveryTag, false); if (!properties.getAppId().equals(AMQPEndpoint.this.uuid.toString())) { MessageManifest mm = MessageFactory.decode(body); try { URI responseURI = new URIBuilder().routingKey(properties.getReplyTo()) .instanceName(getName()).build(); mm.setResponseURI(responseURI); } catch (URISyntaxException e) { // this should never happen! LOG.warn("Unable to create response URI for incoming message", e); } notifyMessageEndpointListeners(mm); } } }; if (this.listenForTasks) { String queueName = QUEUE_NAME_TASKS + this.routingKey; this.channel.basicConsume(queueName, false, consumer); } this.channel.basicConsume(this.exclusiveQueueName, false, consumer); // listening to the remote shutdown ShutdownListener shutdownListener = new ShutdownListener() { @Override public void shutdownCompleted(ShutdownSignalException cause) { shutdown(); } }; this.channel.addShutdownListener(shutdownListener); // if (this.channel.isOpen()) { // handler.handleConnectionEvent(true); // } }
From source file:io.ventu.rpc.amqp.AmqpInvokerimplTest.java
License:MIT License
@Test public void invoke_onOkRequest_correctDataPassedToPublisher() throws IOException, TimeoutException, ExecutionException, InterruptedException { String instanceId = "123456789"; Req req = new Req(); Map<String, Object> headers = Maps.newHashMap(); headers.put("key", Integer.valueOf(12341234)); Channel channel = mock(Channel.class); doAnswer(invocation -> {/*from w w w . j av a 2 s . c o m*/ assertEquals(DEFAULT_RPC_EXCHANGE, invocation.getArguments()[0]); assertEquals(Req.class.getName(), invocation.getArguments()[1]); BasicProperties props = (BasicProperties) invocation.getArguments()[2]; assertEquals(instanceId, props.getAppId()); assertEquals(instanceId, props.getReplyTo()); assertEquals(CONTENT_TYPE, props.getContentType()); assertEquals(headers.get("key"), props.getHeaders().get("key")); assertEquals(ENCODING, props.getContentEncoding()); String actual = new String((byte[]) invocation.getArguments()[3]); assertEquals(new String(serializer.encode(req)), actual); return null; }).when(channel).basicPublish(anyString(), any(), any(), any()); CompletableFuture<Res> answer = new CompletableFuture<>(); ResponseReceiver receiver = mock(ResponseReceiver.class); doReturn(answer).when(receiver).put(anyString(), any()); ChannelProvider channelProvider = mock(ChannelProvider.class); doReturn(channel).when(channelProvider).provide(instanceId, receiver); doReturn(DEFAULT_RPC_EXCHANGE).when(channelProvider).rpcExchange(); RemoteInvoker invoker = new AmqpInvokerImpl(instanceId, channelProvider, receiver, new DefaultRequestRouter(), new UidGenerator() { }, serializer, headers); invoker.invoke(req, Res.class); // make sure it was invoked, otherwise our assertions will be void verify(channel).basicPublish(anyString(), any(), any(), any()); }
From source file:net.echinopsii.ariane.community.messaging.rabbitmq.MsgTranslator.java
License:Open Source License
/** * Decode given Message into Map message * @param message a RabbitMQ friendly message * @return Map message//from w w w . jav a 2 s . co m */ @Override public Map<String, Object> decode(Message message) { Envelope envelope = message.getEnvelope(); BasicProperties properties = (BasicProperties) message.getProperties(); byte[] body = message.getBody(); LinkedHashMap<String, Object> decodedMessage = new LinkedHashMap<String, Object>(); if (envelope != null) { decodedMessage.put(MSG_RBQ_DELIVERY_TAG, envelope.getDeliveryTag()); decodedMessage.put(MSG_RBQ_EXCHANGE, envelope.getExchange()); decodedMessage.put(MSG_RBQ_ROUTINGKEY, envelope.getRoutingKey()); } if (properties != null) { decodedMessage.put(MSG_APPLICATION_ID, properties.getAppId()); decodedMessage.put(MSG_RBQ_CONTENT_ENCODING, properties.getContentEncoding()); decodedMessage.put(MSG_RBQ_CONTENT_TYPE, properties.getContentType()); decodedMessage.put(MSG_CORRELATION_ID, properties.getCorrelationId()); decodedMessage.put(MSG_DELIVERY_MODE, properties.getDeliveryMode()); decodedMessage.put(MSG_EXPIRATION, properties.getExpiration()); decodedMessage.put(MSG_MESSAGE_ID, properties.getMessageId()); decodedMessage.put(MSG_PRIORITY, properties.getPriority()); decodedMessage.put(MSG_REPLY_TO, properties.getReplyTo()); decodedMessage.put(MSG_TIMESTAMP, properties.getTimestamp()); decodedMessage.put(MSG_TYPE, properties.getType()); decodedMessage.put(MSG_RBQ_USER_ID, properties.getUserId()); Map<String, Object> headerFields = properties.getHeaders(); if (headerFields != null) { for (String key : headerFields.keySet()) if (headerFields.get(key) != null) { if (headerFields.get(key) instanceof LongString) decodedMessage.put(key, headerFields.get(key).toString()); else decodedMessage.put(key, headerFields.get(key)); } else decodedMessage.put(key, headerFields.get(key)); } } if (body.length == 0) decodedMessage.put(MSG_BODY, null); else decodedMessage.put(MSG_BODY, body); return decodedMessage; }