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
40 * Initializing constructor
43 public MemoryConsumerFactory ( MemoryQueue q )
51 * @param consumerGroupId
57 public Consumer getConsumerFor ( String topic, String consumerGroupId, String clientId, int timeoutMs, String remotehost )
59 return new MemoryConsumer ( topic, consumerGroupId );
62 private final MemoryQueue fQueue;
66 * Define nested inner class
69 private class MemoryConsumer implements Consumer
73 * Initializing MemoryConsumer constructor
78 public MemoryConsumer ( String topic, String consumer )
82 fCreateMs = System.currentTimeMillis ();
83 fLastAccessMs = fCreateMs;
89 * return consumer details
91 public Message nextMessage ()
93 return fQueue.get ( fTopic, fConsumer );
96 private final String fTopic;
97 private final String fConsumer;
98 private final long fCreateMs;
99 private long fLastAccessMs;
102 public boolean close() {
103 //Nothing to close/clean up.
109 public void commitOffsets()
111 // ignoring this aspect
116 public long getOffset()
123 * get consumer topic name
125 public String getName ()
127 return fTopic + "/" + fConsumer;
131 public long getCreateTimeMs ()
137 public long getLastAccessMs ()
139 return fLastAccessMs;
145 public void setOffset(long offset) {
146 // TODO Auto-generated method stub
154 public void destroyConsumer(String topic, String consumerGroupId,
156 //No cache for memory consumers, so NOOP
160 public void dropCache ()
162 // nothing to do - there's no cache here
167 * @return ArrayList<MemoryConsumer>
169 public Collection<? extends Consumer> getConsumers ()
171 return new ArrayList<MemoryConsumer> ();
175 public HashMap getConsumerForKafka011(String topic, String consumerGroupName, String consumerId, int timeoutMs,
176 String remotehost) throws UnavailableException, CambriaApiException {
177 // TODO Auto-generated method stub