1 /*******************************************************************************
2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 * ============LICENSE_END=========================================================
19 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21 *******************************************************************************/
22 package com.att.dmf.mr.backends.memory;
24 import java.util.ArrayList;
25 import java.util.Collection;
26 import java.util.HashMap;
28 import com.att.dmf.mr.CambriaApiException;
29 import com.att.dmf.mr.backends.Consumer;
30 import com.att.dmf.mr.backends.ConsumerFactory;
33 * @author anowarul.islam
36 public class MemoryConsumerFactory implements ConsumerFactory
39 private final MemoryQueue fQueue;
43 * Initializing constructor
46 public MemoryConsumerFactory ( MemoryQueue q )
54 * @param consumerGroupId
60 public Consumer getConsumerFor ( String topic, String consumerGroupId, String clientId, int timeoutMs, String remotehost )
62 return new MemoryConsumer ( topic, consumerGroupId );
67 * Define nested inner class
70 private class MemoryConsumer implements Consumer
73 private final String fTopic;
74 private final String fConsumer;
75 private final long fCreateMs;
76 private long fLastAccessMs;
80 * Initializing MemoryConsumer constructor
85 public MemoryConsumer ( String topic, String consumer )
89 fCreateMs = System.currentTimeMillis ();
90 fLastAccessMs = fCreateMs;
96 * return consumer details
98 public Message nextMessage ()
100 return fQueue.get ( fTopic, fConsumer );
104 public boolean close() {
105 //Nothing to close/clean up.
111 public void commitOffsets()
113 // ignoring this aspect
118 public long getOffset()
125 * get consumer topic name
127 public String getName ()
129 return fTopic + "/" + fConsumer;
133 public long getCreateTimeMs ()
139 public long getLastAccessMs ()
141 return fLastAccessMs;
147 public void setOffset(long offset) {
148 // TODO Auto-generated method stub
156 public void destroyConsumer(String topic, String consumerGroupId,
158 //No cache for memory consumers, so NOOP
162 public void dropCache ()
164 // nothing to do - there's no cache here
169 * @return ArrayList<MemoryConsumer>
171 public Collection<? extends Consumer> getConsumers ()
173 return new ArrayList<> ();
177 public HashMap getConsumerForKafka011(String topic, String consumerGroupName, String consumerId, int timeoutMs,
178 String remotehost) throws UnavailableException, CambriaApiException {
179 // TODO Auto-generated method stub