Index: /main/trunk/gli/classes/dictionary.properties
===================================================================
--- /main/trunk/gli/classes/dictionary.properties	(revision 22969)
+++ /main/trunk/gli/classes/dictionary.properties	(revision 22970)
@@ -99,4 +99,14 @@
 CDM.ClassifierManager.Remove:Remove Classifier
 CDM.ClassifierManager.Remove_Tooltip:Remove the selected classifier from the list
+CDM.DatabaseTypeManager.Change:Change...
+CDM.DatabaseTypeManager.Change_Tooltip:Change the type of database used by this collection
+CDM.DatabaseTypeManager.Current_Type:Database in use: {0}
+CDM.DatabaseTypeManager.Title:Select the Database
+CDM.DatabaseTypeManager.gdbm:GDBM
+CDM.DatabaseTypeManager.gdbm_Description: GDBM (or GNU Database Manager) is a simple flat-file database engine which Greenstone uses as the default database for new collections.
+CDM.DatabaseTypeManager.jdbm:JDBM
+CDM.DatabaseTypeManager.jdbm_Description: JDBM (or Java Database Manager) is essentially a Java implementation of GDBM. Consider using this database engine combined with the Lucene indexer if you are wanting to create a pure Java run-time.
+CDM.DatabaseTypeManager.sqlite:SQLITE
+CDM.DatabaseTypeManager.sqlite_Description: SQLite is a simple relational database engine. It can be used in Greenstone to provide experimental advanced searching features that are not possible with the other database engines. To enable these features add "sqlform" to the list of SearchTypes in the Format Features section of the Format tab. 
 CDM.FormatManager.Add:Add Format
 CDM.FormatManager.Add_Tooltip:Add the specified format command 
