1
2
3
4
5
6
7
8
9
10 package org.apache.commons.messenger;
11
12 import org.apache.commons.digester.Digester;
13
14
15
16
17
18
19
20 public class MessengerDigester extends Digester {
21
22
23 private String messengerManagerClass = "org.apache.commons.messenger.MessengerManager";
24 private String messengerClass = "org.apache.commons.messenger.DefaultMessenger";
25 private String xaMessengerClass = "org.apache.commons.messenger.XAMessenger";
26 private String sessionFactory = "org.apache.commons.messenger.SessionFactory";
27 private String connectionFactory = "org.apache.commons.messenger.DummyConnectionFactory";
28 private String jndiSessionFactory = "org.apache.commons.messenger.JNDISessionFactory";
29
30
31 public MessengerDigester() {
32 }
33
34
35
36
37
38
39
40 protected void configure() {
41 if (configured) {
42 return;
43 }
44 else {
45 configured = true;
46 }
47
48 addObjectCreate( "manager", messengerManagerClass, "className" );
49 addSetProperties( "manager" );
50
51 String path = "manager/messenger";
52 addObjectCreate( path, messengerClass, "className" );
53 addSetProperties( path );
54
55 addSetNext( path, "addMessenger",
56 "org.apache.commons.messenger.Messenger"
57 );
58
59 addMessengerPaths(path);
60
61 path = "manager/xaMessenger";
62 addObjectCreate( path, xaMessengerClass, "className" );
63 addSetProperties( path );
64
65 addSetNext( path, "addMessenger",
66 "org.apache.commons.messenger.Messenger"
67 );
68
69 addMessengerPaths(path);
70 }
71
72 protected void addMessengerPaths(String root) {
73
74 String path = root + "/factory";
75 addObjectCreate( path, sessionFactory, "className" );
76 addSetProperties( path );
77 addSetNext( path, "setSessionFactory",
78 "org.apache.commons.messenger.SessionFactory"
79 );
80 addCallMethod( path + "/property", "addProperty", 2);
81 addCallParam( path + "/property/name", 0 );
82 addCallParam( path + "/property/value", 1 );
83
84 path = root + "/factory/connectionFactory";
85 addObjectCreate( path, connectionFactory, "className" );
86 addSetProperties( path );
87 addSetNext( path, "setConnectionFactory",
88 "javax.jms.ConnectionFactory"
89 );
90
91 path = root + "/jndi";
92 addObjectCreate( path, jndiSessionFactory, "className" );
93 addSetProperties( path );
94
95 addSetNext( path, "setSessionFactory",
96 "org.apache.commons.messenger.SessionFactory"
97 );
98
99 addCallMethod( path + "/property", "addProperty", 2);
100 addCallParam( path + "/property/name", 0 );
101 addCallParam( path + "/property/value", 1 );
102 }
103 }