1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.hack23.cia.service.component.agent.impl.worldbank.workers;
20
21 import java.util.List;
22
23 import javax.jms.JMSException;
24 import javax.jms.Message;
25 import javax.jms.MessageListener;
26 import javax.jms.ObjectMessage;
27
28 import org.slf4j.Logger;
29 import org.slf4j.LoggerFactory;
30 import org.springframework.beans.factory.annotation.Autowired;
31 import org.springframework.stereotype.Service;
32 import org.springframework.transaction.annotation.Transactional;
33
34 import com.hack23.cia.service.component.agent.impl.worldbank.workers.data.WorldbankUpdateService;
35 import com.hack23.cia.service.external.worldbank.api.DataFailureException;
36 import com.hack23.cia.service.external.worldbank.api.WorldBankDataApi;
37
38
39
40
41 @Service("worldbankDataWorkConsumerImpl")
42 @Transactional
43 final class WorldbankDataWorkConsumerImpl implements
44 MessageListener {
45
46
47 private static final Logger LOGGER = LoggerFactory
48 .getLogger(WorldbankDataWorkConsumerImpl.class);
49
50
51 @Autowired
52 private WorldbankUpdateService updateService;
53
54 @Autowired
55 private WorldBankDataApi worldbankDataApi;
56
57
58
59
60 public WorldbankDataWorkConsumerImpl() {
61 super();
62 }
63
64
65 @Override
66 public void onMessage(final Message message) {
67 try {
68 final List<String> countryIndicator= (List<String>) ((ObjectMessage) message).getObject();
69 updateService.updateData(worldbankDataApi.getData(countryIndicator.get(0), countryIndicator.get(1)));
70 } catch (final DataFailureException | RuntimeException | JMSException e) {
71 LOGGER.warn("Error loading worldbank data:" , e);
72 }
73 }
74 }