From 6fd35b8a2528f3b0f6ab510a95a20bdc42edc971 Mon Sep 17 00:00:00 2001 From: zapata Date: Mon, 4 Nov 2002 20:32:45 +0000 Subject: [PATCH] some misc. maintenance --- source/mir/entity/adapter/EntityAdapterModel.java | 73 +++++++------ .../mir/entity/adapter/EntityIteratorAdapter.java | 15 ++- .../producer/EntityEnumeratingProducerNode.java | 2 +- source/mir/producer/GeneratingProducerNode.java | 2 - .../reader/DefaultProducerNodeBuilders.java | 2 +- .../mir/producer/reader/ProducerNodeBuilder.java | 5 +- .../reader/ProducerNodeBuilderLibrary.java | 9 +- source/mircoders/global/ProducerEngine.java | 2 - .../localizer/MirCachingLocalizerDecorator.java | 12 +-- .../mircoders/localizer/MirDataModelLocalizer.java | 64 ++++++------ .../mircoders/localizer/MirGeneratorLocalizer.java | 8 +- source/mircoders/localizer/MirLocalizer.java | 12 +-- ...ocalizerException.java => MirLocalizerExc.java} | 4 +- .../localizer/MirProducerAssistantLocalizer.java | 4 +- .../mircoders/localizer/MirProducerLocalizer.java | 2 +- .../basic/MirBasicAdminInterfaceLocalizer.java | 6 +- .../basic/MirBasicGeneratorLocalizer.java | 8 +- .../localizer/basic/MirBasicLocalizer.java | 4 +- .../localizer/basic/MirBasicProducerLocalizer.java | 21 ++-- .../producer/MediaGeneratingProducerNode.java | 114 +++++---------------- .../reader/SupplementalProducerNodeBuilders.java | 76 +++++++++----- .../mircoders/servlet/ServletModuleProducer.java | 1 + 22 files changed, 211 insertions(+), 235 deletions(-) rename source/mircoders/localizer/{MirLocalizerException.java => MirLocalizerExc.java} (94%) diff --git a/source/mir/entity/adapter/EntityAdapterModel.java b/source/mir/entity/adapter/EntityAdapterModel.java index 154b1611..586200ec 100755 --- a/source/mir/entity/adapter/EntityAdapterModel.java +++ b/source/mir/entity/adapter/EntityAdapterModel.java @@ -1,34 +1,34 @@ -/* - * Copyright (C) 2001, 2002 The Mir-coders group - * - * This file is part of Mir. - * - * Mir is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Mir is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Mir; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * In addition, as a special exception, The Mir-coders gives permission to link - * the code of this program with the com.oreilly.servlet library, any library - * licensed under the Apache Software License, The Sun (tm) Java Advanced - * Imaging library (JAI), The Sun JIMI library (or with modified versions of - * the above that use the same license as the above), and distribute linked - * combinations including the two. You must obey the GNU General Public - * License in all respects for all of the code used other than the above - * mentioned libraries. If you modify this file, you may extend this exception - * to your version of the file, but you are not obligated to do so. If you do - * not wish to do so, delete this exception statement from your version. - */ - +/* + * Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Mir is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with the com.oreilly.servlet library, any library + * licensed under the Apache Software License, The Sun (tm) Java Advanced + * Imaging library (JAI), The Sun JIMI library (or with modified versions of + * the above that use the same license as the above), and distribute linked + * combinations including the two. You must obey the GNU General Public + * License in all respects for all of the code used other than the above + * mentioned libraries. If you modify this file, you may extend this exception + * to your version of the file, but you are not obligated to do so. If you do + * not wish to do so, delete this exception statement from your version. + */ + package mir.entity.adapter; import java.util.*; @@ -43,12 +43,9 @@ public class EntityAdapterModel { entityAdapterMappings = new HashMap(); } - public EntityAdapter makeEntityAdapter( String aName, Entity anEntity ) { + public EntityAdapter makeEntityAdapter( String aName, Entity anEntity ) throws EntityAdapterExc { Mapping mapping = getMappingForName( aName ); - if (mapping == null ) - throw new RuntimeException( "Adapter definition with name '" + aName + "' not present in model" ); - return mapping.getDefinition().makeEntityAdapter( anEntity, this ); } @@ -56,7 +53,10 @@ public class EntityAdapterModel { entityAdapterMappings.put( aName, new Mapping( aStorage, aDefinition ) ); } - public Mapping getMappingForName( String aName ) { + public Mapping getMappingForName( String aName ) throws EntityAdapterExc { + if (!entityAdapterMappings.containsKey(aName)) + throw new EntityAdapterExc( "'" + aName + "' not present in model" ); + return (Mapping) entityAdapterMappings.get( aName ); } @@ -80,4 +80,3 @@ public class EntityAdapterModel { } - \ No newline at end of file diff --git a/source/mir/entity/adapter/EntityIteratorAdapter.java b/source/mir/entity/adapter/EntityIteratorAdapter.java index 438020a5..9ff1be9e 100755 --- a/source/mir/entity/adapter/EntityIteratorAdapter.java +++ b/source/mir/entity/adapter/EntityIteratorAdapter.java @@ -47,11 +47,15 @@ public class EntityIteratorAdapter implements RewindableIterator { definitionName = aDefinitionName; } - public EntityIteratorAdapter(String aWhereClause, String anOrderByClause, int aBatchSize, EntityAdapterModel aModel, String aDefinitionName ) throws StorageObjectException { + public EntityIteratorAdapter(String aWhereClause, String anOrderByClause, + int aBatchSize, EntityAdapterModel aModel, String aDefinitionName ) + throws StorageObjectException, EntityAdapterExc { this(new EntityBrowser(aModel.getMappingForName(aDefinitionName).getStorage(), aWhereClause, anOrderByClause, aBatchSize), aModel, aDefinitionName); } - public EntityIteratorAdapter(String aWhereClause, String anOrderByClause, int aBatchSize, EntityAdapterModel aModel, String aDefinitionName, int aLimit, int aSkip) throws StorageObjectException { + public EntityIteratorAdapter(String aWhereClause, String anOrderByClause, + int aBatchSize, EntityAdapterModel aModel, String aDefinitionName, + int aLimit, int aSkip) throws StorageObjectException, EntityAdapterExc { this(new EntityBrowser(aModel.getMappingForName(aDefinitionName).getStorage(), aWhereClause, anOrderByClause, aBatchSize, aLimit, aSkip), aModel, aDefinitionName); } @@ -60,7 +64,12 @@ public class EntityIteratorAdapter implements RewindableIterator { } public Object next() { - return model.makeEntityAdapter(definitionName, (Entity) iterator.next()); + try { + return model.makeEntityAdapter(definitionName, (Entity) iterator.next()); + } + catch (EntityAdapterExc e) { + return null; + } } public void remove() { diff --git a/source/mir/producer/EntityEnumeratingProducerNode.java b/source/mir/producer/EntityEnumeratingProducerNode.java index 4b16de64..85a5a9dc 100755 --- a/source/mir/producer/EntityEnumeratingProducerNode.java +++ b/source/mir/producer/EntityEnumeratingProducerNode.java @@ -86,7 +86,7 @@ public class EntityEnumeratingProducerNode extends ProducerNodeDecorator { } } catch (Throwable t) { - throw new ProducerFailure(t.getMessage(), t); + aLogger.println("Exception occurred inside an EntityEnumeratingProducerNode: " + t.getMessage()); } }; } \ No newline at end of file diff --git a/source/mir/producer/GeneratingProducerNode.java b/source/mir/producer/GeneratingProducerNode.java index ba3dc05f..ba9a34fc 100755 --- a/source/mir/producer/GeneratingProducerNode.java +++ b/source/mir/producer/GeneratingProducerNode.java @@ -82,8 +82,6 @@ public class GeneratingProducerNode implements ProducerNode { } catch (Throwable t) { aLogger.println(" error while generating: " + t.getClass().getName() + ": " + t.getMessage()); - t.printStackTrace(aLogger); - aLogger.flush(); } endTime = System.currentTimeMillis(); diff --git a/source/mir/producer/reader/DefaultProducerNodeBuilders.java b/source/mir/producer/reader/DefaultProducerNodeBuilders.java index 3c28b999..b8617d3a 100755 --- a/source/mir/producer/reader/DefaultProducerNodeBuilders.java +++ b/source/mir/producer/reader/DefaultProducerNodeBuilders.java @@ -41,7 +41,7 @@ public class DefaultProducerNodeBuilders { public static void registerBuilders(ProducerNodeBuilderLibrary aBuilderLibrary, EntityAdapterModel aModel, Generator.GeneratorLibrary aGeneratorLibrary, - WriterEngine aWriterEngine, String aSourceBasePath, String aDestinationBasePath) { + WriterEngine aWriterEngine, String aSourceBasePath, String aDestinationBasePath) throws ProducerConfigExc { aBuilderLibrary.registerBuilder("Set", EvaluatedAssignmentProducerNodeBuilder.class); aBuilderLibrary.registerBuilder("Define", ExpandedAssignmentProducerNodeBuilder.class); diff --git a/source/mir/producer/reader/ProducerNodeBuilder.java b/source/mir/producer/reader/ProducerNodeBuilder.java index 0b45d6ca..c374db58 100755 --- a/source/mir/producer/reader/ProducerNodeBuilder.java +++ b/source/mir/producer/reader/ProducerNodeBuilder.java @@ -47,7 +47,10 @@ public interface ProducerNodeBuilder { public class DefaultProducerNodeBuilderFactory implements ProducerNodeBuilderFactory { private Class producerNodeBuilderClass; - public DefaultProducerNodeBuilderFactory(Class aProducerNodeBuilderClass) { + public DefaultProducerNodeBuilderFactory(Class aProducerNodeBuilderClass) throws ProducerConfigExc { + if (!ProducerNodeBuilder.class.isAssignableFrom(aProducerNodeBuilderClass)) + throw new ProducerConfigExc("supplied class is not a ProducerNodeBuilder class but a " + aProducerNodeBuilderClass.getClass().getName()); + producerNodeBuilderClass = aProducerNodeBuilderClass; } diff --git a/source/mir/producer/reader/ProducerNodeBuilderLibrary.java b/source/mir/producer/reader/ProducerNodeBuilderLibrary.java index 0bbd15f3..8480589a 100755 --- a/source/mir/producer/reader/ProducerNodeBuilderLibrary.java +++ b/source/mir/producer/reader/ProducerNodeBuilderLibrary.java @@ -41,8 +41,13 @@ public class ProducerNodeBuilderLibrary { nodeBuilders = new HashMap(); } - public void registerBuilder(String aName, Class aProducerNodeBuilderClass) { - registerFactory(aName, new ProducerNodeBuilder.DefaultProducerNodeBuilderFactory( aProducerNodeBuilderClass )); + public void registerBuilder(String aName, Class aProducerNodeBuilderClass) throws ProducerConfigExc, ProducerConfigFailure { + try { + registerFactory(aName, new ProducerNodeBuilder.DefaultProducerNodeBuilderFactory( aProducerNodeBuilderClass )); + } + catch (Throwable t) { + throw new ProducerConfigFailure("Error while registering builder '"+aName+"': "+t.getMessage(), t); + } } public void registerFactory(String aName, ProducerNodeBuilder.ProducerNodeBuilderFactory aFactory) { diff --git a/source/mircoders/global/ProducerEngine.java b/source/mircoders/global/ProducerEngine.java index 20bbc5e3..4748dae4 100755 --- a/source/mircoders/global/ProducerEngine.java +++ b/source/mircoders/global/ProducerEngine.java @@ -60,8 +60,6 @@ public class ProducerEngine { public void addJob(String aProducerFactory, String aVerb) { producerJobQueue.appendJob(new ProducerJob(aProducerFactory, aVerb)); - log.println(aProducerFactory+"."+aVerb+" added to queue"); - log.flush(); } public void addTask(ProducerTask aTask) { diff --git a/source/mircoders/localizer/MirCachingLocalizerDecorator.java b/source/mircoders/localizer/MirCachingLocalizerDecorator.java index c7651bd7..0c4a8252 100755 --- a/source/mircoders/localizer/MirCachingLocalizerDecorator.java +++ b/source/mircoders/localizer/MirCachingLocalizerDecorator.java @@ -44,7 +44,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { localizer = aLocalizer; } - public MirProducerLocalizer producers() throws MirLocalizerFailure, MirLocalizerException { + public MirProducerLocalizer producers() throws MirLocalizerFailure, MirLocalizerExc { if (producerLocalizer==null) { producerLocalizer = localizer.producers(); } @@ -52,7 +52,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { return producerLocalizer; } - public MirGeneratorLocalizer generators() throws MirLocalizerFailure, MirLocalizerException { + public MirGeneratorLocalizer generators() throws MirLocalizerFailure, MirLocalizerExc { if (generatorLocalizer==null) { generatorLocalizer = localizer.generators(); } @@ -60,7 +60,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { return generatorLocalizer; } - public MirOpenPostingLocalizer openPostings() throws MirLocalizerFailure, MirLocalizerException { + public MirOpenPostingLocalizer openPostings() throws MirLocalizerFailure, MirLocalizerExc { if (openPostingsLocalizer==null) { openPostingsLocalizer = localizer.openPostings(); } @@ -68,7 +68,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { return openPostingsLocalizer; } - public MirProducerAssistantLocalizer producerAssistant() throws MirLocalizerFailure, MirLocalizerException { + public MirProducerAssistantLocalizer producerAssistant() throws MirLocalizerFailure, MirLocalizerExc { if (producerAssistantLocalizer==null) { producerAssistantLocalizer = localizer.producerAssistant(); } @@ -76,7 +76,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { return producerAssistantLocalizer; } - public MirDataModelLocalizer dataModel() throws MirLocalizerFailure, MirLocalizerException { + public MirDataModelLocalizer dataModel() throws MirLocalizerFailure, MirLocalizerExc { if (dataModelLocalizer==null) { dataModelLocalizer = localizer.dataModel(); } @@ -84,7 +84,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { return dataModelLocalizer; } - public MirAdminInterfaceLocalizer adminInterface() throws MirLocalizerFailure, MirLocalizerException { + public MirAdminInterfaceLocalizer adminInterface() throws MirLocalizerFailure, MirLocalizerExc { if (adminInterfaceLocalizer==null) { adminInterfaceLocalizer = localizer.adminInterface(); } diff --git a/source/mircoders/localizer/MirDataModelLocalizer.java b/source/mircoders/localizer/MirDataModelLocalizer.java index 374012fe..cb8d87e1 100755 --- a/source/mircoders/localizer/MirDataModelLocalizer.java +++ b/source/mircoders/localizer/MirDataModelLocalizer.java @@ -1,38 +1,38 @@ -/* - * Copyright (C) 2001, 2002 The Mir-coders group - * - * This file is part of Mir. - * - * Mir is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Mir is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Mir; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * In addition, as a special exception, The Mir-coders gives permission to link - * the code of this program with the com.oreilly.servlet library, any library - * licensed under the Apache Software License, The Sun (tm) Java Advanced - * Imaging library (JAI), The Sun JIMI library (or with modified versions of - * the above that use the same license as the above), and distribute linked - * combinations including the two. You must obey the GNU General Public - * License in all respects for all of the code used other than the above - * mentioned libraries. If you modify this file, you may extend this exception - * to your version of the file, but you are not obligated to do so. If you do - * not wish to do so, delete this exception statement from your version. - */ - +/* + * Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Mir is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with the com.oreilly.servlet library, any library + * licensed under the Apache Software License, The Sun (tm) Java Advanced + * Imaging library (JAI), The Sun JIMI library (or with modified versions of + * the above that use the same license as the above), and distribute linked + * combinations including the two. You must obey the GNU General Public + * License in all respects for all of the code used other than the above + * mentioned libraries. If you modify this file, you may extend this exception + * to your version of the file, but you are not obligated to do so. If you do + * not wish to do so, delete this exception statement from your version. + */ + package mircoders.localizer; import mir.entity.adapter.*; public interface MirDataModelLocalizer { - public EntityAdapterModel adapterModel() throws MirLocalizerException, MirLocalizerFailure; + public EntityAdapterModel adapterModel() throws MirLocalizerExc, MirLocalizerFailure; } \ No newline at end of file diff --git a/source/mircoders/localizer/MirGeneratorLocalizer.java b/source/mircoders/localizer/MirGeneratorLocalizer.java index b6a92900..7cd27cfe 100755 --- a/source/mircoders/localizer/MirGeneratorLocalizer.java +++ b/source/mircoders/localizer/MirGeneratorLocalizer.java @@ -34,9 +34,9 @@ package mircoders.localizer; import mir.generator.*; public interface MirGeneratorLocalizer { - public WriterEngine makeWriterEngine() throws MirLocalizerException, MirLocalizerFailure; + public WriterEngine makeWriterEngine() throws MirLocalizerExc, MirLocalizerFailure; - public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure; - public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure; - public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure; + public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure; + public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure; + public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure; } \ No newline at end of file diff --git a/source/mircoders/localizer/MirLocalizer.java b/source/mircoders/localizer/MirLocalizer.java index 18e76e3b..4d487ae7 100755 --- a/source/mircoders/localizer/MirLocalizer.java +++ b/source/mircoders/localizer/MirLocalizer.java @@ -32,11 +32,11 @@ package mircoders.localizer; public interface MirLocalizer { - public MirProducerLocalizer producers() throws MirLocalizerFailure, MirLocalizerException; - public MirAdminInterfaceLocalizer adminInterface() throws MirLocalizerFailure, MirLocalizerException; - public MirOpenPostingLocalizer openPostings() throws MirLocalizerFailure, MirLocalizerException; - public MirProducerAssistantLocalizer producerAssistant() throws MirLocalizerFailure, MirLocalizerException; - public MirGeneratorLocalizer generators() throws MirLocalizerFailure, MirLocalizerException; - public MirDataModelLocalizer dataModel() throws MirLocalizerFailure, MirLocalizerException; + public MirProducerLocalizer producers() throws MirLocalizerFailure, MirLocalizerExc; + public MirAdminInterfaceLocalizer adminInterface() throws MirLocalizerFailure, MirLocalizerExc; + public MirOpenPostingLocalizer openPostings() throws MirLocalizerFailure, MirLocalizerExc; + public MirProducerAssistantLocalizer producerAssistant() throws MirLocalizerFailure, MirLocalizerExc; + public MirGeneratorLocalizer generators() throws MirLocalizerFailure, MirLocalizerExc; + public MirDataModelLocalizer dataModel() throws MirLocalizerFailure, MirLocalizerExc; } \ No newline at end of file diff --git a/source/mircoders/localizer/MirLocalizerException.java b/source/mircoders/localizer/MirLocalizerExc.java similarity index 94% rename from source/mircoders/localizer/MirLocalizerException.java rename to source/mircoders/localizer/MirLocalizerExc.java index 55fcb4fd..927a9519 100755 --- a/source/mircoders/localizer/MirLocalizerException.java +++ b/source/mircoders/localizer/MirLocalizerExc.java @@ -33,9 +33,9 @@ package mircoders.localizer; import multex.Exc; -public class MirLocalizerException extends Exc { +public class MirLocalizerExc extends Exc { - public MirLocalizerException(String aMessage) { + public MirLocalizerExc(String aMessage) { super(aMessage); } } \ No newline at end of file diff --git a/source/mircoders/localizer/MirProducerAssistantLocalizer.java b/source/mircoders/localizer/MirProducerAssistantLocalizer.java index 0d8b6969..86044d5f 100755 --- a/source/mircoders/localizer/MirProducerAssistantLocalizer.java +++ b/source/mircoders/localizer/MirProducerAssistantLocalizer.java @@ -35,6 +35,6 @@ import java.util.*; import java.io.*; public interface MirProducerAssistantLocalizer { - public void initializeGenerationValueSet(Map aValueSet) throws MirLocalizerException, MirLocalizerFailure; - public String filterText(String aText) throws MirLocalizerException, MirLocalizerFailure; + public void initializeGenerationValueSet(Map aValueSet) throws MirLocalizerExc, MirLocalizerFailure; + public String filterText(String aText) throws MirLocalizerExc, MirLocalizerFailure; } diff --git a/source/mircoders/localizer/MirProducerLocalizer.java b/source/mircoders/localizer/MirProducerLocalizer.java index 475fb4ea..8434e68d 100755 --- a/source/mircoders/localizer/MirProducerLocalizer.java +++ b/source/mircoders/localizer/MirProducerLocalizer.java @@ -35,7 +35,7 @@ import java.util.List; import mir.producer.ProducerFactory; public interface MirProducerLocalizer { - public List factories() throws MirLocalizerException, MirLocalizerFailure; + public List factories() throws MirLocalizerExc, MirLocalizerFailure; public ProducerFactory getFactoryForName(String aName); public void produceAllNew(); } diff --git a/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java b/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java index e680a6c1..a5f9f2cd 100755 --- a/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicAdminInterfaceLocalizer.java @@ -44,7 +44,7 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz private Map simpleCommentOperations; private Map simpleArticleOperations; - public MirBasicAdminInterfaceLocalizer() throws MirLocalizerFailure, MirLocalizerException { + public MirBasicAdminInterfaceLocalizer() throws MirLocalizerFailure, MirLocalizerExc { simpleCommentOperations = new HashMap(); simpleArticleOperations = new HashMap(); @@ -60,12 +60,12 @@ public class MirBasicAdminInterfaceLocalizer implements MirAdminInterfaceLocaliz return simpleArticleOperations; }; - public void buildSimpleCommentOperations(Map anOperations) throws MirLocalizerFailure, MirLocalizerException { + public void buildSimpleCommentOperations(Map anOperations) throws MirLocalizerFailure, MirLocalizerExc { anOperations.put("hide", new HideCommentOperation()); anOperations.put("unhide", new UnhideCommentOperation()); }; - public void buildSimpleArticleOperations(Map anOperations) throws MirLocalizerFailure, MirLocalizerException { + public void buildSimpleArticleOperations(Map anOperations) throws MirLocalizerFailure, MirLocalizerExc { anOperations.put("hide", new HideArticleOperation()); anOperations.put("unhide", new UnhideArticleOperation()); }; diff --git a/source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java b/source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java index 5ee08d96..4bccee09 100755 --- a/source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java @@ -51,7 +51,7 @@ public class MirBasicGeneratorLocalizer implements MirGeneratorLocalizer { aRepository.registerLibraryFactory("freemarker", new FreemarkerGenerator.FreemarkerGeneratorLibraryFactory( MirGlobal.getConfigProperty("Home") ) ); } - public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure { + public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { try { return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.Producer.GeneratorLibrary")); } @@ -60,7 +60,7 @@ public class MirBasicGeneratorLocalizer implements MirGeneratorLocalizer { } }; - public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure { + public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { try { return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.Admin.GeneratorLibrary")); } @@ -69,7 +69,7 @@ public class MirBasicGeneratorLocalizer implements MirGeneratorLocalizer { } }; - public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure { + public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure { try { return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.OpenPosting.GeneratorLibrary")); } @@ -78,7 +78,7 @@ public class MirBasicGeneratorLocalizer implements MirGeneratorLocalizer { } }; - public WriterEngine makeWriterEngine() throws MirLocalizerException, MirLocalizerFailure { + public WriterEngine makeWriterEngine() throws MirLocalizerExc, MirLocalizerFailure { return new MirBasicWriterEngine(MirGlobal.getConfigProperty("Mir.DefaultEncoding")); } } diff --git a/source/mircoders/localizer/basic/MirBasicLocalizer.java b/source/mircoders/localizer/basic/MirBasicLocalizer.java index 94ecca0b..0422ec0c 100755 --- a/source/mircoders/localizer/basic/MirBasicLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicLocalizer.java @@ -38,7 +38,7 @@ import mircoders.localizer.*; public class MirBasicLocalizer implements MirLocalizer { protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile")); - public MirProducerLocalizer producers() throws MirLocalizerFailure, MirLocalizerException { + public MirProducerLocalizer producers() throws MirLocalizerFailure, MirLocalizerExc { return new MirBasicProducerLocalizer(); } @@ -58,7 +58,7 @@ public class MirBasicLocalizer implements MirLocalizer { return new MirBasicDataModelLocalizer(); }; - public MirAdminInterfaceLocalizer adminInterface() throws MirLocalizerFailure, MirLocalizerException { + public MirAdminInterfaceLocalizer adminInterface() throws MirLocalizerFailure, MirLocalizerExc { return new MirBasicAdminInterfaceLocalizer(); }; diff --git a/source/mircoders/localizer/basic/MirBasicProducerLocalizer.java b/source/mircoders/localizer/basic/MirBasicProducerLocalizer.java index 0c0f9cec..c1be7244 100755 --- a/source/mircoders/localizer/basic/MirBasicProducerLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicProducerLocalizer.java @@ -77,7 +77,7 @@ public class MirBasicProducerLocalizer implements MirProducerLocalizer { } } - public List factories() throws MirLocalizerException { + public List factories() throws MirLocalizerExc { if (fileMonitor==null || producerFactories == null || fileMonitor.hasChanged()) { try { List newProducers = new Vector(); @@ -103,14 +103,19 @@ public class MirBasicProducerLocalizer implements MirProducerLocalizer { return producerFactories; }; - protected void setupProducerNodeBuilderLibrary(ProducerNodeBuilderLibrary aLibrary) { - DefaultProducerNodeBuilders.registerBuilders( - aLibrary, model, generatorLibrary, writerEngine, - MirGlobal.getConfigProperty("Home"), MirGlobal.getConfigProperty("Producer.StorageRoot")); - SupplementalProducerNodeBuilders.registerBuilders(aLibrary, model); + protected void setupProducerNodeBuilderLibrary(ProducerNodeBuilderLibrary aLibrary) throws MirLocalizerFailure { + try { + DefaultProducerNodeBuilders.registerBuilders( + aLibrary, model, generatorLibrary, writerEngine, + MirGlobal.getConfigProperty("Home"), MirGlobal.getConfigProperty("Producer.StorageRoot")); + SupplementalProducerNodeBuilders.registerBuilders(aLibrary, model); + } + catch (Throwable t) { + throw new MirLocalizerFailure(t.getMessage(), t); + } } - protected void setupFactories(List aFactories, FileMonitor aFileMonitor) throws MirLocalizerException, MirLocalizerFailure { + protected void setupFactories(List aFactories, FileMonitor aFileMonitor) throws MirLocalizerExc, MirLocalizerFailure { ProducerConfigReader reader; ProducerNodeBuilderLibrary library = new ProducerNodeBuilderLibrary(); setupProducerNodeBuilderLibrary(library); @@ -128,7 +133,7 @@ public class MirBasicProducerLocalizer implements MirProducerLocalizer { setupFactories(aFactories); } - protected void setupFactories(List aFactories) throws MirLocalizerException, MirLocalizerFailure { + protected void setupFactories(List aFactories) throws MirLocalizerExc, MirLocalizerFailure { CompositeProducerNode node; try { diff --git a/source/mircoders/producer/MediaGeneratingProducerNode.java b/source/mircoders/producer/MediaGeneratingProducerNode.java index e76831bd..93ffab97 100755 --- a/source/mircoders/producer/MediaGeneratingProducerNode.java +++ b/source/mircoders/producer/MediaGeneratingProducerNode.java @@ -52,118 +52,54 @@ public class MediaGeneratingProducerNode implements ProducerNode { mediaEntityKey = aMediaEntityKey; } - public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure { + public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure, ProducerExc { Object data; Entity entity; - Entity currentMediaType; + EntityUploadedMedia uploadedMediaEntity = null; + Entity mediaType = null; MirMedia currentMediaHandler; try { + data = ParameterExpander.findValueForKey( aValueMap, mediaEntityKey ); if (!(data instanceof EntityAdapter)) { - throw new ProducerFailure("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an EntityAdapter, but an " + data.getClass().getName(), null); + throw new ProducerExc("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an EntityAdapter, but an " + data.getClass().getName()); } entity = ((EntityAdapter) data).getEntity(); if (! (entity instanceof EntityUploadedMedia)) { - throw new ProducerFailure("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an uploaded media EntityAdapter, but a " + entity.getClass().getName() + " adapter", null); + throw new ProducerExc("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an uploaded media EntityAdapter, but a " + entity.getClass().getName() + " adapter"); } - currentMediaType = DatabaseUploadedMedia.getInstance().getMediaType(entity); + uploadedMediaEntity = (EntityUploadedMedia) entity; + + mediaType = DatabaseUploadedMedia.getInstance().getMediaType(entity); - currentMediaHandler = MediaHelper.getHandler( currentMediaType ); - currentMediaHandler.produce(entity,currentMediaType); + currentMediaHandler = MediaHelper.getHandler( mediaType ); + currentMediaHandler.produce(entity, mediaType); entity.setValueForProperty("publish_server", currentMediaHandler.getPublishHost()); entity.setValueForProperty("icon_is_produced", "1"); entity.setValueForProperty("is_produced", "1"); entity.update(); - } - catch (Throwable t) { - aLogger.println("Error while generating media: " + t.getMessage()); - t.printStackTrace(aLogger); - throw new ProducerFailure(t.getMessage(), t); + aLogger.println("media with id "+uploadedMediaEntity.getValue("id") + ", mediaType " + mediaType.getValue("name") + " successfully produced"); } - } -} - - -/* - - - abstract Database getStorage() throws StorageObjectException; - - public void handle(PrintWriter htmlout, EntityUsers user, boolean force, - boolean sync) throws StorageObjectException, ModuleException { - handle(htmlout,user,force,sync,null); - } - - public void handle(PrintWriter htmlout,EntityUsers user,boolean force, - boolean sync, String id) throws StorageObjectException, ModuleException - { - long sessionConnectTime = 0; - long startTime = (new java.util.Date()).getTime(); - String whereClause; - String orderBy; - Entity currentMedia; - MirMedia currentMediaHandler; - EntityList batchEntityList; - - int contentBatchsize = - Integer.parseInt(MirConfig.getProp("Producer.Content.Batchsize")); - orderBy = "date desc, webdb_lastchange desc"; - - // get batch of non-produced medias, that are to be published - whereClause="is_published='1'"; - if (id!= null) { - whereClause += " and id="+id; - // optimization to avoid select count(*).. - contentBatchsize = -1; - } - if (force==false) whereClause += " and is_produced='0'"; - - batchEntityList = getStorage().selectByWhereClause(whereClause, - orderBy, 0, contentBatchsize); - - while (batchEntityList != null) { - for(int i=0;i failed!: "+e.toString()); - e.printStackTrace(htmlout); + catch (Throwable t) { + String message = "Error while generating media"; + try { + if (uploadedMediaEntity!=null) + message = message + " with id "+uploadedMediaEntity.getValue("id"); + if (mediaType!=null) { + message = message + ", mediaType " + mediaType.getValue("name"); } } - - // if next batch get it... - if (batchEntityList.hasNextBatch()){ - batchEntityList = uploadedMediaModule.getByWhereClause(whereClause, - orderBy, batchEntityList.getNextBatch(),contentBatchsize); - } else { - batchEntityList=null; + catch (Throwable s) { } + + message = message + ": " + t.getMessage(); + aLogger.println(message); } - // Finish - sessionConnectTime = new java.util.Date().getTime() - startTime; - logHTML(htmlout, "Producer.Media finished: " + sessionConnectTime + " ms."); } -*/ +} + diff --git a/source/mircoders/producer/reader/SupplementalProducerNodeBuilders.java b/source/mircoders/producer/reader/SupplementalProducerNodeBuilders.java index 2630d0d0..ff7d0f15 100755 --- a/source/mircoders/producer/reader/SupplementalProducerNodeBuilders.java +++ b/source/mircoders/producer/reader/SupplementalProducerNodeBuilders.java @@ -41,22 +41,26 @@ import mircoders.producer.*; public class SupplementalProducerNodeBuilders { - public static void registerBuilders(ProducerNodeBuilderLibrary aBuilderLibrary, EntityAdapterModel aModel) { + public static void registerBuilders(ProducerNodeBuilderLibrary aBuilderLibrary, EntityAdapterModel aModel) throws ProducerConfigExc { aBuilderLibrary.registerBuilder("ModifyContent", ContentModifyingProducerNodeBuilder.class); - aBuilderLibrary.registerBuilder("MarkContent", ContentMartkingProducerNodeBuilder.class); + aBuilderLibrary.registerBuilder("MarkContent", ContentMarkingProducerNodeBuilder.class); + aBuilderLibrary.registerBuilder("GenerateMedia", MediaGeneratingProducerNodeBuilder.class); + + aBuilderLibrary.registerBuilder("PDFPreFormat", PDFPreFormattingProducerNodeBuilder.class); aBuilderLibrary.registerBuilder("PDFGenerate", PDFGeneratingProducerNodeBuilder.class); } - public static class ContentMartkingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder { - private final static String MARKER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE; - private final static String[] MARKER_REQUIRED_ATTRIBUTES = { MARKER_KEY_ATTRIBUTE }; - private final static String[] MARKER_OPTIONAL_ATTRIBUTES = {}; - private final static String[] MARKER_SUBNODES = {}; + private final static String MARKER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE; + private final static String[] MARKER_REQUIRED_ATTRIBUTES = { MARKER_KEY_ATTRIBUTE }; + private final static String[] MARKER_OPTIONAL_ATTRIBUTES = {}; + private final static String[] MARKER_SUBNODES = {}; + + public static class ContentMarkingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder { private String key; - public ContentMartkingProducerNodeBuilder() { + public ContentMarkingProducerNodeBuilder() { super(MARKER_SUBNODES); } @@ -72,28 +76,29 @@ public class SupplementalProducerNodeBuilders { } + private final static String CONTENT_MODIFIER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE; + private final static String CONTENT_MODIFIER_FIELD_ATTRIBUTE = "field"; + private final static String CONTENT_MODIFIER_VALUE_ATTRIBUTE = "value"; + private final static String[] CONTENT_MODIFIER_REQUIRED_ATTRIBUTES = { CONTENT_MODIFIER_KEY_ATTRIBUTE, CONTENT_MODIFIER_FIELD_ATTRIBUTE, CONTENT_MODIFIER_VALUE_ATTRIBUTE }; + private final static String[] CONTENT_MODIFIER_OPTIONAL_ATTRIBUTES = {}; + private final static String[] CONTENT_MODIFIER_SUBNODES = {}; + public static class ContentModifyingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder { - private final static String MODIFYER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE; - private final static String MODIFYER_FIELD_ATTRIBUTE = "field"; - private final static String MODIFYER_VALUE_ATTRIBUTE = "value"; - private final static String[] MODIFYER_REQUIRED_ATTRIBUTES = { MODIFYER_KEY_ATTRIBUTE, MODIFYER_FIELD_ATTRIBUTE, MODIFYER_VALUE_ATTRIBUTE }; - private final static String[] MODIFYER_OPTIONAL_ATTRIBUTES = {}; - private final static String[] MODIFYER_SUBNODES = {}; private String key; private String field; private String value; public ContentModifyingProducerNodeBuilder() { - super(MODIFYER_SUBNODES); + super(CONTENT_MODIFIER_SUBNODES); } public void setAttributes(Map anAttributes) throws ProducerConfigExc { - ReaderTool.checkAttributes(anAttributes, MODIFYER_REQUIRED_ATTRIBUTES, MODIFYER_OPTIONAL_ATTRIBUTES); + ReaderTool.checkAttributes(anAttributes, CONTENT_MODIFIER_REQUIRED_ATTRIBUTES, CONTENT_MODIFIER_OPTIONAL_ATTRIBUTES); - key = (String) anAttributes.get(MODIFYER_KEY_ATTRIBUTE); - field = (String) anAttributes.get(MODIFYER_FIELD_ATTRIBUTE); - value = (String) anAttributes.get(MODIFYER_VALUE_ATTRIBUTE); + key = (String) anAttributes.get(CONTENT_MODIFIER_KEY_ATTRIBUTE); + field = (String) anAttributes.get(CONTENT_MODIFIER_FIELD_ATTRIBUTE); + value = (String) anAttributes.get(CONTENT_MODIFIER_VALUE_ATTRIBUTE); }; public ProducerNode constructNode() { @@ -101,6 +106,30 @@ public class SupplementalProducerNodeBuilders { }; } + private final static String MEDIA_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE; + private final static String[] MEDIA_REQUIRED_ATTRIBUTES = { MEDIA_KEY_ATTRIBUTE }; + private final static String[] MEDIA_OPTIONAL_ATTRIBUTES = {}; + private final static String[] MEDIA_SUBNODES = {}; + + public static class MediaGeneratingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder { + + private String key; + + public MediaGeneratingProducerNodeBuilder() { + super(MEDIA_SUBNODES); + } + + public void setAttributes(Map anAttributes) throws ProducerConfigExc { + ReaderTool.checkAttributes(anAttributes, MEDIA_REQUIRED_ATTRIBUTES, MEDIA_OPTIONAL_ATTRIBUTES); + + key = (String) anAttributes.get(MEDIA_KEY_ATTRIBUTE); + }; + + public ProducerNode constructNode() { + return new MediaGeneratingProducerNode(key); + }; + } + public static class PDFPreFormattingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder { private final static String MARKER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE; private final static String PDF_NUM_LINES_ATTRIBUTE = "numLinesBetweenImages"; @@ -141,7 +170,7 @@ public class SupplementalProducerNodeBuilders { }; } -public static class PDFGeneratingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder { + public static class PDFGeneratingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder { private final static String MARKER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE; private final static String PDF_GENERATOR_ATTRIBUTE = "generator"; private final static String PDF_DESTINATION_ATTRIBUTE = "destination"; @@ -171,13 +200,6 @@ public static class PDFGeneratingProducerNodeBuilder extends DefaultProducerNode return new PDFGeneratingProducerNode(generator,destination,stylesheet); }; } - - -/* - TODO: - [ ] Media Producing -*/ - } diff --git a/source/mircoders/servlet/ServletModuleProducer.java b/source/mircoders/servlet/ServletModuleProducer.java index b37a3440..93212295 100755 --- a/source/mircoders/servlet/ServletModuleProducer.java +++ b/source/mircoders/servlet/ServletModuleProducer.java @@ -145,6 +145,7 @@ public class ServletModuleProducer extends ServletModule generator.generate(aResponse.getWriter(), generationData, new PrintWriter(new NullWriter())); } catch (Throwable t) { + t.printStackTrace(System.out); throw new ServletModuleException(t.getMessage()); } } -- 2.11.0