diff --git a/appserver/extras/embedded/common/bootstrap/pom.xml b/appserver/extras/embedded/common/bootstrap/pom.xml
index 5e07ddd8b67..0dd36c73a49 100644
--- a/appserver/extras/embedded/common/bootstrap/pom.xml
+++ b/appserver/extras/embedded/common/bootstrap/pom.xml
@@ -77,11 +77,6 @@
osgi.core
provided
-
- org.osgi
- osgi.cmpn
- provided
-
org.glassfish.main.core
glassfish
diff --git a/appserver/featuresets/debug/pom.xml b/appserver/featuresets/debug/pom.xml
index c16799dd21f..03e577ac547 100644
--- a/appserver/featuresets/debug/pom.xml
+++ b/appserver/featuresets/debug/pom.xml
@@ -45,6 +45,10 @@
Debug
+
+ org.osgi
+ osgi.core
+
org.osgi
org.osgi.service.resolver
@@ -53,16 +57,12 @@
org.apache.felix
org.apache.felix.resolver
- 2.0.4
org.apache.felix
org.apache.felix.framework
- 7.0.3
-
-
-
+
org.glassfish.main.featuresets
glassfish
diff --git a/appserver/osgi-platforms/felix-webconsole-extension/pom.xml b/appserver/osgi-platforms/felix-webconsole-extension/pom.xml
index e9134f56ee0..a135cf2724c 100644
--- a/appserver/osgi-platforms/felix-webconsole-extension/pom.xml
+++ b/appserver/osgi-platforms/felix-webconsole-extension/pom.xml
@@ -55,18 +55,17 @@
- org.osgi
- osgi.core
+ org.apache.felix
+ org.apache.felix.webconsole
org.osgi
- osgi.cmpn
+ osgi.enterprise
- org.apache.felix
- org.apache.felix.webconsole
+ org.osgi
+ osgi.core
-
org.glassfish.main.security
security-services
@@ -77,6 +76,5 @@
simple-glassfish-api
${project.version}
-
diff --git a/appserver/osgi-platforms/felix-webconsole-extension/src/main/java/org/glassfish/osgi/felixwebconsoleextension/FelixWebConsoleExtensionActivator.java b/appserver/osgi-platforms/felix-webconsole-extension/src/main/java/org/glassfish/osgi/felixwebconsoleextension/FelixWebConsoleExtensionActivator.java
index be9da191b63..4307b1fdf77 100644
--- a/appserver/osgi-platforms/felix-webconsole-extension/src/main/java/org/glassfish/osgi/felixwebconsoleextension/FelixWebConsoleExtensionActivator.java
+++ b/appserver/osgi-platforms/felix-webconsole-extension/src/main/java/org/glassfish/osgi/felixwebconsoleextension/FelixWebConsoleExtensionActivator.java
@@ -1,4 +1,5 @@
/*
+ * Copyright (c) 2022 Contributors to the Eclipse Foundation
* Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
@@ -16,18 +17,21 @@
package org.glassfish.osgi.felixwebconsoleextension;
-import org.apache.felix.webconsole.BrandingPlugin;
-import org.apache.felix.webconsole.WebConsoleSecurityProvider;
-import org.osgi.framework.*;
-import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.util.tracker.ServiceTracker;
-
import java.io.IOException;
import java.util.Dictionary;
import java.util.Hashtable;
import java.util.logging.Level;
import java.util.logging.Logger;
+import org.apache.felix.webconsole.BrandingPlugin;
+import org.apache.felix.webconsole.WebConsoleSecurityProvider;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.util.tracker.ServiceTracker;
+
/**
*
* This activator servers following purposes:
@@ -41,7 +45,7 @@
*/
public class FelixWebConsoleExtensionActivator implements BundleActivator {
- private Logger logger = Logger.getLogger(getClass().getPackage().getName());
+ private final Logger logger = Logger.getLogger(getClass().getPackage().getName());
private BundleContext context;
private static final String WEBCONSOLE_PID = "org.apache.felix.webconsole.internal.servlet.OsgiManager";
private static final String PROP_HTTP_SERVICE_SELECTOR = "http.service.filter";
diff --git a/docs/pom.xml b/docs/pom.xml
index dc50857df0a..92ec0a65387 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -22,7 +22,7 @@
org.eclipse.ee4j
project
- 1.0.6
+ 1.0.7
7.0.0-SNAPSHOT
diff --git a/nucleus/common/common-util/pom.xml b/nucleus/common/common-util/pom.xml
index 7e9bcd08796..8152ae8fbac 100755
--- a/nucleus/common/common-util/pom.xml
+++ b/nucleus/common/common-util/pom.xml
@@ -63,13 +63,11 @@
logging-annotation-processor
true
-
org.osgi
osgi.core
provided
-
org.osgi
osgi.enterprise
diff --git a/nucleus/core/bootstrap/pom.xml b/nucleus/core/bootstrap/pom.xml
index 670fde66546..139847aa72c 100755
--- a/nucleus/core/bootstrap/pom.xml
+++ b/nucleus/core/bootstrap/pom.xml
@@ -63,11 +63,6 @@
osgi.core
provided
-
- org.osgi
- osgi.cmpn
- provided
-
org.apache.felix
@@ -109,25 +109,6 @@
-
-
- org.apache.felix
- org.apache.felix.scr
-
-
- *
- *
-
-
-
-
- org.osgi
- org.osgi.util.promise
-
-
- org.osgi
- org.osgi.util.function
-
org.glassfish.main.osgi-platforms
osgi-cli-remote
diff --git a/nucleus/hk2/hk2-config/pom.xml b/nucleus/hk2/hk2-config/pom.xml
index 25062c649ab..c9ff36894bf 100644
--- a/nucleus/hk2/hk2-config/pom.xml
+++ b/nucleus/hk2/hk2-config/pom.xml
@@ -118,7 +118,7 @@
jakarta.validation.*;resolution:=optional;version="${jakarta.validation-api.version}",
- org.hibernate.validator.*;resolution:=optional;version="[7.0.0,8.0.0)",
+ org.hibernate.validator.*;resolution:=optional;version="[8.0.0,9.0.0)",
org.jvnet.tiger_types;version=${project.version},
*
diff --git a/nucleus/osgi-platforms/osgi-cli-interactive/pom.xml b/nucleus/osgi-platforms/osgi-cli-interactive/pom.xml
index 92468bc6505..90972cc3127 100644
--- a/nucleus/osgi-platforms/osgi-cli-interactive/pom.xml
+++ b/nucleus/osgi-platforms/osgi-cli-interactive/pom.xml
@@ -49,7 +49,7 @@
${project.version}
- jline
+ org.jline
jline
provided
true
@@ -71,7 +71,7 @@
${project.build.outputDirectory}
- jline
+ org.jline
jline
true
diff --git a/nucleus/osgi-platforms/osgi-cli-interactive/src/main/java/org/glassfish/osgi/cli/interactive/LocalOSGiShellCommand.java b/nucleus/osgi-platforms/osgi-cli-interactive/src/main/java/org/glassfish/osgi/cli/interactive/LocalOSGiShellCommand.java
index d799c030f21..2830c9874ff 100644
--- a/nucleus/osgi-platforms/osgi-cli-interactive/src/main/java/org/glassfish/osgi/cli/interactive/LocalOSGiShellCommand.java
+++ b/nucleus/osgi-platforms/osgi-cli-interactive/src/main/java/org/glassfish/osgi/cli/interactive/LocalOSGiShellCommand.java
@@ -1,4 +1,5 @@
/*
+ * Copyright (c) 2022 Contributors to the Eclipse Foundation
* Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
@@ -25,6 +26,9 @@
import com.sun.enterprise.admin.cli.remote.RemoteCLICommand;
import com.sun.enterprise.admin.util.CommandModelData;
import com.sun.enterprise.universal.i18n.LocalStringsImpl;
+
+import jakarta.inject.Inject;
+
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
@@ -35,11 +39,7 @@
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
-import jakarta.inject.Inject;
-import jline.console.ConsoleReader;
-import jline.console.completer.Completer;
-import jline.console.completer.NullCompleter;
-import jline.console.completer.StringsCompleter;
+
import org.glassfish.api.I18n;
import org.glassfish.api.Param;
import org.glassfish.api.admin.CommandException;
@@ -52,6 +52,13 @@
import org.glassfish.hk2.api.PerLookup;
import org.glassfish.hk2.api.ServiceLocator;
import org.glassfish.hk2.utilities.BuilderHelper;
+import org.jline.reader.Completer;
+import org.jline.reader.LineReader;
+import org.jline.reader.LineReaderBuilder;
+import org.jline.reader.impl.completer.NullCompleter;
+import org.jline.reader.impl.completer.StringsCompleter;
+import org.jline.terminal.Terminal;
+import org.jline.terminal.TerminalBuilder;
import org.jvnet.hk2.annotations.Service;
/**
@@ -75,6 +82,7 @@ public class LocalOSGiShellCommand extends CLICommand {
protected static final String SESSION_OPTION_EXECUTE = "execute";
protected static final String SESSION_OPTION_START = "new";
protected static final String SESSION_OPTION_STOP = "stop";
+ private static final LocalStringsImpl STRINGS = new LocalStringsImpl(MultimodeCommand.class);
@Inject
private ServiceLocator locator;
@@ -88,33 +96,33 @@ public class LocalOSGiShellCommand extends CLICommand {
@Param(name = "printprompt", optional = true)
private Boolean printPromptOpt;
- private boolean printPrompt;
-
@Param(optional = true)
private String encoding;
- private boolean echo; // saved echo flag
- private RemoteCLICommand cmd; // the remote sub-command
+ private boolean echo;
+ private RemoteCLICommand cmd;
private String shellType;
- // re-using existing strings...
- private static final LocalStringsImpl strings =
- new LocalStringsImpl(MultimodeCommand.class);
protected String[] enhanceForTarget(String[] args) {
- if(instance != null) {
- String[] targetArgs = new String[args.length + 2];
- targetArgs[1] = "--instance";
- targetArgs[2] = instance;
- System.arraycopy(args, 0, targetArgs, 0, 1);
- System.arraycopy(args, 1, targetArgs, 3, args.length - 1);
- args = targetArgs;
+ if (instance == null) {
+ return null;
}
- return args;
+ String[] targetArgs = new String[args.length + 2];
+ targetArgs[1] = "--instance";
+ targetArgs[2] = instance;
+ System.arraycopy(args, 0, targetArgs, 0, 1);
+ System.arraycopy(args, 1, targetArgs, 3, args.length - 1);
+ return targetArgs;
}
protected String[] prepareArguments(String sessionId, String[] args) {
- if(sessionId != null) {
+ if (sessionId == null) {
+ String[] osgiArgs = new String[args.length + 1];
+ osgiArgs[0] = REMOTE_COMMAND;
+ System.arraycopy(args, 0, osgiArgs, 1, args.length);
+ args = osgiArgs;
+ } else {
// attach command to remote session...
String[] sessionArgs = new String[args.length + 5];
sessionArgs[0] = REMOTE_COMMAND;
@@ -124,37 +132,24 @@ protected String[] prepareArguments(String sessionId, String[] args) {
sessionArgs[4] = sessionId;
System.arraycopy(args, 0, sessionArgs, 5, args.length);
args = sessionArgs;
- } else {
- String[] osgiArgs = new String[args.length + 1];
- osgiArgs[0] = REMOTE_COMMAND;
- System.arraycopy(args, 0, osgiArgs, 1, args.length);
- args = osgiArgs;
}
return args;
}
protected String startSession() throws CommandException {
- String sessionId = null;
- if("gogo".equals(shellType)) {
- // start a remote session...
- String[] args = {REMOTE_COMMAND, SESSION_OPTION,
- SESSION_OPTION_START};
- args = enhanceForTarget(args);
- sessionId = cmd.executeAndReturnOutput(args).trim();
+ if (!"gogo".equals(shellType)) {
+ return null;
}
- return sessionId;
+ String[] args = {REMOTE_COMMAND, SESSION_OPTION, SESSION_OPTION_START};
+ return cmd.executeAndReturnOutput(enhanceForTarget(args)).trim();
}
protected int stopSession(String sessionId) throws CommandException {
- int rc = 0;
- if(sessionId != null) {
- // stop the remote session...
- String[] args = {REMOTE_COMMAND, SESSION_OPTION,
- SESSION_OPTION_STOP, SESSIONID_OPTION, sessionId};
- args = enhanceForTarget(args);
- rc = cmd.execute(args);
+ if (sessionId == null) {
+ return 0;
}
- return rc;
+ String[] args = {REMOTE_COMMAND, SESSION_OPTION, SESSION_OPTION_STOP, SESSIONID_OPTION, sessionId};
+ return cmd.execute(enhanceForTarget(args));
}
/**
@@ -164,18 +159,10 @@ protected int stopSession(String sessionId) throws CommandException {
* the environment.
*/
@Override
- protected void validate()
- throws CommandException, CommandValidationException {
- if (printPromptOpt != null) {
- printPrompt = printPromptOpt.booleanValue();
- } else {
- printPrompt = programOpts.isInteractive();
- }
- /*
- * Save value of --echo because CLICommand will reset it
- * before calling our executeCommand method but we want it
- * to also apply to all commands in multimode.
- */
+ protected void validate() throws CommandException, CommandValidationException {
+ // Save value of --echo because CLICommand will reset it
+ // before calling our executeCommand method but we want it
+ // to also apply to all commands in multimode.
echo = programOpts.isEcho();
}
@@ -186,7 +173,7 @@ protected void validate()
@Override
protected Collection usageOptions() {
Collection opts = commandModel.getParameters();
- Set uopts = new LinkedHashSet();
+ Set uopts = new LinkedHashSet<>();
ParamModel p = new CommandModelData.ParamModelData("printprompt",
boolean.class, true,
Boolean.toString(programOpts.isInteractive()));
@@ -201,76 +188,59 @@ protected Collection usageOptions() {
}
@Override
- protected int executeCommand()
- throws CommandException, CommandValidationException {
- ConsoleReader reader = null;
-
- if(cmd == null) {
+ protected int executeCommand() throws CommandException, CommandValidationException {
+ if (cmd == null) {
throw new CommandException("Remote command 'osgi' is not available.");
}
-
programOpts.setEcho(echo); // restore echo flag, saved in validate
- try {
if (encoding != null) {
// see Configuration.getEncoding()...
System.setProperty("input.encoding", encoding);
}
-
- String[] args = new String[] {REMOTE_COMMAND,
- "asadmin-osgi-shell"};
- args = enhanceForTarget(args);
+ final String[] args = enhanceForTarget(new String[] {REMOTE_COMMAND, "asadmin-osgi-shell"});
shellType = cmd.executeAndReturnOutput(args).trim();
+ try (Terminal terminal = createTerminal()) {
+ LineReader reader = LineReaderBuilder.builder().completer(getCommandCompleter()).appName(REMOTE_COMMAND).terminal(terminal).build();
+ return executeCommands(reader);
+ } catch (IOException e) {
+ throw new CommandException(e);
+ }
+ }
- if (file == null) {
- System.out.println(strings.get("multimodeIntro"));
- reader = new ConsoleReader(REMOTE_COMMAND,
- new FileInputStream(FileDescriptor.in), System.out,
- null);
- } else {
- printPrompt = false;
- if (!file.canRead()) {
- throw new CommandException("File: " + file
- + " can not be read");
- }
-
- OutputStream out = new OutputStream() {
-
- @Override
- public void write(int b) throws IOException {
- return;
- }
- @Override
- public void write(byte[] b) throws IOException {
- return;
- }
+ private Terminal createTerminal() throws IOException, CommandException {
+ if (file == null) {
+ System.out.println(STRINGS.get("multimodeIntro"));
+ return TerminalBuilder.builder().streams(new FileInputStream(FileDescriptor.in), System.out).build();
+ }
+ if (!file.canRead()) {
+ throw new CommandException("File: " + file + " can not be read");
+ }
- @Override
- public void write(byte[] b, int off, int len) throws IOException {
- return;
- }
- };
+ OutputStream out = new OutputStream() {
- reader = new ConsoleReader(REMOTE_COMMAND,
- new FileInputStream(file), out,
- null);
+ @Override
+ public void write(int b) throws IOException {
+ return;
}
- reader.setBellEnabled(false);
- reader.addCompleter(getCommandCompleter());
+ @Override
+ public void write(byte[] b) throws IOException {
+ return;
+ }
- return executeCommands(reader);
- } catch (IOException e) {
- throw new CommandException(e);
- }
+ @Override
+ public void write(byte[] b, int off, int len) throws IOException {
+ return;
+ }
+ };
+ return TerminalBuilder.builder().streams(new FileInputStream(file), out).build();
}
+
/**
* Get the command completion.
*
- * TODO: make this non-static!
- * TODO: ask remote for dynamically added commands
- *
* @return The command completer
*/
private Completer getCommandCompleter() {
@@ -352,8 +322,7 @@ private Completer getCommandCompleter() {
*
* @return the exit code of the last command executed
*/
- private int executeCommands(ConsoleReader reader)
- throws CommandException, CommandValidationException, IOException {
+ private int executeCommands(LineReader reader) throws CommandException, CommandValidationException {
String line = null;
int rc = 0;
@@ -368,14 +337,14 @@ private int executeCommands(ConsoleReader reader)
try {
for (;;) {
- if (printPrompt) {
+ if (isPromptPrinted()) {
line = reader.readLine(shellType + "$ ");
} else {
line = reader.readLine();
}
if (line == null) {
- if (printPrompt) {
+ if (isPromptPrinted()) {
System.out.println();
}
break;
@@ -457,6 +426,10 @@ private int executeCommands(ConsoleReader reader)
return rc;
}
+ private boolean isPromptPrinted() {
+ return file == null;
+ }
+
private static void atomicReplace(ServiceLocator locator, ProgramOptions options) {
DynamicConfigurationService dcs = locator.getService(DynamicConfigurationService.class);
DynamicConfiguration config = dcs.createDynamicConfiguration();
@@ -469,9 +442,9 @@ private static void atomicReplace(ServiceLocator locator, ProgramOptions options
config.commit();
}
- private String[] getArgs(String line)
- throws ArgumentTokenizer.ArgumentException {
- List args = new ArrayList();
+
+ private String[] getArgs(String line) throws ArgumentTokenizer.ArgumentException {
+ List args = new ArrayList<>();
ArgumentTokenizer t = new ArgumentTokenizer(line);
while (t.hasMoreTokens()) {
args.add(t.nextToken());
diff --git a/nucleus/parent/pom.xml b/nucleus/parent/pom.xml
index 1842b217bb3..ff708aeee63 100644
--- a/nucleus/parent/pom.xml
+++ b/nucleus/parent/pom.xml
@@ -24,7 +24,7 @@
org.eclipse.ee4j
project
- 1.0.6
+ 1.0.7
@@ -81,7 +81,7 @@
3.0.1
- 7.0.3-SNAPSHOT
+ 8.0.0-SNAPSHOT
3.1.0
- 3.1.0-M4
+ 3.1.0-M5
2.1.0
@@ -333,6 +333,12 @@
org.glassfish.corba
glassfish-corba-orb
${glassfish-corba.version}
+
+
+ org.osgi
+ org.osgi.core
+
+
org.glassfish.corba
@@ -429,26 +435,23 @@
${ha-api.version}
-
-
-
-
+
org.osgi
- osgi.cmpn
- 7.0.0
+ osgi.promise
+ 8.0.0
provided
org.osgi
osgi.annotation
- 7.0.0
+ 8.1.0
provided
org.osgi
osgi.core
- 7.0.0
+ 8.0.0
provided
@@ -457,6 +460,17 @@
7.0.0
provided
+
+ org.osgi
+ org.osgi.util.promise
+ 1.2.0
+
+
+ org.osgi
+ org.osgi.util.function
+ 1.2.0
+
+
org.apache.felix
org.apache.felix.main
@@ -467,16 +481,6 @@
org.apache.felix.webconsole
4.7.2
-
- org.osgi
- org.osgi.util.promise
- 1.1.1
-
-
- org.osgi
- org.osgi.util.function
- 1.1.0
-
org.apache.felix
org.apache.felix.eventadmin
@@ -512,29 +516,38 @@
org.apache.felix.configadmin
1.9.22
-
org.apache.felix
- org.apache.felix.scr
- 2.2.0
+ org.apache.felix.bundlerepository
+ 2.0.10
org.apache.felix
- org.apache.felix.bundlerepository
- 2.0.10
+ org.apache.felix.resolver
+ 2.0.4
+ provided
+
+
+ org.osgi
+ org.osgi.core
+
+
+
+ org.apache.felix
+ org.apache.felix.framework
+ 7.0.3
+ provided
+
+
- jline
+ org.jline
jline
- 2.14.5
+ 3.21.0
-
-
-
org.jboss.logging
jboss-logging
diff --git a/snapshots/hibernate-validator/pom.xml b/snapshots/hibernate-validator/pom.xml
index c756519fab1..84bd6bfb873 100644
--- a/snapshots/hibernate-validator/pom.xml
+++ b/snapshots/hibernate-validator/pom.xml
@@ -31,8 +31,8 @@
pom
- https://github.com/omnifaces/hibernate-validator/archive/refs/heads/main.zip
- ${project.build.directory}/hibernate-validator-main
+ https://github.com/dmatej/hibernate-validator/archive/refs/heads/glassfish.zip
+ ${project.build.directory}/hibernate-validator-glassfish
diff --git a/snapshots/pom.xml b/snapshots/pom.xml
index 4782a95e57d..393a6b8ce16 100644
--- a/snapshots/pom.xml
+++ b/snapshots/pom.xml
@@ -27,7 +27,7 @@
org.eclipse.ee4j
project
- 1.0.6
+ 1.0.7