Merge pull request #23880 from dmatej/latest-updates
Latest updates
diff --git a/Jenkinsfile b/Jenkinsfile
index 134c0a4..7a4007e 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -19,8 +19,11 @@
// without this, the agent could be using a pod created from a different descriptor
env.label = "glassfish-ci-pod-${UUID.randomUUID().toString()}"
-// Docker image defined in this project in [glassfish]/etc/docker/Dockerfile
-env.gfImage = "dmatej/eclipse-jenkins-glassfish:11.0.14.1"
+// Docker images defined in this project in [glassfish]/etc/docker*
+// Older image
+env.gfImage11 = "dmatej/eclipse-jenkins-glassfish:11.0.14.1"
+// Image required to be able to build hibernate-validator snapshot, but now used for glassfish too
+env.gfImage17 = "dmatej/eclipse-jenkins-glassfish:17.20"
def jobs = [
"verifyPhase",
@@ -64,7 +67,7 @@
containers: [
containerTemplate(
name: "glassfish-build",
- image: "${env.gfImage}",
+ image: "${env.gfImage17}",
resourceRequestMemory: "7Gi",
resourceRequestCpu: "2650m"
)
@@ -97,7 +100,7 @@
containers: [
containerTemplate(
name: "glassfish-build",
- image: "${env.gfImage}",
+ image: "${env.gfImage17}",
resourceRequestMemory: "4Gi",
resourceRequestCpu: "2650m"
)
@@ -156,7 +159,7 @@
memory: "1200Mi"
cpu: "300m"
- name: glassfish-build
- image: ${env.gfImage}
+ image: ${env.gfImage17}
args:
- cat
tty: true
diff --git a/appserver/distributions/glassfish/pom.xml b/appserver/distributions/glassfish/pom.xml
index 1fdce4a..77f1dcf 100644
--- a/appserver/distributions/glassfish/pom.xml
+++ b/appserver/distributions/glassfish/pom.xml
@@ -81,40 +81,6 @@
</execution>
</executions>
</plugin>
-
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>do stuff</id>
- <phase>process-resources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target>
- <macrodef name="jarupdate">
- <attribute name="basedir"/>
- <attribute name="includes"/>
- <attribute name="destfile"/>
- <sequential>
- <zip destfile="@{destfile}.tmp">
- <zipfileset src="@{destfile}" excludes="@{includes}"/>
- </zip>
- <move file="@{destfile}.tmp" tofile="@{destfile}" />
- <zip update="true" basedir="@{basedir}" includes="@{includes}" destfile="@{destfile}" />
- </sequential>
- </macrodef>
-
- <jarupdate
- basedir="${patches}/jersey-hk2" includes="META-INF/MANIFEST.MF"
- destfile="${glassfish.modules}/jersey-hk2.jar"
- />
- </target>
- </configuration>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
</project>
diff --git a/appserver/distributions/glassfish/src/main/patches/jersey-hk2/META-INF/MANIFEST.MF b/appserver/distributions/glassfish/src/main/patches/jersey-hk2/META-INF/MANIFEST.MF
deleted file mode 100644
index 51a1b49..0000000
--- a/appserver/distributions/glassfish/src/main/patches/jersey-hk2/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,38 +0,0 @@
-Manifest-Version: 1.0
-Bnd-LastModified: 1648639470401
-Build-Jdk: 11.0.2
-Built-By: jenkins
-Bundle-Description: HK2 InjectionManager implementation
-Bundle-DocURL: https://www.eclipse.org/org/foundation/
-Bundle-License: http://www.eclipse.org/legal/epl-2.0, https://www.gnu.
- org/software/classpath/license.html, http://www.eclipse.org/org/docum
- ents/edl-v10.php, https://opensource.org/licenses/BSD-2-Clause, http:
- //www.apache.org/licenses/LICENSE-2.0.html, https://creativecommons.o
- rg/publicdomain/zero/1.0/, https://asm.ow2.io/license.html, jquery.or
- g/license, http://www.opensource.org/licenses/mit-license.php, https:
- //www.w3.org/Consortium/Legal/copyright-documents-19990405
-Bundle-ManifestVersion: 2
-Bundle-Name: jersey-inject-hk2
-Bundle-SymbolicName: org.glassfish.jersey.inject.jersey-hk2
-Bundle-Vendor: Eclipse Foundation
-Bundle-Version: 3.1.0.M4
-Created-By: Apache Maven Bundle Plugin
-Export-Package: org.glassfish.jersey.inject.hk2;version="3.1.0.M4";use
- s:="jakarta.annotation,jakarta.inject,jakarta.ws.rs.core,org.glassfis
- h.hk2.api,org.glassfish.hk2.utilities.binding,org.glassfish.jersey.in
- ternal.inject,org.glassfish.jersey.internal.l10n,org.glassfish.jersey
- .internal.util.collection,org.glassfish.jersey.process.internal"
-Import-Package: jakarta.annotation;version="[2.0,3)",org.jvnet.hk2.ext
- ernal.runtime;version="[3.0,4)",org.glassfish.hk2.api;version="[3.0,4
- )",org.glassfish.hk2.extension;version="[3.0,4)",org.glassfish.hk2.ut
- ilities;version="[3.0,4)",org.glassfish.hk2.utilities.binding;version
- ="[3.0,4)",org.glassfish.hk2.utilities.reflection;version="[3.0,4)",j
- akarta.inject;version="[2.0,3)",jakarta.ws.rs.core;version="[3.1,4)",
- org.glassfish.jersey.internal;version="[3.1,4)",org.glassfish.jersey.
- internal.guava;version="[3.1,4)",org.glassfish.jersey.internal.inject
- ;version="[3.1,4)",org.glassfish.jersey.internal.l10n;version="[3.1,4
- )",org.glassfish.jersey.internal.util;version="[3.1,4)",org.glassfish
- .jersey.internal.util.collection;version="[3.1,4)",org.glassfish.jers
- ey.process.internal;version="[3.1,4)"
-Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"
-Tool: Bnd-3.5.0.201709291849
\ No newline at end of file
diff --git a/appserver/extras/embedded/common/bootstrap/pom.xml b/appserver/extras/embedded/common/bootstrap/pom.xml
index 5e07ddd..0dd36c7 100644
--- a/appserver/extras/embedded/common/bootstrap/pom.xml
+++ b/appserver/extras/embedded/common/bootstrap/pom.xml
@@ -78,11 +78,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.osgi</groupId>
- <artifactId>osgi.cmpn</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.glassfish.main.core</groupId>
<artifactId>glassfish</artifactId>
<version>${project.version}</version>
diff --git a/appserver/featuresets/debug/pom.xml b/appserver/featuresets/debug/pom.xml
index c16799d..03e577a 100644
--- a/appserver/featuresets/debug/pom.xml
+++ b/appserver/featuresets/debug/pom.xml
@@ -47,22 +47,22 @@
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
+ <artifactId>osgi.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
<artifactId>org.osgi.service.resolver</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.resolver</artifactId>
- <version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
- <version>7.0.3</version>
</dependency>
-
-
-
+
<dependency>
<groupId>org.glassfish.main.featuresets</groupId>
<artifactId>glassfish</artifactId>
diff --git a/appserver/osgi-platforms/felix-webconsole-extension/pom.xml b/appserver/osgi-platforms/felix-webconsole-extension/pom.xml
index e9134f5..a135cf2 100644
--- a/appserver/osgi-platforms/felix-webconsole-extension/pom.xml
+++ b/appserver/osgi-platforms/felix-webconsole-extension/pom.xml
@@ -55,18 +55,17 @@
<dependencies>
<dependency>
- <groupId>org.osgi</groupId>
- <artifactId>osgi.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>osgi.cmpn</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.webconsole</artifactId>
</dependency>
- <!-- TangYong's contribution towards Glassfish-12975 begins -->
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.enterprise</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.core</artifactId>
+ </dependency>
<dependency>
<groupId>org.glassfish.main.security</groupId>
<artifactId>security-services</artifactId>
@@ -77,6 +76,5 @@
<artifactId>simple-glassfish-api</artifactId>
<version>${project.version}</version>
</dependency>
- <!-- TangYong's contribution towards Glassfish-12975 ends -->
</dependencies>
</project>
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 be9da19..4307b1f 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 dc50857..92ec0a6 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.eclipse.ee4j</groupId>
<artifactId>project</artifactId>
- <version>1.0.6</version>
+ <version>1.0.7</version>
<relativePath />
</parent>
<version>7.0.0-SNAPSHOT</version>
diff --git a/etc/docker-jdk17/Dockerfile b/etc/docker-jdk17/Dockerfile
new file mode 100644
index 0000000..e8c7e24
--- /dev/null
+++ b/etc/docker-jdk17/Dockerfile
@@ -0,0 +1,70 @@
+FROM krallin/centos-tini
+
+ADD ./entrypoint.sh /etc/
+
+# HOWTO:
+#
+# 1) cd etc/docker
+# 2) wget https://github.com/AdoptOpenJDK/openjdk17-binaries/releases/download/jdk-2021-05-07-13-31/OpenJDK-jdk_x64_linux_hotspot_2021-05-06-23-30.tar.gz
+# 3) tar -xvzf OpenJDK-jdk_x64_linux_hotspot_2021-05-06-23-30.tar.gz
+# 4) make # takes aroung 5 minutes, depending on network speed
+# 5) docker login
+# 6) docker push dmatej/eclipse-jenkins-glassfish:17.20 or another repository, don't forget to update the Jenkinsfile and Makefile too.
+# 7) docker logout
+# 8) git commit, git push, run jenkins build, etc.
+#
+ADD ./jdk-17+20 /usr/lib/jvm/jdk17
+
+RUN chmod +x /etc/entrypoint.sh && \
+ #
+ # install utilities
+ #
+ yum install -y which unzip tar wget zip sendmail && \
+ update-ca-trust && \
+ #
+ # setup jdk
+ #
+ cp -Lf /etc/pki/java/cacerts /usr/lib/jvm/jdk17/lib/security/cacerts && \
+ ln -s /usr/lib/jvm/jdk17/bin/* /bin/ && \
+ #
+ # install maven
+ #
+ curl -O https://archive.apache.org/dist/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.zip && \
+ unzip apache-maven-*-bin.zip -d /usr/share && \
+ rm apache-maven-*-bin.zip && \
+ mv /usr/share/apache-maven-* /usr/share/maven && \
+ ln -s /usr/share/maven/bin/mvn /bin/ && \
+ #
+ # install takari extensions
+ #
+ curl -O https://repo1.maven.org/maven2/io/takari/aether/takari-local-repository/0.11.2/takari-local-repository-0.11.2.jar && \
+ mv takari-local-repository-*.jar /usr/share/maven/lib/ext/ && \
+ curl -O https://repo1.maven.org/maven2/io/takari/takari-filemanager/0.8.3/takari-filemanager-0.8.3.jar && \
+ mv takari-filemanager-*.jar /usr/share/maven/lib/ext/ && \
+ #
+ # install ant
+ #
+ curl -O https://archive.apache.org/dist/ant/binaries/binaries/apache-ant-1.9.4-bin.zip && \
+ unzip apache-ant-*-bin.zip -d /usr/share && \
+ rm apache-ant-*-bin.zip && \
+ mv /usr/share/apache-ant-* /usr/share/ant && \
+ ln -s /usr/share/ant/bin/ant /bin/ && \
+ #
+ # custom user
+ #
+ useradd -l -r -d /home/jenkins -u 1000100000 -g root -s /bin/bash jenkins && \
+ mkdir -p /home/jenkins/.m2/repository/org/glassfish/main && \
+ chmod 777 -R /home/jenkins/.m2/repository/org/glassfish/main && \
+ chown -R jenkins:root /home/jenkins
+
+ENV JAVA_HOME /usr/lib/jvm/jdk17
+ENV MAVEN_HOME /usr/share/maven
+ENV M2_HOME /usr/share/maven
+ENV ANT_HOME /usr/share/ant
+ENV JAVA_TOOL_OPTIONS "-Xmx2G -Xss768k"
+
+ENV HOME /home/jenkins
+WORKDIR /home/jenkins
+USER jenkins
+
+ENTRYPOINT ["/usr/local/bin/tini", "--", "/etc/entrypoint.sh" ]
diff --git a/etc/docker-jdk17/Makefile b/etc/docker-jdk17/Makefile
new file mode 100644
index 0000000..67a50e7
--- /dev/null
+++ b/etc/docker-jdk17/Makefile
@@ -0,0 +1,17 @@
+SHELL := /bin/bash
+IMAGE_TAG = 17.20
+
+.PHONY: clean docker-clean docker-build docker-push
+
+default: docker-build
+
+clean: docker-clean
+
+docker-clean:
+ docker rmi dmatej/eclipse-jenkins-glassfish:$(IMAGE_TAG)
+
+docker-build:
+ docker build -t dmatej/eclipse-jenkins-glassfish:$(IMAGE_TAG) .
+
+docker-push:
+ docker push dmatej/eclipse-jenkins-glassfish:$(IMAGE_TAG)
diff --git a/etc/docker-jdk17/entrypoint.sh b/etc/docker-jdk17/entrypoint.sh
new file mode 100755
index 0000000..632fedf
--- /dev/null
+++ b/etc/docker-jdk17/entrypoint.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+echo "starting sendmail..."
+/usr/sbin/sendmail -bd -q1h
+
+exec "$@"
\ No newline at end of file
diff --git a/nucleus/common/common-util/pom.xml b/nucleus/common/common-util/pom.xml
index 7e9bcd0..8152ae8 100755
--- a/nucleus/common/common-util/pom.xml
+++ b/nucleus/common/common-util/pom.xml
@@ -63,13 +63,11 @@
<artifactId>logging-annotation-processor</artifactId>
<optional>true</optional>
</dependency>
- <!-- Needed to have a bundle activator to set up a different serialization policy -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<scope>provided</scope>
</dependency>
- <!-- Needed to have a bundle activator to set up a different serialization policy -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.enterprise</artifactId>
diff --git a/nucleus/core/bootstrap/pom.xml b/nucleus/core/bootstrap/pom.xml
index 670fde6..139847a 100755
--- a/nucleus/core/bootstrap/pom.xml
+++ b/nucleus/core/bootstrap/pom.xml
@@ -63,11 +63,6 @@
<artifactId>osgi.core</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>osgi.cmpn</artifactId>
- <scope>provided</scope>
- </dependency>
<!-- Although we package simple-glassfish-api bundle's content in glassfish.jar, in standalone mode, we have to create
a launcher classloader that has the launching APIs and OSGi APIs in same level. SO, we need this jar to be part of distribution.
diff --git a/nucleus/core/kernel/osgi.bundle b/nucleus/core/kernel/osgi.bundle
index baa3906..8eee3be 100644
--- a/nucleus/core/kernel/osgi.bundle
+++ b/nucleus/core/kernel/osgi.bundle
@@ -36,5 +36,5 @@
Import-Package: \
com.sun.enterprise.server.logging.*; resolution:=optional, \
org.jvnet.tiger_types;version="${project.version}", \
- org.hibernate.validator.*;resolution:=optional;version="[7.0.0,8.0.0)", \
+ org.hibernate.validator.*;resolution:=optional;version="[8,9)", \
*
diff --git a/nucleus/distributions/nucleus-common/src/main/resources/config/osgi.properties b/nucleus/distributions/nucleus-common/src/main/resources/config/osgi.properties
index 094dc07..0660793 100755
--- a/nucleus/distributions/nucleus-common/src/main/resources/config/osgi.properties
+++ b/nucleus/distributions/nucleus-common/src/main/resources/config/osgi.properties
@@ -1,4 +1,5 @@
#
+# Copyright (c) 2022 Contributors to the Eclipse Foundation
# Copyright (c) 1997-2021 Oracle and/or its affiliates. All rights reserved.
# Copyright 2004 The Apache Software Foundation
#
@@ -18,18 +19,12 @@
# limitations under the License.
#
-
-
-#
-# Framework config properties.
-#
-
# Packages exported by system bundle when framework is Felix.
# Unlike Equinox, Felix requires us to list all packages from felix.jar
# while using org.osgi.framework.system.packages property.
Felix.system.packages=\
- org.osgi.dto; version=1.1, \
- org.osgi.framework; version=1.9, \
+ org.osgi.dto; version=1.1.1, \
+ org.osgi.framework; version=1.10, \
org.osgi.framework.dto; version=1.8, \
org.osgi.framework.hooks.bundle; version=1.1, \
org.osgi.framework.hooks.resolver; version=1.0, \
@@ -41,13 +36,13 @@
org.osgi.framework.startlevel.dto; version=1.0, \
org.osgi.framework.wiring; version=1.2, \
org.osgi.framework.wiring.dto; version=1.3, \
- org.osgi.resource; version=1.0, \
- org.osgi.resource.dto; version=1.0, \
- org.osgi.service.packageadmin; version=1.2, \
- org.osgi.service.resolver; version=1.1, \
- org.osgi.service.startlevel; version=1.1, \
- org.osgi.service.url; version=1.0, \
- org.osgi.util.tracker; version=1.5.2, \
+ org.osgi.resource; version=1.0.1, \
+ org.osgi.resource.dto; version=1.0.1, \
+ org.osgi.service.packageadmin; version=1.2.1, \
+ org.osgi.service.resolver; version=1.1.1, \
+ org.osgi.service.startlevel; version=1.1.1, \
+ org.osgi.service.url; version=1.0.1, \
+ org.osgi.util.tracker; version=1.5.3, \
${extra-system-packages}
@@ -548,38 +543,39 @@
# If we don't set this, when we run our tests in embedded mode, gogo shell stops the framework after running the login command.
gosh.args=--nointeractive
-# New-style generic execution environment capabilities.
-#fix for GLASSFISH-21236
-org.osgi.framework.system.capabilities= \
- ${eecap-${java.specification.version}}
- #we are not adding eecap entries upto 1.7 as GF is supported for JDK>1.7 (?)
-eecap-21= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+# Generic execution environment capabilities.
+org.osgi.framework.system.capabilities=${eecap-${java.vm.specification.version}}
+
+eecap-21= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17,18,19,20,21"
-eecap-20= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+eecap-20= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17,18,19,20"
-eecap-19= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
- osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17,18,19"
-eecap-18= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
- osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17,18"
-eecap-17= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+eecap-19= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17,18,19",
+eecap-18= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17,18",
+eecap-17= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17"
-eecap-16= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+eecap-16= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16"
-eecap-15= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+eecap-15= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15"
-eecap-14= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+eecap-14= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14"
-eecap-13= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+eecap-13= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13"
-eecap-12= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+eecap-12= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12"
-eecap-11= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+eecap-11= \
+ osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11"
-eecap-10= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
- osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10"
-eecap-9= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
- osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9"
-eecap-1.8= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
- osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8"
-eecap-1.7= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
- osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7"
diff --git a/nucleus/distributions/nucleus/src/main/assembly/nucleus-new.xml b/nucleus/distributions/nucleus/src/main/assembly/nucleus-new.xml
index 56cf120..b64516f 100644
--- a/nucleus/distributions/nucleus/src/main/assembly/nucleus-new.xml
+++ b/nucleus/distributions/nucleus/src/main/assembly/nucleus-new.xml
@@ -141,6 +141,8 @@
<exclude>org.apache.felix.gogo.runtime.jar</exclude>
<exclude>org.apache.felix.gogo.shell.jar</exclude>
<exclude>org.apache.felix.scr.jar</exclude>
+ <exclude>org.osgi.util.function.jar</exclude>
+ <exclude>org.osgi.util.promise.jar</exclude>
<exclude>grizzly-npn-api.jar</exclude>
<exclude>felix.jar</exclude>
<exclude>nucleus-domain.jar</exclude>
diff --git a/nucleus/featuresets/atomic/pom.xml b/nucleus/featuresets/atomic/pom.xml
index 5529b72..08802e3 100644
--- a/nucleus/featuresets/atomic/pom.xml
+++ b/nucleus/featuresets/atomic/pom.xml
@@ -86,7 +86,7 @@
</exclusion>
</exclusions>
</dependency>
- <!-- We install fileinstall bundle which monitors modules dir and autodeploy dir for addition/removal/updation of
+ <!-- We install fileinstall bundle which monitors modules dir and autodeploy dir for addition/removal/updation of
bundles -->
<dependency>
<groupId>org.apache.felix</groupId>
@@ -109,25 +109,6 @@
</exclusion>
</exclusions>
</dependency>
- <!-- Felix SCR always needs to be deployed as 3 bundles since 2.0.12 -->
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr</artifactId>
- <exclusions>
- <exclusion>
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.util.promise</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.util.function</artifactId>
- </dependency>
<dependency>
<groupId>org.glassfish.main.osgi-platforms</groupId>
<artifactId>osgi-cli-remote</artifactId>
diff --git a/nucleus/hk2/hk2-config/pom.xml b/nucleus/hk2/hk2-config/pom.xml
index 25062c6..c9ff368 100644
--- a/nucleus/hk2/hk2-config/pom.xml
+++ b/nucleus/hk2/hk2-config/pom.xml
@@ -118,7 +118,7 @@
<instructions>
<Import-Package>
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},
*
</Import-Package>
diff --git a/nucleus/osgi-platforms/osgi-cli-interactive/pom.xml b/nucleus/osgi-platforms/osgi-cli-interactive/pom.xml
index 92468bc..90972cc 100644
--- a/nucleus/osgi-platforms/osgi-cli-interactive/pom.xml
+++ b/nucleus/osgi-platforms/osgi-cli-interactive/pom.xml
@@ -49,7 +49,7 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>jline</groupId>
+ <groupId>org.jline</groupId>
<artifactId>jline</artifactId>
<scope>provided</scope>
<optional>true</optional>
@@ -71,7 +71,7 @@
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<artifactItems>
<artifactItem>
- <groupId>jline</groupId>
+ <groupId>org.jline</groupId>
<artifactId>jline</artifactId>
<overWrite>true</overWrite>
</artifactItem>
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 d799c03..2830c98 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 @@
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 @@
@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 @@
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 @@
* 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 @@
@Override
protected Collection<ParamModel> usageOptions() {
Collection<ParamModel> opts = commandModel.getParameters();
- Set<ParamModel> uopts = new LinkedHashSet<ParamModel>();
+ Set<ParamModel> uopts = new LinkedHashSet<>();
ParamModel p = new CommandModelData.ParamModelData("printprompt",
boolean.class, true,
Boolean.toString(programOpts.isInteractive()));
@@ -201,76 +188,59 @@
}
@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();
-
- 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;
- }
-
- @Override
- public void write(byte[] b, int off, int len) throws IOException {
- return;
- }
- };
-
- reader = new ConsoleReader(REMOTE_COMMAND,
- new FileInputStream(file), out,
- null);
- }
-
- reader.setBellEnabled(false);
- reader.addCompleter(getCommandCompleter());
-
+ 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);
}
}
+
+ 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");
+ }
+
+ OutputStream out = new OutputStream() {
+
+ @Override
+ public void write(int b) throws IOException {
+ return;
+ }
+
+ @Override
+ public void write(byte[] b) throws IOException {
+ return;
+ }
+
+ @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 @@
*
* @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 @@
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 @@
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 @@
config.commit();
}
- private String[] getArgs(String line)
- throws ArgumentTokenizer.ArgumentException {
- List<String> args = new ArrayList<String>();
+
+ private String[] getArgs(String line) throws ArgumentTokenizer.ArgumentException {
+ List<String> 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 1842b21..7b0e783 100644
--- a/nucleus/parent/pom.xml
+++ b/nucleus/parent/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.eclipse.ee4j</groupId>
<artifactId>project</artifactId>
- <version>1.0.6</version>
+ <version>1.0.7</version>
<relativePath />
</parent>
@@ -81,7 +81,7 @@
<!-- Jakarta Validation -->
<jakarta.validation-api.version>3.0.1</jakarta.validation-api.version>
- <hibernate-validator.version>7.0.3-SNAPSHOT</hibernate-validator.version>
+ <hibernate-validator.version>8.0.0-SNAPSHOT</hibernate-validator.version>
<!-- Jakarta Web Services -->
<!--
@@ -105,7 +105,7 @@
<!-- Jakarta REST -->
<jakarta.rest-api.version>3.1.0</jakarta.rest-api.version>
- <jersey.version>3.1.0-M4</jersey.version>
+ <jersey.version>3.1.0-M5</jersey.version>
<!-- Jakarta Mail -->
<jakarta.mail-api.version>2.1.0</jakarta.mail-api.version>
@@ -333,6 +333,12 @@
<groupId>org.glassfish.corba</groupId>
<artifactId>glassfish-corba-orb</artifactId>
<version>${glassfish-corba.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.glassfish.corba</groupId>
@@ -429,26 +435,17 @@
<version>${ha-api.version}</version>
</dependency>
-
-
- <!-- OSGi / Felix -->
-
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>osgi.cmpn</artifactId>
- <version>7.0.0</version>
- <scope>provided</scope>
- </dependency>
+ <!-- OSGi / Felix -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.annotation</artifactId>
- <version>7.0.0</version>
+ <version>8.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
- <version>7.0.0</version>
+ <version>8.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -457,6 +454,7 @@
<version>7.0.0</version>
<scope>provided</scope>
</dependency>
+
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.main</artifactId>
@@ -468,16 +466,6 @@
<version>4.7.2</version>
</dependency>
<dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.util.promise</artifactId>
- <version>1.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.util.function</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.eventadmin</artifactId>
<version>1.6.2</version>
@@ -512,29 +500,38 @@
<artifactId>org.apache.felix.configadmin</artifactId>
<version>1.9.22</version>
</dependency>
- <!-- Felix SCR used to include/embed promise, but after 2.0.12 stopped doing that. Since Felix Core doesn't export
- these packages, we have to deploy them together with Felix SCR. -->
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr</artifactId>
- <version>2.2.0</version>
- </dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.bundlerepository</artifactId>
<version>2.0.10</version>
</dependency>
- <!-- This is currently used by osgi-shell cmd, but can be used for others as well -->
<dependency>
- <groupId>jline</groupId>
- <artifactId>jline</artifactId>
- <version>2.14.5</version>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.resolver</artifactId>
+ <version>2.0.4</version>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.framework</artifactId>
+ <version>7.0.3</version>
+ <scope>provided</scope>
</dependency>
-
+ <!-- This is currently used by osgi-shell cmd, but can be used for others as well -->
+ <dependency>
+ <groupId>org.jline</groupId>
+ <artifactId>jline</artifactId>
+ <version>3.21.0</version>
+ </dependency>
<!--3rd party dependencies -->
-
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
diff --git a/snapshots/hibernate-validator/pom.xml b/snapshots/hibernate-validator/pom.xml
index c756519..84bd6bf 100644
--- a/snapshots/hibernate-validator/pom.xml
+++ b/snapshots/hibernate-validator/pom.xml
@@ -31,8 +31,8 @@
<packaging>pom</packaging>
<properties>
- <snapshots.sources.url>https://github.com/omnifaces/hibernate-validator/archive/refs/heads/main.zip</snapshots.sources.url>
- <snapshots.sources.directory>${project.build.directory}/hibernate-validator-main</snapshots.sources.directory>
+ <snapshots.sources.url>https://github.com/dmatej/hibernate-validator/archive/refs/heads/glassfish.zip</snapshots.sources.url>
+ <snapshots.sources.directory>${project.build.directory}/hibernate-validator-glassfish</snapshots.sources.directory>
</properties>
<build>
diff --git a/snapshots/pom.xml b/snapshots/pom.xml
index 4782a95..393a6b8 100644
--- a/snapshots/pom.xml
+++ b/snapshots/pom.xml
@@ -27,7 +27,7 @@
<parent>
<groupId>org.eclipse.ee4j</groupId>
<artifactId>project</artifactId>
- <version>1.0.6</version>
+ <version>1.0.7</version>
<relativePath />
</parent>