diff options
author | Kurt Zenker <kz@openoffice.org> | 2005-03-21 12:24:03 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2005-03-21 12:24:03 +0000 |
commit | 67167fd7265d48e8389440797298563b2de6277a (patch) | |
tree | df9bcb84143a2cc12b0914bbc308ca7eef38db98 /filter/source/config/tools/merge | |
parent | 078907cdd0d9df35533636364763fe86d5b1a999 (diff) |
INTEGRATION: CWS fwkpostbeta1 (1.5.154); FILE MERGED
2005/02/28 06:24:35 as 1.5.154.3: #i41696# support direct reading/checking of UTF-8 encoded files
2005/02/14 13:05:49 as 1.5.154.2: #i41696# correct warnings
2005/02/10 08:42:37 as 1.5.154.1: #i41696# support new format of languagepacks
Diffstat (limited to 'filter/source/config/tools/merge')
-rw-r--r-- | filter/source/config/tools/merge/Merger.java | 73 |
1 files changed, 57 insertions, 16 deletions
diff --git a/filter/source/config/tools/merge/Merger.java b/filter/source/config/tools/merge/Merger.java index 8654458f2f08..b62edfaad3b3 100644 --- a/filter/source/config/tools/merge/Merger.java +++ b/filter/source/config/tools/merge/Merger.java @@ -2,9 +2,9 @@ * * $RCSfile: Merger.java,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: kz $ $Date: 2004-06-10 15:55:27 $ + * last change: $Author: kz $ $Date: 2005-03-21 13:24:03 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -104,11 +104,13 @@ public class Merger private static final java.lang.String PROP_TEMPDIR = "tempdir" ; // <= cmdline private static final java.lang.String PROP_OUTDIR = "outdir" ; // <= cmdline private static final java.lang.String PROP_PKG = "pkg" ; // <= cmdline + private static final java.lang.String PROP_DEBUG = "debug" ; // <= cmdline private static final java.lang.String PROP_TCFG = "tcfg" ; // <= cmdline private static final java.lang.String PROP_FCFG = "fcfg" ; // <= cmdline private static final java.lang.String PROP_LCFG = "lcfg" ; // <= cmdline private static final java.lang.String PROP_CCFG = "ccfg" ; // <= cmdline + private static final java.lang.String PROP_LANGUAGEPACK = "languagepack" ; // <= cmdline private static final java.lang.String PROP_ITEMS = "items" ; // <= pkg cfg files! @@ -165,7 +167,7 @@ public class Merger m_aFragmentsDir = new java.io.File(m_aCfg.getString(PROP_FRAGMENTSDIR)); m_aTempDir = new java.io.File(m_aCfg.getString(PROP_TEMPDIR )); - m_aOutDir = new java.io.File(m_aCfg.getString(PROP_OUTDIR )); +// m_aOutDir = new java.io.File(m_aCfg.getString(PROP_OUTDIR )); java.lang.String sDelimiter = m_aCfg.getString(PROP_DELIMITER); boolean bTrim = m_aCfg.getBoolean(PROP_TRIM); @@ -176,28 +178,44 @@ public class Merger ConfigHelper aFcfg = new ConfigHelper(m_aCfg.getString(PROP_TCFG), null); m_lTypes = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode); } - catch(java.util.NoSuchElementException ex1) { m_lTypes = new java.util.Vector(); } + catch(java.util.NoSuchElementException ex1) + { + m_lTypes = new java.util.Vector(); + //m_aLog.setWarning("Fragment list of types is missing. Parameter \"items\" seems to be invalid."); + } try { ConfigHelper aFcfg = new ConfigHelper(m_aCfg.getString(PROP_FCFG), null); m_lFilters = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode); } - catch(java.util.NoSuchElementException ex1) { m_lFilters = new java.util.Vector(); } + catch(java.util.NoSuchElementException ex1) + { + m_lFilters = new java.util.Vector(); + //m_aLog.setWarning("Fragment list of filters is missing. Parameter \"items\" seems to be invalid."); + } try { ConfigHelper aFcfg = new ConfigHelper(m_aCfg.getString(PROP_LCFG), null); m_lLoaders = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode); } - catch(java.util.NoSuchElementException ex1) { m_lLoaders = new java.util.Vector(); } + catch(java.util.NoSuchElementException ex1) + { + m_lLoaders = new java.util.Vector(); + //m_aLog.setWarning("Fragment list of frame loader objects is missing. Parameter \"items\" seems to be invalid."); + } try { ConfigHelper aFcfg = new ConfigHelper(m_aCfg.getString(PROP_CCFG), null); m_lHandlers = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode); } - catch(java.util.NoSuchElementException ex1) { m_lHandlers = new java.util.Vector(); } + catch(java.util.NoSuchElementException ex1) + { + m_lHandlers = new java.util.Vector(); + //m_aLog.setWarning("Fragment list of content handler objects is missing. Parameter \"items\" seems to be invalid."); + } } //------------------------------------------- @@ -213,10 +231,11 @@ public class Merger sBuffer.append( XMLHelper.generateHeader( - m_aCfg.getString(PROP_XMLVERSION ), - m_aCfg.getString(PROP_XMLENCODING), - m_aCfg.getString(PROP_XMLPATH ), - m_aCfg.getString(PROP_XMLPACKAGE ))); + m_aCfg.getString (PROP_XMLVERSION ), + m_aCfg.getString (PROP_XMLENCODING ), + m_aCfg.getString (PROP_XMLPATH ), + m_aCfg.getString (PROP_XMLPACKAGE ), + m_aCfg.getBoolean(PROP_LANGUAGEPACK, false))); // counts all transfered fragments // Can be used later to decide, if a generated package file @@ -310,17 +329,31 @@ public class Merger java.lang.StringBuffer sBuffer ) throws java.lang.Exception { - java.util.Enumeration pFragments = lFragments.elements(); - java.lang.String sExtXcu = m_aCfg.getString(PROP_EXTENSION_XCU); - if (lFragments.size()<1) + { + m_aLog.setWarning("List of fragments is empty!? Will be ignored ..."); return; + } + + java.util.Enumeration pFragments = lFragments.elements(); + java.lang.String sExtXcu = m_aCfg.getString(PROP_EXTENSION_XCU); for (int tabs=0; tabs<nPrettyTabs; ++tabs) sBuffer.append("\t"); sBuffer.append("<node oor:name=\""+sSetName+"\">\n"); ++nPrettyTabs; + // special mode for generating language packs. + // In such case we must live with some missing fragment files. + // Reason behind; Not all filters are realy localized. + // But we dont use a different fragment list. We try to locate + // any fragment file in its language-pack version ... + boolean bHandleLanguagePacks = m_aCfg.getBoolean(PROP_LANGUAGEPACK, false); + boolean bDebug = m_aCfg.getBoolean(PROP_DEBUG , false); + java.lang.String sEncoding = "UTF-8"; + if (bDebug) + sEncoding = "UTF-8Special"; + while(pFragments.hasMoreElements()) { java.lang.String sFragment = (java.lang.String)pFragments.nextElement(); @@ -328,7 +361,15 @@ public class Merger // handle simple files only and check for existence! if (!aFragment.exists()) - throw new java.io.IOException("fragment \""+aFragment.getPath()+"\" does not exists."); + { + if (bHandleLanguagePacks) + { + m_aLog.setWarning("language fragment \""+aFragment.getPath()+"\" does not exist. Will be ignored."); + continue; + } + else + throw new java.io.IOException("fragment \""+aFragment.getPath()+"\" does not exists."); + } if (!aFragment.isFile()) { @@ -341,7 +382,7 @@ public class Merger // used reader objects. Let it break this method too. Our calli is interested // on such errors :-) m_aLog.setDetailedInfo("merge fragment \""+aFragment.getPath()+"\" ..."); - FileHelper.readEncodedBufferFromFile(aFragment, "UTF-8", sBuffer); + FileHelper.readEncodedBufferFromFile(aFragment, sEncoding, sBuffer); sBuffer.append("\n"); } |