[
https://issues.apache.org/jira/browse/NIFI-865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15128537#comment-15128537
]
ASF GitHub Bot commented on NIFI-865:
-------------------------------------
Github user olegz commented on a diff in the pull request:
https://github.com/apache/nifi/pull/200#discussion_r51596690
--- Diff:
nifi-nar-bundles/nifi-amqp-bundle/nifi-amqp-processors/src/main/java/org/apache/nifi/amqp/processors/AMQPUtils.java
---
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.amqp.processors;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.ProcessSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.rabbitmq.client.AMQP.BasicProperties;
+
+/**
+ * Utility helper class simplify interructions with target AMQP API and
NIFI
+ * API.
+ *
+ */
+abstract class AMQPUtils {
+
+ public final static String AMQP_PROP_DELIMITER = "$";
+
+ public final static String AMQP_PROP_PREFIX = "amqp" +
AMQP_PROP_DELIMITER;
+
+ private final static Logger logger =
LoggerFactory.getLogger(AMQPUtils.class);
+
+ private final static List<String> propertyNames =
Arrays.asList("amqp$contentType", "amqp$contentEncoding",
+ "amqp$headers", "amqp$deliveryMode", "amqp$priority",
"amqp$correlationId", "amqp$replyTo",
+ "amqp$expiration", "amqp$messageId", "amqp$timestamp",
"amqp$type", "amqp$userId", "amqp$appId",
+ "amqp$clusterId");
+ /**
+ * Returns a {@link List} of AMQP property names defined in
+ * {@link BasicProperties}
+ */
+ public static List<String> getAmqpPropertyNames() {
+ return propertyNames;
+ }
+
+ /**
+ * Updates {@link FlowFile} with attributes representing AMQP
properties
+ *
+ * @param amqpProperties
+ * instance of {@link BasicProperties}
+ * @param flowFile
+ * instance of target {@link FlowFile}
+ * @param processSession
+ * instance of {@link ProcessSession}
+ */
+ public static FlowFile
updateFlowFileAttributesWithAmqpProperties(BasicProperties amqpProperties,
FlowFile flowFile, ProcessSession processSession) {
--- End diff --
It may very well, but its a utility class that hides the complexity so user
only sees simplicity.
> Add processors to Get and Put to/from AMQP-based messaging systems
> ------------------------------------------------------------------
>
> Key: NIFI-865
> URL: https://issues.apache.org/jira/browse/NIFI-865
> Project: Apache NiFi
> Issue Type: Wish
> Components: Extensions
> Reporter: Joseph Witt
> Assignee: Oleg Zhurakousky
> Labels: beginner
> Fix For: 0.5.0
>
>
> David Smith in the mailing list has already begun work on this. The link to
> his current set of code in Github is here:
> https://github.com/helicopterman22/nifi_amqp_processors
> He is seeking help with licensing/unit testing/etc.. so that it can end up in
> a build.
> We have word from another user now that they too are interested in this.
> They specifically are using RabbitMQ but we should be able to implement
> (ideally) a pure AMQP protocol friendly version and be good to go.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)