root/Weektaken2/Weektaak3/ESB/src/hanze/ga/wt3/main/ESBServer.java
| 357 | 366 | ||
|---|---|---|---|
1 | package hanze.ga.wt3.main; | 1 | package hanze.ga.wt3.main; |
2 | 2 | ||
3 | import hanze.ga.wt3.channels.App2Q; | ||
4 | import hanze.ga.wt3.channels.Channel; | 3 | import hanze.ga.wt3.channels.Channel; |
5 | import hanze.ga.wt3.channels.ESBQueue; | 4 | import hanze.ga.wt3.channels.ESBQueue; |
6 | import hanze.ga.wt3.channels.Q2App; | ||
7 | import hanze.ga.wt3.xml.ESBDOMParser; | 5 | import hanze.ga.wt3.xml.ESBDOMParser; |
8 | 6 | ||
9 | import java.util.HashMap; | 7 | import java.util.HashMap; |
... | ... | ||
14 | new ESBServer("C:/Users/Martijn/workspace/ESB/src/hanze/ga/wt3/xml/configuration.xml"); | 12 | new ESBServer("C:/Users/Martijn/workspace/ESB/src/hanze/ga/wt3/xml/configuration.xml"); |
15 | } | 13 | } |
16 | 14 | ||
17 | private HashMap<String, Channel> esbChannels; | 15 | public static HashMap<String, Channel> esbChannels; |
18 | 16 | ||
19 | private HashMap<String, ESBQueue> esbQueues; | 17 | private HashMap<String, ESBQueue> esbQueues; |
20 | 18 | ||
19 | @SuppressWarnings("static-access") | ||
21 | public ESBServer(String configFilePath) { | 20 | public ESBServer(String configFilePath) { |
22 | 21 | ||
23 | // Bouw ESB aan de hand van config | 22 | // Bouw ESB aan de hand van config |
... | ... | ||
34 | System.out.println(this.esbQueues.size() + " Queues"); | 33 | System.out.println(this.esbQueues.size() + " Queues"); |
35 | System.out.println("------------------------------------"); | 34 | System.out.println("------------------------------------"); |
36 | 35 | ||
37 | // Zorgt dat Channels de juiste Queue's hebben | ||
38 | this.linkQueueToChannel(); | ||
39 | |||
40 | // Start threads van channels | 36 | // Start threads van channels |
41 | this.initChannels(); | 37 | this.initChannels(); |
42 | } | 38 | } |
... | ... | ||
50 | } | 46 | } |
51 | } | 47 | } |
52 | 48 | ||
53 | /** | ||
54 | * Zorgt ervoor dat een Channel de juiste bron- en bestemmingsQueue heeft. | ||
55 | */ | ||
56 | private void linkQueueToChannel() { | ||
57 | for (ESBQueue esbQueue : esbQueues.values()) { | ||
58 | |||
59 | // Link receiver | ||
60 | Channel receiver = esbQueue.getqReceiverChannel(); | ||
61 | if (receiver instanceof App2Q) { | ||
62 | ((App2Q) receiver).setDestinationQueue(esbQueue); | ||
63 | } else if (receiver instanceof Q2App) { | ||
64 | ((Q2App) receiver).setSourceQueue(esbQueue); | ||
65 | } | ||
66 | |||
67 | // Link sender | ||
68 | Channel sender = esbQueue.getqSenderChannel(); | ||
69 | if (sender instanceof App2Q) { | ||
70 | ((App2Q) sender).setDestinationQueue(esbQueue); | ||
71 | } else if (sender instanceof Q2App) { | ||
72 | ((Q2App) sender).setSourceQueue(esbQueue); | ||
73 | } | ||
74 | } | ||
75 | } | ||
76 | } | 49 | } |
Download diff