diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-12-01 12:29:32 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-01 12:29:32 -0800 |
commit | b7b4dd2481e80e3afe24a3c77f7bcc242b6cd7f4 (patch) | |
tree | b7237df951072a75d3d527b757f11e6b08214c3d /container-core/src/main/java/com/yahoo/container/config/testutil | |
parent | c2af67b3d11da53655a0750d2e288b584c7b938c (diff) |
Revert "Bratseth/remove unused rpc server take 2"
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/config/testutil')
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/config/testutil/TestUtil.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/config/testutil/TestUtil.java b/container-core/src/main/java/com/yahoo/container/config/testutil/TestUtil.java new file mode 100644 index 00000000000..dbf8be8e1dc --- /dev/null +++ b/container-core/src/main/java/com/yahoo/container/config/testutil/TestUtil.java @@ -0,0 +1,85 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.container.config.testutil; + +import com.yahoo.container.core.config.HandlersConfigurerDi; + +import java.io.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author gjoranv + */ +public class TestUtil { + + public static void createComponentsConfig(String configFile, + String componentsFile, + String componentType) throws IOException { + createComponentsConfig(configFile, componentsFile, componentType, false); + } + + /** + * Copies the component ids from another config, e.g. 'handlers' to a 'components' array in a new components file, + * to avoid a manually written 'components' file for tests where the bundle spec is given by the component id. + * @param configFile Full path to the original config file, e.g. 'handlers' + * @param componentsFile Full path to the new 'components' file + * @param componentType The type of component, e.g. 'handler' + * @param append 'true' will append to an already existing 'componentsFile' + */ + public static void createComponentsConfig(String configFile, + String componentsFile, + String componentType, + boolean append) throws IOException { + StringBuilder buf = new StringBuilder(); + String line; + int i = 0; + if (append) { + final Pattern p = Pattern.compile("^[a-z]+" + "\\[\\d+\\]\\.id (.+)"); + BufferedReader reader = new BufferedReader(new InputStreamReader( + new FileInputStream(new File(componentsFile)), "UTF-8")); + while ((line = reader.readLine()) != null) { + Matcher m = p.matcher(line); + if (m.matches() && !m.group(1).equals(HandlersConfigurerDi.RegistriesHack.class.getName())) { + buf.append("components[").append(i).append("].id ").append(m.group(1)).append("\n"); + i++; + } + } + reader.close(); + } + BufferedReader reader = new BufferedReader(new InputStreamReader( + new FileInputStream(new File(configFile)), "UTF-8")); + final Pattern component = Pattern.compile("^" + componentType + "\\[\\d+\\]\\.id (.+)"); + while ((line = reader.readLine()) != null) { + Matcher m = component.matcher(line); + if (m.matches()) { + buf.append("components[").append(i).append("].id ").append(m.group(1)).append("\n"); + i++; + } + } + buf.append("components[").append(i).append("].id "). + append(HandlersConfigurerDi.RegistriesHack.class.getName()).append("\n"); + i++; + reader.close(); + buf.insert(0, "components["+i+"]\n"); + + Writer writer = new OutputStreamWriter(new FileOutputStream(new File(componentsFile)), "UTF-8"); + writer.write(buf.toString()); + writer.flush(); + writer.close(); + } + + /** + * Copies src file to dst file. If the dst file does not exist, it is created. + */ + public static void copyFile(String srcName, File dstFile) throws IOException { + InputStream src = new FileInputStream(new File(srcName)); + OutputStream dst = new FileOutputStream(dstFile); + byte[] buf = new byte[1024]; + int len; + while ((len = src.read(buf)) > 0) { + dst.write(buf, 0, len); + } + src.close(); + dst.close(); + } +} |