flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-3298) Streaming connector for ActiveMQ
Date Tue, 16 Aug 2016 21:32:20 GMT

    [ https://issues.apache.org/jira/browse/FLINK-3298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15423415#comment-15423415
] 

ASF GitHub Bot commented on FLINK-3298:
---------------------------------------

Github user mushketyk commented on a diff in the pull request:

    https://github.com/apache/flink/pull/2314#discussion_r75024557
  
    --- Diff: flink-streaming-connectors/flink-connector-activemq/src/main/java/org/apache/flink/streaming/connectors/activemq/AMQSink.java
---
    @@ -0,0 +1,155 @@
    +/*
    + * 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.flink.streaming.connectors.activemq;
    +
    +import org.apache.activemq.ActiveMQConnectionFactory;
    +import org.apache.flink.configuration.Configuration;
    +import org.apache.flink.streaming.api.functions.sink.RichSinkFunction;
    +import org.apache.flink.streaming.util.serialization.SerializationSchema;
    +import org.slf4j.Logger;
    +import org.slf4j.LoggerFactory;
    +
    +import javax.jms.BytesMessage;
    +import javax.jms.Connection;
    +import javax.jms.DeliveryMode;
    +import javax.jms.Destination;
    +import javax.jms.JMSException;
    +import javax.jms.MessageProducer;
    +import javax.jms.Session;
    +
    +/**
    + * Sink class for writing data into ActiveMQ queue.
    + * <p>
    + * To create an instance of AMQSink class one should initialize and configure an
    + * instance of a connection factory that will be used to create a connection.
    + * Every input message is converted into a byte array using a serialization
    + * schema and being sent into a message queue.
    + *
    + * @param <IN> type of input messages
    + */
    +public class AMQSink<IN> extends RichSinkFunction<IN> {
    +	private static final long serialVersionUID = 1L;
    +
    +	private static final Logger LOG = LoggerFactory.getLogger(AMQSink.class);
    +
    +	private final ActiveMQConnectionFactory connectionFactory;
    +	private final String queueName;
    +	private final SerializationSchema<IN> serializationSchema;
    +	private boolean logFailuresOnly = false;
    +	private transient MessageProducer producer;
    +	private transient Session session;
    +	private transient Connection connection;
    +
    +	/**
    +	 * Create AMQSink.
    +	 *
    +	 * @param connectionFactory factory for creating ActiveMQ connection
    +	 * @param queueName name of a queue to write to
    +	 * @param serializationSchema schema to serialize input message into a byte array
    +	 */
    +	public AMQSink(ActiveMQConnectionFactory connectionFactory, String queueName, SerializationSchema<IN>
serializationSchema) {
    +		this.connectionFactory = connectionFactory;
    +		this.queueName = queueName;
    +		this.serializationSchema = serializationSchema;
    +	}
    +
    +	/**
    +	 * Defines whether the producer should fail on errors, or only log them.
    +	 * If this is set to true, then exceptions will be only logged, if set to false,
    +	 * exceptions will be eventually thrown and cause the streaming program to
    +	 * fail (and enter recovery).
    +	 *
    +	 * @param logFailuresOnly The flag to indicate logging-only on exceptions.
    +	 */
    +	public void setLogFailuresOnly(boolean logFailuresOnly) {
    +		this.logFailuresOnly = logFailuresOnly;
    +	}
    +
    +
    +	@Override
    +	public void open(Configuration config) throws Exception {
    +		super.open(config);
    +		// Create a Connection
    +		connection = connectionFactory.createConnection();
    +		connection.start();
    +
    +		// Create a Session
    +		session = connection.createSession(false,
    +			Session.AUTO_ACKNOWLEDGE);
    --- End diff --
    
    As far as I understand AUTO_ACKNOWLEDGE is relevant only for consuming (AMQSource), but
not for a Sink.


> Streaming connector for ActiveMQ
> --------------------------------
>
>                 Key: FLINK-3298
>                 URL: https://issues.apache.org/jira/browse/FLINK-3298
>             Project: Flink
>          Issue Type: New Feature
>          Components: Streaming Connectors
>            Reporter: Mohit Sethi
>            Assignee: Ivan Mushketyk
>            Priority: Minor
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message