diff --git a/build_client.sh b/build_client.sh
index 124e18d77..981e43edd 100755
--- a/build_client.sh
+++ b/build_client.sh
@@ -4,9 +4,9 @@
# download maven from :
# https://maven.apache.org
-if [ ! -z "${JAVA_11_HOME}" ]; then
- echo JAVA_11_HOME: ${JAVA_11_HOME}
- JAVA_HOME=${JAVA_11_HOME}
+if [ ! -z "${JAVA_21_HOME}" ]; then
+ echo JAVA_21_HOME: ${JAVA_21_HOME}
+ JAVA_HOME=${JAVA_21_HOME}
fi
MVN="`which mvn`"
diff --git a/pom.xml b/pom.xml
index 0bc5d6cea..cb09772fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
pom
SCOUTER APM
diff --git a/scouter.agent.batch/pom.xml b/scouter.agent.batch/pom.xml
index 3482a28e6..b4a9fffab 100644
--- a/scouter.agent.batch/pom.xml
+++ b/scouter.agent.batch/pom.xml
@@ -5,7 +5,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
scouter-agent-batch
diff --git a/scouter.agent.host/pom.xml b/scouter.agent.host/pom.xml
index 7241b53b3..0e80321fc 100644
--- a/scouter.agent.host/pom.xml
+++ b/scouter.agent.host/pom.xml
@@ -4,7 +4,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
scouter-agent-host
diff --git a/scouter.agent.java/pom.xml b/scouter.agent.java/pom.xml
index 37cfc9c41..9d8f14455 100644
--- a/scouter.agent.java/pom.xml
+++ b/scouter.agent.java/pom.xml
@@ -4,7 +4,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
scouter-agent-java
diff --git a/scouter.client.build/pom.xml b/scouter.client.build/pom.xml
index 90b1006d9..829b8d0f3 100644
--- a/scouter.client.build/pom.xml
+++ b/scouter.client.build/pom.xml
@@ -1,6 +1,6 @@
4.0.0
scouter.client
@@ -13,15 +13,15 @@
../scouter.client.product
- 2.7.0
+ 5.0.1
UTF-8
-
- eclipse-simultaneous-2022-03
- p2
- https://download.eclipse.org/releases/2022-03/
-
+
+ eclipse-2025-12
+ p2
+ https://download.eclipse.org/releases/2025-12/
+
diff --git a/scouter.client.feature/feature.xml b/scouter.client.feature/feature.xml
index 366100806..d32e4e82d 100644
--- a/scouter.client.feature/feature.xml
+++ b/scouter.client.feature/feature.xml
@@ -20,13 +20,6 @@
[Enter License Description here.]
-
-
-Xms128m
-Xmx1024m
-XX:+UseG1GC
--Dosgi.requiredJavaVersion=11
+-Dosgi.requiredJavaVersion=21
-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
@@ -52,10 +52,16 @@
+
+
+
+
+
-
+
+
diff --git a/scouter.client/META-INF/MANIFEST.MF b/scouter.client/META-INF/MANIFEST.MF
index e4f754910..5eb892093 100644
--- a/scouter.client/META-INF/MANIFEST.MF
+++ b/scouter.client/META-INF/MANIFEST.MF
@@ -25,7 +25,7 @@ Require-Bundle:
org.eclipse.swt,
org.eclipse.e4.core.commands,
org.eclipse.e4.ui.services
-Bundle-RequiredExecutionEnvironment: JavaSE-11
+Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,
lib/scouter.common.jar,
diff --git a/scouter.client/pom.xml b/scouter.client/pom.xml
index d099e3977..5627e719d 100644
--- a/scouter.client/pom.xml
+++ b/scouter.client/pom.xml
@@ -1,6 +1,6 @@
4.0.0
@@ -20,8 +20,8 @@
org.apache.maven.plugins
maven-compiler-plugin
- 11
- 11
+ 21
+ 21
diff --git a/scouter.client/src/scouter/client/popup/ManageGroupDialog.java b/scouter.client/src/scouter/client/popup/ManageGroupDialog.java
index e631e858e..4b2df6a30 100644
--- a/scouter.client/src/scouter/client/popup/ManageGroupDialog.java
+++ b/scouter.client/src/scouter/client/popup/ManageGroupDialog.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 the original author or authors.
+ * Copyright 2015 the original author or authors.
* @https://github.com/scouter-project/scouter
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -40,6 +40,7 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
import scouter.client.Images;
import scouter.client.group.GroupManager;
@@ -57,6 +58,7 @@ public class ManageGroupDialog {
Set noSelectedSet = new HashSet();
Set selectedSet = new HashSet();
+ Set currentAllSet = new HashSet();
public ManageGroupDialog(Display display, String groupName, String objType,
IManageGroup callback) {
@@ -78,33 +80,46 @@ public void show() {
title.setFont(new Font(null, "Arial", 10, SWT.BOLD));
title.setImage(Images.getObjectIcon(objType, true, 0));
title.setText(groupName + "(" + getDisplayObjtype(objType) + ")");
-
+
+ Composite searchComp = new Composite(dialog, SWT.NONE);
+ searchComp.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+ searchComp.setLayout(new GridLayout(2, false));
+
+ CLabel searchLabel = new CLabel(searchComp, SWT.NONE);
+ searchLabel.setText("Search:");
+ final Text searchText = new Text(searchComp, SWT.BORDER);
+ searchText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ searchText.setMessage("Enter keyword to filter...");
+
+ new CLabel(dialog, SWT.NONE);
+ new CLabel(dialog, SWT.NONE);
+
final Table allObjects = new Table(dialog, SWT.BORDER | SWT.MULTI);
gr = new GridData(SWT.FILL, SWT.FILL, true, true);
- gr.widthHint = 250;
- gr.heightHint = 300;
+ gr.widthHint = 375;
+ gr.heightHint = 450;
allObjects.setLayoutData(gr);
-
+
Composite centerComp = new Composite(dialog, SWT.NONE);
gr = new GridData(SWT.FILL, SWT.FILL, true, true);
- gr.widthHint = 100;
+ gr.widthHint = 150;
centerComp.setLayoutData(gr);
centerComp.setLayout(new GridLayout(1, true));
-
+
Button addBtn = new Button(centerComp, SWT.PUSH);
addBtn.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
addBtn.setImage(Images.arrow_right);
addBtn.setText("Add");
-
+
Button removeBtn = new Button(centerComp, SWT.PUSH);
removeBtn.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
removeBtn.setImage(Images.arrow_left);
removeBtn.setText("Remove");
-
+
final Table selectedObjects = new Table(dialog, SWT.BORDER | SWT.MULTI);
gr = new GridData(SWT.FILL, SWT.FILL, true, true);
- gr.widthHint = 250;
- gr.heightHint = 300;
+ gr.widthHint = 375;
+ gr.heightHint = 450;
selectedObjects.setLayoutData(gr);
addBtn.addListener(SWT.Selection, new Listener(){
@@ -115,14 +130,16 @@ public void handleEvent(Event event) {
}
for (int i = 0; i < items.length; i++) {
TableItem item = items[i];
+ int objHash = (Integer) item.getData();
+ currentAllSet.remove(objHash);
TableItem newItem = new TableItem(selectedObjects, SWT.NONE);
newItem.setData(item.getData());
newItem.setText(item.getText());
newItem.setImage(item.getImage());
- allObjects.remove(allObjects.indexOf(item));
item.dispose();
}
- sortTable(allObjects);
+ String filter = searchText.getText();
+ refreshTable(allObjects, currentAllSet, filter);
sortTable(selectedObjects);
}
});
@@ -135,15 +152,12 @@ public void handleEvent(Event event) {
}
for (int i = 0; i < items.length; i++) {
TableItem item = items[i];
- TableItem newItem = new TableItem(allObjects, SWT.NONE);
- newItem.setData(item.getData());
- newItem.setText(item.getText());
- newItem.setImage(item.getImage());
- selectedObjects.remove(selectedObjects.indexOf(item));
+ int objHash = (Integer) item.getData();
+ currentAllSet.add(objHash);
item.dispose();
}
- sortTable(allObjects);
- sortTable(selectedObjects);
+ String filter = searchText.getText();
+ refreshTable(allObjects, currentAllSet, filter);
}
});
@@ -175,10 +189,8 @@ public void handleEvent(Event event) {
addedObjHashs.add(objHash);
}
}
- TableItem[] noSelectedItems = allObjects.getItems();
List removedObjHashs = new ArrayList();
- for (TableItem item : noSelectedItems) {
- int objHash = (Integer) item.getData();
+ for (Integer objHash : currentAllSet) {
if (noSelectedSet.contains(objHash) == false) {
removedObjHashs.add(objHash);
}
@@ -200,22 +212,14 @@ public void handleEvent(Event event) {
selectedSet.add(objHash);
} else {
noSelectedSet.add(objHash);
+ currentAllSet.add(objHash);
}
}
}
}
-
- for (Integer objHash : noSelectedSet) {
- AgentObject agent = AgentModelThread.getInstance().getAgentObject(objHash);
- if (agent == null) {
- continue;
- }
- TableItem item = new TableItem(allObjects, SWT.NONE);
- item.setData(objHash);
- item.setText(agent.getObjName() + "(" + ServerManager.getInstance().getServer(agent.getServerId()).getName() + ")");
- item.setImage(agent.isAlive() ? Images.active : Images.dead);
- }
-
+
+ refreshTable(allObjects, currentAllSet, null);
+
for (Integer objHash : selectedSet) {
AgentObject agent = AgentModelThread.getInstance().getAgentObject(objHash);
if (agent == null) {
@@ -226,9 +230,14 @@ public void handleEvent(Event event) {
item.setText(agent.getObjName() + "(" + ServerManager.getInstance().getServer(agent.getServerId()).getName() + ")");
item.setImage(agent.isAlive() ? Images.active : Images.dead);
}
-
- sortTable(allObjects);
sortTable(selectedObjects);
+
+ searchText.addListener(SWT.Modify, new Listener(){
+ public void handleEvent(Event event) {
+ String filter = searchText.getText();
+ refreshTable(allObjects, currentAllSet, filter);
+ }
+ });
dialog.pack();
dialog.open();
@@ -256,6 +265,24 @@ public int[] toIntArray(List list) {
return ret;
}
+ private void refreshTable(Table table, Set objHashSet, String filter) {
+ table.removeAll();
+ for (Integer objHash : objHashSet) {
+ AgentObject agent = AgentModelThread.getInstance().getAgentObject(objHash);
+ if (agent == null) {
+ continue;
+ }
+ String displayText = agent.getObjName() + "(" + ServerManager.getInstance().getServer(agent.getServerId()).getName() + ")";
+ if (filter == null || filter.isEmpty() || displayText.toLowerCase().contains(filter.toLowerCase())) {
+ TableItem item = new TableItem(table, SWT.NONE);
+ item.setData(objHash);
+ item.setText(displayText);
+ item.setImage(agent.isAlive() ? Images.active : Images.dead);
+ }
+ }
+ sortTable(table);
+ }
+
private void sortTable(Table table) {
TableItem[] items = table.getItems();
Collator collator = Collator.getInstance(Locale.getDefault());
diff --git a/scouter.common/pom.xml b/scouter.common/pom.xml
index 117dd4012..3095c8b6e 100644
--- a/scouter.common/pom.xml
+++ b/scouter.common/pom.xml
@@ -4,7 +4,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
scouter-common
diff --git a/scouter.deploy/pom.xml b/scouter.deploy/pom.xml
index 2e3b3a307..af080a083 100644
--- a/scouter.deploy/pom.xml
+++ b/scouter.deploy/pom.xml
@@ -4,7 +4,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
scouter-deploy
diff --git a/scouter.extra.java20/pom.xml b/scouter.extra.java20/pom.xml
index 2085893ca..ed326c6aa 100644
--- a/scouter.extra.java20/pom.xml
+++ b/scouter.extra.java20/pom.xml
@@ -6,7 +6,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
4.0.0
diff --git a/scouter.server.boot/pom.xml b/scouter.server.boot/pom.xml
index 8aae8184c..5462f8662 100644
--- a/scouter.server.boot/pom.xml
+++ b/scouter.server.boot/pom.xml
@@ -4,7 +4,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
scouter-server-boot
diff --git a/scouter.server/pom.xml b/scouter.server/pom.xml
index 7d5865b65..2721b5aef 100644
--- a/scouter.server/pom.xml
+++ b/scouter.server/pom.xml
@@ -4,7 +4,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
scouter-server
diff --git a/scouter.weaver/pom.xml b/scouter.weaver/pom.xml
index 76799cc3f..3bb36b9c0 100644
--- a/scouter.weaver/pom.xml
+++ b/scouter.weaver/pom.xml
@@ -5,7 +5,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
4.0.0
diff --git a/scouter.webapp/pom.xml b/scouter.webapp/pom.xml
index e4474e9ec..39c9000e5 100644
--- a/scouter.webapp/pom.xml
+++ b/scouter.webapp/pom.xml
@@ -3,7 +3,7 @@
io.github.scouter-project
scouter-parent
- 2.20.0
+ 2.21.1
4.0.0