[jira] [Commented] (NIFI-1899) Create ListenSMTP & ExtractEmailAttachment processors
[ https://issues.apache.org/jira/browse/NIFI-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368834#comment-15368834 ] ASF GitHub Bot commented on NIFI-1899: -- Github user trixpan commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70158696 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/TestExtractEmailAttachments.java --- @@ -0,0 +1,84 @@ +/* + * 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.processors; --- End diff -- fixed > Create ListenSMTP & ExtractEmailAttachment processors > - > > Key: NIFI-1899 > URL: https://issues.apache.org/jira/browse/NIFI-1899 > Project: Apache NiFi > Issue Type: New Feature >Reporter: Andre > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1899) Create ListenSMTP & ExtractEmailAttachment processors
[ https://issues.apache.org/jira/browse/NIFI-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368803#comment-15368803 ] ASF GitHub Bot commented on NIFI-1899: -- Github user trixpan commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70157808 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailHeaders.java --- @@ -0,0 +1,233 @@ +/* + * 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.processors.email; + + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.mail.util.MimeMessageParser; +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.stream.io.BufferedInputStream; + +import javax.mail.Address; +import javax.mail.Header; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + + +@EventDriven +@SideEffectFree +@Tags({"split", "email"}) +@InputRequirement(Requirement.INPUT_REQUIRED) +@CapabilityDescription("Using the flowfile content as source of data, extract header from an RFC compliant email file adding the relevant attributes to the flowfile. " + +"This processor does not perform extensive RFC validation but still requires a bare minimum compliance with RFC 2822") +@WritesAttributes({ +@WritesAttribute(attribute = "email.headers.bcc.*", description = "Each individual BCC recipient (if available)"), +@WritesAttribute(attribute = "email.headers.cc.*", description = "Each individual CC recipient (if available)"), +@WritesAttribute(attribute = "email.headers.from.*", description = "Each individual mailbox contained in the From of the Email (array as per RFC-2822)"), +@WritesAttribute(attribute = "email.headers.message-id", description = "The value of the Message-ID header (if available)"), +@WritesAttribute(attribute = "email.headers.received_date", description = "The Received-Date of the message (if available)"), +@WritesAttribute(attribute = "email.headers.sent_date", description = "Date the message was sent"), +@WritesAttribute(attribute = "email.headers.subject", description = "Subject of the message (if available)"), +@WritesAttribute(attribute = "email.headers.to.*", description = "Each individual TO recipient (if
[jira] [Commented] (NIFI-1899) Create ListenSMTP & ExtractEmailAttachment processors
[ https://issues.apache.org/jira/browse/NIFI-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368794#comment-15368794 ] ASF GitHub Bot commented on NIFI-1899: -- Github user trixpan commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70157622 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailHeaders.java --- @@ -0,0 +1,233 @@ +/* + * 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.processors.email; + + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.mail.util.MimeMessageParser; +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.stream.io.BufferedInputStream; + +import javax.mail.Address; +import javax.mail.Header; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + + +@EventDriven +@SideEffectFree +@Tags({"split", "email"}) +@InputRequirement(Requirement.INPUT_REQUIRED) +@CapabilityDescription("Using the flowfile content as source of data, extract header from an RFC compliant email file adding the relevant attributes to the flowfile. " + +"This processor does not perform extensive RFC validation but still requires a bare minimum compliance with RFC 2822") +@WritesAttributes({ +@WritesAttribute(attribute = "email.headers.bcc.*", description = "Each individual BCC recipient (if available)"), +@WritesAttribute(attribute = "email.headers.cc.*", description = "Each individual CC recipient (if available)"), +@WritesAttribute(attribute = "email.headers.from.*", description = "Each individual mailbox contained in the From of the Email (array as per RFC-2822)"), +@WritesAttribute(attribute = "email.headers.message-id", description = "The value of the Message-ID header (if available)"), +@WritesAttribute(attribute = "email.headers.received_date", description = "The Received-Date of the message (if available)"), +@WritesAttribute(attribute = "email.headers.sent_date", description = "Date the message was sent"), +@WritesAttribute(attribute = "email.headers.subject", description = "Subject of the message (if available)"), +@WritesAttribute(attribute = "email.headers.to.*", description = "Each individual TO recipient (if
[jira] [Commented] (NIFI-2020) Enhance JoltTransformJSON processor to support custom transforms
[ https://issues.apache.org/jira/browse/NIFI-2020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368796#comment-15368796 ] ASF GitHub Bot commented on NIFI-2020: -- Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70157635 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoltTransformJSON.java --- @@ -212,12 +279,40 @@ public void process(OutputStream out) throws IOException { @OnScheduled public void setup(final ProcessContext context) { -Object specJson = null; -if(context.getProperty(JOLT_SPEC).isSet() && !SORTR.getValue().equals(context.getProperty(JOLT_TRANSFORM).getValue())){ -specJson = JsonUtils.jsonToObject(context.getProperty(JOLT_SPEC).getValue(), DEFAULT_CHARSET); + +try{ +Object specJson = null; + +if(context.getProperty(MODULES).isSet()){ +customClassLoader = ClassLoaderUtils.getCustomClassLoader(context.getProperty(MODULES).getValue(),this.getClass().getClassLoader(),getJarFilenameFilter()); +}else{ +customClassLoader = null; +} + +if(context.getProperty(JOLT_SPEC).isSet() && !SORTR.getValue().equals(context.getProperty(JOLT_TRANSFORM).getValue())){ +specJson = JsonUtils.jsonToObject(context.getProperty(JOLT_SPEC).getValue(), DEFAULT_CHARSET); +} + + if(CUSTOMR.getValue().equals(context.getProperty(JOLT_TRANSFORM).getValue())){ +transform = TransformFactory.getCustomTransform(customClassLoader,context.getProperty(CUSTOM_CLASS).getValue(), specJson); +}else { +transform = TransformFactory.getTransform(customClassLoader != null? customClassLoader : this.getClass().getClassLoader(), + context.getProperty(JOLT_TRANSFORM).getValue(), specJson); +} + +} catch (Exception ex){ +getLogger().error("Unable to setup processor",ex); } -transform = TransformFactory.getTransform(context.getProperty(JOLT_TRANSFORM).getValue(), specJson); + } +protected FilenameFilter getJarFilenameFilter(){ --- End diff -- Another spot where lambdas could be (but don't have to be) used > Enhance JoltTransformJSON processor to support custom transforms > > > Key: NIFI-2020 > URL: https://issues.apache.org/jira/browse/NIFI-2020 > Project: Apache NiFi > Issue Type: New Feature > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Yolanda M. Davis >Assignee: Yolanda M. Davis > Fix For: 1.0.0 > > > Jolt supports additional custom transforms via fully-qualified Java > classnames. Would like to provide the ability to support custom > transformation (via drop in jars) for the Jolt Transform processor. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user trixpan commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70157622 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailHeaders.java --- @@ -0,0 +1,233 @@ +/* + * 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.processors.email; + + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.mail.util.MimeMessageParser; +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.stream.io.BufferedInputStream; + +import javax.mail.Address; +import javax.mail.Header; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + + +@EventDriven +@SideEffectFree +@Tags({"split", "email"}) +@InputRequirement(Requirement.INPUT_REQUIRED) +@CapabilityDescription("Using the flowfile content as source of data, extract header from an RFC compliant email file adding the relevant attributes to the flowfile. " + +"This processor does not perform extensive RFC validation but still requires a bare minimum compliance with RFC 2822") +@WritesAttributes({ +@WritesAttribute(attribute = "email.headers.bcc.*", description = "Each individual BCC recipient (if available)"), +@WritesAttribute(attribute = "email.headers.cc.*", description = "Each individual CC recipient (if available)"), +@WritesAttribute(attribute = "email.headers.from.*", description = "Each individual mailbox contained in the From of the Email (array as per RFC-2822)"), +@WritesAttribute(attribute = "email.headers.message-id", description = "The value of the Message-ID header (if available)"), +@WritesAttribute(attribute = "email.headers.received_date", description = "The Received-Date of the message (if available)"), +@WritesAttribute(attribute = "email.headers.sent_date", description = "Date the message was sent"), +@WritesAttribute(attribute = "email.headers.subject", description = "Subject of the message (if available)"), +@WritesAttribute(attribute = "email.headers.to.*", description = "Each individual TO recipient (if available)"), +@WritesAttribute(attribute = "email.attachment_count", description = "Number of attachments of the message" )}) + +public class ExtractEmailHeaders extends AbstractProcessor { +public static final
[GitHub] nifi pull request #564: NIFI-2020 - Enhance JoltTransformJSON processor to s...
Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70157635 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoltTransformJSON.java --- @@ -212,12 +279,40 @@ public void process(OutputStream out) throws IOException { @OnScheduled public void setup(final ProcessContext context) { -Object specJson = null; -if(context.getProperty(JOLT_SPEC).isSet() && !SORTR.getValue().equals(context.getProperty(JOLT_TRANSFORM).getValue())){ -specJson = JsonUtils.jsonToObject(context.getProperty(JOLT_SPEC).getValue(), DEFAULT_CHARSET); + +try{ +Object specJson = null; + +if(context.getProperty(MODULES).isSet()){ +customClassLoader = ClassLoaderUtils.getCustomClassLoader(context.getProperty(MODULES).getValue(),this.getClass().getClassLoader(),getJarFilenameFilter()); +}else{ +customClassLoader = null; +} + +if(context.getProperty(JOLT_SPEC).isSet() && !SORTR.getValue().equals(context.getProperty(JOLT_TRANSFORM).getValue())){ +specJson = JsonUtils.jsonToObject(context.getProperty(JOLT_SPEC).getValue(), DEFAULT_CHARSET); +} + + if(CUSTOMR.getValue().equals(context.getProperty(JOLT_TRANSFORM).getValue())){ +transform = TransformFactory.getCustomTransform(customClassLoader,context.getProperty(CUSTOM_CLASS).getValue(), specJson); +}else { +transform = TransformFactory.getTransform(customClassLoader != null? customClassLoader : this.getClass().getClassLoader(), + context.getProperty(JOLT_TRANSFORM).getValue(), specJson); +} + +} catch (Exception ex){ +getLogger().error("Unable to setup processor",ex); } -transform = TransformFactory.getTransform(context.getProperty(JOLT_TRANSFORM).getValue(), specJson); + } +protected FilenameFilter getJarFilenameFilter(){ --- End diff -- Another spot where lambdas could be (but don't have to be) used --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-1899) Create ListenSMTP & ExtractEmailAttachment processors
[ https://issues.apache.org/jira/browse/NIFI-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368793#comment-15368793 ] ASF GitHub Bot commented on NIFI-1899: -- Github user trixpan commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70157601 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailAttachments.java --- @@ -0,0 +1,201 @@ +/* + * 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.processors.email; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.Date; + +import javax.activation.DataSource; +import javax.mail.Address; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.mail.util.MimeMessageParser; + + +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.stream.io.BufferedInputStream; + + + + +@EventDriven +@SideEffectFree +@Tags({"split", "email"}) +@InputRequirement(Requirement.INPUT_REQUIRED) +@CapabilityDescription("Extract attachments from a mime formatted email file, splitting them into individual flowfiles.") +@WritesAttributes({ +@WritesAttribute(attribute = "filename ", description = "The filename of the attachment"), +@WritesAttribute(attribute = "email.attachment.parent.filename ", description = "The filename of the parent FlowFile"), +@WritesAttribute(attribute = "email.attachment.parent.uuid", description = "The UUID of the original FlowFile."), +@WritesAttribute(attribute = "mime.type", description = "The mime type of the attachment.")}) + +public class ExtractEmailAttachments extends AbstractProcessor { +public static final String ATTACHMENT_ORIGINAL_FILENAME = "email.attachment.parent.filename"; +public static final String ATTACHMENT_ORIGINAL_UUID = "email.attachment.parent.uuid"; + +public static final Relationship REL_ATTACHMENTS = new Relationship.Builder() +.name("attachments") +.description("Each individual attachment will be routed to the attachments relationship") +.build(); +public static final Relationship REL_ORIGINAL = new Relationship.Builder() +.name("original") +.description("The original file") +.build(); +public static final
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user trixpan commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70157601 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailAttachments.java --- @@ -0,0 +1,201 @@ +/* + * 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.processors.email; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.Date; + +import javax.activation.DataSource; +import javax.mail.Address; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.mail.util.MimeMessageParser; + + +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.stream.io.BufferedInputStream; + + + + +@EventDriven +@SideEffectFree +@Tags({"split", "email"}) +@InputRequirement(Requirement.INPUT_REQUIRED) +@CapabilityDescription("Extract attachments from a mime formatted email file, splitting them into individual flowfiles.") +@WritesAttributes({ +@WritesAttribute(attribute = "filename ", description = "The filename of the attachment"), +@WritesAttribute(attribute = "email.attachment.parent.filename ", description = "The filename of the parent FlowFile"), +@WritesAttribute(attribute = "email.attachment.parent.uuid", description = "The UUID of the original FlowFile."), +@WritesAttribute(attribute = "mime.type", description = "The mime type of the attachment.")}) + +public class ExtractEmailAttachments extends AbstractProcessor { +public static final String ATTACHMENT_ORIGINAL_FILENAME = "email.attachment.parent.filename"; +public static final String ATTACHMENT_ORIGINAL_UUID = "email.attachment.parent.uuid"; + +public static final Relationship REL_ATTACHMENTS = new Relationship.Builder() +.name("attachments") +.description("Each individual attachment will be routed to the attachments relationship") +.build(); +public static final Relationship REL_ORIGINAL = new Relationship.Builder() +.name("original") +.description("The original file") +.build(); +public static final Relationship REL_FAILURE = new Relationship.Builder() +.name("failure") +.description("Flowfiles that could not be parsed") +.build(); +private Set relationships; +private List
[jira] [Commented] (NIFI-2020) Enhance JoltTransformJSON processor to support custom transforms
[ https://issues.apache.org/jira/browse/NIFI-2020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368792#comment-15368792 ] ASF GitHub Bot commented on NIFI-2020: -- Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70157576 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoltTransformJSON.java --- @@ -147,10 +174,39 @@ .explanation(message) .build()); } + } else { + +ClassLoader customClassLoader = null; try { + +if(modulePath != null) { +customClassLoader = ClassLoaderUtils.getCustomClassLoader(modulePath, this.getClass().getClassLoader(), getJarFilenameFilter()); +} + Object specJson = SORTR.getValue().equals(transform) ? null : JsonUtils.jsonToObject(specValue, DEFAULT_CHARSET); -TransformFactory.getTransform(transform, specJson); + +if(CUSTOMR.getValue().equals(transform)){ + +if(!StringUtils.isEmpty(customTransform) && customClassLoader == null){ +final String customMessage = "One or more module directories containing the provided custom transformation must be specified."; --- End diff -- See above about the message for whether a module directory MUST be provided or not > Enhance JoltTransformJSON processor to support custom transforms > > > Key: NIFI-2020 > URL: https://issues.apache.org/jira/browse/NIFI-2020 > Project: Apache NiFi > Issue Type: New Feature > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Yolanda M. Davis >Assignee: Yolanda M. Davis > Fix For: 1.0.0 > > > Jolt supports additional custom transforms via fully-qualified Java > classnames. Would like to provide the ability to support custom > transformation (via drop in jars) for the Jolt Transform processor. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-2020) Enhance JoltTransformJSON processor to support custom transforms
[ https://issues.apache.org/jira/browse/NIFI-2020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368790#comment-15368790 ] ASF GitHub Bot commented on NIFI-2020: -- Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70157549 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoltTransformJSON.java --- @@ -95,6 +99,24 @@ .required(false) .build(); +public static final PropertyDescriptor CUSTOM_CLASS = new PropertyDescriptor.Builder() +.name("jolt-custom-class") +.displayName("Custom Transformation Class Name") +.description("Fully Qualified Class Name for Custom Transformation Module Directory should be specified") +.required(false) +.expressionLanguageSupported(false) +.addValidator(StandardValidators.NON_EMPTY_VALIDATOR) +.build(); + +public static final PropertyDescriptor MODULES = new PropertyDescriptor.Builder() +.name("jolt-custom-modules") +.displayName("Custom Module Directory") +.description("Comma-separated list of paths to files and/or directories which contain modules containing custom transformations.") +.required(false) +.expressionLanguageSupported(false) --- End diff -- Same comment as above for EL support > Enhance JoltTransformJSON processor to support custom transforms > > > Key: NIFI-2020 > URL: https://issues.apache.org/jira/browse/NIFI-2020 > Project: Apache NiFi > Issue Type: New Feature > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Yolanda M. Davis >Assignee: Yolanda M. Davis > Fix For: 1.0.0 > > > Jolt supports additional custom transforms via fully-qualified Java > classnames. Would like to provide the ability to support custom > transformation (via drop in jars) for the Jolt Transform processor. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #564: NIFI-2020 - Enhance JoltTransformJSON processor to s...
Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70157576 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoltTransformJSON.java --- @@ -147,10 +174,39 @@ .explanation(message) .build()); } + } else { + +ClassLoader customClassLoader = null; try { + +if(modulePath != null) { +customClassLoader = ClassLoaderUtils.getCustomClassLoader(modulePath, this.getClass().getClassLoader(), getJarFilenameFilter()); +} + Object specJson = SORTR.getValue().equals(transform) ? null : JsonUtils.jsonToObject(specValue, DEFAULT_CHARSET); -TransformFactory.getTransform(transform, specJson); + +if(CUSTOMR.getValue().equals(transform)){ + +if(!StringUtils.isEmpty(customTransform) && customClassLoader == null){ +final String customMessage = "One or more module directories containing the provided custom transformation must be specified."; --- End diff -- See above about the message for whether a module directory MUST be provided or not --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-2020) Enhance JoltTransformJSON processor to support custom transforms
[ https://issues.apache.org/jira/browse/NIFI-2020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368789#comment-15368789 ] ASF GitHub Bot commented on NIFI-2020: -- Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70157534 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoltTransformJSON.java --- @@ -95,6 +99,24 @@ .required(false) .build(); +public static final PropertyDescriptor CUSTOM_CLASS = new PropertyDescriptor.Builder() +.name("jolt-custom-class") +.displayName("Custom Transformation Class Name") +.description("Fully Qualified Class Name for Custom Transformation Module Directory should be specified") +.required(false) +.expressionLanguageSupported(false) --- End diff -- Any reason why EL is not supported? I can't think of a great use case for using EL here, but unless there's a good reason not to, it adds to the flexibility of the system (and could eventually benefit from the Variable Registry right?) > Enhance JoltTransformJSON processor to support custom transforms > > > Key: NIFI-2020 > URL: https://issues.apache.org/jira/browse/NIFI-2020 > Project: Apache NiFi > Issue Type: New Feature > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Yolanda M. Davis >Assignee: Yolanda M. Davis > Fix For: 1.0.0 > > > Jolt supports additional custom transforms via fully-qualified Java > classnames. Would like to provide the ability to support custom > transformation (via drop in jars) for the Jolt Transform processor. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user trixpan commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70157551 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailAttachments.java --- @@ -0,0 +1,201 @@ +/* + * 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.processors.email; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.Date; + +import javax.activation.DataSource; +import javax.mail.Address; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.mail.util.MimeMessageParser; + + +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.stream.io.BufferedInputStream; + + + + +@EventDriven +@SideEffectFree +@Tags({"split", "email"}) +@InputRequirement(Requirement.INPUT_REQUIRED) +@CapabilityDescription("Extract attachments from a mime formatted email file, splitting them into individual flowfiles.") +@WritesAttributes({ +@WritesAttribute(attribute = "filename ", description = "The filename of the attachment"), +@WritesAttribute(attribute = "email.attachment.parent.filename ", description = "The filename of the parent FlowFile"), +@WritesAttribute(attribute = "email.attachment.parent.uuid", description = "The UUID of the original FlowFile."), +@WritesAttribute(attribute = "mime.type", description = "The mime type of the attachment.")}) + --- End diff -- I'm fine with the idea however I haven't considered any batching during the development of the processor... Would assume it is safer to leave as it is? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi pull request #564: NIFI-2020 - Enhance JoltTransformJSON processor to s...
Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70157498 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoltTransformJSON.java --- @@ -95,6 +99,24 @@ .required(false) .build(); +public static final PropertyDescriptor CUSTOM_CLASS = new PropertyDescriptor.Builder() +.name("jolt-custom-class") +.displayName("Custom Transformation Class Name") +.description("Fully Qualified Class Name for Custom Transformation Module Directory should be specified") --- End diff -- This looks like it's two sentences so should have a period in between. Also the second part could be elaborated upon, since the Module Directory shouldn't need to be specified (if their JAR is somehow already in the NiFi classpath), rather the class just needs to be able to be loaded by the processor by any means. Not sure how to word that... --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user trixpan commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70157262 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/pom.xml --- @@ -0,0 +1,75 @@ + + +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> +4.0.0 + + +org.apache.nifi +nifi-email-bundle +1.0.0-SNAPSHOT + + +nifi-email-processors +jar + + + +org.apache.nifi +nifi-api + + +org.apache.nifi +nifi-processor-utils + + +javax.mail +mail +1.4.7 --- End diff -- addressed --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-2020) Enhance JoltTransformJSON processor to support custom transforms
[ https://issues.apache.org/jira/browse/NIFI-2020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368781#comment-15368781 ] ASF GitHub Bot commented on NIFI-2020: -- Github user mattyb149 commented on the issue: https://github.com/apache/nifi/pull/564 Since the test JARs are built from source code (in test/java), we're probably fine to just include them, but I wasn't sure if there's any paperwork needed. @joewitt Think these are fine as-is? I believe so but wanted a second opinion. An alternative could be to set the Module Directory to point at the target/classes directory, that should allow them to be loaded but not have to be in a JAR. > Enhance JoltTransformJSON processor to support custom transforms > > > Key: NIFI-2020 > URL: https://issues.apache.org/jira/browse/NIFI-2020 > Project: Apache NiFi > Issue Type: New Feature > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Yolanda M. Davis >Assignee: Yolanda M. Davis > Fix For: 1.0.0 > > > Jolt supports additional custom transforms via fully-qualified Java > classnames. Would like to provide the ability to support custom > transformation (via drop in jars) for the Jolt Transform processor. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #564: NIFI-2020 - Enhance JoltTransformJSON processor to s...
Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70156926 --- Diff: nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java --- @@ -0,0 +1,66 @@ +/* + * 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.util.file.classloader; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.LinkedList; +import java.util.List; + +public class ClassLoaderUtils { + +public static ClassLoader getCustomClassLoader(String modulePath, ClassLoader parentClassLoader, FilenameFilter filenameFilter) throws MalformedURLException { +String[] modules = modulePath != null? modulePath.split(",") : null; +URL[] classpaths = getURLsForClasspath(modules,filenameFilter); +return createModuleClassLoader(classpaths,parentClassLoader); +} + +protected static URL[] getURLsForClasspath(String[] modulePaths, FilenameFilter filenameFilter) throws MalformedURLException { +List additionalClasspath = new LinkedList<>(); --- End diff -- Now that we can use Java 8, this method can probably be more concise using streams, lambdas, etc. Not a requirement, just a suggestion :) --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-2020) Enhance JoltTransformJSON processor to support custom transforms
[ https://issues.apache.org/jira/browse/NIFI-2020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368763#comment-15368763 ] ASF GitHub Bot commented on NIFI-2020: -- Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70156828 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-jolt-transform-json-ui/src/main/java/org/apache/nifi/web/standard/api/transformjson/TransformJSONResource.java --- @@ -84,6 +84,36 @@ public Response executeSpec(JoltSpecificationDTO specificationDTO) { } +protected Transform getTransformation(JoltSpecificationDTO specificationDTO) throws Exception{ + +Object specJson = getSpecificationJsonObject(specificationDTO.getSpecification()); +String transformName = specificationDTO.getTransform(); +String modules = specificationDTO.getModules(); + +ClassLoader customClassLoader = null; +Transform transform ; +if(modules != null && !modules.isEmpty()){ +customClassLoader = ClassLoaderUtils.getCustomClassLoader(specificationDTO.getModules(),this.getClass().getClassLoader(), getJarFilenameFilter()); +} + +if(transformName.equals("jolt-transform-custom")) { +transform = TransformFactory.getCustomTransform(customClassLoader,specificationDTO.getCustomClass(), specJson); --- End diff -- Is it possible that customClassLoader would be null here? I see you check for that in the "else" clause but not the "if" clause. Even if the UI / customValidators prevent this kind of thing, it might still be a good thing to add. If there is a way to directly make the API call without a value for "modules", then this could cause an NPE and a unit test could show that the added null check works :) > Enhance JoltTransformJSON processor to support custom transforms > > > Key: NIFI-2020 > URL: https://issues.apache.org/jira/browse/NIFI-2020 > Project: Apache NiFi > Issue Type: New Feature > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Yolanda M. Davis >Assignee: Yolanda M. Davis > Fix For: 1.0.0 > > > Jolt supports additional custom transforms via fully-qualified Java > classnames. Would like to provide the ability to support custom > transformation (via drop in jars) for the Jolt Transform processor. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #564: NIFI-2020 - Enhance JoltTransformJSON processor to s...
Github user mattyb149 commented on a diff in the pull request: https://github.com/apache/nifi/pull/564#discussion_r70156828 --- Diff: nifi-nar-bundles/nifi-standard-bundle/nifi-jolt-transform-json-ui/src/main/java/org/apache/nifi/web/standard/api/transformjson/TransformJSONResource.java --- @@ -84,6 +84,36 @@ public Response executeSpec(JoltSpecificationDTO specificationDTO) { } +protected Transform getTransformation(JoltSpecificationDTO specificationDTO) throws Exception{ + +Object specJson = getSpecificationJsonObject(specificationDTO.getSpecification()); +String transformName = specificationDTO.getTransform(); +String modules = specificationDTO.getModules(); + +ClassLoader customClassLoader = null; +Transform transform ; +if(modules != null && !modules.isEmpty()){ +customClassLoader = ClassLoaderUtils.getCustomClassLoader(specificationDTO.getModules(),this.getClass().getClassLoader(), getJarFilenameFilter()); +} + +if(transformName.equals("jolt-transform-custom")) { +transform = TransformFactory.getCustomTransform(customClassLoader,specificationDTO.getCustomClass(), specJson); --- End diff -- Is it possible that customClassLoader would be null here? I see you check for that in the "else" clause but not the "if" clause. Even if the UI / customValidators prevent this kind of thing, it might still be a good thing to add. If there is a way to directly make the API call without a value for "modules", then this could cause an NPE and a unit test could show that the added null check works :) --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Updated] (NIFI-619) update MonitorActivity processor to be cluster friendly
[ https://issues.apache.org/jira/browse/NIFI-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joseph Witt updated NIFI-619: - Status: Patch Available (was: Open) https://github.com/apache/nifi/pull/575 > update MonitorActivity processor to be cluster friendly > --- > > Key: NIFI-619 > URL: https://issues.apache.org/jira/browse/NIFI-619 > Project: Apache NiFi > Issue Type: Improvement >Reporter: Brandon DeVries >Assignee: Koji Kawamura >Priority: Minor > Fix For: 1.0.0 > > > This processor should be able to be used to monitor activity across the > cluster. In its current state, alerting is based on activity of a single > node, not the entire cluster. > For example, in a 2 node cluster, if system A is getting data from a given > flow and system B is not, system B will alert for lack of activity even > though the flow is functioning "normally". > The ideal behavior would be fore an alert to be generated only if both > systems did not see data in the specified time. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (NIFI-2209) Update nifi overview doc for 1.0 items
[ https://issues.apache.org/jira/browse/NIFI-2209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joseph Witt resolved NIFI-2209. --- Resolution: Fixed > Update nifi overview doc for 1.0 items > -- > > Key: NIFI-2209 > URL: https://issues.apache.org/jira/browse/NIFI-2209 > Project: Apache NiFi > Issue Type: Task > Components: Documentation & Website >Reporter: Haimo Liu >Assignee: Joseph Witt >Priority: Minor > Fix For: 1.0.0 > > > Update the overview document to reflect some of the 1.0 changes such as zero > master clustering and multi-tenancy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #623: 1.0 documentation updates - overview section
Github user asfgit closed the pull request at: https://github.com/apache/nifi/pull/623 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-2209) Update nifi overview doc for 1.0 items
[ https://issues.apache.org/jira/browse/NIFI-2209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368701#comment-15368701 ] ASF GitHub Bot commented on NIFI-2209: -- Github user joewitt commented on the issue: https://github.com/apache/nifi/pull/623 created https://issues.apache.org/jira/browse/NIFI-2209 to account for this. Will ammend commit entries to reference this then push. > Update nifi overview doc for 1.0 items > -- > > Key: NIFI-2209 > URL: https://issues.apache.org/jira/browse/NIFI-2209 > Project: Apache NiFi > Issue Type: Task > Components: Documentation & Website >Reporter: Haimo Liu >Assignee: Joseph Witt >Priority: Minor > > Update the overview document to reflect some of the 1.0 changes such as zero > master clustering and multi-tenancy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (NIFI-2209) Update nifi overview doc for 1.0 items
Joseph Witt created NIFI-2209: - Summary: Update nifi overview doc for 1.0 items Key: NIFI-2209 URL: https://issues.apache.org/jira/browse/NIFI-2209 Project: Apache NiFi Issue Type: Task Components: Documentation & Website Reporter: Haimo Liu Assignee: Joseph Witt Priority: Minor Update the overview document to reflect some of the 1.0 changes such as zero master clustering and multi-tenancy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #623: 1.0 documentation updates - overview section
GitHub user Haimo-Liu opened a pull request: https://github.com/apache/nifi/pull/623 1.0 documentation updates - overview section Updating NIFI overview documentation taking into consideration the framework enhancement features introduced in NIFI 1.0 You can merge this pull request into a Git repository by running: $ git pull https://github.com/Haimo-Liu/nifi 1.0-docs-new Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/623.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #623 commit 3f778400327c1a71ea9099be2d0277c7b5c623da Author: Haimo LiuDate: 2016-07-08T22:50:56Z Add images for zero-master clustering Add architecture images for zero-master clustering commit b239d33c2a0d387c478714aab5e55b8da1f336ef Author: Haimo Liu Date: 2016-07-08T22:52:56Z Update overview.adoc Updated NIFI overview documentation --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-2186) Cluster communication treats client and server sockets identically for peer certificate DN extraction
[ https://issues.apache.org/jira/browse/NIFI-2186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368625#comment-15368625 ] ASF GitHub Bot commented on NIFI-2186: -- Github user alopresto commented on the issue: https://github.com/apache/nifi/pull/622 This is the fix that was included in `0.7.0` in [https://github.com/apache/nifi/pull/611](PR 611) for [https://issues.apache.org/jira/browse/NIFI-2119](NIFI-2119). I have tested this on a secured `1.0` cluster (2 nodes, one running embedded Zookeeper). I exercised the cluster with `nifi.security.needClientAuth` set to both *true* and *false*. Setting up a ZMC cluster is not fully documented yet as there is still on-going work, so if anyone reviewing this needs example keystores and configuration files to get the cluster running, let me know. > Cluster communication treats client and server sockets identically for peer > certificate DN extraction > - > > Key: NIFI-2186 > URL: https://issues.apache.org/jira/browse/NIFI-2186 > Project: Apache NiFi > Issue Type: Bug > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Andy LoPresto >Assignee: Andy LoPresto >Priority: Critical > Labels: certificate, cluster, security, tls > Fix For: 1.0.0 > > > The code to extract the peer certificate DN is identical for client and > server {{SSLSocket}}, which means that servers are subject to the > {{nifi.security.needClientAuth}} setting being set to {{true}}. Server > certificates must be present in a secure connection regardless of this > setting. This was fixed in {{0.x}} in [NIFI-2119] and must be ported to the > {{master}} branch. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-2186) Cluster communication treats client and server sockets identically for peer certificate DN extraction
[ https://issues.apache.org/jira/browse/NIFI-2186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368617#comment-15368617 ] ASF GitHub Bot commented on NIFI-2186: -- GitHub user alopresto opened a pull request: https://github.com/apache/nifi/pull/622 NIFI-2186 Refactored CertificateUtils to separate logic for DN extrac… …tion from server/client sockets. Added logic to detect server/client mode encapsulated in exposed method. Added unit tests for DN extraction. Corrected typo in Javadoc. Switched server/client socket logic for certificate extraction -- when the local socket is in client/server mode, the peer is necessarily the inverse. Fixed unit tests. Moved lazy-loading authentication access out of isDebugEnabled() control branch. You can merge this pull request into a Git repository by running: $ git pull https://github.com/alopresto/nifi NIFI-2186 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/622.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #622 commit b6fec77ccab01664a11518b6f9652bc2cd855040 Author: Andy LoPrestoDate: 2016-07-05T04:05:58Z NIFI-2186 Refactored CertificateUtils to separate logic for DN extraction from server/client sockets. Added logic to detect server/client mode encapsulated in exposed method. Added unit tests for DN extraction. Corrected typo in Javadoc. Switched server/client socket logic for certificate extraction -- when the local socket is in client/server mode, the peer is necessarily the inverse. Fixed unit tests. Moved lazy-loading authentication access out of isDebugEnabled() control branch. > Cluster communication treats client and server sockets identically for peer > certificate DN extraction > - > > Key: NIFI-2186 > URL: https://issues.apache.org/jira/browse/NIFI-2186 > Project: Apache NiFi > Issue Type: Bug > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Andy LoPresto >Assignee: Andy LoPresto >Priority: Critical > Labels: certificate, cluster, security, tls > Fix For: 1.0.0 > > > The code to extract the peer certificate DN is identical for client and > server {{SSLSocket}}, which means that servers are subject to the > {{nifi.security.needClientAuth}} setting being set to {{true}}. Server > certificates must be present in a secure connection regardless of this > setting. This was fixed in {{0.x}} in [NIFI-2119] and must be ported to the > {{master}} branch. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #622: NIFI-2186 Refactored CertificateUtils to separate lo...
GitHub user alopresto opened a pull request: https://github.com/apache/nifi/pull/622 NIFI-2186 Refactored CertificateUtils to separate logic for DN extrac… …tion from server/client sockets. Added logic to detect server/client mode encapsulated in exposed method. Added unit tests for DN extraction. Corrected typo in Javadoc. Switched server/client socket logic for certificate extraction -- when the local socket is in client/server mode, the peer is necessarily the inverse. Fixed unit tests. Moved lazy-loading authentication access out of isDebugEnabled() control branch. You can merge this pull request into a Git repository by running: $ git pull https://github.com/alopresto/nifi NIFI-2186 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/622.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #622 commit b6fec77ccab01664a11518b6f9652bc2cd855040 Author: Andy LoPrestoDate: 2016-07-05T04:05:58Z NIFI-2186 Refactored CertificateUtils to separate logic for DN extraction from server/client sockets. Added logic to detect server/client mode encapsulated in exposed method. Added unit tests for DN extraction. Corrected typo in Javadoc. Switched server/client socket logic for certificate extraction -- when the local socket is in client/server mode, the peer is necessarily the inverse. Fixed unit tests. Moved lazy-loading authentication access out of isDebugEnabled() control branch. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi issue #580: 1.0 documentation updates - overview section
Github user joewitt commented on the issue: https://github.com/apache/nifi/pull/580 @Haimo-Liu this seems great. Can you please squash your commits and i'll merge from there. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi pull request #580: 1.0 documentation updates - overview section
Github user Haimo-Liu closed the pull request at: https://github.com/apache/nifi/pull/580 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi pull request #580: 1.0 documentation updates - overview section
GitHub user Haimo-Liu reopened a pull request: https://github.com/apache/nifi/pull/580 1.0 documentation updates - overview section updated overview section that covers zero-master clustering, multi-tenancy, plus some other features, and adjusted formatting You can merge this pull request into a Git repository by running: $ git pull https://github.com/Haimo-Liu/nifi 1.0-docs Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/580.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #580 commit e5f05ab1801b0072da1fe365caffc3180eea81a9 Author: Haimo LiuDate: 2016-06-23T21:08:25Z update overview clustering paragraph commit d00557fceca1265697bb13db1c91da539916e079 Author: Haimo Liu Date: 2016-06-24T03:10:30Z Update overview.adoc commit c256ddcdff2d055eb68d4741ca02e8dce7d0b073 Author: Haimo Liu Date: 2016-06-24T15:19:23Z Update overview.adoc commit d58c8ebb1fda40f6e50f20ddaaca55cb883b9749 Author: Haimo Liu Date: 2016-06-24T15:55:39Z Update overview.adoc commit c7f7a74ea47848cdf5f5b66701c03aa58176a282 Author: Haimo Liu Date: 2016-06-24T19:32:14Z Update overview.adoc commit ff1e8a3e7114233c5a655034fcd813f26f1307c1 Author: Haimo Liu Date: 2016-06-24T19:58:54Z Update overview.adoc commit c01d96312e942cc933bed2e56112095ff8bd3157 Author: Haimo Liu Date: 2016-06-24T20:10:49Z Add files via upload commit bce6c7932dfea529528e59c727e7326483e2cf82 Author: Haimo Liu Date: 2016-06-24T20:12:17Z Update overview.adoc commit 6e3980e825654fee5c16c9aff3b418ee152ff017 Author: Haimo Liu Date: 2016-07-08T20:44:58Z Update overview.adoc --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-1974) Support Custom Properties in Expression Language
[ https://issues.apache.org/jira/browse/NIFI-1974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368359#comment-15368359 ] Mark Payne commented on NIFI-1974: -- I created a new ticket NIFI-2208 so that we can close this one out and worry about merging the PR into the 1.x baseline on NIFI-2208. > Support Custom Properties in Expression Language > > > Key: NIFI-1974 > URL: https://issues.apache.org/jira/browse/NIFI-1974 > Project: Apache NiFi > Issue Type: New Feature >Reporter: Yolanda M. Davis >Assignee: Yolanda M. Davis > Fix For: 0.7.0 > > > Add a property in "nifi.properties" config file to allows users to specify a > list of custom properties files (containing data such as environmental > specific values, or sensitive values, etc.). The key/value pairs should be > loaded upon NIFI startup and availbale to processors for use in expression > languages. > Optimally this will lay the groundwork for a UI driven Variable Registry. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (NIFI-1974) Support Custom Properties in Expression Language
[ https://issues.apache.org/jira/browse/NIFI-1974?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mark Payne updated NIFI-1974: - Fix Version/s: (was: 1.0.0) > Support Custom Properties in Expression Language > > > Key: NIFI-1974 > URL: https://issues.apache.org/jira/browse/NIFI-1974 > Project: Apache NiFi > Issue Type: New Feature >Reporter: Yolanda M. Davis >Assignee: Yolanda M. Davis > Fix For: 0.7.0 > > > Add a property in "nifi.properties" config file to allows users to specify a > list of custom properties files (containing data such as environmental > specific values, or sensitive values, etc.). The key/value pairs should be > loaded upon NIFI startup and availbale to processors for use in expression > languages. > Optimally this will lay the groundwork for a UI driven Variable Registry. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (NIFI-2179) ExecuteSQL and PutSQL can't assignt controller service
[ https://issues.apache.org/jira/browse/NIFI-2179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joseph Percivall updated NIFI-2179: --- Fix Version/s: (was: 0.7.0) 1.0.0 > ExecuteSQL and PutSQL can't assignt controller service > -- > > Key: NIFI-2179 > URL: https://issues.apache.org/jira/browse/NIFI-2179 > Project: Apache NiFi > Issue Type: Bug > Components: Core Framework >Affects Versions: 0.6.0, 0.6.1 > Environment: Windows 7 , Linux Red Hat Enterprise >Reporter: Alexander Kell >Priority: Critical > Labels: ControllerService, SQL > Fix For: 1.0.0 > > Attachments: Wrong_controllerservicetype.png > > > ExecuteSQL Processor is broken, it is not possible to assignt a neccesary > controllerservice connection. > I created a working SQL Controller , it is not possible to assignt this > controller to created ExecuteSQL Processor , even if i create one > controllerservice out of property page , it is not possible for the processor > to use this service. > It has probably nothing to do with changes in processor code ... it has > probably spomething to do with controller service ... i just tested it with > 0.5.0 and it works ... it is broken since 0.6.0 > Maybe it has something to do with NIFI-1800: Tie Controller Services to > Process Groups. > or > NIFI-1994: Fixed issue with Controller Service Fully Qualified Class -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-2089) NIFI-1824 causes failures on Windows
[ https://issues.apache.org/jira/browse/NIFI-2089?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368349#comment-15368349 ] Mark Payne commented on NIFI-2089: -- I am marking this as resolved and created a separate ticket to address the issue for the 1.x baseline (NIFI-2207). > NIFI-1824 causes failures on Windows > > > Key: NIFI-2089 > URL: https://issues.apache.org/jira/browse/NIFI-2089 > Project: Apache NiFi > Issue Type: Bug >Reporter: Joseph Percivall >Assignee: Mark Payne >Priority: Blocker > Fix For: 0.7.0 > > > Below is the output of a maven build of the current 0.x branch on Windows 8. > After reverting NIFI-1824 (commit 1ff55244ceca8220dbfdc3ca58eb42218536579f) > the test succeeds. > Output: > --- > T E S T S > --- > Running org.apache.nifi.cluster.HeartbeatPayloadTest > Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.266 sec - > in org.apache.nifi.cluster.HeartbeatPayloadTest > Running org.apache.nifi.controller.repository.io.TestLimitedInputStream > Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in > org.apache.nifi.controller.repository.io.TestLimitedInputStream > Running org.apache.nifi.controller.repository.TestFileSystemRepository > Tests run: 28, Failures: 1, Errors: 2, Skipped: 0, Time elapsed: 33.81 sec > <<< FAILURE! - in > org.apache.nifi.controller.repository.TestFileSystemRepository > testRemoveDeletesFileIfNoClaimants(org.apache.nifi.controller.repository.TestFileSystemRepository) > Time elapsed: 0.86 sec <<< FAILURE! > java.lang.AssertionError: null > at org.junit.Assert.fail(Assert.java:86) > at org.junit.Assert.assertTrue(Assert.java:41) > at org.junit.Assert.assertFalse(Assert.java:64) > at org.junit.Assert.assertFalse(Assert.java:74) > at > org.apache.nifi.controller.repository.TestFileSystemRepository.testRemoveDeletesFileIfNoClaimants(TestFileSystemRepository.java:274) > testExportToFile(org.apache.nifi.controller.repository.TestFileSystemRepository) > Time elapsed: 0.867 sec <<< ERROR! > java.nio.file.FileSystemException: > C:\Users\Joe\AppData\Local\Programs\Git\nifi\nifi-nar-bundles\nifi-framework-bundle\nifi-framework\nifi-framework-core\target\content_repository\1\1466638368813-1: > The process cannot access the file because it is being used by another > process. > at > sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) > at > sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) > at > sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) > at sun.nio.fs.WindowsFileCopy.copy(WindowsFileCopy.java:165) > at > sun.nio.fs.WindowsFileSystemProvider.copy(WindowsFileSystemProvider.java:278) > at java.nio.file.Files.copy(Files.java:1274) > at > org.apache.nifi.controller.repository.TestFileSystemRepository.testExportToFile(TestFileSystemRepository.java:348) > testExportToOutputStream(org.apache.nifi.controller.repository.TestFileSystemRepository) > Time elapsed: 0.859 sec <<< ERROR! > java.nio.file.FileSystemException: > C:\Users\Joe\AppData\Local\Programs\Git\nifi\nifi-nar-bundles\nifi-framework-bundle\nifi-framework\nifi-framework-core\target\content_repository\1\1466638376837-1: > The process cannot access the file because it is being used by another > process. > at > sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) > at > sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) > at > sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) > at sun.nio.fs.WindowsFileCopy.copy(WindowsFileCopy.java:165) > at > sun.nio.fs.WindowsFileSystemProvider.copy(WindowsFileSystemProvider.java:278) > at java.nio.file.Files.copy(Files.java:1274) > at > org.apache.nifi.controller.repository.TestFileSystemRepository.testExportToOutputStream(TestFileSystemRepository.java:335) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (NIFI-2207) NIFI-1824 causes failures on Windows - Fix for 1.x baseline
Mark Payne created NIFI-2207: Summary: NIFI-1824 causes failures on Windows - Fix for 1.x baseline Key: NIFI-2207 URL: https://issues.apache.org/jira/browse/NIFI-2207 Project: Apache NiFi Issue Type: Bug Components: Extensions Reporter: Mark Payne Assignee: Mark Payne Priority: Blocker Fix For: 1.0.0 Ticket NIFI-2089 addressed this issue but the PR does not apply cleanly to the 1.x branch. Since 0.7.0 is ready to be released, I am creating a separate JIRA for the 1.x branch so that we can close the one assigned to 0.7.0. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi issue #483: NIFI-1899 - Introduce ExtractEmailAttachments and ExtractEm...
Github user JPercivall commented on the issue: https://github.com/apache/nifi/pull/483 The email-nar does not have a LICENSE or NOTICE in its src directory. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-2192) PutKafka results in OOME if sending very large delimited file
[ https://issues.apache.org/jira/browse/NIFI-2192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368278#comment-15368278 ] ASF GitHub Bot commented on NIFI-2192: -- Github user asfgit closed the pull request at: https://github.com/apache/nifi/pull/618 > PutKafka results in OOME if sending very large delimited file > - > > Key: NIFI-2192 > URL: https://issues.apache.org/jira/browse/NIFI-2192 > Project: Apache NiFi > Issue Type: Bug > Components: Extensions >Affects Versions: 0.7.0 >Reporter: Mark Payne >Assignee: Oleg Zhurakousky >Priority: Blocker > Fix For: 1.0.0, 0.7.0 > > > If I send a very large file to kafka via PutKafka using a delimiter, I see > the Java heap fill up until we see constant Full Garbage Collections and the > node eventually dies. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #618: NIFI-2192 fixed OOM issue in KafkaPublisher
Github user asfgit closed the pull request at: https://github.com/apache/nifi/pull/618 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-2192) PutKafka results in OOME if sending very large delimited file
[ https://issues.apache.org/jira/browse/NIFI-2192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368277#comment-15368277 ] ASF subversion and git services commented on NIFI-2192: --- Commit 7a901952b5e9bb2ce711c6b85305fc1382354727 in nifi's branch refs/heads/master from [~ozhurakousky] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=7a90195 ] NIFI-2192: Fixed OOM issue in KafkaPublisher This closes #618. Signed-off-by: Mark Payne> PutKafka results in OOME if sending very large delimited file > - > > Key: NIFI-2192 > URL: https://issues.apache.org/jira/browse/NIFI-2192 > Project: Apache NiFi > Issue Type: Bug > Components: Extensions >Affects Versions: 0.7.0 >Reporter: Mark Payne >Assignee: Oleg Zhurakousky >Priority: Blocker > Fix For: 1.0.0, 0.7.0 > > > If I send a very large file to kafka via PutKafka using a delimiter, I see > the Java heap fill up until we see constant Full Garbage Collections and the > node eventually dies. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70128468 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ListenSMTP.java --- @@ -0,0 +1,385 @@ +/* + * 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.processors.email; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.DataUnit; +import org.apache.nifi.processors.email.smtp.event.SmtpEvent; +import org.apache.nifi.processors.email.smtp.handler.SMTPMessageHandlerFactory; +import org.subethamail.smtp.server.SMTPServer; + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.util.StandardValidators; + +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.ssl.SSLContextService; + +@Tags({"listen", "email", "smtp"}) +@InputRequirement(InputRequirement.Requirement.INPUT_FORBIDDEN) +@CapabilityDescription("This processor implements a lightweight SMTP server to an arbitrary port, " + +"allowing nifi to listen for incoming email. " + +"" + +"Note this server does not perform any email validation. If direct exposure to the internet is sought," + +"it may be a better idea to use the combination of NiFi and an industrial scale MTA (e.g. Postfix)") +@WritesAttributes({ +@WritesAttribute(attribute = "mime.type", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.helo", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.certificates.*.serial", description = "The serial numbers for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.certificates.*.principal", description = "The principal for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.from", description = "The value used during MAIL FROM (i.e. envelope)"), +@WritesAttribute(attribute = "smtp.to", description = "The value used during RCPT TO (i.e. envelope)")}) + +public class ListenSMTP extends AbstractProcessor { +public static final
[jira] [Commented] (NIFI-1899) Create ListenSMTP & ExtractEmailAttachment processors
[ https://issues.apache.org/jira/browse/NIFI-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368267#comment-15368267 ] ASF GitHub Bot commented on NIFI-1899: -- Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70128375 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/smtp/event/SmtpEvent.java --- @@ -0,0 +1,91 @@ +/* +* 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.processors.email.smtp.event; + + +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * A Smtp event which adds the transaction number and command to the StandardEvent. + */ + +public class SmtpEvent{ + +private final String remoteIP; +private final String helo; +private final String from; +private final String to; +private final byte[] bodyData; +private List
[jira] [Commented] (NIFI-2185) Implement two-phase read for GET requests when replicated across the cluster
[ https://issues.apache.org/jira/browse/NIFI-2185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368266#comment-15368266 ] ASF GitHub Bot commented on NIFI-2185: -- GitHub user markap14 opened a pull request: https://github.com/apache/nifi/pull/621 NIFI-2185: Proxy requests through the cluster coordinator rather than… … making use of distributed read/write locks You can merge this pull request into a Git repository by running: $ git pull https://github.com/markap14/nifi NIFI-2185 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/621.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #621 commit b8bfb286fc54dfae9b09fe010209942f04fb2065 Author: Mark PayneDate: 2016-07-08T16:58:06Z NIFI-2185: Proxy requests through the cluster coordinator rather than making use of distributed read/write locks > Implement two-phase read for GET requests when replicated across the cluster > > > Key: NIFI-2185 > URL: https://issues.apache.org/jira/browse/NIFI-2185 > Project: Apache NiFi > Issue Type: Task > Components: Core Framework >Affects Versions: 1.0.0 >Reporter: Mark Payne >Assignee: Mark Payne >Priority: Blocker > Fix For: 1.0.0 > > > With the new zero-master clustering paradigm, we can have a scenario where a > GET request and a POST request occur 'at the same time' but the requests are > replicated to the nodes in different orders. For instance, if I have a > Process Group with ID 1234, it's possible that the group could be read via a > GET and modified via a POST request simultaneously. > If we have a 3 node cluster, this can result in Nodes 1 and 2 servicing the > GET request before the POST request, while Node 3 services the POST request > before the GET request. As a result, Nodes 1 and 2 return one view of the > Process Group while Node 3 returns a different view of the Process Group. > This wasn't an issue with the NCM because the NCM provided a locking > mechanism that prevented any GET requests from being replicated while a > POST/PUT/DELETE was also being replicated. > In the new clustering model, in order to implement the same type of logic, we > need a two-phase read, where the first phase simply obtains a Read Lock, and > the second phase handles the logic of creating the response for the client to > consume and then unlocking the Read Lock. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70128375 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/smtp/event/SmtpEvent.java --- @@ -0,0 +1,91 @@ +/* +* 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.processors.email.smtp.event; + + +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * A Smtp event which adds the transaction number and command to the StandardEvent. + */ + +public class SmtpEvent{ + +private final String remoteIP; +private final String helo; +private final String from; +private final String to; +private final byte[] bodyData; +private List> certificatesDetails; + +public SmtpEvent(final String remoteIP, final String helo, final String from, final String to, final X509Certificate[] certificates, final byte[] bodyData) { +this.remoteIP = remoteIP; +this.helo = helo; +this.from = from; +this.to = to; +this.bodyData = bodyData; + +this.certificatesDetails = new ArrayList<>(); + +for (int c = 0; c < certificates.length; c++) { +X509Certificate cert = certificates[c]; +if (cert.getSerialNumber() != null && cert.getSubjectDN() != null) { +Map certificate = new HashMap<>(); + +String certSerialNumber = cert.getSerialNumber().toString(); +String certSubjectDN = cert.getSubjectDN().getName(); + + +certificate.put("SerialNumber", certSerialNumber); +certificate.put("SubjectName", certSubjectDN); + +certificatesDetails.add(certificate); + +} +} +} + +public List getCertifcateDetails() { --- End diff -- Bit of a nit pick but, it is best practice to keep the explicit type here (List >) that way you don't have the "unchecked assignment" warnings in ListenSMTP. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi pull request #621: NIFI-2185: Proxy requests through the cluster coordi...
GitHub user markap14 opened a pull request: https://github.com/apache/nifi/pull/621 NIFI-2185: Proxy requests through the cluster coordinator rather than… … making use of distributed read/write locks You can merge this pull request into a Git repository by running: $ git pull https://github.com/markap14/nifi NIFI-2185 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/621.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #621 commit b8bfb286fc54dfae9b09fe010209942f04fb2065 Author: Mark PayneDate: 2016-07-08T16:58:06Z NIFI-2185: Proxy requests through the cluster coordinator rather than making use of distributed read/write locks --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70128118 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ListenSMTP.java --- @@ -0,0 +1,385 @@ +/* + * 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.processors.email; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.DataUnit; +import org.apache.nifi.processors.email.smtp.event.SmtpEvent; +import org.apache.nifi.processors.email.smtp.handler.SMTPMessageHandlerFactory; +import org.subethamail.smtp.server.SMTPServer; + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.util.StandardValidators; + +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.ssl.SSLContextService; + +@Tags({"listen", "email", "smtp"}) +@InputRequirement(InputRequirement.Requirement.INPUT_FORBIDDEN) +@CapabilityDescription("This processor implements a lightweight SMTP server to an arbitrary port, " + +"allowing nifi to listen for incoming email. " + +"" + +"Note this server does not perform any email validation. If direct exposure to the internet is sought," + +"it may be a better idea to use the combination of NiFi and an industrial scale MTA (e.g. Postfix)") +@WritesAttributes({ +@WritesAttribute(attribute = "mime.type", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.helo", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.certificates.*.serial", description = "The serial numbers for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.certificates.*.principal", description = "The principal for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.from", description = "The value used during MAIL FROM (i.e. envelope)"), +@WritesAttribute(attribute = "smtp.to", description = "The value used during RCPT TO (i.e. envelope)")}) + +public class ListenSMTP extends AbstractProcessor { +public static final
[jira] [Commented] (NIFI-1899) Create ListenSMTP & ExtractEmailAttachment processors
[ https://issues.apache.org/jira/browse/NIFI-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368263#comment-15368263 ] ASF GitHub Bot commented on NIFI-1899: -- Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70128118 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ListenSMTP.java --- @@ -0,0 +1,385 @@ +/* + * 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.processors.email; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.DataUnit; +import org.apache.nifi.processors.email.smtp.event.SmtpEvent; +import org.apache.nifi.processors.email.smtp.handler.SMTPMessageHandlerFactory; +import org.subethamail.smtp.server.SMTPServer; + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.util.StandardValidators; + +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.ssl.SSLContextService; + +@Tags({"listen", "email", "smtp"}) +@InputRequirement(InputRequirement.Requirement.INPUT_FORBIDDEN) +@CapabilityDescription("This processor implements a lightweight SMTP server to an arbitrary port, " + +"allowing nifi to listen for incoming email. " + +"" + +"Note this server does not perform any email validation. If direct exposure to the internet is sought," + +"it may be a better idea to use the combination of NiFi and an industrial scale MTA (e.g. Postfix)") +@WritesAttributes({ +@WritesAttribute(attribute = "mime.type", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.helo", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.certificates.*.serial", description = "The serial numbers for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.certificates.*.principal", description = "The principal for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.from", description = "The value used during MAIL
[jira] [Updated] (NIFI-2205) Filter components / border not rendered properly in the Cluster dialog
[ https://issues.apache.org/jira/browse/NIFI-2205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mark Payne updated NIFI-2205: - Issue Type: Sub-task (was: Bug) Parent: NIFI-2010 > Filter components / border not rendered properly in the Cluster dialog > -- > > Key: NIFI-2205 > URL: https://issues.apache.org/jira/browse/NIFI-2205 > Project: Apache NiFi > Issue Type: Sub-task > Components: Core UI >Affects Versions: 1.0.0 >Reporter: Mark Payne > Fix For: 1.0.0 > > Attachments: screenshot-1.png > > > When I go to the "Cluster" dialog, I see that the filter boxes are hidden > behind the table and there is no border around the dialog. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70127060 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ListenSMTP.java --- @@ -0,0 +1,385 @@ +/* + * 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.processors.email; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.DataUnit; +import org.apache.nifi.processors.email.smtp.event.SmtpEvent; +import org.apache.nifi.processors.email.smtp.handler.SMTPMessageHandlerFactory; +import org.subethamail.smtp.server.SMTPServer; + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.util.StandardValidators; + +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.ssl.SSLContextService; + +@Tags({"listen", "email", "smtp"}) +@InputRequirement(InputRequirement.Requirement.INPUT_FORBIDDEN) +@CapabilityDescription("This processor implements a lightweight SMTP server to an arbitrary port, " + +"allowing nifi to listen for incoming email. " + +"" + +"Note this server does not perform any email validation. If direct exposure to the internet is sought," + +"it may be a better idea to use the combination of NiFi and an industrial scale MTA (e.g. Postfix)") +@WritesAttributes({ +@WritesAttribute(attribute = "mime.type", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.helo", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.certificates.*.serial", description = "The serial numbers for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.certificates.*.principal", description = "The principal for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.from", description = "The value used during MAIL FROM (i.e. envelope)"), +@WritesAttribute(attribute = "smtp.to", description = "The value used during RCPT TO (i.e. envelope)")}) + +public class ListenSMTP extends AbstractProcessor { +public static final
[jira] [Created] (NIFI-2206) Wrong mouse cursor when hovering over 'Cancel' button in Edit Property dialog
Mark Payne created NIFI-2206: Summary: Wrong mouse cursor when hovering over 'Cancel' button in Edit Property dialog Key: NIFI-2206 URL: https://issues.apache.org/jira/browse/NIFI-2206 Project: Apache NiFi Issue Type: Sub-task Components: Core UI Affects Versions: 1.0.0 Reporter: Mark Payne Fix For: 1.0.0 I added a ListFile Processor. Clicked Configure, switched to Properties tab. Clicked to change the value of the "Input Directory" property. When I placed the mouse over the "Cancel" button, the mouse cursor changes to the 'Move' cursor instead of the 'pointer' cursor -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1899) Create ListenSMTP & ExtractEmailAttachment processors
[ https://issues.apache.org/jira/browse/NIFI-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15368253#comment-15368253 ] ASF GitHub Bot commented on NIFI-1899: -- Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70127425 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ListenSMTP.java --- @@ -0,0 +1,385 @@ +/* + * 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.processors.email; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.DataUnit; +import org.apache.nifi.processors.email.smtp.event.SmtpEvent; +import org.apache.nifi.processors.email.smtp.handler.SMTPMessageHandlerFactory; +import org.subethamail.smtp.server.SMTPServer; + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.util.StandardValidators; + +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.ssl.SSLContextService; + +@Tags({"listen", "email", "smtp"}) +@InputRequirement(InputRequirement.Requirement.INPUT_FORBIDDEN) +@CapabilityDescription("This processor implements a lightweight SMTP server to an arbitrary port, " + +"allowing nifi to listen for incoming email. " + +"" + +"Note this server does not perform any email validation. If direct exposure to the internet is sought," + +"it may be a better idea to use the combination of NiFi and an industrial scale MTA (e.g. Postfix)") +@WritesAttributes({ +@WritesAttribute(attribute = "mime.type", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.helo", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.certificates.*.serial", description = "The serial numbers for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.certificates.*.principal", description = "The principal for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.from", description = "The value used during MAIL
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70127425 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ListenSMTP.java --- @@ -0,0 +1,385 @@ +/* + * 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.processors.email; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.DataUnit; +import org.apache.nifi.processors.email.smtp.event.SmtpEvent; +import org.apache.nifi.processors.email.smtp.handler.SMTPMessageHandlerFactory; +import org.subethamail.smtp.server.SMTPServer; + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.util.StandardValidators; + +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.ssl.SSLContextService; + +@Tags({"listen", "email", "smtp"}) +@InputRequirement(InputRequirement.Requirement.INPUT_FORBIDDEN) +@CapabilityDescription("This processor implements a lightweight SMTP server to an arbitrary port, " + +"allowing nifi to listen for incoming email. " + +"" + +"Note this server does not perform any email validation. If direct exposure to the internet is sought," + +"it may be a better idea to use the combination of NiFi and an industrial scale MTA (e.g. Postfix)") +@WritesAttributes({ +@WritesAttribute(attribute = "mime.type", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.helo", description = "The value used during HELO"), +@WritesAttribute(attribute = "smtp.certificates.*.serial", description = "The serial numbers for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.certificates.*.principal", description = "The principal for each of the " + +"certificates used by an TLS peer"), +@WritesAttribute(attribute = "smtp.from", description = "The value used during MAIL FROM (i.e. envelope)"), +@WritesAttribute(attribute = "smtp.to", description = "The value used during RCPT TO (i.e. envelope)")}) + +public class ListenSMTP extends AbstractProcessor { +public static final
[jira] [Created] (NIFI-2204) Move Controller level bulletins out of Controller Status
Matt Gilman created NIFI-2204: - Summary: Move Controller level bulletins out of Controller Status Key: NIFI-2204 URL: https://issues.apache.org/jira/browse/NIFI-2204 Project: Apache NiFi Issue Type: Improvement Components: Core Framework, Core UI Reporter: Matt Gilman Priority: Blocker Fix For: 1.0.0 Controller level bulletins need to be removed from the controller status endpoint and into some endpoint that is accessed through the Controller resource for authorization consistency. All status requests are authorized under the flow but the bulletins are more sensitive. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (NIFI-2082) When a node is disconnected from cluster, it should be made extremely obvious in the UI
[ https://issues.apache.org/jira/browse/NIFI-2082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rob Moran updated NIFI-2082: Attachment: nifi-2082_disconnected-node-dialog-2.png > When a node is disconnected from cluster, it should be made extremely obvious > in the UI > --- > > Key: NIFI-2082 > URL: https://issues.apache.org/jira/browse/NIFI-2082 > Project: Apache NiFi > Issue Type: Sub-task > Components: Core UI >Affects Versions: 1.0.0 >Reporter: Mark Payne >Priority: Critical > Fix For: 1.0.0 > > Attachments: nifi-2082_cluster-warning.png, > nifi-2082_disconnected-node-dialog-2.png, > nifi-2082_disconnected-node-dialog.png > > > Because we now have a zero-master clustering paradigm, it's possible to open > the UI on a node that is disconnected from the cluster. In this case, changes > made to the UI will be accepted, but they will not be replicated to the > cluster. As a result, the flow will be out-of-sync with the cluster, and in > order to get the node back to the cluster, the changes would have to be > undone and the work potentially lost (user could create a template to save > the changes but may not know what all they changed). > The UI should make it very obvious that the node is disconnected and that any > changes that made will not be replicated to the cluster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (NIFI-2198) Process Group Config > Ctrl Service Tab > Edit Ctrl Service > Clicking goto
[ https://issues.apache.org/jira/browse/NIFI-2198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Scott Aslan reassigned NIFI-2198: - Assignee: Scott Aslan > Process Group Config > Ctrl Service Tab > Edit Ctrl Service > Clicking goto > --- > > Key: NIFI-2198 > URL: https://issues.apache.org/jira/browse/NIFI-2198 > Project: Apache NiFi > Issue Type: Sub-task > Components: Core UI >Reporter: Scott Aslan >Assignee: Scott Aslan > > Throws an error -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1899) Create ListenSMTP & ExtractEmailAttachment processors
[ https://issues.apache.org/jira/browse/NIFI-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15367880#comment-15367880 ] ASF GitHub Bot commented on NIFI-1899: -- Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70097725 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailAttachments.java --- @@ -0,0 +1,201 @@ +/* + * 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.processors.email; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.Date; + +import javax.activation.DataSource; +import javax.mail.Address; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.mail.util.MimeMessageParser; + + +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.stream.io.BufferedInputStream; + + + + +@EventDriven +@SideEffectFree +@Tags({"split", "email"}) +@InputRequirement(Requirement.INPUT_REQUIRED) +@CapabilityDescription("Extract attachments from a mime formatted email file, splitting them into individual flowfiles.") +@WritesAttributes({ +@WritesAttribute(attribute = "filename ", description = "The filename of the attachment"), +@WritesAttribute(attribute = "email.attachment.parent.filename ", description = "The filename of the parent FlowFile"), +@WritesAttribute(attribute = "email.attachment.parent.uuid", description = "The UUID of the original FlowFile."), +@WritesAttribute(attribute = "mime.type", description = "The mime type of the attachment.")}) + +public class ExtractEmailAttachments extends AbstractProcessor { +public static final String ATTACHMENT_ORIGINAL_FILENAME = "email.attachment.parent.filename"; +public static final String ATTACHMENT_ORIGINAL_UUID = "email.attachment.parent.uuid"; + +public static final Relationship REL_ATTACHMENTS = new Relationship.Builder() +.name("attachments") +.description("Each individual attachment will be routed to the attachments relationship") +.build(); +public static final Relationship REL_ORIGINAL = new Relationship.Builder() +.name("original") +.description("The original file") +.build(); +public static final
[jira] [Commented] (NIFI-2082) When a node is disconnected from cluster, it should be made extremely obvious in the UI
[ https://issues.apache.org/jira/browse/NIFI-2082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15367833#comment-15367833 ] Mark Payne commented on NIFI-2082: -- [~rmoran] - all looks good to me except the notification shown on a connected node. If there is a node disconnected from the cluster, you cannot modify the cluster's flow until that node is either re-connected, or removed from the cluster. > When a node is disconnected from cluster, it should be made extremely obvious > in the UI > --- > > Key: NIFI-2082 > URL: https://issues.apache.org/jira/browse/NIFI-2082 > Project: Apache NiFi > Issue Type: Sub-task > Components: Core UI >Affects Versions: 1.0.0 >Reporter: Mark Payne >Priority: Critical > Fix For: 1.0.0 > > Attachments: nifi-2082_cluster-warning.png, > nifi-2082_disconnected-node-dialog.png > > > Because we now have a zero-master clustering paradigm, it's possible to open > the UI on a node that is disconnected from the cluster. In this case, changes > made to the UI will be accepted, but they will not be replicated to the > cluster. As a result, the flow will be out-of-sync with the cluster, and in > order to get the node back to the cluster, the changes would have to be > undone and the work potentially lost (user could create a template to save > the changes but may not know what all they changed). > The UI should make it very obvious that the node is disconnected and that any > changes that made will not be replicated to the cluster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70094915 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailAttachments.java --- @@ -0,0 +1,201 @@ +/* + * 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.processors.email; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.Date; + +import javax.activation.DataSource; +import javax.mail.Address; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.mail.util.MimeMessageParser; + + +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.WritesAttribute; +import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.stream.io.BufferedInputStream; + + + + +@EventDriven +@SideEffectFree +@Tags({"split", "email"}) +@InputRequirement(Requirement.INPUT_REQUIRED) +@CapabilityDescription("Extract attachments from a mime formatted email file, splitting them into individual flowfiles.") +@WritesAttributes({ +@WritesAttribute(attribute = "filename ", description = "The filename of the attachment"), +@WritesAttribute(attribute = "email.attachment.parent.filename ", description = "The filename of the parent FlowFile"), +@WritesAttribute(attribute = "email.attachment.parent.uuid", description = "The UUID of the original FlowFile."), +@WritesAttribute(attribute = "mime.type", description = "The mime type of the attachment.")}) + --- End diff -- I believe this processor should also have the "SupportsBatching" annotation[1] [1] https://github.com/apache/nifi/blob/a83ed34f91432de22552b8ab1abfd7791fbb4412/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SupportsBatching.java#L49-L49 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70093109 --- Diff: nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/pom.xml --- @@ -0,0 +1,75 @@ + + +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> +4.0.0 + + +org.apache.nifi +nifi-email-bundle +1.0.0-SNAPSHOT + + +nifi-email-processors +jar + + + +org.apache.nifi +nifi-api + + +org.apache.nifi +nifi-processor-utils + + +javax.mail +mail +1.4.7 + + +org.apache.commons +commons-email +1.4 + + +org.subethamail +subethasmtp +3.1.7 + + +org.apache.nifi +nifi-ssl-context-service-api + + +org.apache.nifi +nifi-ssl-context-service +test + + +org.apache.nifi +nifi-mock +1.0.0-SNAPSHOT --- End diff -- The version here should be removed. It will use the version set in the dependency management section of the root pom. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] nifi pull request #483: NIFI-1899 - Introduce ExtractEmailAttachments and Ex...
Github user JPercivall commented on a diff in the pull request: https://github.com/apache/nifi/pull/483#discussion_r70092692 --- Diff: nifi-assembly/NOTICE --- @@ -818,6 +818,15 @@ The following binary components are provided under the Apache Software License v The code for the t-digest was originally authored by Ted Dunning A number of small but very helpful changes have been contributed by Adrien Grand (https://github.com/jpountz) +(ASLv2) subethasmtp + The following NOTICE information applies: + + Copyright (C) 2006-2007 SubEthaMail.org --- End diff -- This project is Licensed under ASLv2[1] without any notice[2] so it can be removed from our NOTICE file. [1] https://github.com/voodoodyne/subethasmtp/blob/3.1.7/LICENSE.txt [2] https://github.com/voodoodyne/subethasmtp/tree/3.1.7 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Updated] (NIFI-2082) When a node is disconnected from cluster, it should be made extremely obvious in the UI
[ https://issues.apache.org/jira/browse/NIFI-2082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rob Moran updated NIFI-2082: Attachment: nifi-2082_disconnected-node-dialog.png nifi-2082_cluster-warning.png > When a node is disconnected from cluster, it should be made extremely obvious > in the UI > --- > > Key: NIFI-2082 > URL: https://issues.apache.org/jira/browse/NIFI-2082 > Project: Apache NiFi > Issue Type: Sub-task > Components: Core UI >Affects Versions: 1.0.0 >Reporter: Mark Payne >Priority: Critical > Fix For: 1.0.0 > > Attachments: nifi-2082_cluster-warning.png, > nifi-2082_disconnected-node-dialog.png > > > Because we now have a zero-master clustering paradigm, it's possible to open > the UI on a node that is disconnected from the cluster. In this case, changes > made to the UI will be accepted, but they will not be replicated to the > cluster. As a result, the flow will be out-of-sync with the cluster, and in > order to get the node back to the cluster, the changes would have to be > undone and the work potentially lost (user could create a template to save > the changes but may not know what all they changed). > The UI should make it very obvious that the node is disconnected and that any > changes that made will not be replicated to the cluster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (NIFI-2192) PutKafka results in OOME if sending very large delimited file
[ https://issues.apache.org/jira/browse/NIFI-2192?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Oleg Zhurakousky updated NIFI-2192: --- Status: Patch Available (was: Open) > PutKafka results in OOME if sending very large delimited file > - > > Key: NIFI-2192 > URL: https://issues.apache.org/jira/browse/NIFI-2192 > Project: Apache NiFi > Issue Type: Bug > Components: Extensions >Affects Versions: 0.7.0 >Reporter: Mark Payne >Assignee: Oleg Zhurakousky >Priority: Blocker > Fix For: 1.0.0, 0.7.0 > > > If I send a very large file to kafka via PutKafka using a delimiter, I see > the Java heap fill up until we see constant Full Garbage Collections and the > node eventually dies. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (NIFI-2166) When adding Processor to canvas, previously selected tags remain selected
[ https://issues.apache.org/jira/browse/NIFI-2166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Scott Aslan resolved NIFI-2166. --- Resolution: Fixed > When adding Processor to canvas, previously selected tags remain selected > - > > Key: NIFI-2166 > URL: https://issues.apache.org/jira/browse/NIFI-2166 > Project: Apache NiFi > Issue Type: Sub-task > Components: Core UI >Reporter: Mark Payne >Assignee: Scott Aslan > Fix For: 1.0.0 > > > If I drag a Processor to the graph and select a tag from the tag cloud and > add the Processor, all works as expected. When I then drag another processor > onto the graph, that tag remains selected, filtering the Processors to those > that contain the selected tag(s) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-2189) New Processor Dialog - Double click on new processor type
[ https://issues.apache.org/jira/browse/NIFI-2189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15367636#comment-15367636 ] ASF GitHub Bot commented on NIFI-2189: -- Github user asfgit closed the pull request at: https://github.com/apache/nifi/pull/615 > New Processor Dialog - Double click on new processor type > - > > Key: NIFI-2189 > URL: https://issues.apache.org/jira/browse/NIFI-2189 > Project: Apache NiFi > Issue Type: Bug > Components: Core UI >Reporter: Matt Gilman >Assignee: Scott Aslan >Priority: Blocker > Fix For: 1.0.0 > > > Double clicking on the processor type in the new processor dialog is causing > multiple instances of the new processor to be added to the canvas. > Maybe the click handler is being registered multiple times. Maybe once per > dialog opening? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[GitHub] nifi issue #604: [NIFI-2038] [NIFI-2144] [NIFI-2031] [NIFI-2036] [NIFI-2037]
Github user mcgilman commented on the issue: https://github.com/apache/nifi/pull/604 Looks good @scottyaslan! This has been merged to master. Thanks! --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (NIFI-2037) Increase font-size for #header .icon, .fa
[ https://issues.apache.org/jira/browse/NIFI-2037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15367620#comment-15367620 ] ASF subversion and git services commented on NIFI-2037: --- Commit fa351a61ab6e79e9ce12ffc0dc660da877de2165 in nifi's branch refs/heads/master from [~scottyaslan] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=fa351a6 ] [NIFI-2038] Make component buttons larger, add hover icon, and add grip across bottom [NIFI-2031] update global menu styles [NIFI-2037] Increase header icons font sizes [NIFI-2036] update logo [NIFI-2144] consistent view details icons This closes #604 > Increase font-size for #header .icon, .fa > - > > Key: NIFI-2037 > URL: https://issues.apache.org/jira/browse/NIFI-2037 > Project: Apache NiFi > Issue Type: Sub-task > Components: Core UI >Reporter: Rob Moran >Assignee: Scott Aslan > > *For #header .icon* > CHANGE > font-size: 30px; > TO > font-size: 32px; > *For #header .fa* > CHANGE > font-size: 30px; > TO > font-size: 32px; -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (NIFI-2125) Don't force line breaks in base 64 encoding
[ https://issues.apache.org/jira/browse/NIFI-2125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] William H. updated NIFI-2125: - Affects Version/s: 0.7.0 > Don't force line breaks in base 64 encoding > --- > > Key: NIFI-2125 > URL: https://issues.apache.org/jira/browse/NIFI-2125 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.7.0, 0.6.1 > Environment: All >Reporter: William H. > > Hello, > We should have an option to deactivate the automatically inserted line breaks > in Base64EncodeContent. > It causes problems when you insert the generated string in a property, such > as in a JSON file, because line breaks become illegal characters when parsed. > Thanks! -- This message was sent by Atlassian JIRA (v6.3.4#6332)