------------------------------------------------------------ revno: 2079 committer: Bob Jolliffe [email protected] branch nick: trunk timestamp: Tue 2010-09-07 22:23:11 +0100 message: DHIS2-live Work in progress - added xml config with multiple database support. GUI + translation to hibernate properties still required removed: dhis-live/src/main/java/org/hisp/dhis/SimpleConfigReader.java added: dhis-live/src/main/resources/Config.xsd dhis-live/src/main/resources/defaultConfig.xml modified: dhis-live/pom.xml dhis-live/src/main/java/org/hisp/dhis/TrayApp.java dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java dhis-live/src/main/resources/messages_en.properties
-- lp:dhis2 https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk Your team DHIS 2 developers is subscribed to branch lp:dhis2. To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-live/pom.xml' --- dhis-live/pom.xml 2010-06-26 19:26:25 +0000 +++ dhis-live/pom.xml 2010-09-07 21:23:11 +0000 @@ -1,174 +1,200 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - - <modelVersion>4.0.0</modelVersion> - <groupId>org.hisp.dhis</groupId> - <artifactId>dhis-live</artifactId> - <packaging>jar</packaging> - <version>1.0-SNAPSHOT</version> - <name>DHIS Live</name> - - <url>http://maven.apache.org</url> - - <build> - <finalName>dhis2-live</finalName> - <defaultGoal>install</defaultGoal> - <plugins> - <!-- Maven Assembly --> - <plugin> - <artifactId>maven-assembly-plugin</artifactId> - <version>2.2-beta-3</version> - <configuration> - <descriptorRefs> - <descriptorRef>jar-with-dependencies</descriptorRef> - </descriptorRefs> - <archive> - <manifest> - <mainClass>org.hisp.dhis.TrayApp</mainClass> - </manifest> - </archive> - </configuration> - <executions> - <execution> - <id>make-assembly</id> <!-- this is used for inheritance merges --> - <phase>package</phase> <!-- append to the packaging phase. --> - <goals> - <goal>single</goal> <!-- goals == mojos --> - </goals> - </execution> - </executions> - - </plugin> - <!-- Maven Compiler --> - <plugin> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.0.2</version> - <configuration> - <debug>true</debug> - </configuration> - </plugin> - <!-- Launch4J --> - <plugin> - <groupId>org.bluestemsoftware.open.maven.plugin</groupId> - <artifactId>launch4j-plugin</artifactId> - <version>1.5.0.0</version> - <executions> - <execution> - <id>default</id> - <phase>package</phase> - <goals> - <goal>launch4j</goal> - </goals> - <configuration> - <dontWrapJar>true</dontWrapJar> - <headerType>gui</headerType> - <outfile>${project.build.directory}/dhis2-live.exe</outfile> - <jar>dhis2-live.jar</jar> - <errTitle>dhis2</errTitle> - <priority>normal</priority> - <downloadUrl>http://java.com/download</downloadUrl> - <supportUrl>http://dhis2.org</supportUrl> - <customProcName>false</customProcName> - <stayAlive>false</stayAlive> - <manifest></manifest> - <icon>${basedir}/util/launch4j/favicon.ico</icon> - <singleInstance> - <mutexName>dhis-live.mutex</mutexName> - <windowTitle></windowTitle> - </singleInstance> - <jre> - <minVersion>1.6.0_14</minVersion> - </jre> - <splash> - <file>${basedir}/util/launch4j/dhis2-splash.bmp</file> - <waitForWindow>false</waitForWindow> - <timeout>12</timeout> - <timeoutErr>false</timeoutErr> - </splash> - </configuration> - </execution> - <execution> - <id>emedded</id> - <phase>package</phase> - <goals> - <goal>launch4j</goal> - </goals> - <configuration> - <dontWrapJar>true</dontWrapJar> - <headerType>gui</headerType> - <outfile>${project.build.directory}/dhis2-live-embedded.exe</outfile> - <jar>dhis2-live.jar</jar> - <errTitle>dhis2</errTitle> - <priority>normal</priority> - <downloadUrl>http://java.com/download</downloadUrl> - <supportUrl>http://dhis2.org</supportUrl> - <customProcName>false</customProcName> - <stayAlive>false</stayAlive> - <manifest></manifest> - <icon>${basedir}/util/launch4j/favicon.ico</icon> - <singleInstance> - <mutexName>dhis-live.mutex</mutexName> - <windowTitle></windowTitle> - </singleInstance> - <jre> - <path>jre6</path> - <minVersion>1.6.0_14</minVersion> - </jre> - <splash> - <file>${basedir}/util/launch4j/dhis2-splash.bmp</file> - <waitForWindow>false</waitForWindow> - <timeout>12</timeout> - <timeoutErr>false</timeoutErr> - </splash> - </configuration> - </execution> - - </executions> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty</artifactId> - <version>6.1.15</version> - <type>jar</type> - </dependency> - <dependency> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jsp-2.1</artifactId> - <version>6.1.14</version> - </dependency> - <dependency> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty-util</artifactId> - <version>6.1.15</version> - <type>jar</type> - </dependency> - <dependency> - <groupId>jetty</groupId> - <artifactId>servlet-api</artifactId> - <version>2.5-6.0.0</version> - <type>jar</type> - </dependency> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - <version>1.1</version> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>avalon-framework</groupId> - <artifactId>avalon-framework</artifactId> - </exclusion> - <exclusion> - <groupId>logkit</groupId> - <artifactId>logkit</artifactId> - </exclusion> - </exclusions> - </dependency> - </dependencies> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + <groupId>org.hisp.dhis</groupId> + <artifactId>dhis-live</artifactId> + <packaging>jar</packaging> + <version>1.0-SNAPSHOT</version> + <name>DHIS Live</name> + + <url>http://maven.apache.org</url> + + <build> + <finalName>dhis2-live</finalName> + <defaultGoal>install</defaultGoal> + + <plugins> + <!--jaxb plugin--> + <plugin> + <groupId>org.jvnet.jaxb2.maven2</groupId> + <artifactId>maven-jaxb2-plugin</artifactId> + <executions> + <execution> + <configuration> + <generatePackage>org.hisp.dhis.config</generatePackage> + </configuration> + <goals> + <goal>generate</goal> + </goals> + </execution> + </executions> + </plugin> + + + <!-- Maven Assembly --> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>2.2-beta-3</version> + <configuration> + <descriptorRefs> + <descriptorRef>jar-with-dependencies</descriptorRef> + </descriptorRefs> + <archive> + <manifest> + <mainClass>org.hisp.dhis.TrayApp</mainClass> + </manifest> + </archive> + </configuration> + <executions> + <execution> + <id>make-assembly</id> <!-- this is used for inheritance merges --> + <phase>package</phase> <!-- append to the packaging phase. --> + <goals> + <goal>single</goal> <!-- goals == mojos --> + </goals> + </execution> + </executions> + + </plugin> + <!-- Maven Compiler --> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>2.0.2</version> + <configuration> + <source>1.6</source> + <target>1.6</target> + </configuration> + </plugin> + <!-- Launch4J --> + <plugin> + <groupId>org.bluestemsoftware.open.maven.plugin</groupId> + <artifactId>launch4j-plugin</artifactId> + <version>1.5.0.0</version> + <executions> + <execution> + <id>default</id> + <phase>package</phase> + <goals> + <goal>launch4j</goal> + </goals> + <configuration> + <dontWrapJar>true</dontWrapJar> + <headerType>gui</headerType> + <outfile>${project.build.directory}/dhis2-live.exe</outfile> + <jar>dhis2-live.jar</jar> + <errTitle>dhis2</errTitle> + <priority>normal</priority> + <downloadUrl>http://java.com/download</downloadUrl> + <supportUrl>http://dhis2.org</supportUrl> + <customProcName>false</customProcName> + <stayAlive>false</stayAlive> + <manifest></manifest> + <icon>${basedir}/util/launch4j/favicon.ico</icon> + <singleInstance> + <mutexName>dhis-live.mutex</mutexName> + <windowTitle></windowTitle> + </singleInstance> + <jre> + <minVersion>1.6.0_14</minVersion> + </jre> + <splash> + <file>${basedir}/util/launch4j/dhis2-splash.bmp</file> + <waitForWindow>false</waitForWindow> + <timeout>12</timeout> + <timeoutErr>false</timeoutErr> + </splash> + </configuration> + </execution> + <execution> + <id>emedded</id> + <phase>package</phase> + <goals> + <goal>launch4j</goal> + </goals> + <configuration> + <dontWrapJar>true</dontWrapJar> + <headerType>gui</headerType> + <outfile>${project.build.directory}/dhis2-live-embedded.exe</outfile> + <jar>dhis2-live.jar</jar> + <errTitle>dhis2</errTitle> + <priority>normal</priority> + <downloadUrl>http://java.com/download</downloadUrl> + <supportUrl>http://dhis2.org</supportUrl> + <customProcName>false</customProcName> + <stayAlive>false</stayAlive> + <manifest></manifest> + <icon>${basedir}/util/launch4j/favicon.ico</icon> + <singleInstance> + <mutexName>dhis-live.mutex</mutexName> + <windowTitle></windowTitle> + </singleInstance> + <jre> + <path>jre6</path> + <minVersion>1.6.0_14</minVersion> + </jre> + <splash> + <file>${basedir}/util/launch4j/dhis2-splash.bmp</file> + <waitForWindow>false</waitForWindow> + <timeout>12</timeout> + <timeoutErr>false</timeoutErr> + </splash> + </configuration> + </execution> + + </executions> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>6.1.15</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-2.1</artifactId> + <version>6.1.14</version> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-util</artifactId> + <version>6.1.15</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>jetty</groupId> + <artifactId>servlet-api</artifactId> + <version>2.5-6.0.0</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + <version>1.1</version> + <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>avalon-framework</groupId> + <artifactId>avalon-framework</artifactId> + </exclusion> + <exclusion> + <groupId>logkit</groupId> + <artifactId>logkit</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-impl</artifactId> + <version>2.1.13</version> + </dependency> + + </dependencies> </project> + === removed file 'dhis-live/src/main/java/org/hisp/dhis/SimpleConfigReader.java' --- dhis-live/src/main/java/org/hisp/dhis/SimpleConfigReader.java 2010-09-06 17:50:24 +0000 +++ dhis-live/src/main/java/org/hisp/dhis/SimpleConfigReader.java 1970-01-01 00:00:00 +0000 @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2004-2010, University of Oslo - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of the HISP project nor the names of its contributors may - * be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package org.hisp.dhis; - - -import java.util.Properties; -import java.io.*; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * - * @author Jason P. Pickering - */ -class SimpleConfigReader -{ - - private static final String CONFIG_FILE = "conf/dhis2live.cfg"; - - private static final int DEFAULT_JETTY_PORT = 8080; - - private static final String PREFERRED_BROWSER_PROPERTY = "preferredBrowser"; - - private static final String JETTY_PORT_PROPERTY = "jettyPort"; - - private static final Log log = LogFactory.getLog( SimpleConfigReader.class ); - - protected Properties getDefaultProperties() - { - FileInputStream configInputStream; - Properties defaultProps = new Properties(); - try - { - configInputStream = new FileInputStream( CONFIG_FILE ); - defaultProps.load( configInputStream ); - configInputStream.close(); - } catch ( FileNotFoundException e ) - { - log.info( "No properties file found." ); - } catch ( IOException ex ) - { - log.error( "There was an input/output error while loading the properties file." ); - } - return defaultProps; - } - - protected String preferredBrowserPath() - { - String thisBrowserPath = null; - if ( getDefaultProperties().containsKey( PREFERRED_BROWSER_PROPERTY ) ) - { - try - { - thisBrowserPath = getDefaultProperties().getProperty( PREFERRED_BROWSER_PROPERTY ); - log.info( "Browser path reported as" + thisBrowserPath ); - } catch ( Exception e ) - { - log.error( "Could not load preferred browser property" ); - thisBrowserPath = null; - } - } - return thisBrowserPath; - } - - protected int preferredJettyPort() - { - int preferredJettyPort = WebAppServer.DEFAULT_JETTY_PORT; - if ( getDefaultProperties().containsKey( JETTY_PORT_PROPERTY ) ) - { - try - { - preferredJettyPort = Integer.parseInt( getDefaultProperties().getProperty( JETTY_PORT_PROPERTY ) ); - } catch ( NumberFormatException e ) - { - log.error( "Port is not in the specified format.Using default." ); - preferredJettyPort = WebAppServer.DEFAULT_JETTY_PORT; - } - } - log.info( "Preferred jetty port will be configured to be " + preferredJettyPort ); - - return preferredJettyPort; - } -} === modified file 'dhis-live/src/main/java/org/hisp/dhis/TrayApp.java' --- dhis-live/src/main/java/org/hisp/dhis/TrayApp.java 2010-09-06 17:50:24 +0000 +++ dhis-live/src/main/java/org/hisp/dhis/TrayApp.java 2010-09-07 21:23:11 +0000 @@ -31,13 +31,22 @@ import java.awt.event.*; import java.net.URI; import java.net.URL; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.swing.*; import java.io.*; import java.util.Locale; import java.util.ResourceBundle; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hisp.dhis.config.ConfigType; +import org.hisp.dhis.config.ConfigType.DatabaseConnections.Connection; import org.mortbay.component.LifeCycle; /** @@ -51,6 +60,10 @@ private static final String CONFIG_DIR = "/conf"; + private static final String CONFIG_FILE_NAME = "/conf/config.xml"; + + private static final String CONFIG_DEFAULT = "/defaultConfig.xml"; + private static final String STOPPED_ICON = "/icons/stopped.png"; private static final String STARTING_ICON = "/icons/starting.gif"; @@ -59,18 +72,32 @@ private static final String RUNNING_ICON = "/icons/running.png"; - private static final String CONFIG_FILE = "conf/dhis2live.cfg"; - private WebAppServer appServer; private TrayIcon trayIcon; private String installDir; - private SimpleConfigReader configReader; + // the configuration + private ConfigType config; private static ResourceBundle messages = ResourceBundle.getBundle( "messages", Locale.getDefault() ); + private static TrayApp instance; + +// ------------------------------------------------------------------------- + // Getters and setters + // ------------------------------------------------------------------------- + public ConfigType getConfig() + { + return config; + } + + public void setConfig( ConfigType config ) + { + this.config = config; + } + // ------------------------------------------------------------------------- // Main method // ------------------------------------------------------------------------- @@ -93,7 +120,8 @@ { try { - new TrayApp(); + TrayApp trayApp = TrayApp.getInstance(); + trayApp.init(); } catch ( Exception ex ) { log.fatal( "TrayApp Initialization failure", ex ); @@ -103,10 +131,21 @@ } } - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - public TrayApp() throws AWTException, InterruptedException + // TrayApp is singleton - hide constructor + private TrayApp() + { + } + + public static TrayApp getInstance() + { + if ( instance == null ) + { + instance = new TrayApp(); + } + return instance; + } + + public void init() throws AWTException, InterruptedException { log.info( "Initialising DHIS 2 Live..." ); @@ -128,6 +167,27 @@ } } + InputStream configStream = null; + try + { + configStream = new java.io.FileInputStream( installDir + CONFIG_FILE_NAME ); + } catch ( FileNotFoundException ex ) + { + log.info( "Can't locate external config - falling back to default"); + configStream = TrayApp.class.getResourceAsStream( CONFIG_DEFAULT ); + } + + readConfigFromStream(configStream); + + log.info( "Locale: " + config.getLocaleLanguage() + ":" + config.getLocaleCountry()); + + // get the selected database + ConfigType.DatabaseConnections.Connection conn = + (ConfigType.DatabaseConnections.Connection) config.getDatabaseConnections().getSelected(); + + log.info( "Selected db: "+conn.getName() + "; " + conn.getUserName() + ":" +conn.getPassword() + " "+ conn.getURL()); + + System.setProperty( "dhis2.home", installDir + CONFIG_DIR ); System.setProperty( "jetty.home", installDir ); @@ -168,11 +228,10 @@ if ( cmd.equals( messages.getString( "CMD_EXIT" ) ) ) { shutdown(); - } + } } } - ; }; openItem.addActionListener( listener ); @@ -182,7 +241,7 @@ appServer = new WebAppServer(); try { - appServer.init( installDir, this ); + appServer.init( ); } catch ( Exception e ) { log.fatal( "Application server could not be initialized" ); @@ -239,12 +298,9 @@ private String defaultPreferredBrowserPath() { - //initialize a return variable.false denotes failure. true success - configReader = new SimpleConfigReader(); - String preferredBrowserPath = null; + String preferredBrowserPath = config.getPreferredBrowser(); try { - preferredBrowserPath = configReader.preferredBrowserPath(); log.info( "Config reports browser path to be" + preferredBrowserPath ); boolean browserIsValid = new File( preferredBrowserPath ).exists(); if ( !browserIsValid ) @@ -396,7 +452,7 @@ * * @return a <code>String</code> value representing the installation directory */ - private static String getInstallDir() + public static String getInstallDir() { // find a resource String resourceString = TrayApp.class.getResource( "/icons/" ).toString(); @@ -414,4 +470,45 @@ result = result.replaceAll( "%20", " " ); return result; } + + private void readConfigFromStream(InputStream configStream) + { + try + { + JAXBContext jc = JAXBContext.newInstance( "org.hisp.dhis.config" ); + //Create unmarshaller + Unmarshaller um = jc.createUnmarshaller(); + //Unmarshal XML contents of the file myDoc.xml into your Java object instance. + JAXBElement<ConfigType> configElement = + (JAXBElement<ConfigType>) um.unmarshal( configStream ); + + config = configElement.getValue(); + + // rather than just logging these errors they should rather bubble a message to the UI + } catch ( JAXBException ex ) + { + log.error( "Error parsing config file", ex ); + } + + } + + private void writeConfigToFile() + { + try + { + JAXBContext jc = JAXBContext.newInstance( "org.hisp.dhis.config" ); + //Create marshaller + Marshaller m = jc.createMarshaller(); + //Marshal object into file. + m.marshal( config, new FileOutputStream( installDir + CONFIG_FILE_NAME ) ); + + // rather than just logging these errors they should rather bubble a message to the UI + } catch ( FileNotFoundException ex ) + { + log.error( "Can't find config.xml file", ex ); + } catch ( JAXBException ex ) + { + log.error( "Error serializing config to file", ex ); + } + } } === modified file 'dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java' --- dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java 2010-09-06 17:50:24 +0000 +++ dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java 2010-09-07 21:23:11 +0000 @@ -64,17 +64,16 @@ protected Connector connector; - private SimpleConfigReader configReader; - public WebAppServer() { server = new Server(); connector = new SelectChannelConnector(); } - public void init( String installDir, LifeCycle.Listener serverListener ) + public void init( ) throws Exception { + String installDir = TrayApp.getInstallDir(); try { int portFromConfig = this.getPortFromConfig(); @@ -109,7 +108,7 @@ } server.setHandler( handlers ); - server.addLifeCycleListener( serverListener ); + server.addLifeCycleListener( TrayApp.getInstance() ); } public void start() @@ -132,17 +131,6 @@ private int getPortFromConfig() { - configReader = new SimpleConfigReader(); - int preferredJettyPort = DEFAULT_JETTY_PORT; - try - { - int portFromConfig = configReader.preferredJettyPort(); - preferredJettyPort = portFromConfig; - } catch ( Exception e ) - { - log.error( "There was a problem reading the preferred jetty port. Using default." ); - preferredJettyPort = DEFAULT_JETTY_PORT; - } - return preferredJettyPort; + return TrayApp.getInstance().getConfig().getPort(); } } === added file 'dhis-live/src/main/resources/Config.xsd' --- dhis-live/src/main/resources/Config.xsd 1970-01-01 00:00:00 +0000 +++ dhis-live/src/main/resources/Config.xsd 2010-09-07 21:23:11 +0000 @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="http://www.dhis.org/schema/config" + targetNamespace="http://www.dhis.org/schema/config" elementFormDefault="qualified"> + + <xs:complexType name="ConfigType"> + <xs:sequence> + <xs:element name="LocaleLanguage" type="xs:string" default="en" /> + <xs:element name="LocaleCountry" type="xs:string" default="GB" /> + <xs:element name="Port" type="xs:int" default="8080" /> + <xs:element name="Host" type="xs:string" default="localhost" /> + <xs:element name="PreferredBrowser" type="xs:string" default="" /> + <xs:element name="DatabaseConnections"> + <xs:complexType> + <xs:sequence> + <xs:element name="Connection" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Name" type="xs:string"/> + <xs:element name="Type"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="H2"/> + <xs:enumeration value="Postgresql"/> + <xs:enumeration value="Mysql"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="URL" type="xs:string"/> + <xs:element name="UserName" type="xs:string"/> + <xs:element name="Password" type="xs:string" default="" minOccurs="0"/> + </xs:sequence> + <xs:attribute name="ID" type="xs:ID" use="required"/> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="selected" type="xs:IDREF"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:element name="Config" type="ConfigType"> + </xs:element> + +</xs:schema> === added file 'dhis-live/src/main/resources/defaultConfig.xml' --- dhis-live/src/main/resources/defaultConfig.xml 1970-01-01 00:00:00 +0000 +++ dhis-live/src/main/resources/defaultConfig.xml 2010-09-07 21:23:11 +0000 @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Default configuration for dhis2-live --> +<!-- Bob Jolliffe 07/09/2010 --> + +<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.dhis.org/schema/config Config.xsd" + xmlns="http://www.dhis.org/schema/config"> + <LocaleLanguage>en</LocaleLanguage> + <LocaleCountry>GB</LocaleCountry> + <Port>8080</Port> + <Host>localhost</Host> + <PreferredBrowser/> + <DatabaseConnections selected="conn1"> + <Connection ID="conn1"> + <Name>DHIS2 demo database</Name> + <Type>H2</Type> + <URL>jdbc:h2:./database/demo;AUTO_SERVER=TRUE</URL> + <UserName>sa</UserName> + </Connection> + <Connection ID="conn2"> + <Name>Postgresql example</Name> + <Type>Postgresql</Type> + <URL>jdbc:postgresql://localhost/demo</URL> + <UserName>dhis</UserName> + <Password>dhis</Password> + </Connection> + <Connection ID="conn3"> + <Name>Mysql example</Name> + <Type>Postgresql</Type> + <URL>jdbc:mysql://localhost/demo</URL> + <UserName>dhis</UserName> + <Password>dhis</Password> + </Connection> + </DatabaseConnections> +</Config> === modified file 'dhis-live/src/main/resources/messages_en.properties' --- dhis-live/src/main/resources/messages_en.properties 2010-09-06 17:50:24 +0000 +++ dhis-live/src/main/resources/messages_en.properties 2010-09-07 21:23:11 +0000 @@ -1,4 +1,5 @@ CMD_OPEN = Open DHIS 2 Live +CMD_CONFIG = Configure CMD_EXIT = Exit CMD_SETTINGS = Settings CMD_DATABASE = Databases
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : [email protected] Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp

