============================================================== === SCHMITZM README (2012-09-25, Martin Schmitz) === === === === http://wald.intevation.org/projects/xulu/ === === http://wald.intevation.org/projects/schmitzm/ === ============================================================== This file contains some informations about... (1) the structure of the SCHMITZM library (2) the dependencies of the SCHMITZM library (3) localization in SCHMITZM ----------------------------------------------------------- (1) Structure of the SCHMITZM library ----------------------------------------------------------- SCHMITZM is not an executable program, but an library with many extensions for standard JDK, Geotools, JFreeChart and many more. To confine library dependencies for the use in other (application) projects the SCHMITZM library is divided into 4 modules, since version 2.5-SNAPSHOT: * schmitzm-core Contains core functionalities with only dependencies to JDK and (small) core libraries (e.g. MigLayout, Log4J, JDom, ...). * schmitzm-db Contains extensions and utilities for Postgres DB with depencency to schmitzm-core and Postgres. * schmitzm-excelcsv Contains extensions for Excel/CSV work with depencency to schmitzm-core, SuperCSV and JExcelApi. * schmitzm-gt Contains extensions for Geotools with depencency to schmitzm-core and Geotools. * schmitzm-jfree COntains extensions for core JFreeChart with depencency to schmitzm-core and JFreeChart. * schmitzm-jfree-gt Contains geo-extensions for JFreeChart (create chart from shapefile) so there are depencencies to schmitzm-core, schmitzm-jfree and schmitzm-gt. * schmitzm-addresses Utility methods for address maintainance with dependencies to schmitzm-core and schmitzm-excelcsv. * schmitzm-parent Technical parent project to implement commen dependencies for all sub-projects: - JUnit - Log4j ----------------------------------------------------------- (2) Dependencies to other libraries ----------------------------------------------------------- Because SCHMITZM is not an executable application, but an library for experienced programmers, I renounced to put all necessary libraries to the project. Since SCHMITZM is compatible with MAVEN from version 2.1 upward, this should no longer be a big problem. For these users who do not want to use MAVEN (I also resist for a long time!), here is an overview. I expect that the SCHMITZM developer/builder is able to include these dependencies to its individual Java (Eclipse) project: * schmitzm-core - JRE/JDK 1.6 (http://www.oracle.com/technetwork/java) - JAI plus ImageIO (if not already included in your JRE/JDK) - JavaX-Mail (http://www.oracle.com/technetwork/java/javamail/index.html) - JNLP (http://www.oracle.com/technetwork/java/javase/javawebstart/index.html) - JINI (jini-ext-2.1.jar) - Apache Log4j (http://logging.apache.org/log4j/) - Apache Commons CLI (http://commons.apache.org/cli/) - Apache Commons IO (http://commons.apache.org/io/) - Apache Commons Lang (http://commons.apache.org/lang/) - Apache Lucene (http://lucene.apache.org/solr/) - JDom (http://www.jdom.org/) - MigLayout (http://www.miglayout.com/) - JCalendar (http://www.toedter.com/en/jcalendar/) * schmitzm-db - schmitzm-core - PostgreSQL (http://jdbc.postgresql.org/) * schmitzm-excelcsv - schmitzm-core - JExcelApi (http://jexcelapi.sourceforge.net/) - SuperCSV (http://supercsv.sourceforge.net/) * schmitzm-gt - schmitzm-core - Geotools 2.7.5 (http://www.geotools.org) - Colt (http://acs.lbl.gov/~hoschek/colt/) Note: Because gt2-2.7.x already includes jai_codec-1.1.3.jar and jai_imageio-1.1.jar it is recommended only to include from JAI: - clipwrapper_jiio.jar - jai_core.jar - mlibwrapper_jai.jar * schmitzm-jfree - schmitzm-core - jFreeChart (http://www.jfree.org/jfreechart/) * schmitzm-jfree-gt - schmitzm-core - schmitzm-jfree - schmitzm-gt * schmitzm-addresses - schmitzm-core - schmitzm-excelcsv ----------------------------------------------------------- (3) Localization in SCHMITZM library ----------------------------------------------------------- Localization is done by the SCHMITZM class ResourceProvider, which is an extension to standard Java ResourceBundle. For example ResourceProvider.getString(..) allowes to specify additional parameters to fill wildcards ${0}, ${1}, ${2}, ... in the localization strings (see ResourceProvider class for more details). The SCHMITZM library contains resource bundles in the following packages, each located in sub-folders /resource/locales (below src/main/resources of each module): - de.schmitzm.data -> DataResourceBundle - de.schmitzm.lang -> LangResourceBundle - de.schmitzm.swing -> SwingResourceBundle - de.schmitzm.net.mail -> MailResourceBundle - de.schmitzm.geotools.feature -> FeatureResourceBundle - de.schmitzm.geotools.gui -> GTResourceBundle - de.schmitzm.jfree -> JFreeResourceBundle If you want SCHMITZM to provide an additional language, you have to translate all of these ResourceBundles. =========================================================== http://wald.intevation.org/projects/xulu/ http://wald.intevation.org/projects/schmitzm/ ===========================================================