1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.rssaggregator.action;
35
36 import java.util.Collection;
37
38 import org.slf4j.Logger;
39 import org.slf4j.LoggerFactory;
40
41 import info.magnolia.context.Context;
42 import info.magnolia.context.MgnlContext;
43 import info.magnolia.i18nsystem.SimpleTranslator;
44 import info.magnolia.module.rssaggregator.RSSAggregator;
45 import info.magnolia.module.rssaggregator.RSSJob;
46 import info.magnolia.module.rssaggregator.command.LaunchSingleRSSCommand;
47 import info.magnolia.ui.api.action.AbstractAction;
48 import info.magnolia.ui.api.action.ActionExecutionException;
49 import info.magnolia.ui.api.context.UiContext;
50 import info.magnolia.ui.vaadin.overlay.MessageStyleTypeEnum;
51
52
53
54
55 public class RunEveryRSSImportAction extends AbstractAction<RunEveryRSSImportActionDefinition> {
56
57 private static final Logger log = LoggerFactory.getLogger(RunEveryRSSImportAction.class);
58
59 private UiContext uiContext;
60 private SimpleTranslator i18n;
61
62 public RunEveryRSSImportAction(RunEveryRSSImportActionDefinition definition, UiContext uiContext, SimpleTranslator i18n) {
63 super(definition);
64 this.uiContext = uiContext;
65 this.i18n = i18n;
66 }
67
68 @Override
69 public void execute() throws ActionExecutionException {
70 try {
71 Context ctx = MgnlContext.getInstance();
72 Collection<RSSJob> jobs = RSSAggregator.getInstance().getJobs().values();
73 for(RSSJob job : jobs){
74 LaunchSingleRSSCommand command = new LaunchSingleRSSCommand(job);
75 try {
76 command.execute(ctx);
77 } catch (Exception e) {
78 log.debug("RSS feed import failed for job: " + job.getName() + e.getMessage(), e);
79 }
80 }
81 uiContext.openNotification(MessageStyleTypeEnum.INFO, true, i18n.translate("rssAggreagtor.actions.feed.import.success"));
82 } catch (Exception e) {
83 uiContext.openNotification(MessageStyleTypeEnum.ERROR, true, i18n.translate("rssAggreagtor.actions.feed.import.failure"));
84 throw new ActionExecutionException(e);
85 }
86 }
87 }