diff --git a/src/main/java/teetime/framework/FileSearcher.java b/src/main/java/teetime/framework/FileSearcher.java index faebb333af5c460048750c51ea5dfebe4eccc5e3..cdc251017bdc0e2ea8ff5315557e5ed8334be766 100644 --- a/src/main/java/teetime/framework/FileSearcher.java +++ b/src/main/java/teetime/framework/FileSearcher.java @@ -1,20 +1,28 @@ package teetime.framework; import java.io.IOException; -import java.util.StringTokenizer; +import java.net.URL; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; + +import teetime.framework.pipe.PipeFactoryLoader; public class FileSearcher { public static void main(final String[] args) throws IOException { - final String classpath = System.getProperty("java.class.path"); - final String pathSeparator = System.getProperty("path.separator"); - // System.out.println(classpath); - // System.out.println(pathSeparator); - - StringTokenizer st = new StringTokenizer(classpath, pathSeparator); - while (st.hasMoreTokens()) { - System.out.println(st.nextToken());// st.nextToken()); - } + + PipeFactoryLoader.mergeConfigFiles("LICENSE.txt", "test.txt"); } + public static List<URL> loadResources(final String name) throws IOException { + + final List<URL> list = new ArrayList<URL>(); + + final Enumeration<URL> systemRes = ClassLoader.getSystemClassLoader().getResources(name); + while (systemRes.hasMoreElements()) { + list.add(systemRes.nextElement()); + } + return list; + } } diff --git a/src/main/java/teetime/framework/pipe/PipeFactoryLoader.java b/src/main/java/teetime/framework/pipe/PipeFactoryLoader.java index 365918f0421275421c294533d8d99832e89b3fc2..a685ee18e40f59df363ba3d05e5cb5015b9a3654 100644 --- a/src/main/java/teetime/framework/pipe/PipeFactoryLoader.java +++ b/src/main/java/teetime/framework/pipe/PipeFactoryLoader.java @@ -1,14 +1,24 @@ package teetime.framework.pipe; import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; +import java.io.InputStream; +import java.net.URL; import java.util.LinkedList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import teetime.framework.FileSearcher; + +import com.google.common.io.ByteStreams; +import com.google.common.io.Files; + public class PipeFactoryLoader { private static final Logger LOGGER = LoggerFactory.getLogger(PipeFactoryLoader.class); @@ -46,4 +56,37 @@ public class PipeFactoryLoader { return pipeFactories; } + + public static void mergeConfigFiles(final String configFileName, final String mergedFileName) { + File output = new File(mergedFileName); + FileOutputStream os; + try { + os = new FileOutputStream(output); + } catch (FileNotFoundException e1) { + throw new IllegalStateException(e1); + } + try { + Files.touch(output); + } catch (IOException e) { + throw new IllegalStateException(e); + } + + List<URL> files = null; + + try { + files = FileSearcher.loadResources(configFileName); + } catch (IOException e) { + throw new IllegalStateException(e); + } + for (URL url : files) { + try { + InputStream is = url.openStream(); + ByteStreams.copy(is, os); + is.close(); + } catch (IOException e) { + throw new IllegalStateException(e); + } + + } + } }