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());
}
/**
* @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);
}
* @exception StorageObjectException
*/
public void setValueForProperty (String theProp, String theValue)
- throws StorageObjectException {
+ throws StorageObjectFailure {
this.changed = true;
if (isField(theProp))
theValuesHash.put(theProp, theValue);
* @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();
}
* @return int[] that contains the types of the fields
* @exception StorageObjectException
*/
- public int[] getTypes () throws StorageObjectException {
+ public int[] getTypes () throws StorageObjectFailure {
return theStorageObject.getTypes();
}
* @return List with field names
* @exception StorageObjectException
*/
- public ArrayList getLabels () throws StorageObjectException {
+ public ArrayList getLabels () throws StorageObjectFailure {
return theStorageObject.getLabels();
}
* @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
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
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
\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
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;
/**
*
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;
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"));
}
/**
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 {
* 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));
}
* 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));
}
* 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);
}
* 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);
}
* @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
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;
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;
\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
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;
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);
}
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;
package mir.generator;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
public class CompositeGeneratorLibrary implements Generator.GeneratorLibrary {
private Map generatorLibraries;
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;
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 {
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;
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;
package mir.log;
-import mir.misc.MirConfig;
-
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
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);
}
}
package mir.log;
-import java.io.*;
-import java.util.*;
+import java.io.Writer;
public class LoggerToWriterAdapter extends Writer {
private LoggerWrapper logger;
package mir.log;
-import mir.log.Log;
public class TestFramework {
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
package mir.media;
-import java.lang.reflect.*;
-import java.lang.*;
+import java.lang.reflect.Method;
import mir.entity.Entity;
import mir.storage.Database;
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,
* ) 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{
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
*
*/
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
*
*/
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
*/
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;
/**
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
*
*/
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
*
*/
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
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
// Initialisierung
static {
- producerStorageRoot = MirConfig.getProp("Producer.StorageRoot");
+ try {
+ producerStorageRoot =
+ MirPropertiesConfiguration.instance().getString("Producer.StorageRoot");
+ } catch (PropertiesConfigExc e) {
+ e.printStackTrace();
+ }
}
/**
package mir.misc;
-import java.lang.*;
/*
* HTMLParseException -
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
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
}\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
\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
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
* @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
*\r
*/\r
public static SimpleHash makeSimpleHash(EntityList aList) throws\r
- StorageObjectException {\r
+ StorageObjectFailure {\r
SimpleHash simpleHash = new SimpleHash();\r
Entity currentEntity;\r
\r
*/\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
import java.io.IOException;
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
+
/**
* Title: Indy
* Description: This class provides some satic help methods
* 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;
}
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;
*/
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
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 {
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;
/**
* 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) {
\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
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
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");
}
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;
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
*
*/
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 {
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
*
*/
/**
- * Fügt einen Separator an den Pfad an
+ * F?gt einen Separator an den Pfad an
* @param path
* @return Pfad mit Separator am Ende
*/
}
/**
- * 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
*/
}
/**
- * 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
*/
}
/**
- * Löscht Slash am Anfang des Strings
+ * L?scht Slash am Anfang des Strings
* @param path
* @return
*/
}
/**
- * 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;
}
/**
- * 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
}
/**
- * 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
* 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
{
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:
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();
import java.io.InputStream;
import java.io.OutputStream;
+
import org.xml.sax.SAXException;
/**
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;
/**
* 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.
*
*/
}
/**
- * 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 () {
throw new ModuleException("No object for id = " + id);
else return entity;
}
- catch (StorageObjectException e){
+ catch (StorageObjectExc e){
throw new ModuleException(e.toString());
}
}
* 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 {
throw new ModuleException("Kein StorageObject gesetzt");
return theStorage.selectByWhereClause(whereClause, offset);
}
- catch (StorageObjectException e){
+ catch (StorageObjectFailure e){
throw new ModuleException(e.toString());
}
}
* @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());
}
}
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());
}
}
* @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;
}
/**
- * 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 {
/**
* 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 {
theEntity.update();
return theEntity.getId();
}
- catch (StorageObjectException e){
+ catch (StorageObjectExc e){
e.printStackTrace(System.err);
throw new ModuleException(e.toString());
}
public void deleteById (String idParam) throws ModuleException {
try {
theStorage.delete(idParam);
- } catch (StorageObjectException e){
+ } catch (StorageObjectFailure e){
throw new ModuleException(e.toString());
}
}
* returns the number of rows
*/
public int getSize(String where)
- throws SQLException,StorageObjectException {
+ throws SQLException,StorageObjectFailure {
return theStorage.getSize(where);
}
package mir.module;
-import java.lang.*;
/*
* ServletModuleException -
package mir.module;
-import java.lang.*;
/*
* ServletModuleException -
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;
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;
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;
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;
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;
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;
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;
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 {
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;
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;
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;
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 {
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;
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;
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;
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 {
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;
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;
package mir.producer;
-import java.io.*;
-import mir.log.*;
+import mir.log.LoggerWrapper;
public interface Producer {
public void produce( LoggerWrapper aLogger ) throws ProducerFailure, ProducerExc;
package mir.producer;
-import java.util.*;
+import java.util.Iterator;
+import java.util.Map;
public interface ProducerFactory {
public interface ProducerVerb {
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;
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;
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;
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;
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;
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 {
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;
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;
package mir.producer.reader;
-import java.util.*;
-import mir.producer.*;
+import java.util.HashMap;
+import java.util.Map;
public class ProducerNodeBuilderLibrary {
private Map nodeBuilders;
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 {
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;
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;
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
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 {
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
* 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...
}
/**
- * 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) {
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);
+ }
+ }
+
}
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.
*
*
* Abstrakte Klasse ServletModule stellt die Basisfunktionalitaet der
- * abgeleiteten ServletModule zur Verfügung.
+ * abgeleiteten ServletModule zur Verf?gung.
*
* @version 28.6.1999
* @author RK
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.
HttpSession session = req.getSession(false);
String language = (String) session.getAttribute("Language");
if (language == null) {
- language = MirConfig.getProp("StandardLanguage");
+ language = configuration.getString("StandardLanguage");
}
return language;
}
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());
try {
theFieldList = theStorage.getFields();
}
- catch (StorageObjectException e) {
+ catch (StorageObjectFailure e) {
throw new ServletModuleException("ServletModule.getIntersectingValues: " + e.getMessage());
}
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
*
* @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,
package mir.servlet;
-import java.lang.*;
/*
* ServletModuleException -
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;
/**
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
*/
package mir.servlet;
-import java.lang.*;
/*
* ServletModuleUserException -
\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
* 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
\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
}\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
* @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
* @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
* @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
* @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
" (" + 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
* @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
* @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
* @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
* @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
* @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
*/\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
*/\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
* @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
}\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
*\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
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
* @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
* 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
* @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
* @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
* @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
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
}\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
hashCache = HTMLTemplateProcessor.makeSimpleHash(selectByWhereClause("",\r
-1));\r
}\r
- catch (StorageObjectException e) {\r
+ catch (StorageObjectFailure e) {\r
theLog.printDebugInfo(e.getMessage());\r
}\r
}\r
* @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
* @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
* 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
}\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
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
}\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
* @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
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
* 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
}\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
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
* @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
}\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
* @exception StorageObjectException\r
*/\r
void throwStorageObjectException (String message)\r
- throws StorageObjectException {\r
+ throws StorageObjectFailure {\r
_throwStorageObjectException(null, message);\r
}\r
\r
\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
/* 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
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
\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
\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
package mir.storage;
-import java.util.*;
-import mir.misc.*;
+import java.util.Properties;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
/**
/**
* 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() {
}
/**
- * 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
*/
\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
\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
* 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
\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
}\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
package mir.storage;
-import java.util.*;
+import java.util.ArrayList;
public class DatabaseCache {
private final ArrayList _cache;
* 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
* @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
* @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
* @exception StorageObjectException\r
*/\r
abstract public EntityList selectByWhereClause(String whereClause) throws\r
- StorageObjectException;\r
+ StorageObjectFailure;\r
\r
/**\r
* Dokumentation siehe Database.java\r
* @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
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
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
* @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
* @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
* @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
* @exception StorageObjectException, SQLException\r
*/\r
abstract public ResultSet executeSql(Statement a, String sql) throws\r
- StorageObjectException,\r
+ StorageObjectFailure,\r
SQLException;\r
\r
/**\r
* @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
* @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 {
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)));
* @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 {
* @version 1.0
*/
-import java.util.*;
+import java.util.Set;
public interface StorableObject {
* @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 {
*/
import java.util.HashMap;
-import mir.misc.*;
+
+import mir.misc.Logfile;
+import mir.misc.StringUtil;
public class StoreContainerType {
* @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 {
* @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 {
* @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 {
* @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 {
* @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 {
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;
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;
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;
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;
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() {}
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 {
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() {}
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 {
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 {
package mir.util;
-import java.net.*;
+import java.net.URLEncoder;
public class HTMLRoutines {
package mir.util;
-import javax.servlet.*;
-import javax.servlet.http.*;
+import javax.servlet.http.HttpServletRequest;
public class HTTPRequestParser {
private HttpServletRequest request;
package mir.util;
-import java.io.*;
+import java.io.Writer;
public class NullWriter extends Writer {
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 = '\\';
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;
package mir.util;
-import java.util.*;
+import java.util.Iterator;
public interface RewindableIterator extends Iterator {
public void rewind();
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;
package mir.util;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
public class StringParseRoutines {
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 {
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;
package mir.util;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
public class URLBuilder {
private Map keyValues;
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.
package mir.xml;
-import java.util.*;
import java.util.StringTokenizer;
/** micro-XPath match - match a path