1 package org.apache.fulcrum.yaafi.framework.context;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23
24 import org.apache.avalon.framework.context.Context;
25 import org.apache.avalon.framework.context.ContextException;
26 import org.apache.avalon.framework.context.DefaultContext;
27 import org.apache.fulcrum.yaafi.framework.constant.AvalonFortressConstants;
28 import org.apache.fulcrum.yaafi.framework.constant.AvalonMerlinConstants;
29 import org.apache.fulcrum.yaafi.framework.constant.AvalonPhoenixConstants;
30 import org.apache.fulcrum.yaafi.framework.constant.AvalonYaafiConstants;
31 import org.apache.fulcrum.yaafi.framework.util.Validate;
32
33
34
35
36
37
38
39 public class YaafiToAvalonContextMapper
40 {
41
42 private String urnAvalonName;
43
44
45 private ClassLoader urnAvalonClassLoader;
46
47
48
49
50
51
52
53 public YaafiToAvalonContextMapper( String urnAvalonName, ClassLoader urnAvalonClassLoader )
54 {
55 Validate.notEmpty( urnAvalonName, "urnAvalonName" );
56 Validate.notNull( urnAvalonClassLoader, "urnAvalonClassLoader" );
57
58 this.urnAvalonName = urnAvalonName;
59 this.urnAvalonClassLoader = urnAvalonClassLoader;
60 }
61
62
63
64
65 public ClassLoader getUrnAvalonClassLoader()
66 {
67 return urnAvalonClassLoader;
68 }
69
70
71
72
73 public String getUrnAvalonName()
74 {
75 return urnAvalonName;
76 }
77
78
79
80
81
82
83
84
85
86 public DefaultContext mapTo( Context context, String to )
87 throws ContextException
88 {
89 Validate.notNull( context, "context" );
90 Validate.notEmpty( to, "to" );
91
92 if( AvalonPhoenixConstants.AVALON_CONTAINER_PHOENIX.equals(to) )
93 {
94 return mapToPhoenix(context);
95
96 }
97 else if( AvalonFortressConstants.AVALON_CONTAINER_FORTESS.equals(to) )
98 {
99 return mapToFortress(context);
100
101 }
102 else if( AvalonMerlinConstants.AVALON_CONTAINER_MERLIN.equals(to) )
103 {
104 return mapToMerlin(context);
105 }
106 else if( AvalonYaafiConstants.AVALON_CONTAINER_YAAFI.equals(to) )
107 {
108 return mapToYaafi(context);
109 }
110 else
111 {
112 String msg = "Don't know the following container type : " + to;
113 throw new IllegalArgumentException(msg);
114 }
115 }
116
117
118
119
120
121
122
123
124 private DefaultContext mapToPhoenix( Context context )
125 throws ContextException
126 {
127 DefaultContext result = createDefaultContext(context);
128
129 String urnAvalonPartition = (String) context.get(AvalonYaafiConstants.URN_AVALON_PARTITION);
130 File urnAvalonHome = (File) context.get(AvalonYaafiConstants.URN_AVALON_HOME);
131 String urnAvalonName = this.getUrnAvalonName();
132
133 result.put(AvalonPhoenixConstants.PHOENIX_APP_NAME,urnAvalonPartition);
134 result.put(AvalonPhoenixConstants.PHOENIX_APP_HOME,urnAvalonHome);
135 result.put(AvalonPhoenixConstants.PHOENIX_BLOCK_NAME,urnAvalonName);
136
137 return result;
138 }
139
140
141
142
143
144
145
146
147 private DefaultContext mapToFortress( Context context )
148 throws ContextException
149 {
150 DefaultContext result = createDefaultContext(context);
151
152 String urnAvalonPartition = (String) context.get(AvalonYaafiConstants.URN_AVALON_PARTITION);
153 File urnAvalonHome = (File) context.get(AvalonYaafiConstants.URN_AVALON_HOME);
154 File urnAvalonTemp = (File) context.get(AvalonYaafiConstants.URN_AVALON_TEMP);
155 String urnAvalonName = this.getUrnAvalonName();
156
157 result.put(AvalonFortressConstants.FORTRESS_COMPONENT_ID,urnAvalonPartition);
158 result.put(AvalonFortressConstants.FORTRESS_COMPONENT_LOGGER,urnAvalonName);
159 result.put(AvalonFortressConstants.FORTRESS_CONTEXT_ROOT,urnAvalonHome);
160 result.put(AvalonFortressConstants.FORTRESS_IMPL_WORKDIR,urnAvalonTemp);
161
162 return result;
163 }
164
165
166
167
168
169
170
171
172
173 private DefaultContext mapToMerlin( Context context )
174 throws ContextException
175 {
176 DefaultContext result = createDefaultContext(context);
177
178 String urnAvalonPartition = (String) context.get(AvalonYaafiConstants.URN_AVALON_PARTITION);
179 File urnAvalonHome = (File) context.get(AvalonYaafiConstants.URN_AVALON_HOME);
180 File urnAvalonTemp = (File) context.get(AvalonYaafiConstants.URN_AVALON_TEMP);
181 String urnAvalonName = this.getUrnAvalonName();
182 ClassLoader urnAvalonClossLoader = this.getUrnAvalonClassLoader();
183
184 result.put(AvalonMerlinConstants.URN_AVALON_PARTITION,urnAvalonPartition);
185 result.put(AvalonMerlinConstants.URN_AVALON_NAME,urnAvalonName);
186 result.put(AvalonMerlinConstants.URN_AVALON_HOME,urnAvalonHome);
187 result.put(AvalonMerlinConstants.URN_AVALON_TEMP,urnAvalonTemp);
188 result.put(AvalonMerlinConstants.URN_AVALON_CLASSLOADER,urnAvalonClossLoader);
189
190 return result;
191 }
192
193
194
195
196
197
198
199
200 private DefaultContext mapToYaafi( Context context )
201 throws ContextException
202 {
203 DefaultContext result = createDefaultContext(context);
204
205 String urnAvalonPartition = (String) context.get(AvalonYaafiConstants.URN_AVALON_PARTITION);
206 File urnAvalonHome = (File) context.get(AvalonYaafiConstants.URN_AVALON_HOME);
207 File urnAvalonTemp = (File) context.get(AvalonYaafiConstants.URN_AVALON_TEMP);
208 String urnAvalonName = this.getUrnAvalonName();
209 ClassLoader urnAvalonClossLoader = this.getUrnAvalonClassLoader();
210
211 result.put(AvalonYaafiConstants.URN_AVALON_PARTITION,urnAvalonPartition);
212 result.put(AvalonYaafiConstants.URN_AVALON_NAME,urnAvalonName);
213 result.put(AvalonYaafiConstants.URN_AVALON_HOME,urnAvalonHome);
214 result.put(AvalonYaafiConstants.URN_AVALON_TEMP,urnAvalonTemp);
215 result.put(AvalonYaafiConstants.URN_AVALON_CLASSLOADER,urnAvalonClossLoader);
216 result.put(AvalonYaafiConstants.COMPONENT_APP_ROOT,urnAvalonHome.getAbsolutePath());
217
218 return result;
219 }
220
221
222
223
224 private DefaultContext createDefaultContext(Context context)
225 {
226 return new DefaultContext(context);
227 }
228 }