root/Weektaken2/Weektaak3/ESB/src/hanze/ga/wt3/main/ESBServer.java

357366
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
}