Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_42566577
o2oa
提交
6e04e83f
o2oa
项目概览
weixin_42566577
/
o2oa
与 Fork 源项目一致
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
o2oa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6e04e83f
编写于
4月 26, 2022
作者:
R
Ray
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码小优化
上级
460859fe
变更
19
显示空白变更内容
内联
并排
Showing
19 changed file
with
141 addition
and
603 deletion
+141
-603
o2server/x_base_core_project/src/main/java/com/x/base/core/project/webservices/WebservicesClient.java
...om/x/base/core/project/webservices/WebservicesClient.java
+2
-2
o2server/x_console/src/main/java/com/x/server/console/ConfigFactory.java
...ole/src/main/java/com/x/server/console/ConfigFactory.java
+2
-0
o2server/x_console/src/main/java/com/x/server/console/Main.java
...er/x_console/src/main/java/com/x/server/console/Main.java
+76
-80
o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java
...e/src/main/java/com/x/server/console/ResourceFactory.java
+0
-4
o2server/x_console/src/main/java/com/x/server/console/SideCopyPrintStream.java
...c/main/java/com/x/server/console/SideCopyPrintStream.java
+1
-1
o2server/x_console/src/main/java/com/x/server/console/action/ActionControl.java
.../main/java/com/x/server/console/action/ActionControl.java
+2
-1
o2server/x_console/src/main/java/com/x/server/console/action/ActionConvertDataItem.java
...va/com/x/server/console/action/ActionConvertDataItem.java
+0
-143
o2server/x_console/src/main/java/com/x/server/console/action/ActionCreateEncryptKey.java
...a/com/x/server/console/action/ActionCreateEncryptKey.java
+22
-51
o2server/x_console/src/main/java/com/x/server/console/action/Ddl.java
...onsole/src/main/java/com/x/server/console/action/Ddl.java
+1
-0
o2server/x_console/src/main/java/com/x/server/console/action/GarbageCollection.java
...n/java/com/x/server/console/action/GarbageCollection.java
+1
-0
o2server/x_console/src/main/java/com/x/server/console/action/HttpStatus.java
...src/main/java/com/x/server/console/action/HttpStatus.java
+5
-2
o2server/x_console/src/main/java/com/x/server/console/action/OperatingSystem.java
...ain/java/com/x/server/console/action/OperatingSystem.java
+3
-3
o2server/x_console/src/main/java/com/x/server/console/action/ProcessPlatformExecutor.java
.../com/x/server/console/action/ProcessPlatformExecutor.java
+2
-8
o2server/x_console/src/main/java/com/x/server/console/action/ShowCluster.java
...rc/main/java/com/x/server/console/action/ShowCluster.java
+2
-5
o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java
...ain/java/com/x/server/console/server/JettySeverTools.java
+15
-11
o2server/x_console/src/main/java/com/x/server/console/server/ServerRequestLog.java
...in/java/com/x/server/console/server/ServerRequestLog.java
+0
-274
o2server/x_console/src/main/java/com/x/server/console/server/ServerRequestLogBody.java
...ava/com/x/server/console/server/ServerRequestLogBody.java
+0
-4
o2server/x_console/src/main/java/com/x/server/console/server/data/DataServerTools.java
...ava/com/x/server/console/server/data/DataServerTools.java
+4
-1
o2server/x_console/src/main/java/com/x/server/console/server/storage/StorageServerTools.java
...m/x/server/console/server/storage/StorageServerTools.java
+3
-13
未找到文件。
o2server/x_base_core_project/src/main/java/com/x/base/core/project/webservices/WebservicesClient.java
浏览文件 @
6e04e83f
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
);
}
...
...
o2server/x_console/src/main/java/com/x/server/console/ConfigFactory.java
浏览文件 @
6e04e83f
...
...
@@ -37,6 +37,8 @@ public class ConfigFactory {
private
static
class
ReturnWoString
extends
WrapString
{
private
static
final
long
serialVersionUID
=
5128454714367834150L
;
}
}
o2server/x_console/src/main/java/com/x/server/console/Main.java
浏览文件 @
6e04e83f
...
...
@@ -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所在目录,就是程序根目录.
...
...
o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java
浏览文件 @
6e04e83f
...
...
@@ -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
;
...
...
o2server/x_console/src/main/java/com/x/server/console/SideCopyPrintStream.java
浏览文件 @
6e04e83f
...
...
@@ -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
;
}
...
...
o2server/x_console/src/main/java/com/x/server/console/action/ActionControl.java
浏览文件 @
6e04e83f
...
...
@@ -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
);
...
...
o2server/x_console/src/main/java/com/x/server/console/action/ActionConvertDataItem.java
已删除
100644 → 0
浏览文件 @
460859fe
//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
o2server/x_console/src/main/java/com/x/server/console/action/ActionCreateEncryptKey.java
浏览文件 @
6e04e83f
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
();
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"
);
...
...
@@ -47,49 +39,28 @@ public class ActionCreateEncryptKey extends ActionBase {
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
();
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
;
}
...
...
o2server/x_console/src/main/java/com/x/server/console/action/Ddl.java
浏览文件 @
6e04e83f
...
...
@@ -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
(()
->
{
...
...
o2server/x_console/src/main/java/com/x/server/console/action/GarbageCollection.java
浏览文件 @
6e04e83f
...
...
@@ -9,6 +9,7 @@ public class GarbageCollection {
public
boolean
execute
()
{
Runtime
.
getRuntime
().
gc
();
LOGGER
.
print
(
"runtime gc called."
);
return
true
;
}
...
...
o2server/x_console/src/main/java/com/x/server/console/action/HttpStatus.java
浏览文件 @
6e04e83f
...
...
@@ -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
();
}
...
...
o2server/x_console/src/main/java/com/x/server/console/action/OperatingSystem.java
浏览文件 @
6e04e83f
...
...
@@ -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
();
...
...
o2server/x_console/src/main/java/com/x/server/console/action/ProcessPlatformExecutor.java
浏览文件 @
6e04e83f
...
...
@@ -12,15 +12,9 @@ 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
();
...
...
@@ -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
o2server/x_console/src/main/java/com/x/server/console/action/ShowCluster.java
浏览文件 @
6e04e83f
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
;
}
...
...
o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java
浏览文件 @
6e04e83f
...
...
@@ -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
;
...
...
o2server/x_console/src/main/java/com/x/server/console/server/ServerRequestLog.java
浏览文件 @
6e04e83f
...
...
@@ -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
(
"-"
);
}
}
o2server/x_console/src/main/java/com/x/server/console/server/ServerRequestLogBody.java
浏览文件 @
6e04e83f
...
...
@@ -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
);
}
...
...
o2server/x_console/src/main/java/com/x/server/console/server/data/DataServerTools.java
浏览文件 @
6e04e83f
...
...
@@ -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
()
+
"."
);
...
...
o2server/x_console/src/main/java/com/x/server/console/server/storage/StorageServerTools.java
浏览文件 @
6e04e83f
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录