From 14c4881830193e8075242bef62e41cfabc50d587 Mon Sep 17 00:00:00 2001 From: zapata Date: Sat, 1 Jun 2002 16:48:12 +0000 Subject: [PATCH] producer performance upgrades in the form of entity caching, and preliminary bolivian producer config. --- source/mir/entity/adapter/EntityAdapter.java | 2 +- .../entity/adapter/EntityAdapterDefinition.java | 4 +- .../mir/entity/adapter/EntityIteratorAdapter.java | 2 +- source/mir/generator/FreemarkerGenerator.java | 10 +- source/mir/producer/EntityListProducerNode.java | 18 +- source/mir/util/CachingRewindableIterator.java | 45 ++++ .../entity/adapter/ContentAdapterDefinition.java | 20 +- .../mircoders/producer/GeneratingProducerNode.java | 18 +- .../BoliviaProducerLocalizer.java | 298 ++++++++++++--------- .../indymedia.nl/IndyNLProducerLocalizer.java | 2 + 10 files changed, 266 insertions(+), 153 deletions(-) create mode 100755 source/mir/util/CachingRewindableIterator.java diff --git a/source/mir/entity/adapter/EntityAdapter.java b/source/mir/entity/adapter/EntityAdapter.java index 74a481e9..9e3aa879 100755 --- a/source/mir/entity/adapter/EntityAdapter.java +++ b/source/mir/entity/adapter/EntityAdapter.java @@ -17,7 +17,7 @@ public class EntityAdapter implements Map { public boolean containsKey(Object aKey) { try { if (aKey instanceof String) - return entity.hasValueForField((String) aKey) + return entity.hasValueForField((String) aKey) || definition.hasCalculatedField((String) aKey) || entity.getFields().contains(aKey); } diff --git a/source/mir/entity/adapter/EntityAdapterDefinition.java b/source/mir/entity/adapter/EntityAdapterDefinition.java index 9a888fb2..01c8b1ba 100755 --- a/source/mir/entity/adapter/EntityAdapterDefinition.java +++ b/source/mir/entity/adapter/EntityAdapterDefinition.java @@ -131,9 +131,9 @@ public class EntityAdapterDefinition { static protected Object getRelation(StorageObject aStorageObject, String aWhereClause, String anOrderByClause, EntityAdapterDefinition aDefinition) { try { return - new EntityIteratorAdapter( + new CachingRewindableIterator( new EntityIteratorAdapter( new EntityBrowser( aStorageObject, aWhereClause, anOrderByClause, -1), - aDefinition); + aDefinition)); } catch (Throwable t) { throw new RuntimeException(t.getMessage()); diff --git a/source/mir/entity/adapter/EntityIteratorAdapter.java b/source/mir/entity/adapter/EntityIteratorAdapter.java index fe967ab2..202314d0 100755 --- a/source/mir/entity/adapter/EntityIteratorAdapter.java +++ b/source/mir/entity/adapter/EntityIteratorAdapter.java @@ -37,4 +37,4 @@ public class EntityIteratorAdapter implements RewindableIterator { public void rewind() { iterator.rewind(); }; -} \ No newline at end of file +} diff --git a/source/mir/generator/FreemarkerGenerator.java b/source/mir/generator/FreemarkerGenerator.java index 4329ee0b..460f24af 100755 --- a/source/mir/generator/FreemarkerGenerator.java +++ b/source/mir/generator/FreemarkerGenerator.java @@ -16,9 +16,13 @@ public class FreemarkerGenerator implements Generator { } public void generate(PrintWriter anOutputWriter, Map aValues, PrintWriter aLogger) throws GeneratorException { - aLogger.println("processing...
"); - template.process((TemplateModelRoot) makeMapAdapter(aValues), anOutputWriter); - aLogger.println("processed...
"); + try { + template.process((TemplateModelRoot) makeMapAdapter(aValues), anOutputWriter); + } + catch (Throwable t) { + aLogger.println("Exception occurred: "+t.getMessage()); + t.printStackTrace(aLogger); + } } private static TemplateScalarModel makeStringAdapter(String aString) { diff --git a/source/mir/producer/EntityListProducerNode.java b/source/mir/producer/EntityListProducerNode.java index bda62413..39e3c1a2 100755 --- a/source/mir/producer/EntityListProducerNode.java +++ b/source/mir/producer/EntityListProducerNode.java @@ -34,14 +34,16 @@ public class EntityListProducerNode extends ProducerNodeDecorator { public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure { try { aValueMap.put(key, - new EntityIteratorAdapter( - storage, - ParameterExpander.expandExpression( aValueMap, whereClause ), - ParameterExpander.expandExpression( aValueMap, orderByClause ), - 20, - definition, - limit, - skip ) + new CachingRewindableIterator( + new EntityIteratorAdapter( + storage, + ParameterExpander.expandExpression( aValueMap, whereClause ), + ParameterExpander.expandExpression( aValueMap, orderByClause ), + 20, + definition, + limit, + skip ) + ) ); super.produce(aValueMap, aVerb, aLogger); } diff --git a/source/mir/util/CachingRewindableIterator.java b/source/mir/util/CachingRewindableIterator.java new file mode 100755 index 00000000..77be4ba4 --- /dev/null +++ b/source/mir/util/CachingRewindableIterator.java @@ -0,0 +1,45 @@ +package mir.util; + +import java.util.*; + +import java.util.*; +import mir.storage.*; +import mir.util.*; +import mir.entity.*; + +public class CachingRewindableIterator implements RewindableIterator { + private Iterator master; + private List cachedItems; + private int iterationPosition; + + public CachingRewindableIterator(Iterator anIterator) { + master = anIterator; + cachedItems = new Vector(); + iterationPosition = 0; + } + + public boolean hasNext() { + return iterationPosition=cachedItems.size()) { + cachedItems.add(master.next()); + } + + result = cachedItems.get(iterationPosition); + iterationPosition++; + + return result; + } + + public void remove() { + throw new UnsupportedOperationException(); + } + + public void rewind() { + iterationPosition=0; + }; +} \ No newline at end of file diff --git a/source/mircoders/entity/adapter/ContentAdapterDefinition.java b/source/mircoders/entity/adapter/ContentAdapterDefinition.java index d2e390c2..1d038a17 100755 --- a/source/mircoders/entity/adapter/ContentAdapterDefinition.java +++ b/source/mircoders/entity/adapter/ContentAdapterDefinition.java @@ -5,6 +5,7 @@ import mir.storage.*; import mir.entity.*; import mir.entity.adapter.*; import mir.media.*; +import mir.util.*; import mircoders.storage.*; import mircoders.global.*; import mircoders.entity.*; @@ -33,6 +34,8 @@ public class ContentAdapterDefinition extends EntityAdapterDefinition { try { addCalculatedField("to_media_images", new ContentToMediaField( DatabaseImages.getInstance(), ImagesAdapterDefinition.getInstance())); + addCalculatedField("to_uploaded_media", new ContentToMediaField( + DatabaseUploadedMedia.getInstance(), UploadedMediaAdapterDefinition.getInstance())); addCalculatedField("to_media_audio", new ContentToMediaField( DatabaseAudio.getInstance(), AudioAdapterDefinition.getInstance())); addCalculatedField("to_media_video", new ContentToMediaField( @@ -122,30 +125,33 @@ public class ContentAdapterDefinition extends EntityAdapterDefinition { private class ContentToIconField implements CalculatedField { public Object getValue(EntityAdapter anEntityAdapter) { - EntityUploadedMedia uploadedMedia; +// EntityUploadedMedia uploadedMedia; + EntityAdapter media; Entity mediaType; - EntityBrowser browser; + RewindableIterator iterator; Map result; MirMedia mediaHandler; String tinyIcon; String iconAlt; - try { - browser = + iterator = (RewindableIterator) anEntityAdapter.get("to_uploaded_media"); + iterator.rewind(); +/* browser = new EntityBrowser( DatabaseUploadedMedia.getInstance(), "exists (select * from content_x_media where content_id="+anEntityAdapter.get("id")+" and media_id=id)", "id", 1); +*/ tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyText"); iconAlt = "Text"; - if (browser.hasNext()) { - uploadedMedia = (EntityUploadedMedia) browser.next(); + if (iterator.hasNext()) { + media = (EntityAdapter) iterator.next(); - mediaType = uploadedMedia.getMediaType(); + mediaType = ((EntityMedia) media.getEntity()).getMediaType(); mediaHandler = MediaHelper.getHandler( mediaType ); if (mediaHandler.isVideo()) { diff --git a/source/mircoders/producer/GeneratingProducerNode.java b/source/mircoders/producer/GeneratingProducerNode.java index 0e25977d..1ab617b1 100755 --- a/source/mircoders/producer/GeneratingProducerNode.java +++ b/source/mircoders/producer/GeneratingProducerNode.java @@ -23,24 +23,28 @@ public class GeneratingProducerNode implements ProducerNode { String generatorIdentifier; String destinationIdentifier; + long startTime; + long endTime; + + startTime = System.currentTimeMillis(); try { + destinationIdentifier = ParameterExpander.expandExpression( aValueMap, destinationExpression ); generatorIdentifier = ParameterExpander.expandExpression( aValueMap, generatorExpression ); aLogger.println("Generating " + generatorIdentifier + " into " + destinationIdentifier); + aLogger.flush(); printWriter = MirGlobal.localizer().producerTool().openWriter( destinationIdentifier ); generator = MirGlobal.localizer().generators().makeGenerator( generatorIdentifier ); generator.generate(printWriter, aValueMap, aLogger); MirGlobal.localizer().producerTool().closeWriter( printWriter ); - aLogger.println("Done generating"); - } - catch (Throwable t) { - aLogger.println("Error while generating: " + t.getMessage()); - t.printStackTrace(aLogger); - - throw new ProducerFailure(t.getMessage(), t); + } + catch (Throwable t) { } + endTime = System.currentTimeMillis(); + aLogger.println(" Time: " + (endTime-startTime) + " ms
"); + aLogger.flush(); } public Set buildVerbSet() { diff --git a/source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java b/source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java index d0f0e83c..3d3774dd 100755 --- a/source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java +++ b/source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java @@ -11,37 +11,29 @@ import mircoders.entity.adapter.*; public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { - protected void setupContentFactory(CompositeProducerNode aNode) { - } - - protected void setupStartPageFactory(CompositeProducerNode aNode) { - } - - protected void setupSynchronizationFactory(CompositeProducerNode aNode) { - } - - protected void setupStaticFactory(CompositeProducerNode aNode) { - } - - protected void setupTopicsFactory(CompositeProducerNode aNode) { - } - -/* protected void setupContentFactory(CompositeProducerFactory aContentFactory) { - + protected void setupContentFactory(CompositeProducerNode aProducerNode) { EntityEnumeratingProducerNode contentNode = null; + aProducerNode.clear(); try { contentNode = new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), new CompositeProducerNode( new ProducerNode[] { new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", - new ResourceBundleProducerNode("lang", "producer_${language.code}", - new GeneratingProducerNode( - "/producer/bolivia.indymedia.org/article.template", - "${config.storageRoot}/${language.code}/articles/${content.date.year}/${content.date.month}/${content.id}.shtml" - ) + new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", + new CompositeProducerNode( new ProducerNode[] { + new GeneratingProducerNode( + "/producer/bolivia.indymedia.org/article.template", + "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml" + ), + new FileDateSettingProducerNode( + "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml", + "content.date.date" + ) + } ) ) - ) + ), + new ContentMarkingProducerNode( "content") } ) ); } @@ -51,127 +43,185 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { contentNode.addVerb( "all", "is_published='1'", "" ); contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" ); - aContentFactory.addFactory( new NodedProducerFactory( contentNode ) ); - + aProducerNode.addSubNode( contentNode ); + } -// public EntityEnumeratingProducerNode(String aKey, StorageObject aStorage, EntityAdapterDefinition aDefinition, ProducerNode aSubNode) { + protected void setupStartPageFactory(CompositeProducerNode aProducerNode) { + aProducerNode.clear(); + try { + aProducerNode.addSubNode( + new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0, + new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + "", "code", 10, 0, + new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0, + new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0, + new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(), + "", "webdb_create desc", 5, 0, + new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", + new GeneratingProducerNode( + "/producer/bolivia.indymedia.org/startpage.template", + "${config.storageRoot}/${language.code}/index.shtml" + ) + ) + ) + ) + ) + ) + ) + ) + ); + + aProducerNode.addSubNode( + new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c'", "", + new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.newswire} and exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 40, 0, + new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + "", "code", 10, 0, + new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.startspecial} and "+ + "exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 1, 0, + new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.feature} and exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 10, 0, + new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(), + "", "webdb_create desc", 5, 0, + new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", + new GeneratingProducerNode( + "/producer/bolivia.indymedia.org/startpage.template", + "${config.storageRoot}/${language.code}/${city.filename}/index.shtml" + ) + ) + ) + ) + ) + ) + ) + ) + ) + ); + } + catch (Throwable t) { + } + } -// aContentFactory.addFactory( -// new ContentProducerFactory( -// "producer/content.template", -// "bundles.admin", -// MirGlobal.getConfigProperty("Producer.StorageRoot") + "/content/${contentyear}/${contentmonth}/${contentid}.inc", -// Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize")))); + protected void setupStaticFactory(CompositeProducerNode aProducerNode) { + aProducerNode.clear(); -// aContentFactory.addFactory( -// new ContentProducerFactory( -// "producer/article.template", -// "bundles.admin", -// MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/${contentyear}/${contentmonth}/${contentid}.shtml", -// Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize")))); + try { + aProducerNode.addSubNode( + new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + "", "code", 10, 0, + new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", + new GeneratingProducerNode( + "/producer/bolivia.indymedia.org/navigation.template", + "${config.storageRoot}/${language.code}/navigation.inc" + ) + ) + ) + ) + ); + } + catch (Throwable t) { + } } - protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) { - ProducerNode topicNode = null; + protected void setupTopicsFactory(CompositeProducerNode aProducerNode) { + aProducerNode.clear(); + + EntityBatchingProducerNode topicPageNode = null; try { - topicNode = - new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance() - "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 20, 10, 0, +// topic pages: + topicPageNode = + new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 6, 5, 0, new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "code", 10, 0, new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", new ResourceBundleProducerNode("lang", "producer_${language.code}", new GeneratingProducerNode( - "/producer/bolivia.indymedia.org/startpage.template", - "${config.storageRoot}/${language.code}/index.shtml" + "/producer/bolivia.indymedia.org/topic.template", + "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml" + ) + ) + ) + ), + new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + "", "code", 10, 0, + new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new ResourceBundleProducerNode("lang", "producer_${language.code}", + new GeneratingProducerNode( + "/producer/bolivia.indymedia.org/topicnavigation.template", + "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc" + ) + ) + ) + ) + ); + topicPageNode.addVerb("all", -1); + topicPageNode.addVerb("new", 3); + + aProducerNode.addSubNode( + new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "", + new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0, + topicPageNode + ) + ) + ); + +// topic pages per city: + topicPageNode = + new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.newswire} and " + + "id in (select content_id from content_x_topic where topic_id = ${topic.id}) and " + + "id in (select content_id from content_x_topic where topic_id = ${city.id})", "date asc, webdb_create asc", 6, 5, 0, + new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + "", "code", 10, 0, + new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new ResourceBundleProducerNode("lang", "producer_${language.code}", + new GeneratingProducerNode( + "/producer/bolivia.indymedia.org/topic.template", + "${config.storageRoot}/${language.code}/${city.filename}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml" + ) + ) + ) + ), + new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + "", "code", 10, 0, + new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new ResourceBundleProducerNode("lang", "producer_${language.code}", + new GeneratingProducerNode( + "/producer/bolivia.indymedia.org/topicnavigation.template", + "${config.storageRoot}/${language.code}/${city.filename}/${topic.filename}/${topic.filename}navigation.inc" ) ) ) ) ); - topicNode.addVerb("all", -1); - topicNode.addVerb("new", 3); + topicPageNode.addVerb("all", -1); + topicPageNode.addVerb("new", 3); + + aProducerNode.addSubNode( + new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c'", "", + new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "((main_url is null) or main_url<>'c')", "", + new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + "is_published='1' and to_article_type = ${articletype.topicspecial} and "+ + "id in (select content_id from content_x_topic where topic_id = ${topic.id}) and"+ + "id in (select content_id from content_x_topic where topic_id = ${city.id})", "date, webdb_create", 1, 0, + topicPageNode + ) + ) + ) + ); } catch (Throwable t) { } - aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) ); - - - - aStartPageFactory.addFactory( - new TopicStartPageProducerFactory( - "producer/citystart.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start${filename}.shtml", - MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"), - 0)); - - aStartPageFactory.addFactory( - new TopicStartPageProducerFactory( - "producer/newswire.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire${filename}.inc", - 0, - MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire"))); - - aStartPageFactory.addFactory( - new StartPageProducerFactory( - "producer/start.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml", - MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"), - 0)); - - aStartPageFactory.addFactory( - new StartPageProducerFactory( - "producer/newswire.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc", - 0, - MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire"))); - - } - - protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) { - aStaticFactory.addFactory( - new StaticProducerFactory( - "producer/nav.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/nav.inc")); - - aStaticFactory.addFactory( - new StaticProducerFactory( - "producer/top.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/top.inc")); - - aStaticFactory.addFactory( - new StaticProducerFactory( - "producer/bottom.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/bottom.inc")); - - aStaticFactory.addFactory( - new StaticProducerFactory( - "producer/style.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/style.css")); - - aStaticFactory.addFactory( - new StaticProducerFactory( - "producer/articlepre.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/articlepre.shtml")); - - aStaticFactory.addFactory( - new StaticProducerFactory( - "producer/articlepost.template", - "bundles.admin", - MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/articlepost.shtml")); - } -*/ - } diff --git a/source/mirlocal/indymedia.nl/IndyNLProducerLocalizer.java b/source/mirlocal/indymedia.nl/IndyNLProducerLocalizer.java index 4bc33ad1..8d45559f 100755 --- a/source/mirlocal/indymedia.nl/IndyNLProducerLocalizer.java +++ b/source/mirlocal/indymedia.nl/IndyNLProducerLocalizer.java @@ -69,6 +69,7 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(), "", "webdb_create desc", 5, 0, new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "", + new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new AssignmentProducerNode( "staticinclude", "1", new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template", new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template", @@ -81,6 +82,7 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { ) ))))) ) + ) ) ) ) -- 2.11.0