package eu.etaxonomy.cdm.common;
import java.io.BufferedReader;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.log4j.Logger;
/**
- * Util class for consistent access to and creation of per instance application configuration files.
*
* @author a.mueller
* @author a.kohlbecker
private static final Logger logger = Logger.getLogger(CdmUtils.class);
+ //folder separator
+ static String folderSeparator;
+
+ static final String MUST_EXIST_FILE = "MUST-EXIST.txt";
+
+
+ /**
+ * @return
+ */
+ static public String getFolderSeperator(){
+ if (folderSeparator == null){
+ URL url = CdmUtils.class.getResource("/"+ MUST_EXIST_FILE);
+ if ( url != null && ! urlIsJarOrBundle(url) ){
+ folderSeparator = File.separator;
+ }else{
+ folderSeparator = "/";
+ }
+ }
+ return folderSeparator;
+ }
+
+
+ /**
+ * @param url
+ * @return
+ */
+ static private boolean urlIsJarOrBundle(URL url){
+ return url.getProtocol().startsWith("jar") || url.getProtocol().startsWith("bundleresource");
+ }
+
+
/**
* Returns the an InputStream for a read-only source
* @param resourceFileName the resources path within the classpath(!)
\r
package eu.etaxonomy.cdm.common;\r
\r
+import static org.junit.Assert.assertNotNull;\r
+\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
import java.util.regex.Pattern;\r
\r
import org.apache.log4j.Level;\r
// System.out.println(CdmUtils.quoteRegExWithWildcard(str));\r
}\r
\r
+ @Test\r
+ public void testGetReadableResourceStream() {\r
+ String resourceFileName = CdmUtils.MUST_EXIST_FILE;\r
+ try {\r
+ InputStream inputStream = CdmUtils.getReadableResourceStream(resourceFileName);\r
+ assertNotNull(inputStream);\r
+ } catch (IOException e) {\r
+ Assert.fail("IOException");\r
+ }\r
+ }\r
+\r
\r
\r
\r
\r
import au.com.bytecode.opencsv.CSVReader;\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
-import eu.etaxonomy.cdm.config.ConfigFileUtil;\r
\r
/**\r
* @author a.mueller\r
\r
\r
private void readMapping(String filename) throws IOException {\r
- String strResourceFileName = "mapping" + ConfigFileUtil.getFolderSeperator() + filename;\r
+ String strResourceFileName = "mapping" + CdmUtils.getFolderSeperator() + filename;\r
InputStreamReader isr = CdmUtils.getUtf8ResourceReader(strResourceFileName);\r
CSVReader reader = new CSVReader(isr, separator);\r
\r
import org.springframework.stereotype.Component;
import au.com.bytecode.opencsv.CSVReader;
-import eu.etaxonomy.cdm.api.utility.config.ConfigFileUtil;
import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.OrderedTermBase;
*/
private CSVReader getCsvReader(VocabularyEnum vocType) throws IOException {
String filename = vocType.name()+".csv";
- String strResourceFileName = "terms" + ConfigFileUtil.getFolderSeperator() + filename;
+ String strResourceFileName = "terms" + CdmUtils.getFolderSeperator() + filename;
if (logger.isDebugEnabled()){logger.debug("strResourceFileName is " + strResourceFileName);}
CSVReader reader = new CSVReader(CdmUtils.getUtf8ResourceReader(strResourceFileName));
return reader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.net.URL;
import java.nio.file.Files;
import java.util.Properties;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
-import eu.etaxonomy.cdm.common.CdmUtils;
-
/**
+ * Utility class for consistent access to and creation of per instance application configuration files.
*
+ * @author a.mueller
* @author a.kohlbecker
- * @since May 8, 2017
- *
*/
public class ConfigFileUtil implements EnvironmentAware {
*/
public static final String SUBFOLDER_WEBAPP = "remote-webapp";
- static final String MUST_EXIST_FILE = "MUST-EXIST.txt";
-
-
protected Environment env;
@Override
}
}
- //folder separator
- static String folderSeparator;
-
- /**
- * @return
- */
- static public String getFolderSeperator(){
- if (folderSeparator == null){
- URL url = CdmUtils.class.getResource("/"+ MUST_EXIST_FILE);
- if ( url != null && ! urlIsJarOrBundle(url) ){
- folderSeparator = File.separator;
- }else{
- folderSeparator = "/";
- }
- }
- return folderSeparator;
- }
-
-
- /**
- * @param url
- * @return
- */
- static private boolean urlIsJarOrBundle(URL url){
- return url.getProtocol().startsWith("jar") || url.getProtocol().startsWith("bundleresource");
- }
-
public static File getCdmHomeDir() {
return new File(perUserCdmFolder + File.separator);
import au.com.bytecode.opencsv.CSVReader;\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
-import eu.etaxonomy.cdm.config.ConfigFileUtil;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
import eu.etaxonomy.cdm.database.update.CaseType;\r
import eu.etaxonomy.cdm.database.update.SchemaUpdateResult;\r
for(VocabularyEnum vocabularyEnum : VocabularyEnum.values()) {\r
//read vocabulary from terms files\r
String filename = vocabularyEnum.name()+".csv";\r
- CSVReader reader = new CSVReader(CdmUtils.getUtf8ResourceReader("terms" + ConfigFileUtil.getFolderSeperator() + filename));\r
+ CSVReader reader = new CSVReader(CdmUtils.getUtf8ResourceReader("terms" + CdmUtils.getFolderSeperator() + filename));\r
String [] nextLine = reader.readNext();\r
TermVocabulary<?> voc = TermVocabulary.NewInstance(TermType.Unknown);\r
voc.readCsvLine(arrayedLine(nextLine));\r
package eu.etaxonomy.cdm.config;
-import static org.junit.Assert.assertNotNull;
-
import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
import org.junit.Assert;
import org.junit.Ignore;
public class ConfigFileUtilTest {
- @Test
- public void testGetReadableResourceStream() {
- String resourceFileName = ConfigFileUtil.MUST_EXIST_FILE;
- try {
- InputStream inputStream = CdmUtils.getReadableResourceStream(resourceFileName);
- assertNotNull(inputStream);
- } catch (IOException e) {
- Assert.fail("IOException");
- }
- }
@Test
public void testGetFolderSeperator() {
- Assert.assertEquals(File.separator, ConfigFileUtil.getFolderSeperator());
+ Assert.assertEquals(File.separator, CdmUtils.getFolderSeperator());
}
@Test