1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.logging.log4j.core.net.mom.jms;
19
20 import java.io.BufferedReader;
21 import java.io.InputStreamReader;
22 import java.nio.charset.Charset;
23
24 import org.apache.logging.log4j.core.net.server.JmsServer;
25
26
27
28
29
30 public class JmsTopicReceiver {
31
32
33
34
35
36
37 public static void main(final String[] args) throws Exception {
38 if (args.length != 4) {
39 usage("Wrong number of arguments.");
40 }
41
42 final String tcfBindingName = args[0];
43 final String topicBindingName = args[1];
44 final String username = args[2];
45 final String password = args[3];
46 final JmsServer server = new JmsServer(tcfBindingName, topicBindingName, username, password);
47 server.start();
48
49 final Charset enc = Charset.defaultCharset();
50 final BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in, enc));
51
52 System.out.println("Type \"exit\" to quit JmsTopicReceiver.");
53 while (true) {
54 final String line = stdin.readLine();
55 if (line == null || line.equalsIgnoreCase("exit")) {
56 System.out.println("Exiting. Kill the application if it does not exit "
57 + "due to daemon threads.");
58 server.stop();
59 return;
60 }
61 }
62 }
63
64 private static void usage(final String msg) {
65 System.err.println(msg);
66 System.err.println("Usage: java " + JmsTopicReceiver.class.getName()
67 + " TopicConnectionFactoryBindingName TopicBindingName username password");
68 System.exit(1);
69 }
70 }