blob: 7da2d6f0d9cfc281a9ed5c6469f3f7261ad0c830 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
package org.apache.river.container;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.FileType;
/**
@author trasukg
*/
public class Utils {
public static String format(Object array[]) {
if (array == null) {
return "null";
}
StringBuffer sb = new StringBuffer();
sb.append("[");
for (int j = 0; j < array.length; j++) {
if (j != 0) {
sb.append(", ");
}
sb.append("'");
sb.append(array[j].toString());
sb.append("'");
}
sb.append("]");
return sb.toString();
}
public static String format(Properties props) {
if (props == null) {
return "null";
}
StringBuffer sb = new StringBuffer();
sb.append("[");
for (Map.Entry entry : props.entrySet()) {
boolean first = true;
if (!first) {
sb.append(", ");
} else {
first = false;
}
sb.append(entry.getKey() + "=\"");
sb.append(entry.getValue());
sb.append("\"");
}
sb.append("]");
return sb.toString();
}
public static String[] splitOnWhitespace(String input) {
List<String> strings = new ArrayList<String>();
StringTokenizer tok = new StringTokenizer(Strings.WHITESPACE_SEPARATORS);
while (tok.hasMoreTokens()) {
strings.add(tok.nextToken());
}
return (String[]) strings.toArray(new String[0]);
}
public static List<FileObject> findChildrenWithSuffix(FileObject dir, String suffix) throws FileSystemException {
List<FileObject> ret = new ArrayList<FileObject>();
for (FileObject fo : dir.getChildren()) {
if (fo.getType() == FileType.FILE && fo.getName().getBaseName().endsWith(suffix)) {
ret.add(fo);
}
}
return ret;
}
public static void logClassLoaderHierarchy(Logger log,
Class cls) {
logClassLoaderHierarchy(log, Level.FINE, cls);
}
public static void logClassLoaderHierarchy(Logger log, Level level,
Class cls) {
log.log(level, MessageNames.CLASSLOADER_IS,
new Object[]{cls.getName(), cls.getClassLoader()});
ClassLoader parent = cls.getClassLoader().getParent();
while (parent != null) {
log.log(level, MessageNames.PARENT_CLASS_LOADER_IS,
new Object[]{parent});
parent = parent.getParent();
}
}
public static void logClassLoaderHierarchy(Logger log,
Level level,
ClassLoader loader) {
log.log(level, MessageNames.CLASSLOADER_IS,
new Object[]{null, loader});
ClassLoader parent = loader.getParent();
while (parent != null) {
log.log(level, MessageNames.PARENT_CLASS_LOADER_IS,
new Object[]{parent});
parent = parent.getParent();
}
}
public static String stackTrace(Throwable t) {
StringWriter s=new StringWriter();
PrintWriter pw=new PrintWriter(s);
t.printStackTrace(pw);
return s.toString();
}
}