From ed39a027a78a0ca08230b1d34c5dac5421819018 Mon Sep 17 00:00:00 2001 From: Sai Gandham Date: Sat, 14 Apr 2018 18:57:27 +0000 Subject: [PATCH] Adding more testcases to misc module Issue-ID: AAF-129 Change-Id: I11b0dcf8a8fa4d18909b1bd865ed053353bdace3 Signed-off-by: Sai Gandham --- misc/log4j/.gitignore | 10 +- misc/log4j/pom.xml | 6 - .../org/onap/aaf/misc/env/log4j/LogFileNamer.java | 177 ++++++++++----------- .../aaf/misc/env/log4j/JU_LogFileNamerTest.java | 88 ++++++++++ 4 files changed, 181 insertions(+), 100 deletions(-) create mode 100644 misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java diff --git a/misc/log4j/.gitignore b/misc/log4j/.gitignore index 45aeec64..453974f3 100644 --- a/misc/log4j/.gitignore +++ b/misc/log4j/.gitignore @@ -1,5 +1,5 @@ -/target/ -/.settings/ -/.classpath -/logs/ -/.project +/target/ +/.settings/ +/.classpath +/logs/ +/.project diff --git a/misc/log4j/pom.xml b/misc/log4j/pom.xml index bcd2d257..31d8f9f5 100644 --- a/misc/log4j/pom.xml +++ b/misc/log4j/pom.xml @@ -245,12 +245,6 @@ prepare-agent - false - - **/JU*.java - - - ${project.build.directory}/code-coverage/jacoco-ut.exec surefireArgLine diff --git a/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java b/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java index cc4c8a96..a98ba7c0 100644 --- a/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java +++ b/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java @@ -1,89 +1,88 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.env.log4j; - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.Date; - -public class LogFileNamer { - private final String root; - private final String ending; - private final String dir; - - public LogFileNamer(final String dir, final String root) { - this.dir = dir; - if(root==null || "".equals(root) || root.endsWith("/")) { - this.root = root; - } else { - this.root = root + "-"; - } - ending = new SimpleDateFormat("YYYYMMdd").format(new Date()); - } - - public LogFileNamer noPID() { - return this; - } - - private static final String FILE_FORMAT_STR = "%s/%s%s%s_%d.log"; - /** - * Accepts a String. - * If Separated by "|" then first part is the Appender name, and the second is used in the FileNaming - * (This is to allow for shortened Logger names, and more verbose file names) - * ONAP: jna code has license issues. Just do Date + Unique Number - * - * @param appender - * - * returns the String Appender - * @throws IOException - */ - public String setAppender(String appender) throws IOException { - String filename; - int i=0; - File f; - while((f=new File(filename=String.format(FILE_FORMAT_STR, dir,root, appender, ending,i))).exists()) { - ++i; - }; - f.createNewFile(); - System.setProperty( - "LOG4J_FILENAME_"+appender, - filename); - return appender; - } - - public void configure(final String path, final String fname, final String log_level) throws IOException { - final String fullPath=path+'/'+fname; - if(new File(fullPath).exists()) { - org.apache.log4j.PropertyConfigurator.configureAndWatch(fullPath,60*1000L); - } else { - URL rsrc = ClassLoader.getSystemResource(fname); - if(rsrc==null) { - String msg = "Neither File: " + path + '/' + fname + " nor resource on Classpath " + fname + " exist" ; - throw new IOException(msg); - } - org.apache.log4j.PropertyConfigurator.configure(rsrc); - } - - } -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.env.log4j; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class LogFileNamer { + private final String root; + private final String ending; + private final String dir; + + public LogFileNamer(final String dir, final String root) { + this.dir = dir; + if (root == null || "".equals(root) || root.endsWith("/")) { + this.root = root; + } else { + this.root = root + "-"; + } + ending = new SimpleDateFormat("YYYYMMdd").format(new Date()); + } + + public LogFileNamer noPID() { + return this; + } + + private static final String FILE_FORMAT_STR = "%s/%s%s%s_%d.log"; + + /** + * Accepts a String. If Separated by "|" then first part is the Appender name, + * and the second is used in the FileNaming (This is to allow for shortened + * Logger names, and more verbose file names) ONAP: jna code has license issues. + * Just do Date + Unique Number + * + * @param appender + * + * returns the String Appender + * @throws IOException + */ + public String setAppender(String appender) throws IOException { + String filename; + int i = 0; + File f; + while ((f = new File(filename = String.format(FILE_FORMAT_STR, dir, root, appender, ending, i))).exists()) { + ++i; + } + ; + f.createNewFile(); + System.setProperty("LOG4J_FILENAME_" + appender, filename); + return appender; + } + + public void configure(final String path, final String fname, final String log_level) throws IOException { + final String fullPath = path + '/' + fname; + if (new File(fullPath).exists()) { + org.apache.log4j.PropertyConfigurator.configureAndWatch(fullPath, 60 * 1000L); + } else { + URL rsrc = ClassLoader.getSystemResource(fname); + if (rsrc == null) { + String msg = "Neither File: " + path + '/' + fname + " nor resource on Classpath " + fname + " exist"; + throw new IOException(msg); + } + org.apache.log4j.PropertyConfigurator.configure(rsrc); + } + + } +} diff --git a/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java b/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java new file mode 100644 index 00000000..0ee79a5f --- /dev/null +++ b/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java @@ -0,0 +1,88 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.env.log4j; + +import static org.junit.Assert.assertEquals; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class JU_LogFileNamerTest { + + private String ending = new SimpleDateFormat("YYYYMMdd").format(new Date()); + + @Before + public void setUp() throws Exception { + } + + @Test + public void test() throws IOException { + LogFileNamer logFileNamer = new LogFileNamer(".", "log"); + assertEquals(logFileNamer, logFileNamer.noPID()); + + logFileNamer.setAppender("Append"); + assertEquals(System.getProperty("LOG4J_FILENAME_Append"), "./log-Append" + ending + "_0.log"); + + logFileNamer.setAppender("Append"); + assertEquals(System.getProperty("LOG4J_FILENAME_Append"), "./log-Append" + ending + "_1.log"); + } + + @Test + public void testBlankRoot() throws IOException { + LogFileNamer logFileNamer = new LogFileNamer(".", ""); + assertEquals(logFileNamer, logFileNamer.noPID()); + + logFileNamer.setAppender("Append"); + assertEquals(System.getProperty("LOG4J_FILENAME_Append"), "./Append" + ending + "_0.log"); + + logFileNamer.setAppender("Append"); + assertEquals(System.getProperty("LOG4J_FILENAME_Append"), "./Append" + ending + "_1.log"); + } + + @After + public void tearDown() throws IOException { + File file = new File("./log-Append" + ending + "_0.log"); + if (file.exists()) { + Files.delete(Paths.get(file.getAbsolutePath())); + } + file = new File("./log-Append" + ending + "_1.log"); + if (file.exists()) { + Files.delete(Paths.get(file.getAbsolutePath())); + } + file = new File("./Append" + ending + "_0.log"); + if (file.exists()) { + Files.delete(Paths.get(file.getAbsolutePath())); + } + file = new File("./Append" + ending + "_1.log"); + if (file.exists()) { + Files.delete(Paths.get(file.getAbsolutePath())); + } + } + +} -- 2.16.6