-/*
- * 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 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.basic;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import mir.entity.adapter.EntityAdapterModel;
-import mir.generator.Generator;
-import mir.generator.WriterEngine;
-import mir.log.LoggerWrapper;
-import mir.producer.ProducerFactory;
-import mir.producer.reader.DefaultProducerNodeBuilders;
-import mir.producer.reader.ProducerConfigReader;
-import mir.producer.reader.ProducerNodeBuilderLibrary;
-import mir.util.FileMonitor;
-import mircoders.global.MirGlobal;
-import mircoders.global.ProducerEngine;
-import mircoders.localizer.MirLocalizerExc;
-import mircoders.localizer.MirLocalizerFailure;
-import mircoders.localizer.MirProducerLocalizer;
-import mircoders.producer.reader.SupplementalProducerNodeBuilders;
-
-public class MirBasicProducerLocalizer implements MirProducerLocalizer {
- private List producerFactories;
- private Map nameToFactory;
- private List allNewProducerTasks;
-
- protected FileMonitor fileMonitor;
- protected EntityAdapterModel model;
- protected Generator.GeneratorLibrary generatorLibrary;
- protected WriterEngine writerEngine;
-
- protected LoggerWrapper logger;
-
- public MirBasicProducerLocalizer() {
- try {
- logger = new LoggerWrapper("Localizer.Basic.Producer");
-
- String allNewProducers = MirGlobal.config().getString("Mir.Localizer.Producer.AllNewProducers");
- allNewProducerTasks = ProducerEngine.ProducerTask.parseProducerTaskList(allNewProducers);
-
- producerFactories = new Vector();
- model = MirGlobal.localizer().dataModel().adapterModel();
- generatorLibrary = MirGlobal.localizer().generators().makeProducerGeneratorLibrary();
- writerEngine = MirGlobal.localizer().generators().makeWriterEngine();
- nameToFactory = new HashMap();
- }
- catch (Throwable t) {
- logger.error("MirBasicProducerLocalizer(): Exception "+t.getMessage());
- model = new EntityAdapterModel();
- }
- }
-
- public List factories() throws MirLocalizerExc {
- if (fileMonitor==null || producerFactories == null || fileMonitor.hasChanged()) {
- try {
- List newProducers = new Vector();
- FileMonitor newFileMonitor = new FileMonitor();
- setupFactories(newProducers, newFileMonitor);
-
- producerFactories = newProducers;
- fileMonitor = newFileMonitor;
- logger.info("MirBasicProducerLocalizer.factories(): successfully setup factories");
-
- nameToFactory.clear();
- Iterator i = producerFactories.iterator();
- while (i.hasNext()) {
- ProducerFactory factory = (ProducerFactory) i.next();
- nameToFactory.put(factory.getName(), factory);
- }
- }
- catch (Throwable t) {
- logger.error("MirBasicProducerLocalizer.factories(): Unable to setup factories: "+t.getMessage());
- t.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));
- }
- }
-
- return producerFactories;
- };
-
- protected void setupProducerNodeBuilderLibrary(ProducerNodeBuilderLibrary aLibrary) throws MirLocalizerFailure {
- try {
- DefaultProducerNodeBuilders.registerBuilders(
- aLibrary, model, generatorLibrary, writerEngine,
- MirGlobal.config().getString("Home"), MirGlobal.config().getString("Producer.StorageRoot"));
- SupplementalProducerNodeBuilders.registerBuilders(aLibrary, model);
- }
- catch (Throwable t) {
- throw new MirLocalizerFailure(t.getMessage(), t);
- }
- }
-
- protected void setupFactories(List aFactories, FileMonitor aFileMonitor) throws MirLocalizerExc, MirLocalizerFailure {
- ProducerConfigReader reader;
- ProducerNodeBuilderLibrary library = new ProducerNodeBuilderLibrary();
- setupProducerNodeBuilderLibrary(library);
- List usedFiles = new Vector();
- Iterator i;
-
- aFileMonitor.clear();
- reader = new ProducerConfigReader();
- reader.parseFile(MirGlobal.config().getString("Home") + File.separatorChar + MirGlobal.config().getString("Mir.Localizer.ProducerConfigFile"), library, aFactories, usedFiles);
-
- i = usedFiles.iterator();
- while (i.hasNext())
- aFileMonitor.addFile((File) i.next());
- }
-
- public void produceAllNew() {
- MirGlobal.producerEngine().addTasks(allNewProducerTasks);
- };
-
- public ProducerFactory getFactoryForName(String aName) {
- try {
- factories();
- }
- catch (Throwable t) {
- }
-
- return (ProducerFactory) nameToFactory.get(aName);
- }
-}
+/*\r
+ * Copyright (C) 2001, 2002 The Mir-coders group\r
+ *\r
+ * This file is part of Mir.\r
+ *\r
+ * Mir is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * Mir is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with Mir; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+ *\r
+ * In addition, as a special exception, The Mir-coders gives permission to link\r
+ * the code of this program with any library licensed under the Apache Software License,\r
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library\r
+ * (or with modified versions of the above that use the same license as the above),\r
+ * and distribute linked combinations including the two. You must obey the\r
+ * GNU General Public License in all respects for all of the code used other than\r
+ * the above mentioned libraries. If you modify this file, you may extend this\r
+ * exception to your version of the file, but you are not obligated to do so.\r
+ * If you do not wish to do so, delete this exception statement from your version.\r
+ */\r
+package mircoders.localizer.basic;\r
+\r
+import java.io.File;\r
+import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.Vector;\r
+\r
+import mir.entity.adapter.EntityAdapterModel;\r
+import mir.generator.Generator;\r
+import mir.generator.WriterEngine;\r
+import mir.log.LoggerWrapper;\r
+import mir.producer.ProducerFactory;\r
+import mir.producer.reader.DefaultProducerNodeBuilders;\r
+import mir.producer.reader.ProducerConfigReader;\r
+import mir.producer.reader.ProducerNodeBuilderLibrary;\r
+import mir.util.*;\r
+import mircoders.global.MirGlobal;\r
+import mircoders.global.ProducerEngine;\r
+import mircoders.localizer.MirLocalizerExc;\r
+import mircoders.localizer.MirLocalizerFailure;\r
+import mircoders.localizer.MirProducerLocalizer;\r
+import mircoders.producer.reader.SupplementalProducerNodeBuilders;\r
+\r
+public class MirBasicProducerLocalizer implements MirProducerLocalizer {\r
+ private List producerFactories;\r
+ private Map nameToFactory;\r
+\r
+ private Map producerRecipes;\r
+ private List producerRecipeNames;\r
+\r
+ protected FileMonitor fileMonitor;\r
+ protected EntityAdapterModel model;\r
+ protected Generator.GeneratorLibrary generatorLibrary;\r
+ protected WriterEngine writerEngine;\r
+\r
+ protected LoggerWrapper logger;\r
+\r
+ public MirBasicProducerLocalizer() {\r
+ try {\r
+ logger = new LoggerWrapper("Localizer.Basic.Producer");\r
+\r
+ producerRecipes = new HashMap();\r
+ producerRecipeNames = new Vector();\r
+\r
+ String[] recipes = MirGlobal.config().getStringArray("Mir.Localizer.Producer.ProducerRecipes");\r
+ for (int i = 0; i<recipes.length; i++) {\r
+ try {\r
+ List parts = StringRoutines.separateString(recipes[i], "=");\r
+ if (parts.size() == 2) {\r
+ producerRecipes.put(parts.get(0), ProducerEngine.ProducerTask.parseProducerTaskList( (String) parts.get(1)));\r
+ producerRecipeNames.add(parts.get(0));\r
+ }\r
+ else {\r
+ throw new Exception("'=' expected");\r
+ }\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error("Error while processing producer recipe '" + recipes[i] + "': " + t.toString());\r
+ }\r
+ }\r
+\r
+ // for backward compatibility:\r
+ String allNewProducers = MirGlobal.config().getString("Mir.Localizer.Producer.AllNewProducers");\r
+ if (allNewProducers!=null && allNewProducers.length()>0) {\r
+ producerRecipes.put("allnew", ProducerEngine.ProducerTask.parseProducerTaskList(allNewProducers));\r
+ producerRecipeNames.add("allnew");\r
+ }\r
+\r
+ producerFactories = new Vector();\r
+ model = MirGlobal.localizer().dataModel().adapterModel();\r
+ generatorLibrary = MirGlobal.localizer().generators().makeProducerGeneratorLibrary();\r
+ writerEngine = MirGlobal.localizer().generators().makeWriterEngine();\r
+ nameToFactory = new HashMap();\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error("MirBasicProducerLocalizer(): Exception "+t.getMessage());\r
+ model = new EntityAdapterModel();\r
+ }\r
+ }\r
+\r
+ public List getRecipeNames() throws MirLocalizerExc, MirLocalizerFailure {\r
+ return producerRecipeNames;\r
+ }\r
+\r
+ public void produceRecipe(String aName) throws MirLocalizerExc, MirLocalizerFailure {\r
+ if (producerRecipes.containsKey(aName))\r
+ MirGlobal.producerEngine().addTasks((List) producerRecipes.get(aName));\r
+ else\r
+ throw new MirLocalizerExc("Unknown recipe name: " + aName);\r
+ }\r
+\r
+ public List factories() throws MirLocalizerExc {\r
+ if (fileMonitor==null || producerFactories == null || fileMonitor.hasChanged()) {\r
+ try {\r
+ List newProducers = new Vector();\r
+ FileMonitor newFileMonitor = new FileMonitor();\r
+ setupFactories(newProducers, newFileMonitor);\r
+\r
+ producerFactories = newProducers;\r
+ fileMonitor = newFileMonitor;\r
+ logger.info("MirBasicProducerLocalizer.factories(): successfully setup factories");\r
+\r
+ nameToFactory.clear();\r
+ Iterator i = producerFactories.iterator();\r
+ while (i.hasNext()) {\r
+ ProducerFactory factory = (ProducerFactory) i.next();\r
+ nameToFactory.put(factory.getName(), factory);\r
+ }\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error("MirBasicProducerLocalizer.factories(): Unable to setup factories: "+t.getMessage());\r
+ t.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));\r
+ }\r
+ }\r
+\r
+ return producerFactories;\r
+ };\r
+\r
+ protected void setupProducerNodeBuilderLibrary(ProducerNodeBuilderLibrary aLibrary) throws MirLocalizerFailure {\r
+ try {\r
+ DefaultProducerNodeBuilders.registerBuilders(\r
+ aLibrary, model, generatorLibrary, writerEngine,\r
+ MirGlobal.config().getString("Home"), MirGlobal.config().getString("Producer.StorageRoot"));\r
+ SupplementalProducerNodeBuilders.registerBuilders(aLibrary, model);\r
+ }\r
+ catch (Throwable t) {\r
+ throw new MirLocalizerFailure(t.getMessage(), t);\r
+ }\r
+ }\r
+\r
+ protected void setupFactories(List aFactories, FileMonitor aFileMonitor) throws MirLocalizerExc, MirLocalizerFailure {\r
+ ProducerConfigReader reader;\r
+ ProducerNodeBuilderLibrary library = new ProducerNodeBuilderLibrary();\r
+ setupProducerNodeBuilderLibrary(library);\r
+ List usedFiles = new Vector();\r
+ Iterator i;\r
+\r
+ aFileMonitor.clear();\r
+ reader = new ProducerConfigReader();\r
+ reader.parseFile(MirGlobal.config().getString("Home") + File.separatorChar + MirGlobal.config().getString("Mir.Localizer.ProducerConfigFile"), library, aFactories, usedFiles);\r
+\r
+ i = usedFiles.iterator();\r
+ while (i.hasNext())\r
+ aFileMonitor.addFile((File) i.next());\r
+ }\r
+\r
+ public ProducerFactory getFactoryForName(String aName) {\r
+ try {\r
+ factories();\r
+ }\r
+ catch (Throwable t) {\r
+ }\r
+\r
+ return (ProducerFactory) nameToFactory.get(aName);\r
+ }\r
+}\r
* 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 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.
+ * the code of this program with 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.
*/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
-import java.util.Iterator;
+import java.util.*;
import mir.util.ExceptionFunctions;
import mir.util.PropertiesManipulator;
}
}
+ public static void rename(String anOldKeyName, String aNewKeyName, List aBundles) {
+ /*
+ PropertiesManipulator bundle;
+
+ try {
+ bundle = PropertiesManipulator.readProperties(new FileInputStream(new File(aBundle)));
+
+ PropertiesManipulator.writeProperties(bundle, new FileOutputStream(anOutputFile), anEncoding, false);
+ }
+ catch (Throwable t) {
+ System.out.println("Unable to read master properties: " + t.getMessage());
+ return;
+ }
+*/
+ }
+
+
public static void main(String[] anArguments) {
String command = "help";
return;
}
}
- }
+ else if (command.equals("rename")) {
+ if (anArguments.length>=3) {
+ List arguments = Arrays.asList(anArguments);
+ rename(anArguments[0], anArguments[1], arguments.subList(2, arguments.size()));
+/*
+ decode(anArguments[1], anArguments[2], anArguments[3]);
+*/
+ return;
+ }
+ }
+ }
System.out.println("Usage:");
System.out.println(" BundleTool decode <bundle> <encoding> <sourcefile>");
System.out.println("");
System.out.println(" Decodes the keys/values with a custom encoding.");
+ System.out.println(" BundleTool rename <old key> <new key> <bundle> [<bundle> [ ... ]]");
+ System.out.println("");
+ System.out.println(" Decodes the keys/values with a custom encoding.");
}
}
\ No newline at end of file
<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
<include "FUNCTIONS.template">
+ <include "LISTFUNCTIONS.template">
<include "head.template">
- <call showAddOrBack("1", module, "Admin", "superusermenu")>
+ <call showAddOrBack("1", module, "Admin", "start")>
<if entities>
- <call ListStart()>\r
- <call ListHead([
- lang("mediafolder.name"),
- lang("mediafolder.location"),
- lang("mediafolder.comment"), ])>
-
- <call EntityTable(entities, ["name", "place","comment"],
- [ ], from, to, count, "1", "1", module)>
-
-
- <list entities as e>
- <call ExtendedListEntry([
- utility.prettyEncodeHTML(e.name),
- utility.prettyEncodeHTML(e.place),
- utility.prettyEncodeHTML(e.comment)],
- ["module=Abuse&id="+f.id"&do=edit", "module=Abuse&id="+f.id"&do=delete"],
- [lang("edit"), lang("delete")])
- >
- </list>\r
- <call ListEnd()>\r
-
-
<call showPrevNextLinks(prevurl, nexturl, "left")>
- <call EntityTable(entities, ["name", "place","comment"],
- [ lang("mediafolder.name"),
- lang("mediafolder.location"),
- lang("mediafolder.comment")], from, to, count, "1", "1", module)>
+ <call ListStart()>\r
+ <call ListHead([
+ lang("mediafolder.name"),
+ lang("mediafolder.location"),
+ lang("mediafolder.comment"), ])>
+
+ <list entities as e>
+ <call ExtendedListEntry([
+ utility.prettyEncodeHTML(e.name),
+ utility.prettyEncodeHTML(e.place),
+ utility.prettyEncodeHTML(e.comment)],
+ ["module="+module+"&id="+e.id+"&do=edit", "module="+module+"&id="+e.id+"&do=delete",
+ "module=Images&do=search&searchmediafolder="+e.id],
+ [lang("edit"), lang("delete"), lang("list")])
+ >
+ </list>\r
+ <call ListFoot(count, from, to)>\r
+ <call ListEnd()>\r
<call showPrevNextLinks(prevurl, nexturl, "left")>
<call showAddOrBack("1", module, "Admin", "start")>
<else>