/**
* Copyright 2014 Liverpool John Moores University <http://www.ljmu.ac.uk/cmp/>
* Aniketos Project FP7-ICT-257930 <http://www.aniketos.eu>
* David Llewellyn-Jones <D.Llewellyn-Jones@ljmu.ac.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
package eu.aniketos.ncvm.impl;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import org.osgi.framework.BundleContext;
//import org.apache.commons.codec.binary.Base64;
class EncodeSupport {
static String decodeData(String data) {
return data;
//return base64StringToString(data);
}
static String encodeData(String data) {
//Base64 encoder = new Base64();
//return encoder.encodeToString(data.getBytes());
return data;
}
// private static String base64StringToString(String base64String) {
// byte[] bytes = Base64.decodeBase64(base64String);
// return new String(bytes);
//
// }
/**
* This methods read a file into a string.
*
* @param filePath
* Path of the text file that should be read.
* @return File content as string.
*/
static String readFileAsString(String filePath) throws java.io.IOException {
int fileSize = (int) new File(filePath).length();
byte[] buffer = new byte[fileSize];
BufferedInputStream f = null;
try {
FileInputStream inputStream = new FileInputStream(filePath);
f = new BufferedInputStream(inputStream);
f.read(buffer);
} finally {
if (f != null)
try {
f.close();
} catch (IOException ignored) {
}
}
return new String(buffer);
}
static Map<String, String> LoadKeyValueFile (String file) throws IOException {
Map<String, String> keyValues = new HashMap<String, String>();
keyValues.clear();
BundleContext context = Activator.getContext();
// Load data from the configuration file if there is one
System.out.println("Reading key-value pairs from: " + file);
URL configURL = context.getBundle().getEntry(file);
if (configURL != null) {
// Read the key value pairs
BufferedReader input = new BufferedReader(new InputStreamReader(configURL.openStream()));
try {
String read = "";
while (read != null) {
read = input.readLine();
// Skip comments and blank lines
if ((read != null) && (!read.isEmpty()) && (!read.startsWith("#"))) {
// Read in the key-value pair
int separator = read.indexOf('=');
if (separator >= 0) {
String key = read.substring(0, separator).trim().toLowerCase();
String value = read.substring(separator + 1).trim();
// Store the result in our map
keyValues.put(key, value);
}
}
}
}
finally {
input.close();
}
}
return keyValues;
}
}