testing, testing...
[mir.git] / source / mirlocal / indymedia.nl / IndyNLProducerLocalizer.java
1 package mirlocal.indymedia.nl;
2
3 import java.util.*;
4 import mir.producer.*;
5 import mircoders.global.*;
6 import mircoders.localizer.*;
7 import mircoders.localizer.basic.*;
8 import mircoders.producer.*;
9 import mircoders.storage.*;
10 import mircoders.entity.adapter.*;
11
12 public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer {
13
14   protected void setupContentFactory(CompositeProducerFactory aContentFactory) {
15     EntityEnumeratingProducerNode contentNode = null;
16
17     try {
18       contentNode =
19           new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
20             new CompositeProducerNode( new ProducerNode[] {
21               new GeneratingProducerNode(
22                   "/producer/indymedia.nl/content.template",
23                   "${config.storageRoot}/content/${content.date.year}/${content.date.month}/${content.id}.inc"
24               ),
25               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
26                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
27                     new GeneratingProducerNode(
28                         "/producer/indymedia.nl/article.template",
29                         "${config.storageRoot}/${language.code}/${content.date.year}/${content.date.month}/${content.id}.shtml"
30                     )
31                 )
32               )
33             } )
34           );
35     }
36     catch (Throwable t) {
37     }
38
39     contentNode.addVerb( "all", "is_published='1'", "" );
40     contentNode.addVerb( "all", "is_published='1' and is_produced='f'", "" );
41
42     aContentFactory.addFactory( new NodedProducerFactory( contentNode ) );
43
44
45 /*
46     aContentFactory.addFactory(
47       new ContentProducerFactory(
48       "producer/content.template",
49       "bundles.admin",
50       MirGlobal.getConfigProperty("Producer.StorageRoot") + "/content/${contentyear}/${contentmonth}/${contentid}.inc",
51       Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
52
53     aContentFactory.addFactory(
54       new ContentProducerFactory(
55       "producer/article.template",
56       "bundles.admin",
57       MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/${contentyear}/${contentmonth}/${contentid}.shtml",
58       Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
59  */
60   }
61
62   protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
63     ProducerNode startPageNode = null;
64
65     try {
66       startPageNode =
67             new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
68                     "is_published='1' and to_article_type = 1", "date desc, webdb_create desc", 40,
69               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
70                             "", "code", 10,
71                     new CompositeProducerNode( new ProducerNode[] {
72                         new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
73                           new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
74                               new GeneratingProducerNode(
75                                   "/producer/indymedia.nl/newswire.template",
76                                   "${config.storageRoot}/${language.code}/newswire.inc"
77                               )
78                           )
79                         ),
80                         new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
81                             new AssignmentProducerNode( "staticinclude", "1",
82                               new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
83                               new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
84                               new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
85                               new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
86                               new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
87                                 new GeneratingProducerNode(
88                                     "/producer/indymedia.nl/start.template",
89                                     "${config.storageRoot}/index.shtml"
90                                 )
91                               )))))
92                             )
93                          )
94                     })
95               )
96             );
97     }
98     catch (Throwable t) {
99     }
100
101     aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
102 /*
103     aStartPageFactory.addFactory(
104       new StartPageProducerFactory(
105           "producer/start.template",
106           "bundles.admin",
107           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
108           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
109           0));
110
111     aStartPageFactory.addFactory(
112       new StartPageProducerFactory(
113           "producer/newswire.template",
114           "bundles.admin",
115           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
116           0,
117           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
118 */
119   }
120
121   protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
122     if(MirGlobal.getConfigBooleanProperty("Rsync")){
123       aSynchronizationFactory.addFactory(
124         new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
125     }
126     else {
127       NullProducerFactory nullFactory = new NullProducerFactory();
128       nullFactory.addVerb("run");
129       aSynchronizationFactory.addFactory(nullFactory);
130     }
131   }
132
133   protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
134     ProducerNode staticNode = null;
135
136     try {
137       staticNode =
138           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
139                   "", "code", 10,
140               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
141                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
142                   new CompositeProducerNode( new ProducerNode[] {
143                     new GeneratingProducerNode(
144                         "/producer/indymedia.nl/nav.template",
145                         "${config.storageRoot}/${language.code}/nav.inc"
146                     ),
147                     new GeneratingProducerNode(
148                         "/producer/indymedia.nl/top.template",
149                         "${config.storageRoot}/${language.code}/top.inc"
150                     ),
151                     new GeneratingProducerNode(
152                         "/producer/indymedia.nl/bottom.template",
153                         "${config.storageRoot}/${language.code}/bottom.inc"
154                     ),
155                     new GeneratingProducerNode(
156                         "/producer/indymedia.nl/style.template",
157                         "${config.storageRoot}/${language.code}/style.css"
158                     ),
159                     new GeneratingProducerNode(
160                         "/producer/indymedia.nl/top.template",
161                         "${config.storageRoot}/${language.code}/top.inc"
162                     ),
163                     new GeneratingProducerNode(
164                         "/producer/indymedia.nl/articlepre.template",
165                         "${config.storageRoot}/${language.code}/articlepre.shtml"
166                     ),
167                     new GeneratingProducerNode(
168                         "/producer/indymedia.nl/articlepost.template",
169                         "${config.storageRoot}/${language.code}/articlepost.shtml"
170                     ),
171                     new AssignmentProducerNode( "staticinclude", "0",
172                       new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
173                       new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
174                       new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
175                       new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
176                       new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
177                         new GeneratingProducerNode(
178                             "/producer/indymedia.nl/start.template",
179                             "${config.storageRoot}/${language.code}/start.shtml"
180                         )
181                       )))))
182                     ),
183                     new AssignmentProducerNode( "staticinclude", "0",
184                       new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
185                       new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
186                       new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
187                       new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
188                       new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/try/features.inc",
189                         new GeneratingProducerNode(
190                             "/producer/indymedia.nl/start.template",
191                             "${config.storageRoot}/try/${language.code}/start.shtml"
192                         )
193                       )))))
194                     )
195                   } )
196                 )
197               )
198           );
199     }
200     catch (Throwable t) {
201     }
202
203     aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
204   }
205
206   protected void setupFactories(Map aFactoriesMap ) {
207     super.setupFactories(aFactoriesMap);
208
209     ProducerNode node = null;
210
211     try {
212       node =
213           new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
214                   "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
215             new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
216                       "", "webdb_create desc", 5,
217               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
218                         "", "code", 10,
219                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
220                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
221                       new GeneratingProducerNode(
222                           "/producer/indymedia.nl/features.template",
223                           "${config.storageRoot}/${language.code}/features.inc"
224                       )
225                   )
226                 )
227               )
228             )
229           );
230     }
231     catch (Throwable t) {
232     }
233
234     aFactoriesMap.put("features", new NodedProducerFactory( node ) );
235
236     try {
237       node =
238           new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
239                   "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
240             new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
241                       "", "webdb_create desc", 5,
242               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
243                         "", "code", 10,
244                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
245                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
246                       new GeneratingProducerNode(
247                           "/producer/indymedia.nl/features.template",
248                           "${config.storageRoot}/${language.code}/try/features.inc"
249                       )
250                   )
251                 )
252               )
253             )
254           );
255     }
256     catch (Throwable t) {
257     }
258     aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
259
260 /*
261     aStartPageFactory.addFactory(
262       new StartPageProducerFactory(
263           "producer/start.template",
264           "bundles.admin",
265           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
266           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
267           0));
268
269     aStartPageFactory.addFactory(
270       new StartPageProducerFactory(
271           "producer/newswire.template",
272           "bundles.admin",
273           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
274           0,
275           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
276 */
277   }
278 }