some small changes delting unneeded imports. two new exceptions in mir.storage. usage...
authoridfx <idfx>
Sat, 25 Jan 2003 17:45:17 +0000 (17:45 +0000)
committeridfx <idfx>
Sat, 25 Jan 2003 17:45:17 +0000 (17:45 +0000)
125 files changed:
source/mir/entity/Entity.java
source/mir/entity/EntityBrowser.java
source/mir/entity/EntityList.java
source/mir/entity/EntityRelation.java
source/mir/entity/StorableObjectEntity.java
source/mir/entity/adapter/EntityAdapter.java
source/mir/entity/adapter/EntityAdapterDefinition.java
source/mir/entity/adapter/EntityAdapterModel.java
source/mir/entity/adapter/EntityIteratorAdapter.java
source/mir/entity/adapter/EntityListAdapter.java
source/mir/generator/CompositeGeneratorLibrary.java
source/mir/generator/FreemarkerGenerator.java
source/mir/generator/Generator.java
source/mir/generator/GeneratorLibraryRepository.java
source/mir/log/Log.java
source/mir/log/LoggerToWriterAdapter.java
source/mir/log/TestFramework.java
source/mir/log/log4j/LoggerImpl.java
source/mir/media/MediaHelper.java
source/mir/media/MirMedia.java
source/mir/media/MirMediaException.java
source/mir/media/MirMediaUserException.java
source/mir/misc/ConfigException.java
source/mir/misc/Configuration.java
source/mir/misc/FileHandler.java
source/mir/misc/FileHandlerException.java
source/mir/misc/FileHandlerUserException.java
source/mir/misc/FileUtil.java
source/mir/misc/HTMLParseException.java
source/mir/misc/HTMLTemplateProcessor.java
source/mir/misc/Helper.java
source/mir/misc/LineFilterWriter.java
source/mir/misc/ListOfFiles.java
source/mir/misc/Logfile.java
source/mir/misc/MessageMethodModel.java
source/mir/misc/MirConfig.java
source/mir/misc/NumberUtils.java
source/mir/misc/PDFUtil.java
source/mir/misc/StringUtil.java
source/mir/misc/WebdbImage.java
source/mir/misc/WebdbMultipartRequest.java
source/mir/misc/XmlStyler.java
source/mir/module/AbstractModule.java
source/mir/module/ModuleException.java
source/mir/module/ModuleUserException.java
source/mir/producer/AssignmentProducerNode.java
source/mir/producer/CompositeProducerNode.java
source/mir/producer/ConditionalProducerNode.java
source/mir/producer/DirCopyingProducerNode.java
source/mir/producer/EntityBatchingProducerNode.java
source/mir/producer/EntityEnumeratingProducerNode.java
source/mir/producer/EntityListProducerNode.java
source/mir/producer/EntityModifyingProducerNode.java
source/mir/producer/EvaluatedAssignmentProducerNode.java
source/mir/producer/ExpandedAssignmentProducerNode.java
source/mir/producer/FileDateSettingProducerNode.java
source/mir/producer/FileDeletingProducerNode.java
source/mir/producer/FileOperationProducerNode.java
source/mir/producer/GeneratingProducerNode.java
source/mir/producer/LoggingProducerNode.java
source/mir/producer/LoopProducerNode.java
source/mir/producer/NodedProducer.java
source/mir/producer/NodedProducerFactory.java
source/mir/producer/Producer.java
source/mir/producer/ProducerFactory.java
source/mir/producer/ProducerNode.java
source/mir/producer/ProducerNodeDecorator.java
source/mir/producer/ResourceBundleProducerNode.java
source/mir/producer/ScriptCallingProducerNode.java
source/mir/producer/ValuesMapProducerNode.java
source/mir/producer/reader/DefaultProducerNodeBuilders.java
source/mir/producer/reader/ProducerConfigReader.java
source/mir/producer/reader/ProducerNodeBuilder.java
source/mir/producer/reader/ProducerNodeBuilderLibrary.java
source/mir/producer/reader/ReaderTool.java
source/mir/producer/reader/ScriptedProducerFactory.java
source/mir/producer/reader/ScriptedProducerNode.java
source/mir/producer/reader/ScriptedProducerNodeDefinition.java
source/mir/producer/reader/ScriptedProducerNodeTool.java
source/mir/servlet/AbstractServlet.java
source/mir/servlet/ServletModule.java
source/mir/servlet/ServletModuleDispatch.java
source/mir/servlet/ServletModuleException.java
source/mir/servlet/ServletModuleShow.java
source/mir/servlet/ServletModuleUserException.java
source/mir/storage/Database.java
source/mir/storage/DatabaseAdaptor.java
source/mir/storage/DatabaseAdaptorMySQL.java
source/mir/storage/DatabaseAdaptorOracle.java
source/mir/storage/DatabaseAdaptorPostgresql.java
source/mir/storage/DatabaseAdaptorSybase.java
source/mir/storage/DatabaseCache.java
source/mir/storage/StorageObject.java
source/mir/storage/store/ObjectStore.java
source/mir/storage/store/ServletStoreInfo.java
source/mir/storage/store/StorableObject.java
source/mir/storage/store/StoreContainer.java
source/mir/storage/store/StoreContainerType.java
source/mir/storage/store/StoreIdentifier.java
source/mir/storage/store/test/EntityC1.java
source/mir/storage/store/test/EntityC2.java
source/mir/storage/store/test/EntityC3.java
source/mir/storage/store/test/TestStore.java
source/mir/util/CachingRewindableIterator.java
source/mir/util/DateToMapAdapter.java
source/mir/util/FileCopier.java
source/mir/util/FileMonitor.java
source/mir/util/GeneratorHTMLFunctions.java
source/mir/util/GeneratorIntegerFunctions.java
source/mir/util/GeneratorListFunctions.java
source/mir/util/GeneratorRegularExpressionFunctions.java
source/mir/util/GeneratorStringFunctions.java
source/mir/util/HTMLRoutines.java
source/mir/util/HTTPRequestParser.java
source/mir/util/NullWriter.java
source/mir/util/ParameterExpander.java
source/mir/util/ResourceBundleGeneratorFunction.java
source/mir/util/RewindableIterator.java
source/mir/util/SimpleParser.java
source/mir/util/StringParseRoutines.java
source/mir/util/StringRoutines.java
source/mir/util/SubsetIterator.java
source/mir/util/URLBuilder.java
source/mir/xml/XmlConfigurator.java
source/mir/xml/XmlMatch.java

index b615f4f..5a69e3e 100755 (executable)
 
 package  mir.entity;
 