Index: /main/trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java	(revision 22969)
+++ /main/trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java	(revision 22970)
@@ -57,4 +57,8 @@
 public class ClassifierManager
 extends DOMProxyListModel {
+
+    private DatabaseTypeManager database_type_manager = null;
+    private String database_type = null;
+
     /** The controls for editing the contents of this manager. */
     private Control controls = null;
@@ -71,4 +75,7 @@
         this.model = this;
         DebugStream.println ("ClassifierManager: " + getSize () + " classifiers parsed.");
+
+	database_type_manager = new DatabaseTypeManager();
+	database_type = database_type_manager.getDatabaseType();
         
         // Force the assigned classifiers to be loaded and cached now
@@ -269,5 +276,5 @@
     private class ClassifierControl
     extends JPanel
-    implements Control {
+	implements Control, DatabaseTypeManager.DatabaseTypeListener {
         /** A combobox containing all of the known classifiers, including those that may have already been assigned. */
         private JComboBox classifier_combobox = null;
@@ -281,4 +288,6 @@
         /** Button to remove the selected classifier. */
         private JButton remove = null;
+
+	private JPanel database_type_panel = (JPanel)database_type_manager.getControls();
         
         /** A list of assigned classifiers. */
@@ -404,4 +413,5 @@
             central_pane.setBorder (BorderFactory.createEmptyBorder (5,0,0,0));
             central_pane.setLayout (new BorderLayout ());
+            central_pane.add (database_type_panel, BorderLayout.NORTH);
             central_pane.add (classifier_list_pane, BorderLayout.CENTER);
             central_pane.add (temp, BorderLayout.SOUTH);
@@ -430,4 +440,12 @@
         }
         
+
+	public void databaseTypeChanged(String new_database_type)
+	{
+	    if(database_type.equals(new_database_type)){
+		return;
+	    }
+	    database_type = new_database_type;
+	}
         
         private class AddListener
Index: /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectCfgReadWrite.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectCfgReadWrite.java	(revision 22969)
+++ /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectCfgReadWrite.java	(revision 22970)
@@ -97,4 +97,7 @@
       return metadataToString (command_element); 
     }
+    else if (command_element_name.equals (StaticStrings.DATABASETYPE_ELEMENT)) {
+	return metadataToString (command_element); 
+    } 
     else if(command_element_name.equals (StaticStrings.PLUGIN_ELEMENT)) {
       return pluginToString (command_element);
@@ -335,5 +338,5 @@
     String name_str = command_element.getAttribute (StaticStrings.NAME_ATTRIBUTE);
     // If the name is one of the special four, we don't write the collectionmeta first. Note maintainer and buildtype are singled out for 'prittying' reasons.
-    if(name_str.equals (StaticStrings.COLLECTIONMETADATA_MAINTAINER_STR)|| name_str.equals (StaticStrings.BUILDTYPE_STR) ) {
+    if(name_str.equals (StaticStrings.COLLECTIONMETADATA_MAINTAINER_STR)|| name_str.equals (StaticStrings.BUILDTYPE_STR) || name_str.equals (StaticStrings.DATABASETYPE_STR)) {
       text.append (name_str);
       text.append (StaticStrings.TAB_CHARACTER);
@@ -578,5 +581,5 @@
 	    command_element = parseMetadata (tokenizer, document); // Revised to handle multiple lines
 	  }
-	  if(command_element == null && (command_type.equals (StaticStrings.COLLECTIONMETADATA_PUBLIC_STR) || command_type.equals (StaticStrings.COLLECTIONMETADATA_CREATOR_STR) || command_type.equals (StaticStrings.COLLECTIONMETADATA_MAINTAINER_STR) || command_type.equals (StaticStrings.BUILDTYPE_STR))) {
+	  if(command_element == null && (command_type.equals (StaticStrings.COLLECTIONMETADATA_PUBLIC_STR) || command_type.equals (StaticStrings.COLLECTIONMETADATA_CREATOR_STR) || command_type.equals (StaticStrings.COLLECTIONMETADATA_MAINTAINER_STR) || command_type.equals (StaticStrings.BUILDTYPE_STR) || command_type.equals (StaticStrings.DATABASETYPE_STR))) {
 	    command_element = parseMetadataSpecial (command_str, document);
 	    // pre 2.71 hack
@@ -1025,4 +1028,7 @@
 	else if (name_str.equals (StaticStrings.BUILDTYPE_STR)) {
 	  command_element = document.createElement (StaticStrings.BUILDTYPE_ELEMENT);
+	}
+	else if (name_str.equals (StaticStrings.DATABASETYPE_STR)) {
+	  command_element = document.createElement (StaticStrings.DATABASETYPE_ELEMENT);
 	}
 	if(command_element != null) {
Index: /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfigXMLReadWrite.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfigXMLReadWrite.java	(revision 22969)
+++ /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfigXMLReadWrite.java	(revision 22970)
@@ -991,4 +991,18 @@
     return element;
   }
+ 
+  static private Element doDatabaseType (Document to, String att_value) {
+        
+    //construct 'DatabaseType' element
+    Element element = to.createElement (StaticStrings.DATABASETYPE_ELEMENT);
+    element.setAttribute (StaticStrings.NAME_ATTRIBUTE, StaticStrings.DATABASETYPE_STR);
+    element.setAttribute (StaticStrings.LANGUAGE_ATTRIBUTE, StaticStrings.ENGLISH_LANGUAGE_STR);
+    element.setAttribute (StaticStrings.ASSIGNED_ATTRIBUTE, StaticStrings.TRUE_STR);
+    element.setAttribute (StaticStrings.SPECIAL_ATTRIBUTE, StaticStrings.TRUE_STR);
+
+    XMLTools.setNodeText (element, att_value);
+        
+    return element;
+  }
     
   // Convert 'description', 'smallicon' etc.
@@ -1315,4 +1329,16 @@
     search.setAttribute (StaticStrings.TYPE_ATTRIBUTE, indexer);
     to.getDocumentElement ().appendChild (search);
+  }
+  static private void convertDatabaseType (Document from, Document to) {
+    Element e = XMLTools.getNamedElement (from.getDocumentElement (),
+					  StaticStrings.DATABASETYPE_ELEMENT,
+					  StaticStrings.NAME_ATTRIBUTE, StaticStrings.DATABASETYPE_STR);
+    if (e == null) {
+      return;
+    }
+    String db = XMLTools.getNodeText (e);
+    Element dbtype = to.createElement (StaticStrings.INFODB_STR);
+    dbtype.setAttribute (StaticStrings.TYPE_ATTRIBUTE, db);
+    to.getDocumentElement ().appendChild (dbtype);
   }
   static private void convertDefaultIndex (Document from, Document to, Element search) {
@@ -1957,4 +1983,9 @@
       appendArrayList (toElement, is_public);
     }
+
+    Node databaseNode = XMLTools.getChildByTagNameIndexed (fromElement, StaticStrings.INFODB_STR, 0);
+    String databasetype_value = ((Element)databaseNode).getAttribute (StaticStrings.TYPE_ATTRIBUTE);
+    Element databasetype = doDatabaseType(dOc, databasetype_value);
+    appendProperly (toElement, databasetype);
         
     Node searchNode = XMLTools.getChildByTagNameIndexed (fromElement, StaticStrings.SEARCH_STR, 0);
@@ -2058,4 +2089,5 @@
     convertDisplayItemList (dOc, skeleton);
     convertBuildType (dOc, skeleton);
+    convertDatabaseType (dOc, skeleton);
     convertIndex (dOc, skeleton);
     convertPlugin (dOc, skeleton);//also do the plugout element
Index: /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java	(revision 22969)
+++ /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java	(revision 22970)
@@ -314,4 +314,12 @@
     return element;
         
+  }  
+
+public Element getDatabaseType () {
+    Element element = getOrCreateElementByTagName (StaticStrings.DATABASETYPE_ELEMENT, null, null);
+    element.setAttribute (StaticStrings.NAME_ATTRIBUTE, StaticStrings.DATABASETYPE_STR);
+    element.setAttribute (StaticStrings.SPECIAL_ATTRIBUTE, StaticStrings.TRUE_STR);
+    return element;
+        
   }
     
Index: /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionDesignManager.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionDesignManager.java	(revision 22969)
+++ /main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionDesignManager.java	(revision 22970)
@@ -49,4 +49,5 @@
     static public DesignChangeListener all_change_listener;
     static public DesignChangeListener buildcol_change_listener;
+    static public DesignChangeListener databasecol_change_listener;
     /** A list of classifiers to use at build time. */
     static public ClassifierManager classifier_manager;
@@ -108,4 +109,6 @@
 	all_change_listener = new DesignChangeListener(ALL);
 	buildcol_change_listener = new DesignChangeListener(BUILDCOL);
+	databasecol_change_listener = new DesignChangeListener(BUILDCOL);
+	
 	// Parse the collection configuration
 	collect_config = new CollectionConfiguration(collect_config_file);
Index: /main/trunk/gli/src/org/greenstone/gatherer/cdm/DatabaseTypeManager.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/cdm/DatabaseTypeManager.java	(revision 22970)
+++ /main/trunk/gli/src/org/greenstone/gatherer/cdm/DatabaseTypeManager.java	(revision 22970)
@@ -0,0 +1,292 @@
+package org.greenstone.gatherer.cdm;
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.util.EventListener;
+import javax.swing.event.EventListenerList;
+
+import org.greenstone.gatherer.Configuration;
+import org.greenstone.gatherer.Dictionary;
+import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
+import org.greenstone.gatherer.gui.ModalDialog;
+
+public class DatabaseTypeManager {
+
+    /** The size of this new collection dialog box. */
+    static private Dimension DIALOG_SIZE = new Dimension(600, 280);
+
+    static final public String DATABASE_TYPE_GDBM = "gdbm";
+    static final public String DATABASE_TYPE_JDBM = "jdbm";
+    static final public String DATABASE_TYPE_SQLITE = "sqlite";
+
+    static final public String DATABASE_TYPE_GDBM_STR = "GDBM";
+    static final public String DATABASE_TYPE_JDBM_STR = "JDBM";
+    static final public String DATABASE_TYPE_SQLITE_STR = "SQLITE";
+    
+    static final public String[] DATABASE_TYPES = {  DATABASE_TYPE_GDBM, DATABASE_TYPE_JDBM, DATABASE_TYPE_SQLITE  };
+
+    private EventListenerList listeners = null;
+    /** the databasetype element in the config file - uses CollectionMeta */
+    public CollectionMeta database_type_meta = null;
+    private Control controls = null;
+
+    protected DatabaseTypeManager manager = null;
+    public DatabaseTypeManager() {
+	database_type_meta = new CollectionMeta(CollectionDesignManager.collect_config.getDatabaseType());
+	if (getDatabaseType().equals("")) {
+	    database_type_meta.setValue(DATABASE_TYPE_GDBM);
+	    // must have an old collection, assume MG
+	}
+	listeners = new EventListenerList();
+	manager = this;
+    }
+
+    public void addDatabaseTypeListener(DatabaseTypeListener listener) {
+	listeners.add(DatabaseTypeListener.class, listener);
+    }
+    
+    protected void notifyListeners(String new_database_type) {
+	Object[] concerned = listeners.getListenerList();
+	for(int i = 0; i < concerned.length ; i++) {
+	    if(concerned[i] == DatabaseTypeListener.class) {
+		((DatabaseTypeListener)concerned[i+1]).databaseTypeChanged(new_database_type);
+	    }
+	}
+	concerned = null;
+    }
+    
+	
+    public void promptForNewDatabaseType() {
+
+	DatabaseTypePrompt dtp = new DatabaseTypePrompt(database_type_meta.getValue(CollectionMeta.TEXT));	
+    }
+
+    public boolean isGDBM () {
+
+	return getDatabaseType().equals(DATABASE_TYPE_GDBM);
+    }
+    public boolean isJDBM () {
+
+	return getDatabaseType().equals(DATABASE_TYPE_JDBM);
+    }
+    public boolean isSQLITE () {
+
+	return getDatabaseType().equals(DATABASE_TYPE_SQLITE);
+    }
+
+    
+    public String getDatabaseType() {
+	return database_type_meta.getValue(CollectionMeta.TEXT);
+    }
+
+    public Control getControls() {
+	if (controls == null) {
+	    controls = new DatabaseTypeControl();
+	}
+	return controls;
+    }
+
+    public interface DatabaseTypeListener
+	extends EventListener {
+	public void databaseTypeChanged(String new_database_type);
+    }
+
+    private class DatabaseTypeControl 
+	extends JPanel
+	implements Control, DatabaseTypeListener {
+
+	JLabel label = null;
+	JButton change_button = null;
+	
+	public DatabaseTypeControl() {
+	    super();
+	    this.setComponentOrientation(Dictionary.getOrientation());
+            
+	    JPanel spacer_panel = new JPanel();
+	    spacer_panel.setComponentOrientation(Dictionary.getOrientation());
+            
+	    JPanel main_panel = new JPanel();
+            main_panel.setComponentOrientation(Dictionary.getOrientation());
+	    /* may be CDM.DatabaseTypeManager.gdbm, CDM.DatabaseTypeManager.jdbm, CDM.DatabaseTypeManager.sqlite */
+	    label = new JLabel(Dictionary.get("CDM.DatabaseTypeManager.Current_Type", getDatabaseTypeString(getDatabaseType())));
+            label.setComponentOrientation(Dictionary.getOrientation());
+	    
+            change_button = new GLIButton(Dictionary.get("CDM.DatabaseTypeManager.Change"), Dictionary.get("CDM.DatabaseTypeManager.Change_Tooltip"));
+	    	    
+	    change_button.addActionListener(new ActionListener() {
+		    public void actionPerformed(ActionEvent event) {
+			promptForNewDatabaseType();
+		    }
+		});
+
+	    main_panel.setLayout(new BorderLayout(10,10));
+	    main_panel.add(label, BorderLayout.CENTER);
+	    main_panel.add(change_button, BorderLayout.LINE_END);
+
+	    setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
+	    setLayout(new BorderLayout());
+	    add(spacer_panel, BorderLayout.CENTER);
+	    add(main_panel, BorderLayout.LINE_END);
+
+	    manager.addDatabaseTypeListener(this);
+	}
+
+	public void loseFocus() {}
+	public void gainFocus() {}
+	public void destroy() {}
+
+	private String getDatabaseTypeString(String database_type) {
+	    if (database_type.equals(DATABASE_TYPE_GDBM)) {
+		return DATABASE_TYPE_GDBM_STR;
+	    }
+	    if (database_type.equals(DATABASE_TYPE_JDBM)) {
+		return DATABASE_TYPE_JDBM_STR;
+	    }
+	    if (database_type.equals(DATABASE_TYPE_SQLITE)) {
+		return DATABASE_TYPE_SQLITE_STR;
+	    }
+	    return "";
+	}
+
+		
+	public void databaseTypeChanged(String new_database_type) {
+	    label.setText(Dictionary.get("CDM.DatabaseTypeManager.Current_Type", getDatabaseTypeString(new_database_type)));
+	}
+    }
+    
+    private class DatabaseTypePrompt 
+	extends ModalDialog {
+	
+	private JDialog self;
+	
+	private JRadioButton gdbm_button = null;
+	private JRadioButton jdbm_button = null;
+	private JRadioButton sqlite_button = null;
+
+	private JTextArea description_textarea = null;
+	
+	JButton ok_button = null;
+	JButton cancel_button = null;
+	
+	public DatabaseTypePrompt(String current_database_type) {
+	    super(Gatherer.g_man, true);
+	    this.self = this;
+	    setSize(DIALOG_SIZE);
+	    setTitle(Dictionary.get("CDM.DatabaseTypeManager.Title"));
+            this.setComponentOrientation(Dictionary.getOrientation());
+            gdbm_button = new JRadioButton(DATABASE_TYPE_GDBM_STR);
+            gdbm_button.setComponentOrientation(Dictionary.getOrientation());
+	    gdbm_button.setActionCommand(DATABASE_TYPE_GDBM);
+            jdbm_button = new JRadioButton(DATABASE_TYPE_JDBM_STR);
+            jdbm_button.setComponentOrientation(Dictionary.getOrientation());
+            jdbm_button.setActionCommand(DATABASE_TYPE_JDBM);
+            sqlite_button = new JRadioButton(DATABASE_TYPE_SQLITE_STR);
+            sqlite_button.setComponentOrientation(Dictionary.getOrientation());
+            sqlite_button.setActionCommand(DATABASE_TYPE_SQLITE);
+	    
+	    DatabaseTypeButtonListener dtbl = new DatabaseTypeButtonListener();
+	    gdbm_button.addActionListener(dtbl);
+	    jdbm_button.addActionListener(dtbl);
+	    sqlite_button.addActionListener(dtbl);
+
+	    ButtonGroup database_type_group = new ButtonGroup();
+	    database_type_group.add(gdbm_button);
+	    database_type_group.add(jdbm_button);
+	    database_type_group.add(sqlite_button);
+            
+	    if (current_database_type != null) {
+		if (current_database_type.equals(DATABASE_TYPE_GDBM)) {
+		    gdbm_button.setSelected(true);
+		} else if (current_database_type.equals(DATABASE_TYPE_JDBM)) {
+		    jdbm_button.setSelected(true);
+		} else if (current_database_type.equals(DATABASE_TYPE_SQLITE)) {
+		    sqlite_button.setSelected(true);
+		} 
+	    }
+	    
+	    JPanel radio_pane = new JPanel();
+	    radio_pane.setLayout(new GridLayout(3,1));
+	    radio_pane.add(gdbm_button);
+	    radio_pane.add(jdbm_button);
+	    radio_pane.add(sqlite_button);
+            radio_pane.setComponentOrientation(Dictionary.getOrientation());
+            
+	    description_textarea = new JTextArea();
+	    description_textarea.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+	    /* may be CDM.DatabaseTypeManager.gdbm_Description, CDM.DatabaseTypeManager.jdbm_Description, CDM.DatabaseTypeManager.sqlite_Description */
+	    description_textarea.setText(Dictionary.get("CDM.DatabaseTypeManager."+current_database_type+"_Description"));
+	    description_textarea.setLineWrap(true);
+	    description_textarea.setWrapStyleWord(true);
+	    description_textarea.setComponentOrientation(Dictionary.getOrientation());
+            
+            cancel_button = new GLIButton(Dictionary.get("General.Cancel"), Dictionary.get("General.Cancel_Tooltip"));
+	    
+	    cancel_button.addActionListener(new ActionListener() {
+		    public void actionPerformed(ActionEvent event) {
+			self.dispose();
+		    }
+		});
+	    
+	    ok_button = new GLIButton(Dictionary.get("General.OK"), Dictionary.get("General.OK_Tooltip"));
+	    
+	    ok_button.addActionListener(new ActionListener() {
+		    public void actionPerformed(ActionEvent event) {
+			String new_database_type = DATABASE_TYPE_GDBM;
+			if (gdbm_button.isSelected()) {
+			    new_database_type = DATABASE_TYPE_GDBM;
+			} else if (jdbm_button.isSelected()) {
+			    new_database_type = DATABASE_TYPE_JDBM;
+			} else if (sqlite_button.isSelected()) {
+			    new_database_type = DATABASE_TYPE_SQLITE;
+			}
+			if (!database_type_meta.getValue(CollectionMeta.TEXT).equals(new_database_type)) {
+			    manager.notifyListeners(new_database_type);
+			    database_type_meta.setValue(new_database_type);
+			}
+			self.dispose();
+		    }
+		});
+	    // tell the CDM that we have (possibly) changed
+	    ok_button.addActionListener(CollectionDesignManager.databasecol_change_listener);
+	    JPanel button_pane = new JPanel();
+	    button_pane.setLayout(new GridLayout(1,2));
+	    button_pane.add(ok_button);
+	    button_pane.add(cancel_button);
+            button_pane.setComponentOrientation(Dictionary.getOrientation());
+            
+	    JPanel content_pane = (JPanel) getContentPane();
+	    content_pane.setOpaque(true);
+	    content_pane.setLayout(new BorderLayout());
+	    content_pane.add(radio_pane, BorderLayout.NORTH);
+	    content_pane.add(new JScrollPane(description_textarea), BorderLayout.CENTER);
+	    content_pane.add(button_pane, BorderLayout.SOUTH);
+            content_pane.setComponentOrientation(Dictionary.getOrientation());
+            
+	    // Center and display.
+	    Dimension screen_size = Configuration.screen_size;
+	    this.setLocation((screen_size.width - DIALOG_SIZE.width) / 2, (screen_size.height - DIALOG_SIZE.height) / 2);
+	    this.setVisible(true); // blocks until the dialog is killed
+	       
+	}
+
+	public void loseFocus() {
+
+	}
+	public void gainFocus() {
+
+	}
+	public void destroy() {
+
+	}
+	
+	private class DatabaseTypeButtonListener
+	    implements ActionListener {
+
+	    public void actionPerformed(ActionEvent event) {
+		description_textarea.setText(Dictionary.get("CDM.DatabaseTypeManager."+event.getActionCommand()+"_Description"));
+	    }
+	}
+    }
+}
Index: /main/trunk/gli/src/org/greenstone/gatherer/util/StaticStrings.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/util/StaticStrings.java	(revision 22969)
+++ /main/trunk/gli/src/org/greenstone/gatherer/util/StaticStrings.java	(revision 22970)
@@ -84,4 +84,6 @@
     static final public String CONTENT_ATTRIBUTE = "content";
     static final public String CONTENT_ELEMENT = "content";
+    static final public String DATABASETYPE_ELEMENT = "infodbtype";
+    static final public String DATABASETYPE_STR = "infodbtype";
     static final public String DATELIST_CLASSIFIER = "DateList";
     static final public String DEBUG_ARGUMENT = "-debug";
@@ -151,4 +153,5 @@
     static final public String INDEXOPTIONS_STR = "indexoptions";
     static final public String INDEXOPTION_DEFAULT_ELEMENT = "DefaultIndexOption";
+    static final public String INFODB_STR = "infodb";
     static final public String INT_STR = "int";
     static final public String IMPORT_STR = "import";
