提交 6e04e83f 编写于 作者: R Ray

代码小优化

上级 460859fe
package com.x.base.core.project.webservices;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
......@@ -35,8 +36,7 @@ public class WebservicesClient {
}
public String jaxwsXml(String url, String soapXML) throws Exception {
List<NameValuePair> heads = new ArrayList<>();
heads.add(new NameValuePair(ConnectionAction.CONTENT_TYPE, MediaType.TEXT_XML));
List<NameValuePair> heads = Arrays.asList(new NameValuePair(ConnectionAction.CONTENT_TYPE, MediaType.TEXT_XML));
return HttpConnection.postAsString(url, heads, soapXML);
}
......
......@@ -37,6 +37,8 @@ public class ConfigFactory {
private static class ReturnWoString extends WrapString {
private static final long serialVersionUID = 5128454714367834150L;
}
}
......@@ -10,12 +10,9 @@ import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.lang.reflect.Method;
import java.net.Socket;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
......@@ -33,7 +30,6 @@ import java.util.concurrent.LinkedBlockingQueue;
import java.util.regex.Matcher;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.quartz.Scheduler;
......@@ -600,82 +596,82 @@ public class Main {
}
}
}
private static void loadJars(String base) throws Exception {
URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Class<?> urlClass = URLClassLoader.class;
Method method = urlClass.getDeclaredMethod("addURL", new Class[] { URL.class });
method.setAccessible(true);
/* loading ext */
File commons_ext_dir = new File(base, "commons/ext");
File commons_ext_manifest_file = new File(commons_ext_dir, MANIFEST_FILENAME);
if (commons_ext_manifest_file.exists() && commons_ext_manifest_file.isFile()) {
List<String> commons_ext_manifest_names = readManifest(commons_ext_manifest_file);
if (commons_ext_manifest_names.isEmpty()) {
throw new Exception("commons/ext manifest is empty.");
}
for (File file : commons_ext_dir.listFiles()) {
if ((!file.getName().equals(MANIFEST_FILENAME)) && (!file.getName().equals(GITIGNORE_FILENAME))) {
if (!commons_ext_manifest_names.remove(file.getName())) {
System.out.println("载入 commons/ext 过程中删除无效的文件:" + file.getName());
file.delete();
}
}
}
for (String str : commons_ext_manifest_names) {
System.out.println("载入 commons/ext 过程中无法找到文件:" + str);
}
} else {
System.out.println("启动过程忽略扫描 commons/ext 目录.");
}
for (File file : commons_ext_dir.listFiles()) {
if ((!file.getName().equals(MANIFEST_FILENAME)) && (!file.getName().equals(GITIGNORE_FILENAME))) {
method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
}
}
/* loading jars */
File store_jars_dir = new File(base, "store/jars");
File store_jars_manifest_file = new File(store_jars_dir, MANIFEST_FILENAME);
if (store_jars_manifest_file.exists() && store_jars_manifest_file.isFile()) {
List<String> store_jars_manifest_names = readManifest(store_jars_manifest_file);
for (File file : store_jars_dir.listFiles()) {
if ((!file.getName().equals(MANIFEST_FILENAME)) && (!file.getName().equals(GITIGNORE_FILENAME))) {
if (!store_jars_manifest_names.remove(file.getName())) {
System.out.println("载入 store/jars 过程中删除无效的文件:" + file.getName());
file.delete();
}
}
}
for (String str : store_jars_manifest_names) {
System.out.println("载入 store/jars 过程中无法找到文件:" + str);
}
} else {
System.out.println("启动过程忽略扫描 store/jars 目录.");
}
for (File file : store_jars_dir.listFiles()) {
if ((!file.getName().equals(MANIFEST_FILENAME)) && (!file.getName().equals(GITIGNORE_FILENAME))) {
method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
}
}
/* load custom jar */
File custom_jars_dir = new File(base, "custom/jars");
if (custom_jars_dir.exists() && custom_jars_dir.isDirectory()) {
for (File file : custom_jars_dir.listFiles()) {
method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
}
}
File dynamic_jars_dir = new File(base, "dynamic/jars");
if (dynamic_jars_dir.exists() && dynamic_jars_dir.isDirectory()) {
for (File file : dynamic_jars_dir.listFiles()) {
if (StringUtils.equalsIgnoreCase("jar", FilenameUtils.getExtension(file.getName()))) {
method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
}
}
}
/* load temp class */
File local_temp_classes_dir = new File(base, "local/temp/classes");
method.invoke(urlClassLoader, new Object[] { local_temp_classes_dir.toURI().toURL() });
}
//
// private static void loadJars(String base) throws Exception {
// URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
// Class<?> urlClass = URLClassLoader.class;
// Method method = urlClass.getDeclaredMethod("addURL", new Class[] { URL.class });
// method.setAccessible(true);
// /* loading ext */
// File commons_ext_dir = new File(base, "commons/ext");
// File commons_ext_manifest_file = new File(commons_ext_dir, MANIFEST_FILENAME);
// if (commons_ext_manifest_file.exists() && commons_ext_manifest_file.isFile()) {
// List<String> commons_ext_manifest_names = readManifest(commons_ext_manifest_file);
// if (commons_ext_manifest_names.isEmpty()) {
// throw new Exception("commons/ext manifest is empty.");
// }
// for (File file : commons_ext_dir.listFiles()) {
// if ((!file.getName().equals(MANIFEST_FILENAME)) && (!file.getName().equals(GITIGNORE_FILENAME))) {
// if (!commons_ext_manifest_names.remove(file.getName())) {
// System.out.println("载入 commons/ext 过程中删除无效的文件:" + file.getName());
// file.delete();
// }
// }
// }
// for (String str : commons_ext_manifest_names) {
// System.out.println("载入 commons/ext 过程中无法找到文件:" + str);
// }
// } else {
// System.out.println("启动过程忽略扫描 commons/ext 目录.");
// }
// for (File file : commons_ext_dir.listFiles()) {
// if ((!file.getName().equals(MANIFEST_FILENAME)) && (!file.getName().equals(GITIGNORE_FILENAME))) {
// method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
// }
// }
// /* loading jars */
// File store_jars_dir = new File(base, "store/jars");
// File store_jars_manifest_file = new File(store_jars_dir, MANIFEST_FILENAME);
// if (store_jars_manifest_file.exists() && store_jars_manifest_file.isFile()) {
// List<String> store_jars_manifest_names = readManifest(store_jars_manifest_file);
// for (File file : store_jars_dir.listFiles()) {
// if ((!file.getName().equals(MANIFEST_FILENAME)) && (!file.getName().equals(GITIGNORE_FILENAME))) {
// if (!store_jars_manifest_names.remove(file.getName())) {
// System.out.println("载入 store/jars 过程中删除无效的文件:" + file.getName());
// file.delete();
// }
// }
// }
// for (String str : store_jars_manifest_names) {
// System.out.println("载入 store/jars 过程中无法找到文件:" + str);
// }
// } else {
// System.out.println("启动过程忽略扫描 store/jars 目录.");
// }
// for (File file : store_jars_dir.listFiles()) {
// if ((!file.getName().equals(MANIFEST_FILENAME)) && (!file.getName().equals(GITIGNORE_FILENAME))) {
// method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
// }
// }
// /* load custom jar */
// File custom_jars_dir = new File(base, "custom/jars");
// if (custom_jars_dir.exists() && custom_jars_dir.isDirectory()) {
// for (File file : custom_jars_dir.listFiles()) {
// method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
// }
// }
// File dynamic_jars_dir = new File(base, "dynamic/jars");
// if (dynamic_jars_dir.exists() && dynamic_jars_dir.isDirectory()) {
// for (File file : dynamic_jars_dir.listFiles()) {
// if (StringUtils.equalsIgnoreCase("jar", FilenameUtils.getExtension(file.getName()))) {
// method.invoke(urlClassLoader, new Object[] { file.toURI().toURL() });
// }
// }
// }
// /* load temp class */
// File local_temp_classes_dir = new File(base, "local/temp/classes");
// method.invoke(urlClassLoader, new Object[] { local_temp_classes_dir.toURI().toURL() });
// }
/**
* 从Main.class所在的目录开始递归向上,找到version.o2所在目录,就是程序根目录.
......
......@@ -42,8 +42,6 @@ import com.x.base.core.project.config.CenterServer;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.config.DataServer;
import com.x.base.core.project.config.ExternalDataSource;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ClassLoaderTools;
import com.x.base.core.project.tools.JarTools;
import com.x.base.core.project.tools.ListTools;
......@@ -61,8 +59,6 @@ import io.github.classgraph.ScanResult;
*/
public class ResourceFactory {
private static final Logger LOGGER = LoggerFactory.getLogger(ResourceFactory.class);
private static final int TOKENTHRESHOLDSMAXSIZE = 2000;
private static ExecutorService threadPool;
......
......@@ -11,7 +11,7 @@ public class SideCopyPrintStream extends PrintStream {
private PrintStream copy;
public SideCopyPrintStream(PrintStream original, PrintStream copy) {
super(new NullOutputStream());
super(NullOutputStream.NULL_OUTPUT_STREAM);
this.original = original;
this.copy = copy;
}
......
......@@ -232,6 +232,7 @@ public class ActionControl extends ActionBase {
new EraseContentOrg().execute();
break;
default:
@SuppressWarnings("unchecked")
List<String> names = Stream.of(StringUtils.split(type, ","))
.filter(((List<String>) Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES))::contains)
.collect(Collectors.toList());
......@@ -245,7 +246,7 @@ public class ActionControl extends ActionBase {
}
}
private void td(CommandLine cmd) throws Exception {
private void td(CommandLine cmd) {
Integer count = this.getArgInteger(cmd, CMD_TD, 10);
ThreadDump threadDump = new ThreadDump();
threadDump.execute(count);
......
//package com.x.server.console.action;
//
//import java.io.File;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
//import javax.persistence.EntityManager;
//import javax.persistence.criteria.CriteriaBuilder;
//import javax.persistence.criteria.CriteriaQuery;
//import javax.persistence.criteria.Predicate;
//import javax.persistence.criteria.Root;
//
//import org.apache.commons.lang3.StringUtils;
//
//import com.x.base.core.container.EntityManagerContainer;
//import com.x.base.core.container.factory.EntityManagerContainerFactory;
//import com.x.base.core.entity.JpaObject;
//import com.x.base.core.entity.dataitem.ItemCategory;
//import com.x.base.core.project.config.Config;
//import com.x.base.core.project.config.DataMappings;
//import com.x.base.core.project.gson.XGsonBuilder;
//import com.x.base.core.project.tools.DateTools;
//import com.x.base.core.project.tools.StringTools;
//import com.x.query.core.entity.Item;
//
//public class ActionConvertDataItem {
//
// private Date start;
//
// private void init() throws Exception {
// this.start = new Date();
// }
//
// public boolean execute(String password) throws Exception {
// if (!StringUtils.equals(Config.token().getPassword(), password)) {
// throw new Exception("password not match.");
// }
// this.init();
// List<Class<?>> classes = new ArrayList<>();
// classes.add(Item.class);
// classes.add(com.x.processplatform.core.entity.content.DataItem.class);
// classes.add(com.x.processplatform.core.entity.content.DataLobItem.class);
//// classes.add(com.x.cms.core.entity.content.DataLobItem.class);
//// classes.add(com.x.cms.core.entity.content.DataItem.class);
// System.out.println("convert dataItem, start at " + DateTools.format(start) + ".");
// DataMappings mappings = Config.dataMappings();
// File orm = this.createPersistenceXml(classes, mappings);
// EntityManagerContainerFactory.init(orm.getName());
// try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
// this.convertProcessPlatform(emc);
// // this.convertCms(emc);
// }
// System.out.println(
// "convert dataItem, elapsed: " + (new Date().getTime() - start.getTime()) / 1000 / 60 + " minutes.");
// return true;
// }
//
// /** 创建临时使用的persistence.xml 并复制到class目录下 */
// private File createPersistenceXml(List<Class<?>> clsList, DataMappings mappings) throws Exception {
// File dir = new File(Config.base(), "local/temp/classes");
// File xml = new File(dir, StringTools.uniqueToken() + "_convertDataItem.xml");
// PersistenceXmlHelper.createPersistenceXml(clsList, mappings, xml);
// return xml;
// }
//
// private void convertProcessPlatform(EntityManagerContainer emc) throws Exception {
// List<com.x.processplatform.core.entity.content.DataItem> os = this.list(emc,
// com.x.processplatform.core.entity.content.DataItem.class, "", 10000);
// int i = 0;
// while (!os.isEmpty()) {
// System.out.println("convert dataItem 正在处理ProcessPlatform的第 " + (++i) + " 个批次.");
// List<Item> items = new ArrayList<>();
// for (com.x.processplatform.core.entity.content.DataItem o : os) {
// Item item = XGsonBuilder.convert(o, Item.class);
// item.setItemCategory(ItemCategory.pp);
// item.setBundle(o.getJob());
// item.setStringValue(o.getStringValue());
// if (o.isLobItem()) {
// com.x.processplatform.core.entity.content.DataLobItem lob = emc.find(o.getLobItem(),
// com.x.processplatform.core.entity.content.DataLobItem.class);
// if (null != lob) {
// item.setStringValue(lob.getData());
// }
// }
// items.add(item);
// }
// emc.beginTransaction(Item.class);
// for (Item o : items) {
// emc.persist(o);
// }
// emc.commit();
// os = this.list(emc, com.x.processplatform.core.entity.content.DataItem.class, os.get(os.size() - 1).getId(),
// 10000);
// }
// }
//
// // private void convertCms(EntityManagerContainer emc) throws Exception {
// // List<com.x.cms.core.entity.content.DataItem> os = this.list(emc,
// // com.x.cms.core.entity.content.DataItem.class,
// // "", 10000);
// // int i = 0;
// // while (!os.isEmpty()) {
// // System.out.println("convert dataItem 正在处理Cms的第 " + (++i) + " 个批次.");
// // List<Item> items = new ArrayList<>();
// // for (com.x.cms.core.entity.content.DataItem o : os) {
// // Item item = XGsonBuilder.convert(o, Item.class);
// // item.setItemCategory(ItemCategory.cms);
// // item.setBundle(o.getDocId());
// // item.setStringValue(o.getStringValue());
// // if (o.isLobItem()) {
// // com.x.cms.core.entity.content.DataLobItem lob = emc.find(o.getLobItem(),
// // com.x.cms.core.entity.content.DataLobItem.class);
// // if (null != lob) {
// // item.setStringValue(lob.getData());
// // }
// // }
// // items.add(item);
// // }
// // emc.beginTransaction(Item.class);
// // for (Item o : items) {
// // emc.persist(o);
// // }
// // emc.commit();
// // os = this.list(emc, com.x.cms.core.entity.content.DataItem.class,
// // os.get(os.size() - 1).getId(), 10000);
// // }
// // }
//
// private <T extends JpaObject> List<T> list(EntityManagerContainer emc, Class<T> cls, String id, Integer size)
// throws Exception {
// EntityManager em = emc.get(cls);
// CriteriaBuilder cb = em.getCriteriaBuilder();
// CriteriaQuery<T> cq = cb.createQuery(cls);
// Root<T> root = cq.from(cls);
// Predicate p = cb.conjunction();
// if (StringUtils.isNotEmpty(id)) {
// p = cb.greaterThan(root.get(JpaObject.id_FIELDNAME), id);
// }
// cq.select(root).where(p).orderBy(cb.asc(root.get(JpaObject.id_FIELDNAME)));
// return em.createQuery(cq).setMaxResults(size).getResultList();
// }
//}
\ No newline at end of file
package com.x.server.console.action;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.SecureRandom;
import java.util.Date;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.FileUtils;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.DefaultCharset;
public class ActionCreateEncryptKey extends ActionBase {
private static Logger logger = LoggerFactory.getLogger(ActionCreateEncryptKey.class);
private Date start;
private BufferedReader bufferedReader;
private static final Logger LOGGER = LoggerFactory.getLogger(ActionCreateEncryptKey.class);
private void init() throws Exception {
this.start = new Date();
// nothing
}
public boolean execute() throws Exception {
this.init();
this.init();
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
SecureRandom random= new SecureRandom();
SecureRandom random = new SecureRandom();
generator.initialize(1024, random);
KeyPair pair = generator.generateKeyPair();
File publicKeyFile = new File(Config.base(), "config/public.key");
File privateKeyFile = new File(Config.base(), "config/private.key");
FileUtils.write(publicKeyFile, Base64.encodeBase64URLSafeString(pair.getPublic().getEncoded()),
DefaultCharset.charset, false);
FileUtils.write(privateKeyFile, Base64.encodeBase64URLSafeString(pair.getPrivate().getEncoded()),
DefaultCharset.charset, false);
//为前端提供publicKey,为密码加密
// 为前端提供publicKey,为密码加密
this.writeConfigFile(new String(Base64.encodeBase64(pair.getPublic().getEncoded())));
System.out.println("public key: config/public.key, private key: config/private.key, create key success. Please restart server!");
LOGGER.print(
"public key: config/public.key, private key: config/private.key, create key success. Please restart server!");
return true;
}
public static void main(String[] args) throws Exception {
ActionCreateEncryptKey actionCreateEncryptKey = new ActionCreateEncryptKey();
}
public boolean writeConfigFile(String publicKey) {
File dir;
StringBuffer stringBuffer = new StringBuffer();
public boolean writeConfigFile(String publicKey) {
File dir;
Gson gson = XGsonBuilder.instance();
try {
dir = new File(Config.base(), "servers/webServer/x_desktop/res/config");
FileUtils.forceMkdir(dir);
File fileConfig = new File(dir, "config.json");
FileInputStream fileInputStream = new FileInputStream(fileConfig);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
bufferedReader = new BufferedReader(inputStreamReader);
String line;
while((line=bufferedReader.readLine()) != null) {
stringBuffer.append(line);
}
JsonObject jsonObject = (JsonObject) new JsonParser().parse(stringBuffer.toString());
String json = FileUtils.readFileToString(fileConfig, StandardCharsets.UTF_8);
JsonObject jsonObject = gson.fromJson(json, JsonObject.class);
jsonObject.addProperty("publicKey", publicKey);
FileUtils.write(fileConfig, jsonObject.toString(),DefaultCharset.charset, false);
bufferedReader.close();
inputStreamReader.close();
fileInputStream.close();
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
FileUtils.write(fileConfig, jsonObject.toString(), DefaultCharset.charset, false);
} catch (Exception e) {
e.printStackTrace();
}finally {
}
return true;
}
return true;
}
}
\ No newline at end of file
......@@ -23,6 +23,7 @@ public class Ddl {
private static Logger logger = LoggerFactory.getLogger(Ddl.class);
/* 初始化完成 */
@SuppressWarnings("unchecked")
public boolean execute(String type) throws Exception {
new Thread(() -> {
......
......@@ -9,6 +9,7 @@ public class GarbageCollection {
public boolean execute() {
Runtime.getRuntime().gc();
LOGGER.print("runtime gc called.");
return true;
}
......
......@@ -23,7 +23,7 @@ import com.x.server.console.server.Servers;
*/
public class HttpStatus extends Thread {
private static Logger logger = LoggerFactory.getLogger(HttpStatus.class);
private static final Logger LOGGER = LoggerFactory.getLogger(HttpStatus.class);
private Integer repeat;
......@@ -72,9 +72,12 @@ public class HttpStatus extends Thread {
Servers.webServer.dump(writer);
}
}
System.out.println(StringUtils.join(list, StringUtils.LF));
LOGGER.print(StringUtils.join(list, StringUtils.LF));
Thread.sleep(2000);
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
......
......@@ -8,7 +8,7 @@ import com.x.base.core.project.logger.LoggerFactory;
public class OperatingSystem extends Thread {
private static Logger logger = LoggerFactory.getLogger(OperatingSystem.class);
private static final Logger LOGGER = LoggerFactory.getLogger(OperatingSystem.class);
private Integer count;
......@@ -16,6 +16,7 @@ public class OperatingSystem extends Thread {
this.count = count;
}
@Override
public void run() {
OperatingSystemMXBean bean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
try {
......@@ -26,8 +27,7 @@ public class OperatingSystem extends Thread {
bean.getTotalPhysicalMemorySize() / (1024 * 1024),
bean.getFreePhysicalMemorySize() / (1024 * 1024),
bean.getCommittedVirtualMemorySize() / (1024 * 1024));
System.out.println(msg);
Thread.sleep(2000);
LOGGER.print(msg);
}
} catch (Exception e) {
e.printStackTrace();
......
......@@ -12,16 +12,10 @@ import com.x.base.core.project.config.Config;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
/**
* @author zhourui
*/
public class ProcessPlatformExecutor {
private static Logger logger = LoggerFactory.getLogger(ProcessPlatformExecutor.class);
private static final Logger LOGGER = LoggerFactory.getLogger(ProcessPlatformExecutor.class);
public void execute() throws Exception {
ExecutorService[] executorServices = Config.resource_node_processPlatformExecutors();
List<String> list = new ArrayList<>();
......@@ -39,7 +33,7 @@ public class ProcessPlatformExecutor {
list.add(" +++ blocking: " + StringUtils.join(os, ",") + ".");
}
}
System.out.println(StringUtils.join(list, StringUtils.LF));
LOGGER.print(StringUtils.join(list, StringUtils.LF));
}
}
\ No newline at end of file
package com.x.server.console.action;
import java.util.Date;
import java.util.Map.Entry;
import org.apache.commons.lang3.StringUtils;
......@@ -12,9 +11,7 @@ import com.x.base.core.project.logger.LoggerFactory;
public class ShowCluster {
private static Logger logger = LoggerFactory.getLogger(ShowCluster.class);
private Date start = new Date();
private static final Logger LOGGER = LoggerFactory.getLogger(ShowCluster.class);
public boolean execute() throws Exception {
StringBuilder sb = new StringBuilder();
......@@ -29,7 +26,7 @@ public class ShowCluster {
sb.append("center pirmary sslEnable:" + Config.resource_node_centersPirmarySslEnable()).append(StringUtils.LF);
sb.append("applications:").append(StringUtils.LF);
sb.append(Config.resource_node_applications());
logger.print(sb.toString());
LOGGER.print(sb.toString());
return true;
}
......
......@@ -6,7 +6,10 @@ import java.nio.file.FileVisitOption;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
import org.apache.commons.io.FileUtils;
......@@ -28,6 +31,17 @@ import com.x.base.core.project.config.Config;
public abstract class JettySeverTools {
/**
* jetty-all-*.jar 如果不单独导入会导致java.lang.NoClassDefFoundError:
* org/eclipse/jetty/http/MimeTypes JaxWsDynamicClientFactory
* 需要在WebAppClassLoader加载 jakarta.xml.bind-api-*.jar
*/
private static final Collection<String> FILTER_STRINGS = Arrays.asList("openjpa-*.jar", "ehcache-*.jar",
"jetty-all-*.jar", "jetty-proxy-*.jar", "quartz-*.jar", "filters-*.jar", "jakarta.xml.bind-api-*.jar");
private static final Optional<IOFileFilter> JARS_FILTER = FILTER_STRINGS.stream().map(WildcardFileFilter::new)
.map(FileFilterUtils::or).reduce(FileFilterUtils::or);
protected JettySeverTools() {
// nothing
}
......@@ -108,17 +122,7 @@ public abstract class JettySeverTools {
for (File o : FileUtils.listFiles(Config.dir_store_jars(), filter, null)) {
jars.add(o.getAbsolutePath());
}
filter = new WildcardFileFilter("openjpa-*.jar");
filter = FileFilterUtils.or(filter, new WildcardFileFilter("ehcache-*.jar"));
// 如果不单独导入会导致java.lang.NoClassDefFoundError: org/eclipse/jetty/http/MimeTypes
filter = FileFilterUtils.or(filter, new WildcardFileFilter("jetty-all-*.jar"));
filter = FileFilterUtils.or(filter, new WildcardFileFilter("jetty-proxy-*.jar"));
filter = FileFilterUtils.or(filter, new WildcardFileFilter("quartz-*.jar"));
filter = FileFilterUtils.or(filter, new WildcardFileFilter("filters-*.jar"));
// JaxWsDynamicClientFactory 需要在WebAppClassLoader加载 jakarta.xml.bind-api-*.jar
filter = FileFilterUtils.or(filter, new WildcardFileFilter("jakarta.xml.bind-api-*.jar"));
// jersey从AppClassLoader加载
for (File o : FileUtils.listFiles(Config.dir_commons_ext().toFile(), filter, null)) {
for (File o : FileUtils.listFiles(Config.dir_commons_ext().toFile(), JARS_FILTER.get(), null)) {
jars.add(o.getAbsolutePath());
}
return jars;
......
......@@ -36,14 +36,9 @@ import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.Cookie;
import org.eclipse.jetty.http.HttpFields;
import org.eclipse.jetty.http.QuotedCSV;
import org.eclipse.jetty.http.pathmap.PathMappings;
import org.eclipse.jetty.server.Authentication;
......@@ -51,8 +46,6 @@ import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.RequestLog;
import org.eclipse.jetty.server.RequestLogWriter;
import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.server.UserIdentity;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.util.DateCache;
import org.eclipse.jetty.util.annotation.ManagedAttribute;
import org.eclipse.jetty.util.annotation.ManagedObject;
......@@ -436,17 +429,6 @@ public class ServerRequestLog extends ContainerLifeCycle implements RequestLog {
super.doStart();
}
private static void append(StringBuilder buf, String s) {
if (s == null || s.length() == 0)
buf.append('-');
else
buf.append(s);
}
private static void append(String s, StringBuilder buf) {
append(buf, s);
}
private MethodHandle getLogHandle(String formatString) throws NoSuchMethodException, IllegalAccessException {
MethodHandles.Lookup lookup = MethodHandles.lookup();
MethodHandle append = lookup.findStatic(ServerRequestLog.class, "append",
......@@ -547,9 +529,6 @@ public class ServerRequestLog extends ContainerLifeCycle implements RequestLog {
return (literal != null);
}
public boolean isPercentCode() {
return (code != null);
}
}
private MethodHandle updateLogHandle(MethodHandle logHandle, MethodHandle append, String literal) {
......@@ -557,25 +536,12 @@ public class ServerRequestLog extends ContainerLifeCycle implements RequestLog {
dropArguments(dropArguments(append.bindTo(literal), 1, Request.class), 2, Response.class));
}
//TODO use integer comparisons instead of strings
private static boolean modify(List<String> modifiers, Boolean negated, StringBuilder b, Request request,
Response response) {
String responseCode = Integer.toString(response.getStatus());
if (negated) {
return (!modifiers.contains(responseCode));
} else {
return (modifiers.contains(responseCode));
}
}
private MethodHandle updateLogHandle(MethodHandle logHandle, MethodHandle append, MethodHandles.Lookup lookup,
String code, String arg, List<String> modifiers, boolean negated)
throws NoSuchMethodException, IllegalAccessException {
MethodType logType = methodType(Void.TYPE, StringBuilder.class, Request.class, Response.class);
MethodType logTypeArg = methodType(Void.TYPE, String.class, StringBuilder.class, Request.class, Response.class);
// TODO should we throw IllegalArgumentExceptions when given arguments for codes
// which do not take them
MethodHandle specificHandle;
switch (code) {
case "%": {
......@@ -882,244 +848,4 @@ public class ServerRequestLog extends ContainerLifeCycle implements RequestLog {
return foldArguments(logHandle, specificHandle);
}
//-----------------------------------------------------------------------------------//
private static void logNothing(StringBuilder b, Request request, Response response) {
}
private static void logServerHost(StringBuilder b, Request request, Response response) {
append(b, request.getServerName());
}
private static void logClientHost(StringBuilder b, Request request, Response response) {
append(b, request.getRemoteHost());
}
private static void logLocalHost(StringBuilder b, Request request, Response response) {
append(b, request.getHttpChannel().getEndPoint().getLocalAddress().getAddress().getHostAddress());
}
private static void logRemoteHost(StringBuilder b, Request request, Response response) {
append(b, request.getHttpChannel().getEndPoint().getRemoteAddress().getAddress().getHostAddress());
}
private static void logServerPort(StringBuilder b, Request request, Response response) {
b.append(request.getServerPort());
}
private static void logClientPort(StringBuilder b, Request request, Response response) {
b.append(request.getRemotePort());
}
private static void logLocalPort(StringBuilder b, Request request, Response response) {
b.append(request.getHttpChannel().getEndPoint().getLocalAddress().getPort());
}
private static void logRemotePort(StringBuilder b, Request request, Response response) {
b.append(request.getHttpChannel().getEndPoint().getRemoteAddress().getPort());
}
private static void logResponseSize(StringBuilder b, Request request, Response response) {
long written = response.getHttpChannel().getBytesWritten();
b.append(written);
}
private static void logResponseSizeCLF(StringBuilder b, Request request, Response response) {
long written = response.getHttpChannel().getBytesWritten();
if (written == 0)
b.append('-');
else
b.append(written);
}
private static void logBytesSent(StringBuilder b, Request request, Response response) {
b.append(response.getHttpChannel().getBytesWritten());
}
private static void logBytesSentCLF(StringBuilder b, Request request, Response response) {
long sent = response.getHttpChannel().getBytesWritten();
if (sent == 0)
b.append('-');
else
b.append(sent);
}
private static void logBytesReceived(StringBuilder b, Request request, Response response) {
// todo this be content received rather than consumed
b.append(request.getHttpInput().getContentConsumed());
}
private static void logBytesReceivedCLF(StringBuilder b, Request request, Response response) {
// todo this be content received rather than consumed
long received = request.getHttpInput().getContentConsumed();
if (received == 0)
b.append('-');
else
b.append(received);
}
private static void logBytesTransferred(StringBuilder b, Request request, Response response) {
// todo this be content received rather than consumed
b.append(request.getHttpInput().getContentConsumed() + response.getHttpOutput().getWritten());
}
private static void logBytesTransferredCLF(StringBuilder b, Request request, Response response) {
// todo this be content received rather than consumed
long transferred = request.getHttpInput().getContentConsumed() + response.getHttpOutput().getWritten();
if (transferred == 0)
b.append('-');
else
b.append(transferred);
}
private static void logRequestCookie(String arg, StringBuilder b, Request request, Response response) {
for (Cookie c : request.getCookies()) {
if (arg.equals(c.getName())) {
b.append(c.getValue());
return;
}
}
b.append('-');
}
private static void logRequestCookies(StringBuilder b, Request request, Response response) {
Cookie[] cookies = request.getCookies();
if (cookies == null || cookies.length == 0)
b.append("-");
else {
for (int i = 0; i < cookies.length; i++) {
if (i != 0)
b.append(';');
b.append(cookies[i].getName());
b.append('=');
b.append(cookies[i].getValue());
}
}
}
private static void logEnvironmentVar(String arg, StringBuilder b, Request request, Response response) {
append(b, System.getenv(arg));
}
private static void logFilename(StringBuilder b, Request request, Response response) {
UserIdentity.Scope scope = request.getUserIdentityScope();
if (scope == null || scope.getContextHandler() == null)
b.append('-');
else {
ContextHandler context = scope.getContextHandler();
int lengthToStrip = scope.getContextPath().length() > 1 ? scope.getContextPath().length() : 0;
String filename = context.getServletContext().getRealPath(request.getPathInfo().substring(lengthToStrip));
append(b, filename);
}
}
private static void logRequestProtocol(StringBuilder b, Request request, Response response) {
append(b, request.getProtocol());
}
private static void logRequestHeader(String arg, StringBuilder b, Request request, Response response) {
append(b, request.getHeader(arg));
}
private static void logKeepAliveRequests(StringBuilder b, Request request, Response response) {
long requests = request.getHttpChannel().getConnection().getMessagesIn();
if (requests >= 0)
b.append(requests);
else
b.append('-');
}
private static void logRequestMethod(StringBuilder b, Request request, Response response) {
append(b, request.getMethod());
}
private static void logResponseHeader(String arg, StringBuilder b, Request request, Response response) {
append(b, response.getHeader(arg));
}
private static void logQueryString(StringBuilder b, Request request, Response response) {
append(b, "?" + request.getQueryString());
}
private static void logRequestFirstLine(StringBuilder b, Request request, Response response) {
append(b, request.getMethod());
b.append(" ");
append(b, request.getOriginalURI());
b.append(" ");
append(b, request.getProtocol());
}
private static void logRequestHandler(StringBuilder b, Request request, Response response) {
append(b, request.getServletName());
}
private static void logResponseStatus(StringBuilder b, Request request, Response response) {
// todo can getCommittedMetaData be null? check what happens when its aborted
b.append(response.getCommittedMetaData().getStatus());
}
private static void logRequestTime(DateCache dateCache, StringBuilder b, Request request, Response response) {
b.append('[');
append(b, dateCache.format(request.getTimeStamp()));
b.append(']');
}
private static void logLatencyMicroseconds(StringBuilder b, Request request, Response response) {
long currentTime = System.currentTimeMillis();
long requestTime = request.getTimeStamp();
long latencyMs = currentTime - requestTime;
long latencyUs = TimeUnit.MILLISECONDS.toMicros(latencyMs);
b.append(latencyUs);
}
private static void logLatencyMilliseconds(StringBuilder b, Request request, Response response) {
long latency = System.currentTimeMillis() - request.getTimeStamp();
b.append(latency);
}
private static void logLatencySeconds(StringBuilder b, Request request, Response response) {
long latency = System.currentTimeMillis() - request.getTimeStamp();
b.append(TimeUnit.MILLISECONDS.toSeconds(latency));
}
private static void logRequestAuthentication(StringBuilder b, Request request, Response response) {
append(b, getAuthentication(request, false));
}
private static void logRequestAuthenticationWithDeferred(StringBuilder b, Request request, Response response) {
append(b, getAuthentication(request, true));
}
private static void logUrlRequestPath(StringBuilder b, Request request, Response response) {
append(b, request.getRequestURI());
}
private static void logConnectionStatus(StringBuilder b, Request request, Response response) {
b.append(request.getHttpChannel().isResponseCompleted() ? (request.getHttpChannel().isPersistent() ? '+' : '-')
: 'X');
}
private static void logRequestTrailer(String arg, StringBuilder b, Request request, Response response) {
HttpFields trailers = request.getTrailers();
if (trailers != null)
append(b, trailers.get(arg));
else
b.append('-');
}
private static void logResponseTrailer(String arg, StringBuilder b, Request request, Response response) {
Supplier<HttpFields> supplier = response.getTrailers();
if (supplier != null) {
HttpFields trailers = supplier.get();
if (trailers != null)
append(b, trailers.get(arg));
else
b.append('-');
} else
b.append("-");
}
}
......@@ -12,8 +12,6 @@ import org.eclipse.jetty.util.DateCache;
import org.eclipse.jetty.util.annotation.ManagedObject;
import com.x.base.core.project.http.HttpToken;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
/**
* A flexible RequestLog, which produces log strings in a customizable format.
......@@ -243,8 +241,6 @@ import com.x.base.core.project.logger.LoggerFactory;
@ManagedObject("Custom format request log with body")
public class ServerRequestLogBody extends ServerRequestLog {
private static Logger logger = LoggerFactory.getLogger(ServerRequestLogBody.class);
public ServerRequestLogBody(ServerRequestLog.Writer writer, String formatString) {
super(writer, formatString);
}
......
......@@ -12,7 +12,7 @@ import com.x.base.core.project.logger.LoggerFactory;
public class DataServerTools {
private static Logger logger = LoggerFactory.getLogger(DataServerTools.class);
private static final Logger LOGGER = LoggerFactory.getLogger(DataServerTools.class);
public static DataTcpWebServer start(DataServer dataServer) throws Exception {
File dataBaseDir = new File(Config.base(), "local/repository/data");
......@@ -40,6 +40,9 @@ public class DataServerTools {
webs[3] = webPort.toString();
webServer = Server.createWebServer(webs).start();
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("data server repository:{}.", dataBaseDir);
}
System.out.println("****************************************");
System.out.println("* data server start completed.");
System.out.println("* port: " + dataServer.getTcpPort() + ".");
......
......@@ -22,17 +22,15 @@ import org.apache.ftpserver.usermanager.impl.WritePermission;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.config.StorageServer;
import com.x.base.core.project.config.StorageServer.Account;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
public class StorageServerTools {
private static Logger logger = LoggerFactory.getLogger(StorageServerTools.class);
private StorageServerTools() {
// nothing
}
public static FtpServer start(StorageServer storageServer) throws Exception {
/** 服务器工厂 */
FtpServerFactory serverFactory = new FtpServerFactory();
/*** 连接工厂 */
ConnectionConfigFactory connectionConfigFactory = new ConnectionConfigFactory();
connectionConfigFactory.setAnonymousLoginEnabled(false);
connectionConfigFactory.setMaxLogins(1000);
......@@ -54,14 +52,6 @@ public class StorageServerTools {
listenerFactory
.setDataConnectionConfiguration(dataConnectionConfigurationFactory.createDataConnectionConfiguration());
listenerFactory.setPort(storageServer.getPort());
// if (storageServer.getSslEnable()) {
// File keystoreFile = new File(Config.base(), "config/o2.keystore");
// SslConfigurationFactory ssl = new SslConfigurationFactory();
// ssl.setKeystoreFile(keystoreFile);
// ssl.setKeystorePassword(Config.token().getSsl());
// listenerFactory.setSslConfiguration(ssl.createSslConfiguration());
// listenerFactory.setImplicitSsl(true);
// }
Listener listener = listenerFactory.createListener();
serverFactory.addListener("default", listener);
serverFactory.setConnectionConfig(connectionConfigFactory.createConnectionConfig());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册