removed some debug code / use the producer engine now from ServletModuleProducer
[mir.git] / source / mircoders / producer / ContentProducer.java
1 <<<<<<< ContentProducer.java
2 package mircoders.producer;\r
3 \r
4 import java.io.*;\r
5 import java.util.*;\r
6 \r
7 import mir.misc.*;\r
8 import mir.entity.*;\r
9 import mir.producer.*;\r
10 import mir.generator.*;\r
11 \r
12 import mircoders.localizer.*;\r
13 import mircoders.global.*;\r
14 import mircoders.entity.*;\r
15 \r
16 import org.apache.struts.util.MessageResources;\r
17 \r
18 // @todo ML: the file that gets generated should be better configurable\r
19 \r
20 public class ContentProducer implements mir.producer.Producer {\r
21 \r
22   private String generatorIdentifier;\r
23   private String resourceBundle;\r
24 \r
25   private String outputFilePrefix;\r
26   private String outputFilePostfix;\r
27 \r
28   EntityBrowser browser;\r
29 \r
30   public ContentProducer(\r
31     EntityBrowser aBrowser,\r
32     String aGeneratorIdentifier,\r
33     String aResourceBundle,\r
34     String anOutputFilePrefix,\r
35     String anOutputFilePostfix) {\r
36 \r
37     browser = aBrowser;\r
38     generatorIdentifier=aGeneratorIdentifier;\r
39     resourceBundle=aResourceBundle;\r
40     outputFilePrefix=anOutputFilePrefix;\r
41     outputFilePostfix=anOutputFilePostfix;\r
42   }\r
43 \r
44   public void produce( PrintWriter aLogger ) throws ProducerException {\r
45     EntityContent content;\r
46 \r
47     Map configMap = new HashMap();\r
48     Map generationValues = new HashMap();\r
49     Map dataMap = new HashMap();\r
50     String fileName;\r
51 \r
52 \r
53 \r
54                 configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));\r
55                 configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));\r
56     configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));\r
57                 configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));\r
58                 configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));\r
59                 configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));\r
60                 configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));\r
61                 configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));\r
62                 configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));\r
63                 configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));\r
64                 configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));\r
65                 configMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );\r
66     generationValues.put("config", configMap);\r
67 \r
68                 MessageResources messages = MessageResources.getMessageResources(resourceBundle);\r
69                 generationValues.put("lang", new MessageMethodModel(null, messages) );\r
70                 generationValues.put("data", dataMap);\r
71 \r
72 \r
73 \r
74     try {\r
75       Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);\r
76 \r
77       aLogger.println("ContentProducer.produce:<br>");\r
78       aLogger.println("generatorIdentifier = " + generatorIdentifier + "<br>");\r
79 \r
80       while (browser.hasNext()) {\r
81         content = (EntityContent) browser.next();\r
82         dataMap.put("content", content);\r
83 \r
84         String date = content.getValue("date");\r
85 \r
86         fileName = outputFilePrefix + "/" +\r
87                 date.substring(0,4) + "/" + date.substring(4,6) + "/" +\r
88                 content.getValue("id") + outputFilePostfix;\r
89 \r
90         aLogger.println("fileName = " + fileName + "<br>");\r
91 \r
92         try {\r
93           File file = new File(fileName);\r
94 \r
95           File dir = new File(file.getParent());\r
96           if (!dir.exists()){\r
97             dir.mkdirs();\r
98           }\r
99 \r
100           FileWriter fileWriter = new FileWriter(file);\r
101           PrintWriter printWriter = new PrintWriter(fileWriter);\r
102 \r
103           aLogger.println("generating: " + fileName + "<br/>");\r
104 \r
105           generator.generate(printWriter, generationValues, aLogger);\r
106           printWriter.close();\r
107           fileWriter.close();\r
108           content.setProduced(true);\r
109 \r
110           aLogger.println("done generating: " + fileName + "<br/>");\r
111         }\r
112         catch (Exception e) {\r
113           aLogger.println("exception while generating " + fileName + ":<br/>");\r
114           aLogger.println(e.getMessage() + "<br/>");\r
115           e.printStackTrace(aLogger);\r
116           aLogger.flush();\r
117         }\r
118       }\r
119     }\r
120     catch (Exception e) {\r
121       aLogger.println("exception while generating:<br/>");\r
122       aLogger.println(e.getMessage() + "<br/>");\r
123       e.printStackTrace(aLogger);\r
124       aLogger.flush();\r
125     }\r
126 \r
127     aLogger.println("ContentProducer.produce: done<br>");\r
128 \r
129   }\r
130 \r
131 }\r
132 \r
133 =======
134 package mircoders.producer;
135
136 import java.io.*;
137 import java.util.*;
138
139 import mir.misc.*;
140 import mir.entity.*;
141 import mir.producer.*;
142 import mir.generator.*;
143
144 import mircoders.localizer.*;
145 import mircoders.global.*;
146 import mircoders.entity.*;
147
148 import org.apache.struts.util.MessageResources;
149
150 // @todo ML: the file that gets generated should be better configurable
151
152 public class ContentProducer implements mir.producer.Producer {
153
154   private String generatorIdentifier;
155   private String resourceBundle;
156
157   private String outputFilePrefix;
158   private String outputFilePostfix;
159
160   EntityBrowser browser;
161
162   public ContentProducer(
163     EntityBrowser aBrowser,
164     String aGeneratorIdentifier,
165     String aResourceBundle,
166     String anOutputFilePrefix,
167     String anOutputFilePostfix) {
168
169     browser = aBrowser;
170     generatorIdentifier=aGeneratorIdentifier;
171     resourceBundle=aResourceBundle;
172     outputFilePrefix=anOutputFilePrefix;
173     outputFilePostfix=anOutputFilePostfix;
174   }
175
176   public void produce( PrintWriter aLogger ) throws ProducerException {
177     EntityContent content;
178
179     Map configMap = new HashMap();
180     Map generationValues = new HashMap();
181     Map dataMap = new HashMap();
182     String fileName;
183
184
185
186                 configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));
187                 configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));
188     configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));
189                 configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));
190                 configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));
191                 configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));
192                 configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));
193                 configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));
194                 configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));
195                 configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
196                 configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
197                 configMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
198     generationValues.put("config", configMap);
199
200                 MessageResources messages = MessageResources.getMessageResources(resourceBundle);
201                 generationValues.put("lang", new MessageMethodModel(null, messages) );
202                 generationValues.put("data", dataMap);
203
204
205
206     try {
207       Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);
208
209       aLogger.println("ContentProducer.produce:<br>");
210       aLogger.println("generatorIdentifier = " + generatorIdentifier + "<br>");
211
212       while (browser.hasNext()) {
213         content = (EntityContent) browser.next();
214         dataMap.put("content", content);
215
216         String date = content.getValue("date");
217
218
219         fileName = outputFilePrefix + "/" +
220                 date.substring(0,4) + "/" + date.substring(4,6) + "/" +
221                 content.getValue("id") + outputFilePostfix;
222
223         aLogger.println("fileName = " + fileName + "<br>");
224         aLogger.println("Yo1<br>");
225
226         try {
227           File file = new File(fileName);
228           File dir = new File(file.getParent());
229           if (!dir.exists()){
230             dir.mkdirs();
231           }
232           FileWriter fileWriter = new FileWriter(file);
233           PrintWriter printWriter = new PrintWriter(fileWriter);
234
235           aLogger.println("generating: " + fileName + "<br/>");
236
237           aLogger.println("Yo2<br>");
238           generator.generate(printWriter, generationValues, aLogger);
239
240           aLogger.println("Yo3<br>");
241           printWriter.close();
242           fileWriter.close();
243           aLogger.println("Yo4<br>");
244
245           aLogger.println("Yo5<br>");
246
247           content.setProduced(true);
248           aLogger.println("Yo6<br>");
249
250           aLogger.println("done generating: " + fileName + "<br/>");
251         }
252         catch (Exception e) {
253           aLogger.println("exception while generating " + fileName + ":<br/>");
254           aLogger.println(e.getMessage() + "<br/>");
255           e.printStackTrace(aLogger);
256           aLogger.flush();
257         }
258       }
259     }
260     catch (Exception e) {
261       aLogger.println("exception while generating:<br/>");
262       aLogger.println(e.getMessage() + "<br/>");
263       e.printStackTrace(aLogger);
264       aLogger.flush();
265     }
266
267     aLogger.println("ContentProducer.produce: done<br>");
268
269   }
270
271 }
272
273 >>>>>>> 1.1.2.2