-import java.lang.*;
-import java.io.*;
-import java.util.*;
-import java.sql.*;
-
-import freemarker.template.*;
-
-import mir.storage.*;
-import mir.misc.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
+import mir.misc.Logfile;
+import mir.misc.StringUtil;
+import mir.storage.StorageObject;
+import mir.storage.StorageObjectExc;
+import mir.storage.StorageObjectFailure;
+import freemarker.template.SimpleScalar;
+import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+import freemarker.template.TemplateModelRoot;
 
 /**
  * Base Class of Entities
  * Interfacing TemplateHashModel and TemplateModelRoot to be freemarker compliant
  *
- * @version $Id: Entity.java,v 1.12 2002/12/17 19:20:31 zapata Exp $
+ * @version $Id: Entity.java,v 1.13 2003/01/25 17:45:17 idfx Exp $
  * @author rk
  *
  */
 
 public class Entity implements TemplateHashModel, TemplateModelRoot
 {
+  protected static MirPropertiesConfiguration configuration;
+  protected static Logfile    theLog;
+  
   private boolean             changed;
   protected HashMap           theValuesHash;   // tablekey / value
   protected StorageObject     theStorageObject;
-  protected static Logfile    theLog;
   protected ArrayList         streamedInput=null;
-  private static int instances = 0;
-    static {
-      theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("Entity.Logfile"));
+  
+
+    static {      
+      try {
+        configuration = MirPropertiesConfiguration.instance();
+      } catch (PropertiesConfigExc e) {
+        e.printStackTrace();
+      }
+      theLog = Logfile.getInstance(configuration.getStringWithHome("Entity.Logfile"));
     }
 
     public Entity() {
-
       this.changed = false;
-      instances++;
-      Integer i = new Integer(instances);
-      //System.err.println("New abstract entity instance: "+i.toString());
     }
 
   /**
@@ -174,20 +186,20 @@ public class Entity implements TemplateHashModel, TemplateModelRoot
    * @return Primary Key of the Entity
    * @exception StorageObjectException
    */
-  public String insert () throws StorageObjectException {
+  public String insert () throws StorageObjectExc {
     theLog.printDebugInfo("Entity: trying to insert ...");
     if (theStorageObject != null) {
       return theStorageObject.insert((Entity)this);
     }
     else
-      throw  new StorageObjectException("Kein StorageObject gesetzt!");
+      throw  new StorageObjectExc("Kein StorageObject gesetzt!");
   }
 
   /**
    * Saves changes of this Entity to the database
    * @exception StorageObjectException
    */
-  public void update () throws StorageObjectException {
+  public void update () throws StorageObjectFailure {
     theStorageObject.update((Entity)this);
   }
 
@@ -199,7 +211,7 @@ public class Entity implements TemplateHashModel, TemplateModelRoot
    * @exception StorageObjectException
    */
   public void setValueForProperty (String theProp, String theValue)
-    throws StorageObjectException {
+    throws StorageObjectFailure {
     this.changed = true;
     if (isField(theProp))
       theValuesHash.put(theProp, theValue);
@@ -214,7 +226,7 @@ public class Entity implements TemplateHashModel, TemplateModelRoot
    * @return ArrayList with field names
    * @exception StorageObjectException is throuwn if database access was impossible
    */
-  public ArrayList getFields () throws StorageObjectException {
+  public ArrayList getFields () throws StorageObjectFailure {
     return  theStorageObject.getFields();
     }
 
@@ -223,7 +235,7 @@ public class Entity implements TemplateHashModel, TemplateModelRoot
    * @return int[] that contains the types of the fields
    * @exception StorageObjectException
    */
-  public int[] getTypes () throws StorageObjectException {
+  public int[] getTypes () throws StorageObjectFailure {
     return  theStorageObject.getTypes();
     }
 
@@ -232,7 +244,7 @@ public class Entity implements TemplateHashModel, TemplateModelRoot
    * @return List with field names
    * @exception StorageObjectException
    */
-  public ArrayList getLabels () throws StorageObjectException {
+  public ArrayList getLabels () throws StorageObjectFailure {
     return  theStorageObject.getLabels();
     }
 
@@ -271,21 +283,17 @@ public class Entity implements TemplateHashModel, TemplateModelRoot
    * @return true in case fieldName is a field name, else false.
    * @exception StorageObjectException
    */
-  public boolean isField (String fieldName) throws StorageObjectException {
+  public boolean isField (String fieldName) throws StorageObjectFailure {
     return  theStorageObject.getFields().contains(fieldName);
   }
 
-   /** Returns the number of instances of this Entity
-   * @return int The number of instances
-   */
-  public int getInstances() {
-     return instances;
-  }
 
-  protected void throwStorageObjectException (Exception e, String wo) throws StorageObjectException {
+
+  protected void throwStorageObjectFailure (Exception e, String wo) 
+       throws StorageObjectFailure {
     theLog.printError( e.toString() + " Funktion: "+ wo);
     e.printStackTrace(System.out);
-    throw  new StorageObjectException("Storage Object Exception in entity" +e.toString());
+    throw  new StorageObjectFailure("Storage Object Exception in entity", e);
   }
 
   // Now implements freemarkers TemplateHashModel
index c27dfda..2e829c5 100755 (executable)
 
 package mir.entity;\r
 \r
-import java.util.*;\r
-import mir.util.*;\r
-import mir.storage.*;\r
-import mir.entity.*;\r
+import mir.storage.StorageObject;
+import mir.storage.StorageObjectFailure;
+import mir.util.RewindableIterator;
 \r
 public class EntityBrowser implements RewindableIterator {\r
 \r
@@ -52,7 +51,7 @@ public class EntityBrowser implements RewindableIterator {
   private int positionInBatch;\r
 \r
   public EntityBrowser(StorageObject aStorage, String aWhereClause, String anOrderByClause,\r
-                       int aBatchSize, int aLimit, int aSkip) throws StorageObjectException {\r
+                       int aBatchSize, int aLimit, int aSkip) throws StorageObjectFailure {\r
 \r
     storage=aStorage;\r
     whereClause=aWhereClause;\r
@@ -66,11 +65,11 @@ public class EntityBrowser implements RewindableIterator {
 \r
   public EntityBrowser(StorageObject aStorage,\r
           String aWhereClause, String anOrderByClause,\r
-          int aBatchSize) throws StorageObjectException {\r
+          int aBatchSize) throws StorageObjectFailure {\r
     this(aStorage, aWhereClause, anOrderByClause, aBatchSize, -1, 0);\r
   }\r
 \r
-  public void readCurrentBatch(int aSkip) throws StorageObjectException {\r
+  public void readCurrentBatch(int aSkip) throws StorageObjectFailure {\r
     currentBatch = storage.selectByWhereClause(whereClause, orderByClause, aSkip, batchSize);\r
     batchPosition = aSkip;\r
     positionInBatch = 0;\r
index 3f4f781..be84359 100755 (executable)
 
 package  mir.entity;
 
-import  java.lang.*;
-import  java.util.*;
-
-import  freemarker.template.*;
-
-import  mir.misc.*;
-import  mir.storage.*;
-import  mir.storage.store.*;
+import java.util.ArrayList;
+import java.util.Set;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
+import mir.misc.Logfile;
+import mir.storage.StorageObject;
+import mir.storage.store.StorableObject;
+import mir.storage.store.StoreContainerType;
+import mir.storage.store.StoreIdentifier;
+import mir.storage.store.StoreUtil;
+import freemarker.template.TemplateListModel;
+import freemarker.template.TemplateModel;
 
 /**
  *
@@ -54,6 +59,7 @@ import  mir.storage.store.*;
 public class EntityList implements TemplateListModel, StorableObject {
 
   private static Logfile      theLog;
+  protected static MirPropertiesConfiguration configuration;
   private ArrayList           theEntityArrayList = new ArrayList();
   private String              whereClause, orderClause;
   private StorageObject       theStorage;
@@ -63,7 +69,12 @@ public class EntityList implements TemplateListModel, StorableObject {
 
 
   static {
-    theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("Entity.Logfile"));
+    try {
+      configuration = MirPropertiesConfiguration.instance();
+    } catch (PropertiesConfigExc e) {
+      e.printStackTrace();
+    }
+    theLog = Logfile.getInstance(configuration.getStringWithHome("Entity.Logfile"));
   }
 
   /**
index 3c49dbb..bd43592 100755 (executable)
@@ -31,9 +31,9 @@
 
 package mir.entity;
 
-import mir.storage.*;
-import mir.misc.*;
-import freemarker.template.*;
+import mir.storage.StorageObject;
+import mir.storage.StorageObjectExc;
+import mir.storage.StorageObjectFailure;
 
 public class EntityRelation {
 
@@ -68,7 +68,7 @@ public class EntityRelation {
    *           null.
    */
 
-  public Entity getOne(Entity entity) throws StorageObjectException {
+  public Entity getOne(Entity entity) throws StorageObjectExc {
     if (type==TO_ONE) {
       return storage.selectById(entity.getValue(fromId));
     }
@@ -81,7 +81,7 @@ public class EntityRelation {
    *           null.
    */
 
-  public EntityList getMany(Entity entity) throws StorageObjectException{
+  public EntityList getMany(Entity entity) throws StorageObjectFailure{
     if (type==TO_MANY) {
       return storage.selectByFieldValue(toId, entity.getValue(fromId));
     }
@@ -94,7 +94,7 @@ public class EntityRelation {
    *           null.
    */
 
-  public EntityList getMany(Entity entity, String order) throws StorageObjectException{
+  public EntityList getMany(Entity entity, String order) throws StorageObjectFailure{
     if (type==TO_MANY) {
       return storage.selectByWhereClause(toId+"="+entity.getValue(fromId), order,-1);
     }
@@ -107,7 +107,7 @@ public class EntityRelation {
    *           null.
    */
 
-  public EntityList getMany(Entity entity, String order, String whereClause) throws StorageObjectException{
+  public EntityList getMany(Entity entity, String order, String whereClause) throws StorageObjectFailure{
     if (type==TO_MANY) {
       return storage.selectByWhereClause(toId + "=" + entity.getValue(fromId) + " and " + whereClause, order,-1);
     }
index d768602..3f12a31 100755 (executable)
@@ -40,8 +40,10 @@ package mir.entity;
  * @version       1.0
  */
 
-import  java.util.*;
-import  mir.storage.store.*;
+import java.util.Set;
+
+import mir.storage.store.StorableObject;
+import mir.storage.store.StoreIdentifier;
 
 
 public class StorableObjectEntity extends Entity
index ba2dca1..d78c1fe 100755 (executable)
 
 package mir.entity.adapter;
 
-import java.util.*;
-import mir.entity.*;
-import mir.util.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import mir.entity.Entity;
+import mir.util.CachingRewindableIterator;
 
 public class EntityAdapter implements Map {
   private Entity entity;
index a059ad6..c86fc7b 100755 (executable)
 
 package mir.entity.adapter;
 
-import java.util.*;
-import mir.entity.*;
-import mir.storage.*;
-import mir.util.*;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.Map;
+
+import mir.entity.Entity;
+import mir.util.DateToMapAdapter;
 
 public class EntityAdapterDefinition {
   Map calculatedFields;
index 586200e..e83b78b 100755 (executable)
 \r
 package mir.entity.adapter;\r
 \r
-import java.util.*;\r
-import mir.entity.*;\r
-import mir.storage.*;\r
-import mir.util.*;\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import mir.entity.Entity;\r
+import mir.storage.StorageObject;\r
 \r
 public class EntityAdapterModel {\r
   private Map entityAdapterMappings;\r
index 9ff1be9..1af1bab 100755 (executable)
 
 package mir.entity.adapter;
 
-import java.util.*;
-import mir.storage.*;
-import mir.util.*;
-import mir.entity.*;
+import mir.entity.Entity;
+import mir.entity.EntityBrowser;
+import mir.storage.StorageObjectFailure;
+import mir.util.RewindableIterator;
 
 public class EntityIteratorAdapter implements RewindableIterator {
   private String definitionName;
@@ -49,13 +49,13 @@ public class EntityIteratorAdapter implements RewindableIterator {
 
   public EntityIteratorAdapter(String aWhereClause, String anOrderByClause,
           int aBatchSize, EntityAdapterModel aModel, String aDefinitionName )
-          throws StorageObjectException, EntityAdapterExc {
+          throws StorageObjectFailure, 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, EntityAdapterExc {
+          int aLimit, int aSkip) throws StorageObjectFailure, EntityAdapterExc {
     this(new EntityBrowser(aModel.getMappingForName(aDefinitionName).getStorage(), aWhereClause, anOrderByClause, aBatchSize, aLimit, aSkip), aModel, aDefinitionName);
   }
 
index 1fca21e..f3dcbee 100755 (executable)
 
 package mir.entity.adapter;
 
-import java.util.*;
-import mir.entity.*;
+import java.util.AbstractList;
+import java.util.List;
+import java.util.Vector;
+
+import mir.entity.EntityBrowser;
 
 public class EntityListAdapter extends AbstractList {
   private int skip;
index 16401f4..3f17764 100755 (executable)
@@ -31,7 +31,8 @@
 
 package mir.generator;
 
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
 
 public class CompositeGeneratorLibrary implements Generator.GeneratorLibrary {
   private Map generatorLibraries;
index 9979dda..72810e7 100755 (executable)
 
 package mir.generator;
 
-import freemarker.template.*;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import mir.misc.MessageMethodModel;
+import mir.util.RewindableIterator;
+
 import org.apache.struts.util.MessageResources;
-import java.util.*;
-import java.io.*;
-import mir.entity.*;
-import mir.util.*;
-import mir.misc.*;
+
+import freemarker.template.FileTemplateCache;
+import freemarker.template.SimpleScalar;
+import freemarker.template.Template;
+import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateListModel;
+import freemarker.template.TemplateMethodModel;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+import freemarker.template.TemplateModelRoot;
+import freemarker.template.TemplateScalarModel;
 
 public class FreemarkerGenerator implements Generator {
   private Template template;
@@ -295,7 +310,7 @@ public class FreemarkerGenerator implements Generator {
 
     public FreemarkerGeneratorLibrary(String aTemplateRoot) {
       templateCache = new FileTemplateCache( aTemplateRoot+"/" );
-      templateCache.setLoadingPolicy(templateCache.LOAD_ON_DEMAND);
+      templateCache.setLoadingPolicy(FileTemplateCache.LOAD_ON_DEMAND);
     }
 
     public Generator makeGenerator(String anIdentifier) throws GeneratorExc, GeneratorFailure {
index 09939e4..245dd3a 100755 (executable)
@@ -31,8 +31,9 @@
 
 package mir.generator;
 
-import java.util.*;
-import java.io.*;
+import java.io.PrintWriter;
+import java.util.List;
+import java.util.Map;
 
 public interface Generator {
   public void generate(Object anOutputWriter, Map aValues, PrintWriter aLogger) throws GeneratorExc, GeneratorFailure;
index 046312c..4b67cb2 100755 (executable)
@@ -1,7 +1,9 @@
 package mir.generator;
 
-import java.util.*;
-import mir.util.*;
+import java.util.HashMap;
+import java.util.Map;
+
+import mir.util.SimpleParser;
 
 public class GeneratorLibraryRepository {
   private Map factories;
index 34c943e..b9936d1 100755 (executable)
@@ -1,7 +1,7 @@
 package mir.log;
 
-import mir.misc.MirConfig;
-
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
 
 public class Log {
 
@@ -9,19 +9,20 @@ public class Log {
 
     static {
         try {
-            myLogger = (Logger)Class.forName(MirConfig.getProp("Log.LogClass")).newInstance();
-        }
-        catch (java.lang.ClassNotFoundException cnfe) {
-            System.err.println("Log was not able to initialize: class not found");
-            cnfe.printStackTrace(System.err);
-        }
-        catch (java.lang.InstantiationException ie) {
-            System.err.println("Log was not able to initialize: could not initialize class");
-            ie.printStackTrace(System.err);
-        }
-        catch (java.lang.IllegalAccessException iae) {
-            System.err.println("Log was not able to initialize: illegal access");
-            iae.printStackTrace(System.err);
+          String loggerClass = 
+               MirPropertiesConfiguration.instance().getString("Log.LogClass");
+          myLogger = (Logger)Class.forName(loggerClass).newInstance();
+        } catch (java.lang.ClassNotFoundException cnfe) {
+          System.err.println("Log was not able to initialize: class not found");
+          cnfe.printStackTrace(System.err);
+        } catch (java.lang.InstantiationException ie) {
+          System.err.println("Log was not able to initialize: could not initialize class");
+          ie.printStackTrace(System.err);
+        } catch (java.lang.IllegalAccessException iae) {
+          System.err.println("Log was not able to initialize: illegal access");
+          iae.printStackTrace(System.err);
+        } catch (PropertiesConfigExc e) {
+          e.printStackTrace(System.err);
         }
     }
 
index a0c8ae4..a9dc294 100755 (executable)
@@ -1,7 +1,6 @@
 package mir.log;
 
-import java.io.*;
-import java.util.*;
+import java.io.Writer;
 
 public class LoggerToWriterAdapter extends Writer {
   private LoggerWrapper logger;
index dc4d7bc..b7f924d 100755 (executable)
@@ -1,6 +1,5 @@
 package mir.log;
 
-import mir.log.Log;
 
 
 public class TestFramework {
index e275e09..9f44cf9 100755 (executable)
@@ -1,20 +1,23 @@
 package mir.log.log4j;\r
 \r
+import mir.config.MirPropertiesConfiguration;\r
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;\r
+\r
 import org.apache.log4j.PropertyConfigurator;\r
 import org.apache.log4j.Logger;\r
 \r
 import java.util.Map;\r
 import java.util.HashMap;\r
 \r
-import mir.misc.MirConfig;\r
 \r
 public class LoggerImpl implements mir.log.Logger {\r
   private static Map loggers = new HashMap();\r
 \r
-  public LoggerImpl() {\r
-    System.setProperty("log.home", MirConfig.getPropWithHome("Log.Home"));\r
-    PropertyConfigurator.configure(MirConfig.getPropWithHome(\r
-        "Log.log4j.ConfigurationFile").trim());\r
+  public LoggerImpl() throws PropertiesConfigExc {\r
+    System.setProperty("log.home", \r
+                       MirPropertiesConfiguration.instance().getStringWithHome("Log.Home"));\r
+    PropertyConfigurator.configure(MirPropertiesConfiguration.instance()\r
+                                   .getStringWithHome("Log.log4j.ConfigurationFile").trim());\r
   }\r
 \r
   public void debug(Object o, String s) {\r
index e4d851a..6822e88 100755 (executable)
@@ -31,8 +31,7 @@
 
 package mir.media;
 
-import java.lang.reflect.*;
-import java.lang.*;
+import java.lang.reflect.Method;
 
 import mir.entity.Entity;
 import mir.storage.Database;
index f452369..b0aed58 100755 (executable)
 
 package  mir.media;
 
-import java.util.*;
 import java.io.InputStream;
 
+import mir.entity.Entity;
 import freemarker.template.SimpleList;
 
-import mir.entity.*;
-
 /**
  * Interface for Media handling in Mir. All media handlers
  * must implement this interface. Each specific media type,
@@ -83,7 +81,7 @@ import mir.entity.*;
  * ) and just override the things that need to be specific. see MediaHandlerAudio
  * 
  * @author <mh@nadir.org>, the Mir-coders group
- * @version $Id: MirMedia.java,v 1.14 2002/11/27 08:22:03 mh Exp $
+ * @version $Id: MirMedia.java,v 1.15 2003/01/25 17:45:17 idfx Exp $
  */
 
 public interface  MirMedia{
index aa348a5..6893f36 100755 (executable)
 
 package mir.media;
 
-import java.lang.*;
 
 /*
  *  MirMediaException -
  *
- * @version $Id: MirMediaException.java,v 1.7 2002/12/01 15:05:51 zapata Exp $
+ * @version $Id: MirMediaException.java,v 1.8 2003/01/25 17:45:17 idfx Exp $
  * @author mh
  *
  */
index 07d5d40..ac8bf0e 100755 (executable)
 
 package mir.media;
 
-import java.lang.*;
 
 /*
  *  MirMediaException -
  *  differentiates itself from a bug in that it
  *  represents a probable user error
  * 
- * @version $Id: MirMediaUserException.java,v 1.4 2002/11/04 04:35:21 mh Exp $
+ * @version $Id: MirMediaUserException.java,v 1.5 2003/01/25 17:45:17 idfx Exp $
  * @author mh
  *
  */
index 2ede1ce..3d7f880 100755 (executable)
 package mir.misc;
 
 
-import java.io.*;
 
 /**
  * Reports the location of the error in the File.
  * Based and inspired by a source from the Ant distribution
  * (Copyright (c) 1999-2001 The Apache Software Foundation.)
  *
- * @version $Id: ConfigException.java,v 1.2 2002/09/01 22:05:49 mh Exp $
+ * @version $Id: ConfigException.java,v 1.3 2003/01/25 17:45:17 idfx Exp $
  *
  * @author The Mir-coders group
  */
index 016a0dc..dc116ee 100755 (executable)
 
 package  mir.misc;
 
-import  java.net.*;
-import  java.io.*;
-import  java.util.*;
-import  java.lang.*;
+import java.io.BufferedInputStream;
+import java.io.FileInputStream;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Properties;
 
 
 /**
index 455f381..7d9b01e 100755 (executable)
 
 package  mir.misc;
 
-import com.oreilly.servlet.multipart.*;
 import java.util.HashMap;
 
+import com.oreilly.servlet.multipart.FilePart;
+
 
 /**
  * Interface that classes wishing to be used as a callback on FileParts for the
  * WebdbMultipartRequest class should implement this interface.
  * 
  * @author mh <mh@nadir.org>
- * @version $Id: FileHandler.java,v 1.2 2002/11/04 04:35:21 mh Exp $
+ * @version $Id: FileHandler.java,v 1.3 2003/01/25 17:45:17 idfx Exp $
  * @see mir.misc.WebdbMultipartRequest
  * 
  */
index ebbcfd0..c10bfe0 100755 (executable)
 
 package mir.misc;
 
-import java.lang.*;
 
 /*
  * 
- * @version $Id: FileHandlerException.java,v 1.3 2002/11/27 07:46:34 mh Exp $
+ * @version $Id: FileHandlerException.java,v 1.4 2003/01/25 17:45:17 idfx Exp $
  * @author mh, mir-coders
  *
  */
index afa8d50..518e9b2 100755 (executable)
 
 package mir.misc;
 
-import java.lang.*;
 
 /*
  *  differentiates itself from a bug in that it
  *  represents a probable user error
  *
- * @version $Id: FileHandlerUserException.java,v 1.4 2002/12/01 15:05:51 zapata Exp $
+ * @version $Id: FileHandlerUserException.java,v 1.5 2003/01/25 17:45:17 idfx Exp $
  * @author mh
  *
  * $Log: FileHandlerUserException.java,v $
+ * Revision 1.5  2003/01/25 17:45:17  idfx
+ * some small changes delting unneeded imports. two new exceptions in mir.storage. usage of the new config-class.
+ *
  * Revision 1.4  2002/12/01 15:05:51  zapata
  * tracked down a nasty error reporting bug
  *
  * Revision 1.3  2002/11/27 07:46:34  mh
  * get rid of annoying $Log: FileHandlerUserException.java,v $
+ * get rid of annoying Revision 1.5  2003/01/25 17:45:17  idfx
+ * get rid of annoying some small changes delting unneeded imports. two new exceptions in mir.storage. usage of the new config-class.
+ * get rid of annoying
  * get rid of annoying Revision 1.4  2002/12/01 15:05:51  zapata
  * get rid of annoying tracked down a nasty error reporting bug
  * get rid of annoying keywords
index 0df35e0..017be8c 100755 (executable)
 
 package mir.misc;
 
-import  java.lang.*;
-import  java.util.*;
-import  java.io.*;
-import  java.net.*;
-import  freemarker.template.*;
-import  mir.entity.*;
-import  mir.storage.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.io.Reader;
 
-import javax.servlet.http.*;
-import javax.servlet.*;
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
 
 /**
  * Hilfsklasse zum Mergen von Template und Daten
@@ -53,7 +53,12 @@ public final class FileUtil {
   // Initialisierung
 
   static {
-    producerStorageRoot = MirConfig.getProp("Producer.StorageRoot");
+    try {
+      producerStorageRoot = 
+       MirPropertiesConfiguration.instance().getString("Producer.StorageRoot");
+    } catch (PropertiesConfigExc e) {
+      e.printStackTrace();
+    } 
   }
 
   /**
index fbbd5a4..09315d9 100755 (executable)
@@ -31,7 +31,6 @@
 
 package mir.misc;
 
-import java.lang.*;
 
 /*
  *  HTMLParseException -
index 779a247..f02f59f 100755 (executable)
@@ -34,9 +34,11 @@ package mir.misc;
 import freemarker.template.*;\r
 import mir.util.*;\r
 import mir.generator.*;\r
+import mir.config.MirPropertiesConfiguration;\r
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;\r
 import mir.entity.Entity;\r
 import mir.entity.EntityList;\r
-import mir.storage.StorageObjectException;\r
+import mir.storage.StorageObjectFailure;\r
 import org.apache.struts.util.MessageResources;\r
 \r
 import javax.servlet.http.HttpServletResponse;\r
@@ -51,22 +53,31 @@ import java.util.*;
 public final class HTMLTemplateProcessor {\r
 \r
   public static String templateDir;\r
+  private static MirPropertiesConfiguration configuration;\r
   private static FileTemplateCache templateCache;\r
   private static Logfile theLog;\r
   private static String docRoot;\r
   private static String actionRoot;\r
 \r
   static {\r
-    templateDir = MirConfig.getPropWithHome("HTMLTemplateProcessor.Dir");\r
+    try {\r
+      configuration = MirPropertiesConfiguration.instance();\r
+    } catch (PropertiesConfigExc e) {\r
+      e.printStackTrace();\r
+    }\r
+    theLog = Logfile.getInstance(\r
+      configuration.getStringWithHome("HTMLTemplateProcessor.Logfile"));\r
+    templateDir = \r
+       configuration.getStringWithHome("HTMLTemplateProcessor.Dir");\r
+    theLog.printDebugInfo("templateDir: " + templateDir);\r
     templateCache = new FileTemplateCache(templateDir);\r
-    templateCache.setLoadingPolicy(templateCache.LOAD_ON_DEMAND);\r
+    templateCache.setLoadingPolicy(FileTemplateCache.LOAD_ON_DEMAND);\r
     // gone in freemarker 1.7.1: templateCache.startAutoUpdate();\r
-    theLog = Logfile.getInstance(MirConfig.getPropWithHome(\r
-        "HTMLTemplateProcessor.Logfile"));\r
 \r
-    docRoot = MirConfig.getProp("RootUri");\r
+\r
+    docRoot = configuration.getString("RootUri");\r
     try {\r
-      actionRoot = docRoot + MirConfig.getProp("Producer.ActionServlet");\r
+      actionRoot = docRoot +configuration.getString("Producer.ActionServlet");\r
     }\r
     catch (ConfigException ce) {\r
       // if  Producer.ActionServlet is not set in the conf file\r
@@ -119,7 +130,7 @@ public final class HTMLTemplateProcessor {
   }\r
 \r
   /**\r
-   * Wandelt Entitylist in freemarker-Struktur um, fügt <code>additionalModel</code>\r
+   * Wandelt Entitylist in freemarker-Struktur um, f?gt <code>additionalModel</code>\r
        * unter dem Namen <code>additionalModelName</code> ein und mischt die Daten mit\r
    * Template <code>templateFilename</code> und gibt das Ergebnis an den PrintWriter\r
    * <code>out</code>\r
@@ -152,7 +163,7 @@ public final class HTMLTemplateProcessor {
 \r
         process(res, templateFilename, modelRoot, out, locale);\r
       }\r
-      catch (StorageObjectException e) {\r
+      catch (StorageObjectFailure e) {\r
         throw new HTMLParseException(e.toString());\r
       }\r
     }\r
@@ -233,11 +244,13 @@ public final class HTMLTemplateProcessor {
     SimpleHash configHash = new SimpleHash();\r
 \r
     // pass the whole config hash to the templates\r
-    Enumeration en = MirConfig.getResourceKeys();\r
+    Iterator it = configuration.getKeys();\r
     String key;\r
-    while (en.hasMoreElements()) {\r
-      key = (String) en.nextElement();\r
-      configHash.put(key, new SimpleScalar(MirConfig.getProp(key)));\r
+    while (it.hasNext()) {\r
+      key = (String) it.next();\r
+      configHash.put(key, new SimpleScalar(\r
+       configuration.getString(key))\r
+      );\r
     }\r
 \r
     // this does not come directly from the config file\r
@@ -306,7 +319,7 @@ public final class HTMLTemplateProcessor {
    *    @deprecated EntityLists comply with TemplateListModel now.\r
    */\r
   public static SimpleList makeSimpleList(EntityList aList) throws\r
-      StorageObjectException {\r
+      StorageObjectFailure {\r
     theLog.printWarning(\r
         "## using deprecated makeSimpleList(entityList) - a waste of resources");\r
     SimpleList simpleList = new SimpleList();\r
@@ -326,7 +339,7 @@ public final class HTMLTemplateProcessor {
    *\r
    */\r
   public static SimpleHash makeSimpleHash(EntityList aList) throws\r
-      StorageObjectException {\r
+      StorageObjectFailure {\r
     SimpleHash simpleHash = new SimpleHash();\r
     Entity currentEntity;\r
 \r
@@ -371,7 +384,7 @@ public final class HTMLTemplateProcessor {
    */\r
 \r
   public static SimpleHash makeSimpleHashWithEntitylistInfos(EntityList entList) throws\r
-      StorageObjectException {\r
+      StorageObjectFailure {\r
     SimpleHash modelRoot = new SimpleHash();\r
     if (entList != null) {\r
       modelRoot.put("contentlist", entList);\r
index 1baa11f..9dda35c 100755 (executable)
@@ -33,6 +33,9 @@ package mir.misc;
 
 import java.io.IOException;
 
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
+
 /**
  * Title:        Indy
  * Description:  This class provides some satic help methods
@@ -51,7 +54,15 @@ public class Helper {
         * returns 255 if rsync should not be used
    */
   public static int rsync(){
-               if(!MirConfig.getProp("Rsync").toLowerCase().equals("yes")){
+    MirPropertiesConfiguration configuration = null;
+    try {
+      configuration = MirPropertiesConfiguration.instance();
+    } catch (PropertiesConfigExc e) {
+      e.printStackTrace();
+      return 255;
+    }
+    
+               if(!configuration.getString("Rsync").toLowerCase().equals("yes")){
                        return 255;
                }
                
@@ -59,7 +70,7 @@ public class Helper {
     int returnValue = -1;
     try {
       Runtime run = Runtime.getRuntime();
-      p = run.exec(MirConfig.getProp("Rsync.Script.Path"));
+      p = run.exec(configuration.getString("Rsync.Script.Path"));
       returnValue = p.waitFor();
     } catch (IOException e) {
       return returnValue;
index d251697..eb7be42 100755 (executable)
@@ -30,7 +30,9 @@
  */
 
 package mir.misc;
-import java.io.*;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.Writer;
 
 /**
  *  LineFilterWriter eliminates superfluous \t \r \n and spaces
index a0c9ccc..35403e9 100755 (executable)
 
 package mir.misc;
 
-import java.util.*;
-import java.io.*;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.util.Enumeration;
+import java.util.LinkedList;
+import java.util.ListIterator;
+import java.util.NoSuchElementException;
 
 public class ListOfFiles implements Enumeration {
 
index 8de330c..29860c4 100755 (executable)
 
 package  mir.misc;
 
-import  java.util.*;
-import  java.io.*;
+import java.io.File;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
 
 
 /**
@@ -138,7 +142,7 @@ public final class Logfile {
         *  Interne Ausgabeprozedur.
         *      Erfordert etwas Handarbeit, da PrintStream nicht mit RandomAcccessFile
         *      kooperiert. Und ein RandomAccessFile brauchen wir, weil FileOutputStream
-        *      kein "append" zuläßt.
+        *      kein "append" zul??t.
         *
         */
                private void print(String line) {
index b97d42c..9c4985a 100755 (executable)
 \r
 package mir.misc;\r
 \r
+import java.util.List;\r
+import java.util.Locale;\r
+\r
+import org.apache.struts.util.MessageResources;\r
+\r
 import freemarker.template.SimpleScalar;\r
 import freemarker.template.TemplateMethodModel;\r
 import freemarker.template.TemplateModel;\r
-import org.apache.struts.util.MessageResources;\r
-\r
-import java.util.List;\r
-import java.util.Locale;\r
 \r
 /**\r
  * A FreeMarker <code>TemplateMethodModel</code> that provides access to a\r
index ebcd965..5113ebd 100755 (executable)
 
 package  mir.misc;
 
-import  java.net.*;
-import  java.io.*;
-import  java.util.*;
-import  java.lang.*;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
 
-import  javax.servlet.ServletContext;
-import  javax.servlet.http.*;
+import javax.servlet.ServletContext;
 
-import  mir.storage.StorageObjectException;
-import  mir.storage.DatabaseAdaptor;
-import com.codestudio.util.*;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
+import mir.storage.DatabaseAdaptor;
+import mir.storage.StorageObjectExc;
+import mir.storage.StorageObjectFailure;
+
+import com.codestudio.util.JDBCPool;
+import com.codestudio.util.JDBCPoolMetaData;
+import com.codestudio.util.SQLManager;
 
 /**
  * Title:        Mir
@@ -134,9 +137,9 @@ public class MirConfig extends Configuration {
     return configHash.get(propName);
   }
 
-  public static void initDbPool () throws StorageObjectException {
+  public static void initDbPool () throws StorageObjectExc, StorageObjectFailure {
     if (configHash == null) {
-        throw new StorageObjectException("MirConfig -- Trying initialize "+
+        throw new StorageObjectExc("MirConfig -- Trying initialize "+
                                         "DB pool when system not yet "+
                                         "configured");
     }
@@ -148,22 +151,28 @@ public class MirConfig extends Configuration {
     try {
       adaptor = (DatabaseAdaptor)Class.forName(dbAdapName).newInstance();
     } catch (Exception e) {
-      throw new StorageObjectException("Could not load DB adapator: "+
-                                        e.toString());
+      throw new StorageObjectFailure("Could not load DB adapator.",e);
+    }
+    String dbDriver;
+    String dbUrl;
+    try {
+      dbDriver = adaptor.getDriver();
+      dbUrl =adaptor.getURL(dbUser,dbPassword, dbHost);
+    } catch (PropertiesConfigExc e) {
+      throw new StorageObjectFailure(e);
     }
-    String dbDriver=adaptor.getDriver();
-    String dbUrl=adaptor.getURL(dbUser,dbPassword, dbHost);
+    
     System.out.println("adding Broker with: " +dbDriver+":"+dbUrl );
     addBroker( dbDriver, dbUrl);
   }
 
   public static void addBroker(String driver, String URL)
-    throws StorageObjectException {
+    throws StorageObjectFailure, StorageObjectExc {
 
     if (configHash == null) {
-        throw new StorageObjectException("MirConfig -- Trying initialize "+
-                                        "DB pool when system not yet "+
-                                        "configured");
+       throw new StorageObjectExc("MirConfig -- Trying initialize "+
+                                 "DB pool when system not yet "+
+                                 "configured");
     }
     String username,passwd,min,max,log,reset,dbname,dblogfile;
 
index 89a11e4..35591a5 100755 (executable)
 
 package  mir.misc;
 
-import freemarker.template.*;
-
 import java.text.NumberFormat;
-import java.util.List; 
 
 /**
  * Help methods for number handling.
  *
- * @version $Id: NumberUtils.java,v 1.3 2002/11/28 19:12:08 mh Exp $
+ * @version $Id: NumberUtils.java,v 1.4 2003/01/25 17:45:18 idfx Exp $
  * @author mh, Mir-coders group
  *
  */
index 05534dc..2ef9fe6 100755 (executable)
 
 package mir.misc;
 
-import java.io.*;
-import javax.servlet.http.*;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
 
-import mircoders.global.*;
+import javax.servlet.http.HttpServletResponse;
 
-import org.apache.fop.apps.* ;
-import org.xml.sax.InputSource;
+import mircoders.global.MirGlobal;
+
+import org.apache.fop.apps.Driver;
+import org.apache.fop.apps.InputHandler;
+import org.apache.fop.apps.XSLTInputHandler;
+import org.apache.log.Hierarchy;
+import org.apache.log.Logger;
+import org.apache.log.Priority;
 import org.xml.sax.XMLReader;
-import org.apache.log.*;
 
 public class PDFUtil {
     
index 57139c7..9e9b6ac 100755 (executable)
 
 package  mir.misc;
 
-import  java.io.*;
-import  java.lang.*;
-import  java.util.*;
-import  java.text.NumberFormat;
-import  gnu.regexp.*;
+import gnu.regexp.RE;
+import gnu.regexp.REException;
+
+import java.io.File;
+import java.text.NumberFormat;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.StringTokenizer;
 
 /**
  * Statische Hilfsmethoden zur Stringbehandlung
  *
- * @version $Id: StringUtil.java,v 1.31 2002/12/23 03:15:32 mh Exp $
+ * @version $Id: StringUtil.java,v 1.32 2003/01/25 17:45:18 idfx Exp $
  * @author mir-coders group
  *
  */
@@ -362,7 +365,7 @@ public final class StringUtil {
 
 
   /**
-   * Fügt einen Separator an den Pfad an
+   * F?gt einen Separator an den Pfad an
    * @param path
    * @return Pfad mit Separator am Ende
    */
@@ -372,7 +375,7 @@ public final class StringUtil {
   }
 
   /**
-   * Fügt ein <code>/</code> ans ende des Strings and
+   * F?gt ein <code>/</code> ans ende des Strings and
    * @param path
    * @return Pfad mit <code>/</code> am Ende
    */
@@ -381,7 +384,7 @@ public final class StringUtil {
   }
 
   /**
-   * Löscht <code>/</code> am Ende des Strings, falls vorhanden
+   * L?scht <code>/</code> am Ende des Strings, falls vorhanden
    * @param path
    * @return String ohne <code>/</code> am Ende
    */
@@ -401,7 +404,7 @@ public final class StringUtil {
   }
 
   /**
-   * Löscht Slash am Anfang des Strings
+   * L?scht Slash am Anfang des Strings
    * @param path
    * @return
    */
@@ -483,9 +486,9 @@ public final class StringUtil {
   }
 
   /**
-   * Ermittelt CRC-Prüfsumme von String <code>s</code>
+   * Ermittelt CRC-Pr?fsumme von String <code>s</code>
    * @param s
-   * @return CRC-Prüfsumme
+   * @return CRC-Pr?fsumme
    */
   public static int getCRC(String s) {
     int h = 0;
@@ -501,7 +504,7 @@ public final class StringUtil {
   }
 
   /**
-   * Liefert Default-Wert def zurück, wenn String <code>s</code>
+   * Liefert Default-Wert def zur?ck, wenn String <code>s</code>
    * kein Integer ist.
    *
    * @param s
@@ -518,7 +521,7 @@ public final class StringUtil {
   }
 
   /**
-   * Liefert Defaultwert def zurück, wenn s nicht zu einem float geparsed werden kann.
+   * Liefert Defaultwert def zur?ck, wenn s nicht zu einem float geparsed werden kann.
    * @param s
    * @param def
    * @return geparster float oder def
index c94b3cd..ff035b9 100755 (executable)
@@ -35,16 +35,21 @@ package mir.misc;
  * Title:
  * Description:
  * Copyright:    Copyright (c) 2002 Mir-coders
- * @author $Author: mh $
- * @version $Id: WebdbImage.java,v 1.8 2002/11/04 04:35:21 mh Exp $
+ * @author $Author: idfx $
+ * @version $Id: WebdbImage.java,v 1.9 2003/01/25 17:45:18 idfx Exp $
  */
 
-import java.io.*;
-import java.util.Vector;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
 import java.util.Random;
-import javax.media.jai.*;
-import com.sun.media.jai.codec.*;
-import java.awt.image.renderable.ParameterBlock;
+
+import javax.media.jai.InterpolationBilinear;
+import javax.media.jai.JAI;
+import javax.media.jai.ParameterBlockJAI;
+import javax.media.jai.PlanarImage;
+
+import com.sun.media.jai.codec.FileSeekableStream;
 
 public class WebdbImage
 {
index 7b0c82c..42e9082 100755 (executable)
 
 package mir.misc;
 
-import java.util.*;
-import java.io.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import com.oreilly.servlet.multipart.*;
-import com.oreilly.servlet.*;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Vector;
+
+import javax.servlet.http.HttpServletRequest;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
+
+import com.oreilly.servlet.multipart.FilePart;
+import com.oreilly.servlet.multipart.MultipartParser;
+import com.oreilly.servlet.multipart.ParamPart;
+import com.oreilly.servlet.multipart.Part;
 
 /**
  * Title:
@@ -55,10 +64,17 @@ public class WebdbMultipartRequest
   FileHandler           _fHandler;
 
   public WebdbMultipartRequest(HttpServletRequest theReq, FileHandler handler)
-    throws FileHandlerException, FileHandlerUserException, IOException
+    throws FileHandlerException, FileHandlerUserException, IOException, PropertiesConfigExc
   {
     req=theReq;
-    int maxSize = Integer.parseInt(MirConfig.getProp("MaxMediaUploadSize"));
+    int maxSize;
+    try {
+      maxSize =
+        MirPropertiesConfiguration.instance().getInt("MaxMediaUploadSize");
+    } catch (PropertiesConfigExc e) {
+      maxSize = 1024;
+      throw e;
+    }
     mp = new MultipartParser(req, 1024*maxSize);
     _fHandler = handler;
     _evaluateRequest();
index 665cd9f..ff5f000 100755 (executable)
@@ -33,6 +33,7 @@ package mir.misc;
 
 import java.io.InputStream;
 import java.io.OutputStream;
+
 import org.xml.sax.SAXException;
 
 /**
index a7d195b..c777715 100755 (executable)
 
 package  mir.module;
 
-import  java.util.*;
-import  java.sql.*;
-import  freemarker.template.*;
-import  mir.storage.*;
-import  mir.misc.*;
-import  mir.entity.*;
+import java.sql.SQLException;
+import java.util.HashMap;
+
+import mir.entity.Entity;
+import mir.entity.EntityList;
+import mir.storage.StorageObject;
+import mir.storage.StorageObjectExc;
+import mir.storage.StorageObjectFailure;
+import freemarker.template.SimpleHash;
 
 
 /**
@@ -45,8 +48,8 @@ import  mir.entity.*;
  * on Database and Entity classes. The modules are used by ServletModules.
  * Future possibility could be access via Applications.
  *
- * Abstrakte Klasse, von denen die Modules die Basisfunktionalität erben.
- * Die Moduleschicht dient dazu, Funktionalitaeten zur Verfügung zu stellen,
+ * Abstrakte Klasse, von denen die Modules die Basisfunktionalit?t erben.
+ * Die Moduleschicht dient dazu, Funktionalitaeten zur Verf?gung zu stellen,
  * die von mehreren ServletModulen verwendet werden.
  *
  */
@@ -59,7 +62,7 @@ public class AbstractModule {
   }
 
   /**
-   * Liefert das Standard-StorageObject zurück, mit dem das Module assoziiert ist.
+   * Liefert das Standard-StorageObject zur?ck, mit dem das Module assoziiert ist.
    * @return Standard-StorageObject
    */
   public StorageObject getStorageObject () {
@@ -80,7 +83,7 @@ public class AbstractModule {
         throw new ModuleException("No object for id = " + id);
       else return entity;
     }
-    catch (StorageObjectException e){
+    catch (StorageObjectExc e){
       throw new ModuleException(e.toString());
     }
   }
@@ -89,7 +92,7 @@ public class AbstractModule {
    *   Holt eine EntityListe anhand des WhereClause via StorageObject
    *   @param String whereclause
    *   @param offset - ab welchem Datensatz die gematchten Entities zurueckgeliefert werden
-   *   @return EntityList Liste der gematchten Datensätze
+   *   @return EntityList Liste der gematchten Datens?tze
    */
   public EntityList getByWhereClause (String whereClause, int offset) throws ModuleException {
     try {
@@ -97,7 +100,7 @@ public class AbstractModule {
         throw  new ModuleException("Kein StorageObject gesetzt");
       return theStorage.selectByWhereClause(whereClause, offset);
     }
-    catch (StorageObjectException e){
+    catch (StorageObjectFailure e){
       throw new ModuleException(e.toString());
     }
   }
@@ -107,14 +110,14 @@ public class AbstractModule {
    *   @param String where WhereClause
    *   @param String order Sortierreihenfolge
    *   @param offset - ab welchem Datensatz die gematchten Entities zurueckgeliefert werden
-   *   @return EntityList Liste der gematchten Datensätze
+   *   @return EntityList Liste der gematchten Datens?tze
    */
   public EntityList getByWhereClause (String where, String order, int offset) throws ModuleException {
     try {
       if (theStorage==null) throw new ModuleException("Kein StorageObject gesetzt");
       return theStorage.selectByWhereClause(where, order, offset);
     }
-    catch (StorageObjectException e){
+    catch (StorageObjectFailure e){
       throw new ModuleException(e.toString());
     }
   }
@@ -135,7 +138,7 @@ public class AbstractModule {
       if (theStorage==null) throw new ModuleException("StorageObject not set!");
       return theStorage.selectByWhereClause(where, order, offset, limit);
     }
-    catch (StorageObjectException e){
+    catch (StorageObjectFailure e){
       throw new ModuleException(e.toString());
     }
   }
@@ -145,7 +148,7 @@ public class AbstractModule {
    *   @param String aField - Feldname im StorageObject
    *   @param String aValue - Wert in Feld im StorageObject
    *   @param offset - ab welchem Datensatz die gematchten Entities zurueckgeliefert werden
-   *   @return EntityList Liste der gematchten Datensätze
+   *   @return EntityList Liste der gematchten Datens?tze
    */
   public EntityList getByFieldValue (String aField, String aValue, int offset) throws ModuleException {
     String whereClause;
@@ -154,9 +157,9 @@ public class AbstractModule {
   }
 
   /**
-   * Standardfunktion, um einen Datensatz via StorageObject einzufügen
+   * Standardfunktion, um einen Datensatz via StorageObject einzuf?gen
    * @param theValues Hash mit Spalte/Wert-Paaren
-   * @return Id des eingefügten Objekts
+   * @return Id des eingef?gten Objekts
    * @exception ModuleException
    */
   public String add (HashMap theValues) throws ModuleException {
@@ -173,7 +176,7 @@ public class AbstractModule {
   /**
    * Standardfunktion, um einen Datensatz via StorageObject zu aktualisieren
    * @param theValues Hash mit Spalte/Wert-Paaren
-   * @return Id des eingefügten Objekts
+   * @return Id des eingef?gten Objekts
    * @exception ModuleException
    */
   public String set (HashMap theValues) throws ModuleException {
@@ -185,7 +188,7 @@ public class AbstractModule {
       theEntity.update();
       return theEntity.getId();
     }
-    catch (StorageObjectException e){
+    catch (StorageObjectExc e){
       e.printStackTrace(System.err);
       throw new ModuleException(e.toString());
     }
@@ -199,7 +202,7 @@ public class AbstractModule {
   public void deleteById (String idParam) throws ModuleException {
     try {
       theStorage.delete(idParam);
-    } catch (StorageObjectException e){
+    } catch (StorageObjectFailure e){
       throw new ModuleException(e.toString());
     }
   }
@@ -216,7 +219,7 @@ public class AbstractModule {
    * returns the number of rows
    */
   public int getSize(String where)
-      throws SQLException,StorageObjectException {
+      throws SQLException,StorageObjectFailure {
     return theStorage.getSize(where);
   }
 
index fd90d4a..51aeb41 100755 (executable)
@@ -31,7 +31,6 @@
 
 package mir.module;
 
-import java.lang.*;
 
 /*
  *  ServletModuleException -
index b6e6369..c33b4a0 100755 (executable)
@@ -31,7 +31,6 @@
 
 package mir.module;
 
-import java.lang.*;
 
 /*
  *  ServletModuleException -
index 8795332..b393f92 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Map;
 
-import org.apache.struts.util.MessageResources;
-
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class AssignmentProducerNode extends ProducerNodeDecorator {
   private String key;
index 8c465a3..a3b3c89 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
 
-import mir.log.*;
+import mir.log.LoggerWrapper;
 
 public class CompositeProducerNode implements ProducerNode {
   private List subNodes;
index fffeed5..8a91400 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Map;
 
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class ConditionalProducerNode implements ProducerNode {
   private String condition;
index 835f99d..6ac3de6 100755 (executable)
 
 package mir.producer;
 
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.util.Map;
 
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.util.FileCopier;
+import mir.util.ParameterExpander;
 
 public class DirCopyingProducerNode implements ProducerNode  {
   private String sourceExpression;
index cb61f9d..22cae78 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
-
-import mir.entity.adapter.*;
-import mir.entity.*;
-import mir.storage.*;
-import mir.util.*;
-import mir.log.*;
+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.entity.adapter.EntityIteratorAdapter;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class EntityBatchingProducerNode implements ProducerNode {
   private String batchInfoKey;
index 2a28833..aed4558 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Iterator;
+import java.util.Map;
 
-import mir.entity.adapter.*;
-import mir.entity.*;
-import mir.storage.*;
-import mir.util.*;
-import mir.log.*;
+import mir.entity.adapter.EntityAdapterModel;
+import mir.entity.adapter.EntityIteratorAdapter;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class EntityEnumeratingProducerNode extends ProducerNodeDecorator {
   private String key;
index ec4e5e9..f2e609d 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Map;
+import java.util.Vector;
 
-import mir.entity.adapter.*;
-import mir.entity.*;
-import mir.storage.*;
-import mir.util.*;
-import mir.log.*;
+import mir.entity.adapter.EntityAdapterModel;
+import mir.entity.adapter.EntityIteratorAdapter;
+import mir.log.LoggerWrapper;
+import mir.util.CachingRewindableIterator;
+import mir.util.ParameterExpander;
 
 public class EntityListProducerNode extends ProducerNodeDecorator {
   private String key;
index b33cfab..9db1398 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
-import mir.entity.*;
-import mir.entity.adapter.*;
-import mir.util.*;
+import java.io.PrintWriter;
+import java.util.Map;
+
+import mir.entity.adapter.EntityAdapter;
+import mir.util.ParameterExpander;
 
 
 public abstract class EntityModifyingProducerNode implements ProducerNode {
index 1a02b29..ad39c63 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Map;
 
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class EvaluatedAssignmentProducerNode implements ProducerNode {
   private String key;
index 7c9d425..de00c44 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Map;
 
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class ExpandedAssignmentProducerNode implements ProducerNode {
   private String key;
index f4e567d..351c610 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.io.File;
+import java.util.Date;
+import java.util.Map;
 
-import mir.log.*;
-import mir.util.*;
-import mir.producer.*;
-import mir.generator.*;
-import mircoders.global.*;
-import mircoders.localizer.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class FileDateSettingProducerNode extends FileOperationProducerNode {
   String dateExpression;
index f509ba4..ff3f0a0 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.io.File;
+import java.util.Map;
 
-import mir.util.*;
-import mir.producer.*;
-import mir.generator.*;
-import mir.log.*;
-
-import mircoders.global.*;
-import mircoders.localizer.*;
+import mir.log.LoggerWrapper;
 
 public class FileDeletingProducerNode extends FileOperationProducerNode {
 
index 215fb52..439c771 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.io.File;
+import java.util.Map;
 
-import mir.util.*;
-import mir.producer.*;
-import mir.generator.*;
-import mir.log.*;
-
-import mircoders.global.*;
-import mircoders.localizer.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public abstract class FileOperationProducerNode implements ProducerNode {
   String fileName;
index df2b85b..6ad421d 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.io.PrintWriter;
+import java.util.Map;
 
-import mir.util.*;
-import mir.producer.*;
-import mir.generator.*;
-import mir.log.*;
+import mir.generator.Generator;
+import mir.generator.WriterEngine;
+import mir.log.LoggerToWriterAdapter;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class GeneratingProducerNode implements ProducerNode {
   private String generatorExpression;
index 4dd9b6d..ee438ae 100755 (executable)
 
 package mir.producer;
 
-import java.io.*;
-import java.util.*;
+import java.util.Map;
 
-import mir.util.*;
-import mir.producer.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class LoggingProducerNode implements ProducerNode {
   private String expression;
index 65c5772..7487fa7 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Map;
 
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 
 public class LoopProducerNode extends ProducerNodeDecorator {
index 83fc96c..6b08a07 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.HashMap;
+import java.util.Map;
 
-import mir.log.*;
+import mir.log.LoggerWrapper;
 
 public class NodedProducer implements Producer {
   private ProducerNode rootNode;
index 129f469..7fe3d96 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import mir.producer.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
 
 public class NodedProducerFactory implements ProducerFactory {
   private ProducerNode rootNode;
index 1c2e19e..35e7b20 100755 (executable)
@@ -31,8 +31,7 @@
 
 package mir.producer;
 
-import java.io.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
 
 public interface Producer {
   public void produce( LoggerWrapper aLogger ) throws ProducerFailure, ProducerExc;
index 47efeac..3920c59 100755 (executable)
@@ -31,7 +31,8 @@
 
 package mir.producer;
 
-import java.util.*;
+import java.util.Iterator;
+import java.util.Map;
 
 public interface ProducerFactory {
   public interface ProducerVerb {
index 23ea273..41393b7 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Map;
 
-import mir.log.*;
+import mir.log.LoggerWrapper;
 
 public interface ProducerNode {
   public void produce(Map aValueSet, String aVerb, LoggerWrapper aLogger) throws ProducerExc, ProducerFailure;
index e77b7e3..1406c2a 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
+import java.util.Map;
 
-import mir.log.*;
+import mir.log.LoggerWrapper;
 
 public class ProducerNodeDecorator implements ProducerNode {
   private ProducerNode slave;
index b80342e..862fea1 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
-import org.apache.struts.util.MessageResources;
+import java.util.Locale;
+import java.util.Map;
+
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
+import mir.util.ResourceBundleGeneratorFunction;
 
-import mir.util.*;
-import mir.misc.*;
-import mir.log.*;
+import org.apache.struts.util.MessageResources;
 
 public class ResourceBundleProducerNode implements ProducerNode {
   private String key;
index 234efc4..f291769 100755 (executable)
 
 package mir.producer;
 
-import java.io.*;
-import java.util.*;
+import java.util.Map;
 
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.util.ParameterExpander;
 
 public class ScriptCallingProducerNode implements ProducerNode  {
   String scriptExpression;
index a3f7a8e..25e5ccc 100755 (executable)
 
 package mir.producer;
 
-import java.util.*;
-import java.io.*;
-import org.apache.struts.util.MessageResources;
+import java.util.Map;
 
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
 
 public class ValuesMapProducerNode extends ProducerNodeDecorator {
   private String key;
index 78f3787..320d0dd 100755 (executable)
 
 package mir.producer.reader;
 
-import java.util.*;
-
-import mir.generator.*;
-
-import mir.producer.*;
-import mir.entity.adapter.*;
-import mir.util.*;
-import mir.log.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import mir.entity.adapter.EntityAdapterModel;
+import mir.generator.Generator;
+import mir.generator.WriterEngine;
+import mir.log.LoggerWrapper;
+import mir.producer.ConditionalProducerNode;
+import mir.producer.DirCopyingProducerNode;
+import mir.producer.EntityBatchingProducerNode;
+import mir.producer.EntityEnumeratingProducerNode;
+import mir.producer.EntityListProducerNode;
+import mir.producer.EvaluatedAssignmentProducerNode;
+import mir.producer.ExpandedAssignmentProducerNode;
+import mir.producer.FileDateSettingProducerNode;
+import mir.producer.FileDeletingProducerNode;
+import mir.producer.GeneratingProducerNode;
+import mir.producer.LoggingProducerNode;
+import mir.producer.LoopProducerNode;
+import mir.producer.ProducerNode;
+import mir.producer.ResourceBundleProducerNode;
+import mir.producer.ScriptCallingProducerNode;
 
 public class DefaultProducerNodeBuilders {
 
index 52d589f..8ad2acf 100755 (executable)
 
 package  mir.producer.reader;
 
-import java.io.*;
-import java.util.*;
-import java.lang.System;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
+import java.util.Vector;
+
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
-import mir.util.*;
-import mir.config.exceptions.*;
-import mir.producer.*;
+import mir.producer.CompositeProducerNode;
+import mir.producer.ProducerFactory;
+import mir.producer.ProducerNode;
+import mir.producer.SimpleProducerVerb;
 
-//import mir.producer.exceptions.*;
-import mir.misc.Location;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
 
 public class ProducerConfigReader {
   private ProducerNodeBuilderLibrary builderLibrary;
index c374db5..03532c1 100755 (executable)
 
 package mir.producer.reader;
 
-import java.util.*;
-import mir.producer.*;
+import java.util.Map;
+import java.util.Set;
+
+import mir.producer.ProducerNode;
 
 public interface ProducerNodeBuilder  {
   public void setAttributes(Map anAttributes) throws ProducerConfigExc;
index 8480589..7836bc2 100755 (executable)
@@ -31,8 +31,8 @@
 
 package mir.producer.reader;
 
-import java.util.*;
-import mir.producer.*;
+import java.util.HashMap;
+import java.util.Map;
 
 public class ProducerNodeBuilderLibrary {
   private Map nodeBuilders;
index ea92214..eb02254 100755 (executable)
 
 package mir.producer.reader;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
 
 public class ReaderTool {
 
index 483754f..e8e7d8d 100755 (executable)
 
 package mir.producer.reader;
 
-import java.util.*;
-import mir.producer.*;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import mir.producer.CompositeProducerNode;
+import mir.producer.NodedProducer;
+import mir.producer.Producer;
+import mir.producer.ProducerExc;
+import mir.producer.ProducerFactory;
+import mir.producer.ProducerFailure;
+import mir.producer.ProducerNode;
 
 public class ScriptedProducerFactory implements ProducerFactory {
   private List verbs;
index 4e275a1..a4d25b7 100755 (executable)
 
 package mir.producer.reader;
 
-import java.util.*;
-import java.io.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
 
-import mir.producer.*;
-import mir.util.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
+import mir.producer.ProducerExc;
+import mir.producer.ProducerFailure;
+import mir.producer.ProducerNode;
+import mir.util.ParameterExpander;
 
 public class ScriptedProducerNode implements ProducerNode {
   private ScriptedProducerNodeDefinition definition;
index 6f45b72..1e448a3 100755 (executable)
 
 package mir.producer.reader;
 
-import java.util.*;
-import java.io.*;
-
-import mir.producer.*;
-import mir.log.*;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
+
+import mir.log.LoggerWrapper;
+import mir.producer.CompositeProducerNode;
+import mir.producer.ProducerExc;
+import mir.producer.ProducerFailure;
+import mir.producer.ProducerNode;
 
 public class ScriptedProducerNodeDefinition {
   private Map integerParameters;               // name -> default value
index e8a2251..8a2c26b 100755 (executable)
 
 package mir.producer.reader;
 
-import java.util.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
 
 public class ScriptedProducerNodeTool {
 
index 90516c3..13f674b 100755 (executable)
 
 package mir.servlet;
 
-import mir.misc.Logfile;
-import mir.misc.MirConfig;
-import mir.misc.StringUtil;
-import mir.storage.StorageObjectException;
+import java.util.Locale;
 
-import javax.servlet.UnavailableException;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
-import java.util.Locale;
-import java.util.Random;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
+import mir.log.LoggerWrapper;
+import mir.storage.DatabaseAdaptor;
+
+import com.codestudio.util.JDBCPool;
+import com.codestudio.util.JDBCPoolMetaData;
+import com.codestudio.util.SQLManager;
 
 /**
  * Title:        Mir
@@ -50,12 +55,22 @@ import java.util.Random;
  * Copyright:    Copyright (c) 2001, 2002
  * Company:      Mir-coders group
  * @author       idfx, the Mir-coders group
- * @version      $Id: AbstractServlet.java,v 1.19 2002/12/23 03:12:46 mh Exp $
+ * @version      $Id: AbstractServlet.java,v 1.20 2003/01/25 17:45:19 idfx Exp $
  */
 
 public abstract class AbstractServlet extends HttpServlet {
     protected static String lang;
-    protected static Logfile theLog;
+    //protected static Logfile theLog;
+       protected LoggerWrapper logger;
+               protected MirPropertiesConfiguration configuration;     
+       
+  /**
+   * Constructor for AbstractServlet.
+   */
+  public AbstractServlet() {
+    super();
+    logger = new LoggerWrapper("Servlet");
+  }
 
     protected void setNoCaching(HttpServletResponse res) {
       //nothing in Mir can or should be cached as it's all dynamic...
@@ -68,35 +83,6 @@ public abstract class AbstractServlet extends HttpServlet {
     }
 
     /**
-     * the configration
-     */
-    protected boolean getConfig(HttpServletRequest req)
-            throws UnavailableException {
-
-        String name = super.getServletName();
-
-        // init config
-        MirConfig.initConfig(super.getServletContext(), req.getContextPath(),
-                              name, getInitParameter("Config"));
-
-        theLog = Logfile.getInstance(MirConfig.getPropWithHome(name + ".Logfile"));
-        theLog.printInfo(name + " started.");
-        theLog.printInfo("Path is: " + MirConfig.getProp("Home"));
-        theLog.printInfo("Root URI is: " + MirConfig.getProp("RootUri"));
-        theLog.printInfo("StandardLanguage is: " + MirConfig.getProp("StandardLanguage"));
-        try {
-            MirConfig.initDbPool();
-        }
-        catch (StorageObjectException e) {
-            throw new UnavailableException(
-                    "Could not initialize database pool. -- "
-                    + e.toString(), 0);
-        }
-        super.getServletContext().setAttribute("mir.confed", new Boolean(true));
-        return true;
-    }
-
-    /**
      * Bind the language to the session
      */
     protected void setLanguage(HttpSession session, String language) {
@@ -148,4 +134,76 @@ public abstract class AbstractServlet extends HttpServlet {
         lang = loc.getLanguage();
         return lang;
     }
+  /**
+   * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
+   */
+  public void init(ServletConfig arg0) throws ServletException {
+    super.init(arg0);
+    MirPropertiesConfiguration.setContext(arg0.getServletContext());
+    MirPropertiesConfiguration.setContextPath("/"+arg0.getServletName());
+    try {
+      configuration = MirPropertiesConfiguration.instance();
+    } catch (PropertiesConfigExc e) {
+      throw new ServletException(e);
+    }
+    
+    String dbUser=configuration.getString("Database.Username");
+    String dbPassword=configuration.getString("Database.Password");
+    String dbHost=configuration.getString("Database.Host");
+    String dbAdapName=configuration.getString("Database.Adaptor");
+    
+    DatabaseAdaptor adaptor;
+    try {
+      adaptor = (DatabaseAdaptor)Class.forName(dbAdapName).newInstance();
+    } catch (Exception e) {
+      throw new ServletException("Could not load DB adapator: "+
+                                        e.toString());
+    }
+    
+    String min,max,log,reset,dbname,dblogfile;
+
+    min=configuration.getString("Database.poolMin");
+    System.out.println(min);
+    max=configuration.getString("Database.poolMax");
+    System.out.println(max);
+    dbname=configuration.getString("Database.Name");
+    System.out.println(dbname);
+    log=configuration.getStringWithHome("Database.PoolLog");
+    System.out.println(log);
+    reset=configuration.getString("Database.poolResetTime");
+    System.out.println(reset);
+    dblogfile=configuration.getStringWithHome("Database.Logfile");
+    System.out.println(dblogfile);
+    
+    String dbDriver;
+    String dbUrl;
+    try{
+      dbDriver=adaptor.getDriver();
+      dbUrl=adaptor.getURL(dbUser,dbPassword, dbHost);
+    } catch (Exception e) {
+      throw new ServletException(e);
+    }
+
+    JDBCPoolMetaData meta = new JDBCPoolMetaData();
+    meta.setDbname(dbname);
+    meta.setDriver(dbDriver);
+    meta.setURL(dbUrl);
+    meta.setUserName(dbUser);
+    meta.setPassword(dbPassword);
+    meta.setJNDIName("mir");
+    meta.setMaximumSize(10);
+    meta.setMinimumSize(1);
+    meta.setPoolPreparedStatements(false);
+    meta.setCacheEnabled(false);
+    meta.setCacheSize(15);
+    meta.setDebugging(false);
+    meta.setLogFile(dblogfile+".pool");
+
+    SQLManager manager = SQLManager.getInstance();
+    JDBCPool pool = null;
+    if(manager != null){
+      pool = manager.createPool(meta);
+    }
+  }
+
 }
index 4f9232d..56419d1 100755 (executable)
 
 package mir.servlet;
 
-import freemarker.template.SimpleHash;
-import freemarker.template.TemplateModelRoot;
-import freemarker.template.TemplateModel;
-
-import mir.entity.EntityList;
-import mir.log.*;
-import mir.misc.*;
-import mir.module.AbstractModule;
-import mir.module.ModuleException;
-import mir.storage.StorageObject;
-import mir.storage.StorageObjectException;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Locale;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
+import mir.entity.EntityList;
+import mir.log.LoggerWrapper;
+import mir.misc.HTMLParseException;
+import mir.misc.HTMLTemplateProcessor;
+import mir.misc.LineFilterWriter;
+import mir.module.AbstractModule;
+import mir.module.ModuleException;
+import mir.storage.StorageObject;
+import mir.storage.StorageObjectFailure;
+import freemarker.template.SimpleHash;
+import freemarker.template.TemplateModelRoot;
+
 
 /**
  * Abstract class ServletModule provides the base functionality for servlets.
@@ -60,7 +63,7 @@ import java.util.Locale;
  *
  *
  *  Abstrakte Klasse ServletModule stellt die Basisfunktionalitaet der
- *  abgeleiteten ServletModule zur Verfügung.
+ *  abgeleiteten ServletModule zur Verf?gung.
  *
  * @version 28.6.1999
  * @author RK
@@ -70,11 +73,21 @@ public abstract class ServletModule {
 
   public String defaultAction;
   protected LoggerWrapper logger;
-
+       protected MirPropertiesConfiguration configuration;
   protected AbstractModule mainModule;
   protected String templateListString;
   protected String templateObjektString;
   protected String templateConfirmString;
+  
+  
+  public ServletModule(){
+    try {
+      configuration = MirPropertiesConfiguration.instance();
+    } catch (PropertiesConfigExc e) {
+      e.printStackTrace(System.err);
+    }
+  }
+  
 
   /**
    * Singelton - Methode muss in den abgeleiteten Klassen ueberschrieben werden.
@@ -98,7 +111,7 @@ public abstract class ServletModule {
     HttpSession session = req.getSession(false);
     String language = (String) session.getAttribute("Language");
     if (language == null) {
-      language = MirConfig.getProp("StandardLanguage");
+      language = configuration.getString("StandardLanguage");
     }
     return language;
   }
@@ -123,7 +136,7 @@ public abstract class ServletModule {
 
   public void redirect(HttpServletResponse aResponse, String aQuery) throws ServletModuleException {
     try {
-      aResponse.sendRedirect(MirConfig.getProp("RootUri") + "/Mir?"+aQuery);
+      aResponse.sendRedirect(MirPropertiesConfiguration.instance().getString("RootUri") + "/Mir?"+aQuery);
     }
     catch (Throwable t) {
       throw new ServletModuleException(t.getMessage());
@@ -440,7 +453,7 @@ public abstract class ServletModule {
     try {
       theFieldList = theStorage.getFields();
     }
-    catch (StorageObjectException e) {
+    catch (StorageObjectFailure e) {
       throw new ServletModuleException("ServletModule.getIntersectingValues: " + e.getMessage());
     }
 
index 51ebbdf..0c9d2c8 100755 (executable)
 
 package  mir.servlet;
 
-import  java.lang.reflect.*;
-import  javax.servlet.http.*;
-import  mir.servlet.ServletModuleException;
-import  mir.misc.*;
-import  mir.log.*;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import mir.log.LoggerWrapper;
 
 
 /**
  * Dispatcher, calls the method passed to ServletModule Class, through the "do"
  * Parameter (via POST or GET)
  *
- * @version $Id: ServletModuleDispatch.java,v 1.11 2002/12/01 15:05:51 zapata Exp $
+ * @version $Id: ServletModuleDispatch.java,v 1.12 2003/01/25 17:45:19 idfx Exp $
  *
  * @Author rk
  *
@@ -70,7 +72,7 @@ public final class ServletModuleDispatch {
          * @param res Http-Response, die vom Dispatcher an die Methode des
          *    ServletModules durchgereicht wird
          * @param sMod ServletModule, an das dispatched wird.
-         * @param mod Name des Modules als String (für Logfile)
+         * @param mod Name des Modules als String (f?r Logfile)
          */
 
   public static void dispatch(ServletModule sMod, HttpServletRequest req,
index f28807f..93deb01 100755 (executable)
@@ -31,7 +31,6 @@
 
 package mir.servlet;
 
-import java.lang.*;
 
 /*
  *  ServletModuleException -
index 2efb3f3..f001f11 100755 (executable)
 
 package  mir.servlet;
 
-import javax.servlet.http.*;
-import freemarker.template.*;
-import mir.storage.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import freemarker.template.TemplateModelRoot;
 
 
 /**
@@ -51,7 +52,7 @@ public class ServletModuleShow extends ServletModule {
        private static ServletModuleShow instance = new ServletModuleShow();
 
        /**
-        * Ein ServletModuleShow-Objekt wird Ã¼ber getInstance geliefert. Es gibt zur
+        * Ein ServletModuleShow-Objekt wird ?ber getInstance geliefert. Es gibt zur
         * Laufzeit nur ein Objekt (Singleton)
         * @return ServletModuleShow
         */
index 5b85287..5150788 100755 (executable)
@@ -31,7 +31,6 @@
 
 package mir.servlet;
 
-import java.lang.*;
 
 /*
  *  ServletModuleUserException -
index 4af1769..c5d8cf4 100755 (executable)
 \r
 package mir.storage;\r
 \r
-import  java.sql.*;\r
-import  java.lang.*;\r
-import  java.io.*;\r
-import  java.util.*;\r
-import  java.text.SimpleDateFormat;\r
-import  java.text.ParseException;\r
-import  freemarker.template.*;\r
-import  com.codestudio.sql.*;\r
-import  com.codestudio.util.*;\r
-\r
-import  mir.storage.StorageObject;\r
-import  mir.storage.store.*;\r
-import  mir.entity.*;\r
-import  mir.misc.*;\r
-import  mir.util.*;\r
+import java.io.IOException;\r
+import java.io.InputStreamReader;\r
+import java.sql.Connection;\r
+import java.sql.PreparedStatement;\r
+import java.sql.ResultSet;\r
+import java.sql.ResultSetMetaData;\r
+import java.sql.SQLException;\r
+import java.sql.Statement;\r
+import java.sql.Timestamp;\r
+import java.text.ParseException;\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.GregorianCalendar;\r
+import java.util.HashMap;\r
+\r
+import mir.config.MirPropertiesConfiguration;\r
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;\r
+import mir.entity.Entity;\r
+import mir.entity.EntityList;\r
+import mir.entity.StorableObjectEntity;\r
+import mir.misc.HTMLTemplateProcessor;\r
+import mir.misc.Logfile;\r
+import mir.misc.StringUtil;\r
+import mir.storage.store.ObjectStore;\r
+import mir.storage.store.StorableObject;\r
+import mir.storage.store.StoreContainerType;\r
+import mir.storage.store.StoreIdentifier;\r
+import mir.storage.store.StoreUtil;\r
+import mir.util.JDBCStringRoutines;\r
+\r
+import com.codestudio.util.SQLManager;\r
+\r
+import freemarker.template.SimpleHash;\r
+import freemarker.template.SimpleList;\r
 \r
 \r
 /**\r
@@ -56,12 +76,13 @@ import  mir.util.*;
  * Treiber, Host, User und Passwort, ueber den der Zugriff auf die\r
  * Datenbank erfolgt.\r
  *\r
- * @version $Id: Database.java,v 1.30 2002/12/28 03:21:38 mh Exp $\r
+ * @version $Id: Database.java,v 1.31 2003/01/25 17:45:19 idfx Exp $\r
  * @author rk\r
  *\r
  */\r
 public class Database implements StorageObject {\r
 \r
+  protected MirPropertiesConfiguration configuration;\r
   protected String                    theTable;\r
   protected String                    theCoreTable=null;\r
   protected String                    thePKeyName="id";\r
@@ -107,34 +128,37 @@ public class Database implements StorageObject {
 \r
 \r
   /**\r
-   * Kontruktor bekommt den Filenamen des Konfigurationsfiles Ã¼bergeben.\r
+   * Kontruktor bekommt den Filenamen des Konfigurationsfiles ?bergeben.\r
    * Aus diesem file werden <code>Database.Logfile</code>,\r
    * <code>Database.Username</code>,<code>Database.Password</code>,\r
    * <code>Database.Host</code> und <code>Database.Adaptor</code>\r
-   * ausgelesen und ein Broker für die Verbindugen zur Datenbank\r
+   * ausgelesen und ein Broker f?r die Verbindugen zur Datenbank\r
    * erzeugt.\r
    *\r
    * @param   String confFilename Dateiname der Konfigurationsdatei\r
    */\r
-  public Database() throws StorageObjectException {\r
-    theLog = Logfile.getInstance(MirConfig.getProp("Home")+\r
-                                 MirConfig.getProp("Database.Logfile"));\r
-    String theAdaptorName=MirConfig.getProp("Database.Adaptor");\r
-    defaultLimit = Integer.parseInt(MirConfig.getProp("Database.Limit"));\r
+  public Database() throws StorageObjectFailure {\r
+    try {\r
+      configuration = MirPropertiesConfiguration.instance();\r
+    } catch (PropertiesConfigExc e) {\r
+      throw new StorageObjectFailure(e);\r
+    }\r
+    theLog = Logfile.getInstance(configuration.getStringWithHome("Database.Logfile"));\r
+    String theAdaptorName=configuration.getString("Database.Adaptor");\r
+    defaultLimit = Integer.parseInt(configuration.getString("Database.Limit"));\r
     try {\r
       theEntityClass = GENERIC_ENTITY_CLASS;\r
       theAdaptor = (DatabaseAdaptor)Class.forName(theAdaptorName).newInstance();\r
     } catch (Exception e){\r
       theLog.printError("Error in Database() constructor with "+\r
                         theAdaptorName + " -- " +e.getMessage());\r
-      throw new StorageObjectException("Error in Database() constructor with "\r
-                                       +e.getMessage());\r
+      throw new StorageObjectFailure("Error in Database() constructor.",e);\r
     }\r
   }\r
 \r
   /**\r
-   * Liefert die Entity-Klasse zurück, in der eine Datenbankzeile gewrappt\r
-   * wird. Wird die Entity-Klasse durch die erbende Klasse nicht Ã¼berschrieben,\r
+   * Liefert die Entity-Klasse zur?ck, in der eine Datenbankzeile gewrappt\r
+   * wird. Wird die Entity-Klasse durch die erbende Klasse nicht ?berschrieben,\r
    * wird eine mir.entity.GenericEntity erzeugt.\r
    *\r
    * @return Class-Objekt der Entity\r
@@ -144,18 +168,18 @@ public class Database implements StorageObject {
   }\r
 \r
   /**\r
-   * Liefert die Standardbeschränkung von select-Statements zurück, also\r
-   * wieviel Datensätze per Default selektiert werden.\r
+   * Liefert die Standardbeschr?nkung von select-Statements zur?ck, also\r
+   * wieviel Datens?tze per Default selektiert werden.\r
    *\r
-   * @return Standard-Anzahl der Datensätze\r
+   * @return Standard-Anzahl der Datens?tze\r
    */\r
   public int getLimit () {\r
     return  defaultLimit;\r
   }\r
 \r
   /**\r
-   * Liefert den Namen des Primary-Keys zurück. Wird die Variable nicht von\r
-   * der erbenden Klasse Ã¼berschrieben, so ist der Wert <code>PKEY</code>\r
+   * Liefert den Namen des Primary-Keys zur?ck. Wird die Variable nicht von\r
+   * der erbenden Klasse ?berschrieben, so ist der Wert <code>PKEY</code>\r
    * @return Name des Primary-Keys\r
    */\r
   public String getIdName () {\r
@@ -189,7 +213,7 @@ public class Database implements StorageObject {
    * @return int-Array mit den Typen der Felder\r
    * @exception StorageObjectException\r
    */\r
-  public int[] getTypes () throws StorageObjectException {\r
+  public int[] getTypes () throws StorageObjectFailure {\r
     if (metadataTypes == null)\r
       get_meta_data();\r
     return  metadataTypes;\r
@@ -200,7 +224,7 @@ public class Database implements StorageObject {
    * @return ArrayListe mit Labeln\r
    * @exception StorageObjectException\r
    */\r
-  public ArrayList getLabels () throws StorageObjectException {\r
+  public ArrayList getLabels () throws StorageObjectFailure {\r
     if (metadataLabels == null)\r
       get_meta_data();\r
     return  metadataLabels;\r
@@ -211,7 +235,7 @@ public class Database implements StorageObject {
    * @return ArrayList mit Feldern\r
    * @exception StorageObjectException\r
    */\r
-  public ArrayList getFields () throws StorageObjectException {\r
+  public ArrayList getFields () throws StorageObjectFailure {\r
     if (metadataFields == null)\r
       get_meta_data();\r
     return  metadataFields;\r
@@ -225,7 +249,8 @@ public class Database implements StorageObject {
   *   @return liefert den Wert als String zurueck. Wenn keine Umwandlung moeglich\r
   *           dann /unsupported value/\r
        */\r
-  private String getValueAsString (ResultSet rs, int valueIndex, int aType) throws StorageObjectException {\r
+  private String getValueAsString (ResultSet rs, int valueIndex, int aType) \r
+       throws StorageObjectFailure {\r
     String outValue = null;\r
     if (rs != null) {\r
       try {\r
@@ -298,8 +323,7 @@ public class Database implements StorageObject {
                               " (" + aType + ")");\r
         }\r
       } catch (SQLException e) {\r
-        throw  new StorageObjectException("Could not get Value out of Resultset -- "\r
-            + e.getMessage());\r
+        throw new StorageObjectFailure("Could not get Value out of Resultset -- ",e);            \r
       }\r
     }\r
     return  outValue;\r
@@ -310,10 +334,10 @@ public class Database implements StorageObject {
   *   @param id Primaerschluessel des Datensatzes.\r
   *   @return liefert EntityObject des gefundenen Datensatzes oder null.\r
        */\r
-  public Entity selectById(String id)  throws StorageObjectException\r
-  {\r
+  public Entity selectById(String id)  \r
+       throws StorageObjectExc {\r
     if (id==null||id.equals(""))\r
-      throw new StorageObjectException("id war null");\r
+      throw new StorageObjectExc("id war null");\r
 \r
     // ask object store for object\r
     if ( StoreUtil.implementsStorableObject(theEntityClass) ) {\r
@@ -365,7 +389,7 @@ public class Database implements StorageObject {
    *   @return EntityList mit den gematchten Entities\r
    */\r
   public EntityList selectByFieldValue(String aField, String aValue)\r
-      throws StorageObjectException\r
+      throws StorageObjectFailure\r
   {\r
     return selectByFieldValue(aField, aValue, 0);\r
   }\r
@@ -378,14 +402,14 @@ public class Database implements StorageObject {
    *   @return EntityList mit den gematchten Entities\r
    */\r
   public EntityList selectByFieldValue(String aField, String aValue, int offset)\r
-      throws StorageObjectException\r
+      throws StorageObjectFailure\r
   {\r
     return selectByWhereClause(aField + "=" + aValue, offset);\r
   }\r
 \r
 \r
   /**\r
-   * select-Operator liefert eine EntityListe mit den gematchten Datensätzen zurück.\r
+   * select-Operator liefert eine EntityListe mit den gematchten Datens?tzen zur?ck.\r
    * Also offset wird der erste Datensatz genommen.\r
    *\r
    * @param wc where-Clause\r
@@ -393,14 +417,14 @@ public class Database implements StorageObject {
    * @exception StorageObjectException\r
    */\r
   public EntityList selectByWhereClause(String where)\r
-      throws StorageObjectException\r
+      throws StorageObjectFailure\r
   {\r
     return selectByWhereClause(where, 0);\r
   }\r
 \r
 \r
   /**\r
-   * select-Operator liefert eine EntityListe mit den gematchten Datensätzen zurück.\r
+   * select-Operator liefert eine EntityListe mit den gematchten Datens?tzen zur?ck.\r
    * Als maximale Anzahl wird das Limit auf der Konfiguration genommen.\r
    *\r
    * @param wc where-Clause\r
@@ -409,14 +433,14 @@ public class Database implements StorageObject {
    * @exception StorageObjectException\r
    */\r
   public EntityList selectByWhereClause(String whereClause, int offset)\r
-      throws StorageObjectException\r
+      throws StorageObjectFailure\r
   {\r
     return selectByWhereClause(whereClause, null, offset);\r
   }\r
 \r
 \r
   /**\r
-   * select-Operator liefert eine EntityListe mit den gematchten Datensätzen zurück.\r
+   * select-Operator liefert eine EntityListe mit den gematchten Datens?tzen zur?ck.\r
    * Also offset wird der erste Datensatz genommen.\r
    * Als maximale Anzahl wird das Limit auf der Konfiguration genommen.\r
    *\r
@@ -427,13 +451,13 @@ public class Database implements StorageObject {
    */\r
 \r
   public EntityList selectByWhereClause(String where, String order)\r
-      throws StorageObjectException {\r
+      throws StorageObjectFailure {\r
     return selectByWhereClause(where, order, 0);\r
   }\r
 \r
 \r
   /**\r
-   * select-Operator liefert eine EntityListe mit den gematchten Datensätzen zurück.\r
+   * select-Operator liefert eine EntityListe mit den gematchten Datens?tzen zur?ck.\r
    * Als maximale Anzahl wird das Limit auf der Konfiguration genommen.\r
    *\r
    * @param wc where-Clause\r
@@ -444,24 +468,24 @@ public class Database implements StorageObject {
    */\r
 \r
   public EntityList selectByWhereClause(String whereClause, String orderBy, int offset)\r
-      throws StorageObjectException {\r
+      throws StorageObjectFailure {\r
     return selectByWhereClause(whereClause, orderBy, offset, defaultLimit);\r
   }\r
 \r
 \r
   /**\r
-   * select-Operator liefert eine EntityListe mit den gematchten Datensätzen zurück.\r
+   * select-Operator liefert eine EntityListe mit den gematchten Datens?tzen zur?ck.\r
    * @param wc where-Clause\r
    * @param ob orderBy-Clause\r
    * @param offset ab welchem Datensatz\r
-   * @param limit wieviele Datensätze\r
+   * @param limit wieviele Datens?tze\r
    * @return EntityList mit den gematchten Entities\r
    * @exception StorageObjectException\r
    */\r
 \r
   public EntityList selectByWhereClause(String wc, String ob, int offset,\r
                                         int limit) throws\r
-      StorageObjectException {\r
+      StorageObjectFailure {\r
 \r
     // check o_store for entitylist\r
     if (StoreUtil.implementsStorableObject(theEntityClass)) {\r
@@ -591,7 +615,7 @@ public class Database implements StorageObject {
    *  @return Entity Die Entity.\r
    */\r
   private Entity makeEntityFromResultSet (ResultSet rs)\r
-      throws StorageObjectException\r
+      throws StorageObjectFailure\r
   {\r
     /** @todo OS: get Pkey from ResultSet and consult ObjectStore */\r
     HashMap theResultHash = new HashMap();\r
@@ -656,13 +680,13 @@ public class Database implements StorageObject {
   }\r
 \r
   /**\r
-   * insert-Operator: fügt eine Entity in die Tabelle ein. Eine Spalte WEBDB_CREATE\r
+   * insert-Operator: f?gt eine Entity in die Tabelle ein. Eine Spalte WEBDB_CREATE\r
    * wird automatisch mit dem aktuellen Datum gefuellt.\r
    *\r
    * @param theEntity\r
-   * @return der Wert des Primary-keys der eingefügten Entity\r
+   * @return der Wert des Primary-keys der eingef?gten Entity\r
    */\r
-  public String insert (Entity theEntity) throws StorageObjectException {\r
+  public String insert (Entity theEntity) throws StorageObjectFailure {\r
     //cache\r
     invalidatePopupCache();\r
 \r
@@ -760,7 +784,7 @@ public class Database implements StorageObject {
    *\r
    * @param theEntity\r
    */\r
-  public void update (Entity theEntity) throws StorageObjectException\r
+  public void update (Entity theEntity) throws StorageObjectFailure\r
   {\r
     Connection con = null; PreparedStatement pstmt = null;\r
     /** @todo this is stupid: why do we prepare statement, when we\r
@@ -829,7 +853,7 @@ public class Database implements StorageObject {
           Timestamp tStamp = new Timestamp(d.getTime());\r
           sql.append(",webdb_create='"+tStamp.toString()+"'");\r
         } catch (ParseException e) {\r
-          throw new StorageObjectException(e.getMessage());\r
+          throw new StorageObjectFailure(e);\r
         }\r
       }\r
     }\r
@@ -871,7 +895,7 @@ public class Database implements StorageObject {
   *   @param id des zu loeschenden Datensatzes\r
   *   @return boolean liefert true zurueck, wenn loeschen erfolgreich war.\r
        */\r
-  public boolean delete (String id) throws StorageObjectException {\r
+  public boolean delete (String id) throws StorageObjectFailure {\r
 \r
     invalidatePopupCache();\r
     // ostore send notification\r
@@ -913,7 +937,7 @@ public class Database implements StorageObject {
    * eine SimpleList mit Standard-Popupdaten erzeugt werden koennen soll.\r
    * @return null\r
    */\r
-  public SimpleList getPopupData () throws StorageObjectException {\r
+  public SimpleList getPopupData () throws StorageObjectFailure {\r
     return  null;\r
   }\r
 \r
@@ -924,7 +948,7 @@ public class Database implements StorageObject {
    *  @return SimpleList Gibt freemarker.template.SimpleList zurueck.\r
    */\r
   public SimpleList getPopupData (String name, boolean hasNullValue)\r
-      throws StorageObjectException {\r
+      throws StorageObjectFailure {\r
     return  getPopupData(name, hasNullValue, null);\r
   }\r
 \r
@@ -935,7 +959,7 @@ public class Database implements StorageObject {
    *  @param where  Schraenkt die Selektion der Datensaetze ein.\r
    *  @return SimpleList Gibt freemarker.template.SimpleList zurueck.\r
    */\r
-  public SimpleList getPopupData (String name, boolean hasNullValue, String where) throws StorageObjectException {\r
+  public SimpleList getPopupData (String name, boolean hasNullValue, String where) throws StorageObjectFailure {\r
     return  getPopupData(name, hasNullValue, where, null);\r
   }\r
 \r
@@ -947,7 +971,7 @@ public class Database implements StorageObject {
    *  @param order  Gibt ein Feld als Sortierkriterium an.\r
    *  @return SimpleList Gibt freemarker.template.SimpleList zurueck.\r
    */\r
-  public SimpleList getPopupData (String name, boolean hasNullValue, String where, String order) throws StorageObjectException {\r
+  public SimpleList getPopupData (String name, boolean hasNullValue, String where, String order) throws StorageObjectFailure {\r
     // caching\r
     if (hasPopupCache && popupCache != null)\r
       return  popupCache;\r
@@ -970,7 +994,7 @@ public class Database implements StorageObject {
       con = getPooledCon();\r
     }\r
     catch (Exception e) {\r
-      throw new StorageObjectException(e.getMessage());\r
+      throw new StorageObjectFailure(e);\r
     }\r
     try {\r
       stmt = con.createStatement();\r
@@ -994,7 +1018,7 @@ public class Database implements StorageObject {
     }\r
     catch (Exception e) {\r
       theLog.printError("getPopupData: "+e.getMessage());\r
-      throw new StorageObjectException(e.toString());\r
+      throw new StorageObjectFailure(e);\r
     }\r
     finally {\r
       freeConnection(con, stmt);\r
@@ -1018,7 +1042,7 @@ public class Database implements StorageObject {
         hashCache = HTMLTemplateProcessor.makeSimpleHash(selectByWhereClause("",\r
             -1));\r
       }\r
-      catch (StorageObjectException e) {\r
+      catch (StorageObjectFailure e) {\r
         theLog.printDebugInfo(e.getMessage());\r
       }\r
     }\r
@@ -1041,7 +1065,7 @@ public class Database implements StorageObject {
    * @exception StorageObjectException\r
    */\r
   public ResultSet executeSql (Statement stmt, String sql)\r
-      throws StorageObjectException, SQLException\r
+      throws StorageObjectFailure, SQLException\r
   {\r
     long startTime = System.currentTimeMillis();\r
     ResultSet rs;\r
@@ -1066,7 +1090,7 @@ public class Database implements StorageObject {
    * @exception StorageObjectException, SQLException\r
    */\r
   public ResultSet executeSql (PreparedStatement stmt)\r
-      throws StorageObjectException, SQLException {\r
+      throws StorageObjectFailure, SQLException {\r
 \r
     long startTime = (new java.util.Date()).getTime();\r
     ResultSet rs = stmt.executeQuery();\r
@@ -1078,7 +1102,7 @@ public class Database implements StorageObject {
    * returns the number of rows in the table\r
    */\r
   public int getSize(String where)\r
-      throws SQLException,StorageObjectException\r
+      throws SQLException,StorageObjectFailure\r
   {\r
     long  startTime = System.currentTimeMillis();\r
     String sql = "SELECT Count(*) FROM "+ theTable;\r
@@ -1108,7 +1132,7 @@ public class Database implements StorageObject {
   }\r
 \r
   public int executeUpdate(Statement stmt, String sql)\r
-      throws StorageObjectException, SQLException\r
+      throws StorageObjectFailure, SQLException\r
   {\r
     int rs;\r
     long  startTime = (new java.util.Date()).getTime();\r
@@ -1126,7 +1150,7 @@ public class Database implements StorageObject {
     return rs;\r
   }\r
 \r
-  public int executeUpdate(String sql) throws StorageObjectException, SQLException\r
+  public int executeUpdate(String sql) throws StorageObjectFailure, SQLException\r
   {\r
     int result=-1;\r
     long  startTime = (new java.util.Date()).getTime();\r
@@ -1139,7 +1163,7 @@ public class Database implements StorageObject {
     }\r
     catch (Exception e) {\r
       theLog.printDebugInfo("executeUpdate failed: "+e.getMessage());\r
-      throw new StorageObjectException("executeUpdate failed: "+e.getMessage());\r
+      throw new StorageObjectFailure("executeUpdate failed",e);\r
     }\r
     finally {\r
       freeConnection(con,pstmt);\r
@@ -1154,7 +1178,7 @@ public class Database implements StorageObject {
    * @exception StorageObjectException\r
    */\r
   private void evalMetaData (ResultSetMetaData md)\r
-      throws StorageObjectException {\r
+      throws StorageObjectFailure {\r
 \r
     this.evaluatedMetaData = true;\r
     this.metadataFields = new ArrayList();\r
@@ -1174,7 +1198,7 @@ public class Database implements StorageObject {
         if (aField.equals(thePKeyName)) {\r
           thePKeyType = aType; thePKeyIndex = i;\r
         }\r
-        if (md.isNullable(i) == md.columnNullable) {\r
+        if (md.isNullable(i) == ResultSetMetaData.columnNullable) {\r
           metadataNotNullFields.add(aField);\r
         }\r
       }\r
@@ -1187,7 +1211,7 @@ public class Database implements StorageObject {
    *  Wertet die Metadaten eines Resultsets fuer eine Tabelle aus,\r
    *  um die alle Columns und Typen einer Tabelle zu ermitteln.\r
    */\r
-  private void get_meta_data () throws StorageObjectException {\r
+  private void get_meta_data () throws StorageObjectFailure {\r
     Connection con = null;\r
     PreparedStatement pstmt = null;\r
     String sql = "select * from " + theTable + " where 0=1";\r
@@ -1206,7 +1230,7 @@ public class Database implements StorageObject {
   }\r
 \r
 \r
-  public Connection getPooledCon() throws StorageObjectException {\r
+  public Connection getPooledCon() throws StorageObjectFailure {\r
               /* @todo , doublecheck but I'm pretty sure that this is unnecessary. -mh\r
                       try{\r
                       Class.forName("com.codestudio.sql.PoolMan").newInstance();\r
@@ -1222,14 +1246,14 @@ public class Database implements StorageObject {
     catch(SQLException e){\r
       theLog.printError("could not connect to the database "+e.getMessage());\r
       System.err.println("could not connect to the database "+e.getMessage());\r
-      throw new StorageObjectException("Could not connect to the database"+ e.getMessage());\r
+      throw new StorageObjectFailure("Could not connect to the database",e);\r
     }\r
 \r
     return con;\r
   }\r
 \r
-  public void freeConnection (Connection con, Statement stmt) throws StorageObjectException {\r
-    SQLManager.getInstance().closeStatement(stmt);\r
+  public void freeConnection (Connection con, Statement stmt) throws StorageObjectFailure {\r
+    SQLManager.closeStatement(stmt);\r
     SQLManager.getInstance().returnConnection(con);\r
   }\r
 \r
@@ -1239,7 +1263,8 @@ public class Database implements StorageObject {
    * @param wo Funktonsname, in der die SQLException geworfen wurde\r
    * @exception StorageObjectException\r
    */\r
-  protected void throwSQLException (SQLException sqe, String wo) throws StorageObjectException {\r
+  protected void throwSQLException (SQLException sqe, String wo) \r
+       throws StorageObjectFailure {\r
     String state = "";\r
     String message = "";\r
     int vendor = 0;\r
@@ -1250,20 +1275,21 @@ public class Database implements StorageObject {
     }\r
     theLog.printError(state + ": " + vendor + " : " + message + " Funktion: "\r
                       + wo);\r
-    throw new StorageObjectException((sqe == null) ? "undefined sql exception" :\r
-                                      sqe.getMessage());\r
+    throw new StorageObjectFailure(\r
+       (sqe == null) ? "undefined sql exception" :sqe.getMessage(),sqe\r
+       );\r
   }\r
 \r
   protected void _throwStorageObjectException (Exception e, String wo)\r
-      throws StorageObjectException {\r
+      throws StorageObjectFailure {\r
 \r
     if (e != null) {\r
       theLog.printError(e.getMessage()+ wo);\r
-      throw  new StorageObjectException(wo + e.getMessage());\r
+      throw  new StorageObjectFailure(wo, e);\r
     }\r
     else {\r
       theLog.printError(wo);\r
-      throw  new StorageObjectException(wo);\r
+      throw  new StorageObjectFailure(wo,null);\r
     }\r
 \r
   }\r
@@ -1275,7 +1301,7 @@ public class Database implements StorageObject {
    * @exception StorageObjectException\r
    */\r
   void throwStorageObjectException (String message)\r
-      throws StorageObjectException {\r
+      throws StorageObjectFailure {\r
     _throwStorageObjectException(null, message);\r
   }\r
 \r
index 16d42f0..cc8e4e9 100755 (executable)
 \r
 package  mir.storage;\r
 \r
-import java.util.*;\r
+import java.util.Properties;\r
+\r
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;\r
 \r
 \r
 /**\r
- * Interfacedefinition für Datenbank-Adpatoren. Die Adaptoren legen\r
- * jeweils das Verhalten und die Befehlsmächtigkeit der Datenbank\r
+ * Interfacedefinition f?r Datenbank-Adpatoren. Die Adaptoren legen\r
+ * jeweils das Verhalten und die Befehlsm?chtigkeit der Datenbank\r
  * fest.\r
  *\r
  * @author <RK>\r
  *\r
- * @version $Id: DatabaseAdaptor.java,v 1.3 2002/12/14 01:37:43 zapata Exp $\r
+ * @version $Id: DatabaseAdaptor.java,v 1.4 2003/01/25 17:45:19 idfx Exp $\r
  */\r
 \r
 public interface  DatabaseAdaptor{\r
@@ -49,28 +51,29 @@ public interface  DatabaseAdaptor{
   /* Liefert den Namen der Adaptorklasse\r
    * @return Adaptorklasse als String\r
    */\r
-  public abstract String getDriver();\r
+  public abstract String getDriver() throws PropertiesConfigExc;\r
 \r
   /**\r
-   * Liefert die URL für JDBC zurück, in den die Parameter user, pass und host\r
-   * eingefügt werden. Die URL wird aus der Konfiguration geholt.\r
+   * Liefert die URL f?r JDBC zur?ck, in den die Parameter user, pass und host\r
+   * eingef?gt werden. Die URL wird aus der Konfiguration geholt.\r
    *\r
    * @param user user als String\r
    * @param pass passwort als String\r
    * @param host host als String\r
    * @return url als String\r
    */\r
-  public abstract String getURL(String user, String pass, String host);\r
+  public abstract String getURL(String user, String pass, String host)\r
+       throws PropertiesConfigExc;\r
 \r
   /**\r
-   * Gibt zurück, ob das SQL der Datenbank den <code>limit</code>-Befehl beherrscht.\r
+   * Gibt zur?ck, ob das SQL der Datenbank den <code>limit</code>-Befehl beherrscht.\r
    * @return true wenn ja, sonst false\r
    */\r
   public abstract boolean hasLimit();\r
 \r
   /**\r
-       * Liefert zurück, ob der <code>limit</code>-Befehl erst start und dann offset\r
-       * hat (true), oder umgekehrt. Nur Relevant, wenn hasLimit true zurückliefert.\r
+       * Liefert zur?ck, ob der <code>limit</code>-Befehl erst start und dann offset\r
+       * hat (true), oder umgekehrt. Nur Relevant, wenn hasLimit true zur?ckliefert.\r
    *\r
    * @return true wenn erstes, sonst false\r
    */\r
@@ -85,11 +88,11 @@ public interface  DatabaseAdaptor{
   public abstract Properties getProperties(String user, String password);\r
 \r
   /**\r
-   * Gibt SQL-Stringfragment zurück, mit dem nach einem insert-Befehl ermittelt\r
-   * werden kann, wie man den primary-Key des eingefügten Datensatzes bekommt.\r
+   * Gibt SQL-Stringfragment zur?ck, mit dem nach einem insert-Befehl ermittelt\r
+   * werden kann, wie man den primary-Key des eingef?gten Datensatzes bekommt.\r
    *\r
    * @param theDB Database-Objekt, aus dem ggf. noetige Informationen geholt\r
-   * werden können, wie z.B. der Tabellenname\r
+   * werden k?nnen, wie z.B. der Tabellenname\r
    * @return SQL-Statement als String\r
    */\r
   public abstract String getLastInsertSQL(Database theDB);\r
index a21a86d..cd2d17b 100755 (executable)
 \r
 package mir.storage;\r
 \r
-import java.util.*;\r
-import mir.misc.*;\r
+import java.util.Properties;\r
+\r
+import mir.config.MirPropertiesConfiguration;\r
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;\r
 \r
 /**\r
  * <b>Diese Klasse implementiert die abstrakte Klasse DatabaseAdaptor\r
@@ -43,12 +45,12 @@ import mir.misc.*;
 \r
 public final class DatabaseAdaptorMySQL implements DatabaseAdaptor{\r
 \r
-  public String getDriver() {\r
-    return MirConfig.getProp("Adaptor.MySQL.Driver");\r
+  public String getDriver() throws PropertiesConfigExc {\r
+    return MirPropertiesConfiguration.instance().getString("Adaptor.MySQL.Driver");\r
   }\r
 \r
-  public String getURL(String user, String pass, String host) {\r
-    return MirConfig.getProp("Adaptor.MySQL.URL");\r
+  public String getURL(String user, String pass, String host) throws PropertiesConfigExc {\r
+    return MirPropertiesConfiguration.instance().getString("Adaptor.MySQL.URL");\r
   }\r
 \r
   public boolean hasLimit() {\r
index 330f224..d2ef208 100755 (executable)
 
 package  mir.storage;
 
-import java.util.*;
-import  mir.misc.*;
+import java.util.Properties;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
 
 
 /**
@@ -51,30 +53,30 @@ public final class DatabaseAdaptorOracle
 
        /**
         * Liefert den Namen der Adaptorklasse <code>Adaptor.Oracle.Driver</code>
-        * für Oracle zurück.
+        * f?r Oracle zur?ck.
         * @return Adaptorklasse als String
         */
-    public String getDriver() {
-           return MirConfig.getProp("Adaptor.Oracle.Driver");
+    public String getDriver() throws PropertiesConfigExc {
+           return MirPropertiesConfiguration.instance().getString("Adaptor.Oracle.Driver");
     }
 
        /**
-        * Liefert die URL für JDBC zurück, in den die Parameter user, pass und host
-        * eingefügt werden. Die URL wird aus der Konfiguration geholt.
+        * Liefert die URL f?r JDBC zur?ck, in den die Parameter user, pass und host
+        * eingef?gt werden. Die URL wird aus der Konfiguration geholt.
         *
         * @param user user als String
         * @param pass passwort als String
         * @param host host als String
         * @return url als String
         */
-    public String getURL(String user, String pass, String host) {
-           return MirConfig.getProp("Adaptor.Oracle.URL");
+    public String getURL(String user, String pass, String host) throws PropertiesConfigExc {
+           return MirPropertiesConfiguration.instance().getString("Adaptor.Oracle.URL");
                /** @todo   hier muesste bessererweise $HOST durch HOST ersetzt, etc. werden */
 
     }
 
        /**
-        * Gibt zurück, ob das SQL der Datenbank den <code>limit</code>-Befehl beherrscht.
+        * Gibt zur?ck, ob das SQL der Datenbank den <code>limit</code>-Befehl beherrscht.
         * @return false
         */
      public  boolean hasLimit() {
@@ -82,8 +84,8 @@ public final class DatabaseAdaptorOracle
     }
 
        /**
-        * Liefert zurück, ob der <code>limit</code>-Befehl erst start und dann offset
-        * hat (true), oder umgekehrt. Nur Relevant, wenn hasLimit true zurückliefert.
+        * Liefert zur?ck, ob der <code>limit</code>-Befehl erst start und dann offset
+        * hat (true), oder umgekehrt. Nur Relevant, wenn hasLimit true zur?ckliefert.
         *
         * @return false
         */
index fb45b7d..c6de692 100755 (executable)
 \r
 package mir.storage;\r
 \r
-import java.util.*;\r
-import mir.misc.*;\r
+import java.util.Properties;\r
+\r
+import mir.config.MirPropertiesConfiguration;\r
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;\r
 \r
 /**\r
- * <b>Diese Klasse implementiert die abstrakte Klasse DatabaseAdaptor für Postgresql-Datenbanken\r
+ * <b>Diese Klasse implementiert die abstrakte Klasse DatabaseAdaptor f?r Postgresql-Datenbanken\r
  *\r
  * @author <RK>\r
  * @version 30.12.2000\r
@@ -43,12 +45,12 @@ import mir.misc.*;
 \r
 public final class DatabaseAdaptorPostgresql implements DatabaseAdaptor{\r
 \r
-  public String getDriver() {\r
-    return MirConfig.getProp("Adaptor.PostgreSQL.Driver");\r
+  public String getDriver() throws PropertiesConfigExc {\r
+    return MirPropertiesConfiguration.instance().getString("Adaptor.PostgreSQL.Driver");\r
   }\r
 \r
-  public String getURL(String user, String pass, String host) {\r
-    return MirConfig.getProp("Adaptor.PostgreSQL.URL");\r
+  public String getURL(String user, String pass, String host) throws PropertiesConfigExc {\r
+    return MirPropertiesConfiguration.instance().getString("Adaptor.PostgreSQL.URL");\r
   }\r
 \r
   public boolean hasLimit() {\r
index 91ac1b9..b5cd203 100755 (executable)
  * not wish to do so, delete this exception statement from your version.\r
  */\r
 /*\r
- * Implementiert DatabaseAdaptor Interface für Sybase.\r
+ * Implementiert DatabaseAdaptor Interface f?r Sybase.\r
  */\r
 \r
 \r
 \r
 package  mir.storage;\r
 \r
-import java.util.*;\r
-import  mir.misc.*;\r
+import java.util.Properties;\r
+\r
+import mir.config.MirPropertiesConfiguration;\r
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;\r
 \r
 \r
 /**\r
@@ -50,29 +52,29 @@ public final class DatabaseAdaptorSybase implements DatabaseAdaptor {
 \r
   /**\r
    * Liefert den Namen der Adaptorklasse <code>Adaptor.Sybase.Driver</code>\r
-   * für Sybase zurück.\r
+   * f?r Sybase zur?ck.\r
    * @return Adaptorklasse als String\r
    */\r
-  public String getDriver() {\r
-    return MirConfig.getProp("Adaptor.Sybase.Driver");\r
+  public String getDriver() throws PropertiesConfigExc {\r
+    return MirPropertiesConfiguration.instance().getString("Adaptor.Sybase.Driver");\r
   }\r
 \r
   /**\r
-   * Liefert die URL für JDBC zurück, in den die Parameter user, pass und host\r
-   * eingefügt werden. Die URL wird aus der Konfiguration geholt.\r
+   * Liefert die URL f?r JDBC zur?ck, in den die Parameter user, pass und host\r
+   * eingef?gt werden. Die URL wird aus der Konfiguration geholt.\r
    *\r
    * @param user user als String\r
    * @param pass passwort als String\r
    * @param host host als String\r
    * @return url als String\r
    */\r
-  public String getURL(String user, String pass, String host) {\r
-    return MirConfig.getProp("Adaptor.Sybase.URL");\r
+  public String getURL(String user, String pass, String host) throws PropertiesConfigExc {\r
+    return MirPropertiesConfiguration.instance().getString("Adaptor.Sybase.URL");\r
         /** @todo  hier muesste bessererweise $HOST durch HOST ersetzt, etc. werden */\r
   }\r
 \r
   /**\r
-   * Gibt zurück, ob das SQL der Datenbank den <code>limit</code>-Befehl beherrscht.\r
+   * Gibt zur?ck, ob das SQL der Datenbank den <code>limit</code>-Befehl beherrscht.\r
    * @return false\r
    */\r
   public boolean hasLimit() {\r
@@ -80,8 +82,8 @@ public final class DatabaseAdaptorSybase implements DatabaseAdaptor {
   }\r
 \r
   /**\r
-   * Liefert zurück, ob der <code>limit</code>-Befehl erst start und dann offset\r
-   * hat (true), oder umgekehrt. Nur Relevant, wenn hasLimit true zurückliefert.\r
+   * Liefert zur?ck, ob der <code>limit</code>-Befehl erst start und dann offset\r
+   * hat (true), oder umgekehrt. Nur Relevant, wenn hasLimit true zur?ckliefert.\r
    *\r
    * @return false\r
    */\r
index 8e63f63..5740525 100755 (executable)
@@ -31,7 +31,7 @@
 
 package mir.storage;
 
-import java.util.*;
+import java.util.ArrayList;
 
 public class DatabaseCache {
   private final ArrayList _cache;
index b5752e4..b39b28b 100755 (executable)
  * not wish to do so, delete this exception statement from your version.\r
  */\r
 /*\r
- * Implementiert Interface für die Speicherschicht.\r
- * Bislang gibt es in der Bibliothek nur die Möglichkeit\r
+ * Implementiert Interface f?r die Speicherschicht.\r
+ * Bislang gibt es in der Bibliothek nur die M?glichkeit\r
  * in einer Datenbank zu speichern.\r
  */\r
 \r
 package mir.storage;\r
 \r
-import java.lang.*;\r
-import java.util.*;\r
-import java.sql.*;\r
-import freemarker.template.*;\r
-import mir.entity.*;\r
+import java.sql.Connection;\r
+import java.sql.ResultSet;\r
+import java.sql.SQLException;\r
+import java.sql.Statement;\r
+import java.util.ArrayList;\r
+\r
+import mir.entity.Entity;\r
+import mir.entity.EntityList;\r
+import freemarker.template.SimpleHash;\r
+import freemarker.template.SimpleList;\r
 \r
 \r
 /**\r
- * Implementiert Interface für die Speicherschicht.\r
- * Bislang gibt es in der Bibliothek nur die Möglichkeit\r
+ * Implementiert Interface f?r die Speicherschicht.\r
+ * Bislang gibt es in der Bibliothek nur die M?glichkeit\r
  * in einer Datenbank zu speichern.\r
  * @author RK\r
  * @version    29.6.1999\r
@@ -58,7 +63,7 @@ public interface StorageObject {
    * @return Entity\r
    * @exception StorageObjectException\r
    */\r
-  abstract public Entity selectById(String id) throws StorageObjectException;\r
+  abstract public Entity selectById(String id) throws StorageObjectExc;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -68,7 +73,7 @@ public interface StorageObject {
    * @exception StorageObjectException\r
    */\r
   abstract public EntityList selectByFieldValue(String aField, String aValue) throws\r
-      StorageObjectException;\r
+      StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -77,7 +82,7 @@ public interface StorageObject {
    * @exception StorageObjectException\r
    */\r
   abstract public EntityList selectByWhereClause(String whereClause) throws\r
-      StorageObjectException;\r
+      StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -87,7 +92,7 @@ public interface StorageObject {
    * @exception StorageObjectException\r
    */\r
   abstract public EntityList selectByWhereClause(String whereClause, int offset) throws\r
-      StorageObjectException;\r
+      StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -100,7 +105,7 @@ public interface StorageObject {
   abstract public EntityList selectByWhereClause(String whereClause,\r
                                                  String orderBy,\r
                                                  int offset) throws\r
-      StorageObjectException;\r
+      StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -114,7 +119,7 @@ public interface StorageObject {
   abstract public EntityList selectByWhereClause(String whereClause,\r
                                                  String orderBy,\r
                                                  int offset, int limit) throws\r
-      StorageObjectException;\r
+      StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -122,35 +127,35 @@ public interface StorageObject {
    * @return boolen\r
    * @exception StorageObjectException\r
    */\r
-  abstract public boolean delete(String id) throws StorageObjectException;\r
+  abstract public boolean delete(String id) throws StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
    * @return ArrayList\r
    * @exception StorageObjectException\r
    */\r
-  abstract public ArrayList getFields() throws StorageObjectException;\r
+  abstract public ArrayList getFields() throws StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
    * @return int[]\r
    * @exception StorageObjectException\r
    */\r
-  abstract public int[] getTypes() throws StorageObjectException;\r
+  abstract public int[] getTypes() throws StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
    * @return ArrayList\r
    * @exception StorageObjectException\r
    */\r
-  abstract public ArrayList getLabels() throws StorageObjectException;\r
+  abstract public ArrayList getLabels() throws StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
    * @param a\r
    * @exception StorageObjectException\r
    */\r
-  abstract public void update(Entity a) throws StorageObjectException;\r
+  abstract public void update(Entity a) throws StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -158,7 +163,7 @@ public interface StorageObject {
    * @return String id\r
    * @exception StorageObjectException\r
    */\r
-  abstract public String insert(Entity a) throws StorageObjectException;\r
+  abstract public String insert(Entity a) throws StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -189,7 +194,7 @@ public interface StorageObject {
    * @return Connection\r
    * @exception StorageObjectException\r
    */\r
-  abstract public Connection getPooledCon() throws StorageObjectException;\r
+  abstract public Connection getPooledCon() throws StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
@@ -199,7 +204,7 @@ public interface StorageObject {
    * @exception StorageObjectException, SQLException\r
    */\r
   abstract public ResultSet executeSql(Statement a, String sql) throws\r
-      StorageObjectException,\r
+      StorageObjectFailure,\r
       SQLException;\r
 \r
   /**\r
@@ -208,22 +213,22 @@ public interface StorageObject {
    * @param stmt\r
    */\r
   abstract public void freeConnection(Connection con, Statement stmt) throws\r
-      StorageObjectException;\r
+      StorageObjectFailure;\r
 \r
   /**\r
    * Dokumentation siehe Database.java\r
    * @return\r
    */\r
-  abstract public SimpleList getPopupData() throws StorageObjectException;\r
+  abstract public SimpleList getPopupData() throws StorageObjectFailure;\r
 \r
   abstract public int executeUpdate(Statement a, String sql) throws\r
-      StorageObjectException, SQLException;\r
+      StorageObjectFailure, SQLException;\r
 \r
-  abstract public int executeUpdate(String sql) throws StorageObjectException,\r
+  abstract public int executeUpdate(String sql) throws StorageObjectFailure,\r
       SQLException;\r
 \r
   abstract public int getSize(String where) throws SQLException,\r
-      StorageObjectException;\r
+      StorageObjectFailure;\r
 }\r
 \r
 \r
index 1d93f22..10191ff 100755 (executable)
@@ -61,13 +61,18 @@ package mir.storage.store;
  * @version 1.0
  */
 
-import java.util.*;
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
-import javax.servlet.http.*;
-import javax.servlet.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.MissingResourceException;
+import java.util.Properties;
+
+import javax.servlet.http.HttpServletRequest;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
 import mir.misc.Logfile;
-import mir.misc.MirConfig;
 
 public class ObjectStore {
 
@@ -78,7 +83,14 @@ public class ObjectStore {
   private Properties              ostoreConf;
 
        private ObjectStore() {
-    String confName=MirConfig.getProp("Home")+"etc/objectstore.properties";
+    String confName = null;
+    try {
+      confName =
+        MirPropertiesConfiguration.instance().getString("Home")
+          + "etc/objectstore.properties";
+    } catch (PropertiesConfigExc e) {
+      e.printStackTrace(System.err);
+    }
     Properties conf = new Properties();
     try {
         conf.load( new BufferedInputStream(new FileInputStream(confName)));
index 7bd43b0..0ef6bdb 100755 (executable)
@@ -41,9 +41,14 @@ package mir.storage.store;
  * @version 1.0
  */
 
-import java.io.*;
-import javax.servlet.http.*;
-import javax.servlet.*;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.servlet.ServletException;
+import javax.servlet.UnavailableException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 public class ServletStoreInfo extends HttpServlet {
 
index 79dc887..8bc6958 100755 (executable)
@@ -41,7 +41,7 @@ package mir.storage.store;
  * @version 1.0
  */
 
-import java.util.*;
+import java.util.Set;
 
 public interface StorableObject {
 
index 914277b..50ef79d 100755 (executable)
@@ -46,9 +46,13 @@ package mir.storage.store;
  * @version 1.0
  */
 
-import java.util.*;
-import javax.servlet.http.*;
-import mir.misc.*;
+import java.util.LinkedList;
+import java.util.ListIterator;
+
+import javax.servlet.http.HttpServletRequest;
+
+import mir.misc.Logfile;
+import mir.misc.StringUtil;
 
 public class StoreContainer {
 
index 8842d68..657f20e 100755 (executable)
@@ -47,7 +47,9 @@ package mir.storage.store;
  */
 
 import java.util.HashMap;
-import mir.misc.*;
+
+import mir.misc.Logfile;
+import mir.misc.StringUtil;
 
 public class StoreContainerType {
 
index dc16529..74ead5b 100755 (executable)
@@ -43,9 +43,11 @@ package mir.storage.store;
  * @author        rk
  * @version 1.0
  */
-import java.util.*;
+import java.util.Iterator;
+import java.util.Set;
+
+import mir.entity.EntityList;
 import mir.misc.Logfile;
-import mir.entity.*;
 
 public class StoreIdentifier {
 
index 2b0415f..5b9423c 100755 (executable)
@@ -40,8 +40,12 @@ package mir.storage.store.test;
  * @version 1.0
  */
 
-import java.util.*;
-import mir.storage.store.*;
+import java.util.HashSet;
+import java.util.Set;
+
+import mir.storage.store.StorableObject;
+import mir.storage.store.StoreContainerType;
+import mir.storage.store.StoreIdentifier;
 
 public class EntityC1 implements StorableObject {
 
index baea089..c232c78 100755 (executable)
@@ -40,8 +40,11 @@ package mir.storage.store.test;
  * @version 1.0
  */
 
-import java.util.*;
-import mir.storage.store.*;
+import java.util.Set;
+
+import mir.storage.store.StorableObject;
+import mir.storage.store.StoreContainerType;
+import mir.storage.store.StoreIdentifier;
 
 public class EntityC2 implements StorableObject {
 
index 81e3a8f..0af3306 100755 (executable)
@@ -40,8 +40,11 @@ package mir.storage.store.test;
  * @version 1.0
  */
 
-import java.util.*;
-import mir.storage.store.*;
+import java.util.Set;
+
+import mir.storage.store.StorableObject;
+import mir.storage.store.StoreContainerType;
+import mir.storage.store.StoreIdentifier;
 
 public class EntityC3 implements StorableObject {
 
index 4706e44..574df42 100755 (executable)
@@ -40,7 +40,9 @@ package mir.storage.store.test;
  * @version 1.0
  */
 
-import mir.storage.store.*;
+import mir.storage.store.ObjectStore;
+import mir.storage.store.StorableObject;
+import mir.storage.store.StoreIdentifier;
 
 public class TestStore {
 
index e2700f0..8456c75 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-
-import java.util.*;
-import mir.storage.*;
-import mir.util.*;
-import mir.entity.*;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
 
 public class CachingRewindableIterator implements RewindableIterator {
   private Iterator master;
index 247ec19..e3b4c96 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-import java.text.*;
+import java.text.SimpleDateFormat;
+import java.util.AbstractMap;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.HashSet;
+import java.util.Set;
 
-import mir.misc.*;
+import mir.misc.StringUtil;
 
 public class DateToMapAdapter extends AbstractMap {
   Date date;
index 36c5949..6a040da 100755 (executable)
@@ -1,7 +1,9 @@
 package mir.util;
 
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
 
 public class FileCopier {
   protected static final int FILE_COPY_BUFFER_SIZE = 65536;
index 322abc1..799d10f 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-import java.io.*;
+import java.io.File;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
 
 public class FileMonitor {
   private Map files;
index c098c27..8afeb23 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
+import java.util.List;
 
-import mir.misc.*;
-import mir.generator.*;
+import mir.generator.Generator;
+import mir.generator.GeneratorExc;
+import mir.generator.GeneratorFailure;
 
 public class GeneratorHTMLFunctions {
   private GeneratorHTMLFunctions() {}
index 5a36749..af9d653 100755 (executable)
@@ -1,7 +1,10 @@
 package mir.util;
 
-import java.util.*;
-import mir.generator.*;
+import java.util.List;
+
+import mir.generator.Generator;
+import mir.generator.GeneratorExc;
+import mir.generator.GeneratorFailure;
 
 public class GeneratorIntegerFunctions {
 
index 1972615..fa7f0c1 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-import java.net.*;
+import java.util.List;
+import java.util.Vector;
 
-//import mir.misc.*;
-import mir.generator.*;
+import mir.generator.Generator;
+import mir.generator.GeneratorExc;
+import mir.generator.GeneratorFailure;
 
 public class GeneratorListFunctions {
   private GeneratorListFunctions() {}
index 573b2e3..6311361 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-import mir.generator.*;
+import java.util.List;
+
+import mir.generator.Generator;
+import mir.generator.GeneratorExc;
+import mir.generator.GeneratorFailure;
 
 public class GeneratorRegularExpressionFunctions {
 
index b46101d..6d8b373 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-import mir.generator.*;
+import java.util.List;
+
+import mir.generator.Generator;
+import mir.generator.GeneratorExc;
+import mir.generator.GeneratorFailure;
 
 public class GeneratorStringFunctions {
 
index 53bced3..3bb4a1c 100755 (executable)
@@ -31,7 +31,7 @@
 
 package mir.util;
 
-import java.net.*;
+import java.net.URLEncoder;
 
 public class HTMLRoutines {
 
index 62baccd..5dd2c4e 100755 (executable)
@@ -1,7 +1,6 @@
 package mir.util;
 
-import javax.servlet.*;
-import javax.servlet.http.*;
+import javax.servlet.http.HttpServletRequest;
 
 public class HTTPRequestParser {
   private HttpServletRequest request;
index c79a75f..6c7ed90 100755 (executable)
@@ -31,7 +31,7 @@
 
 package mir.util;
 
-import java.io.*;
+import java.io.Writer;
 
 public class NullWriter extends Writer {
 
index 2418ae3..6f96209 100755 (executable)
 
 package mir.util;
 
-import multex.Failure;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import mir.generator.Generator;
+import mir.generator.GeneratorExc;
 import multex.Exc;
 
-import java.util.*;
-import mir.generator.*;
-
 public class ParameterExpander {
   final static String NODE_SEPARATOR = ".";
   final static char STRING_ESCAPE_CHARACTER = '\\';
index 356a140..5571c31 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-import org.apache.struts.util.MessageResources;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Vector;
+
+import mir.generator.Generator;
+import mir.generator.GeneratorExc;
 
-import mir.generator.*;
+import org.apache.struts.util.MessageResources;
 
 public class ResourceBundleGeneratorFunction implements Generator.GeneratorFunction {
   private List messages;
index 9ad0988..10dc1b9 100755 (executable)
@@ -31,7 +31,7 @@
 
 package mir.util;
 
-import java.util.*;
+import java.util.Iterator;
 
 public interface RewindableIterator extends Iterator {
   public void rewind();
index f8160f1..e95d8ff 100755 (executable)
@@ -31,8 +31,9 @@
 
 package mir.util;
 
-import java.util.*;
-import gnu.regexp.*;
+import gnu.regexp.RE;
+import gnu.regexp.REException;
+import gnu.regexp.REMatch;
 import multex.Exc;
 import multex.Failure;
 
index acd56d6..2a7af39 100755 (executable)
@@ -31,7 +31,8 @@
 
 package mir.util;
 
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
 
 public class StringParseRoutines {
 
index ddb6ccb..8d3ecd3 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-import gnu.regexp.*;
+import gnu.regexp.RE;
+import gnu.regexp.REException;
+
+import java.util.List;
+import java.util.Vector;
 
 public class StringRoutines {
 
index b1204af..171c681 100755 (executable)
 
 package mir.util;
 
-import java.util.*;
-
-import java.util.*;
-import mir.storage.*;
-import mir.util.*;
-import mir.entity.*;
+import java.util.List;
+import java.util.NoSuchElementException;
 
 public class SubsetIterator implements RewindableIterator {
   private RewindableIterator master;
index 940d3bc..4dd7d18 100755 (executable)
@@ -1,6 +1,8 @@
 package mir.util;
 
-import java.util.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
 
 public class URLBuilder {
   private Map keyValues;
index 861a1fc..711af69 100755 (executable)
 
 package mir.xml;
 
-import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
-
 import mir.misc.ConfigException;
 import mir.misc.Location;
 
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
 /**
  * Configures a based on
  * a XML config file.
index 398a16c..7330ac3 100755 (executable)
@@ -31,7 +31,6 @@
 
 package mir.xml;
 
-import java.util.*;
 import java.util.StringTokenizer;
 
 /** micro-XPath match - match a path