diff --git a/api/pom.xml b/api/pom.xml
index 9a72170..f19aece 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -1,35 +1,36 @@
-
-
- org.opennms.core
- org.opennms.core.wsman
- 1.3.0-SNAPSHOT
-
- 4.0.0
- org.opennms.core.wsman
- org.opennms.core.wsman.api
- OpenNMS :: Core :: WS-Man :: API
- bundle
+
+
+ org.opennms.core
+ org.opennms.core.wsman
+ 1.3.0-SNAPSHOT
+
+ 4.0.0
+ org.opennms.core.wsman
+ org.opennms.core.wsman.api
+ OpenNMS :: Core :: WS-Man :: API
+ bundle
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- ${javaVersion}
- ${javaVersion}
-
-
-
- org.apache.felix
- maven-bundle-plugin
- true
-
-
- JavaSE-${javaVersion}
-
-
-
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${javaVersion}
+ ${javaVersion}
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ true
+
+
+ JavaSE-${javaVersion}
+
+
+
+
+
diff --git a/api/src/main/java/org/opennms/core/wsman/WSManClient.java b/api/src/main/java/org/opennms/core/wsman/WSManClient.java
index 5a994ef..15c302c 100644
--- a/api/src/main/java/org/opennms/core/wsman/WSManClient.java
+++ b/api/src/main/java/org/opennms/core/wsman/WSManClient.java
@@ -15,12 +15,13 @@
*/
package org.opennms.core.wsman;
-import java.util.List;
-import java.util.Map;
-
import org.opennms.core.wsman.exceptions.WSManException;
+import org.w3c.dom.Element;
import org.w3c.dom.Node;
+import java.util.List;
+import java.util.Map;
+
/**
* A WS-Man client implementation that supports the following operations:
* * Enumerate and pull (DSP8037)
@@ -110,4 +111,14 @@ public interface WSManClient {
* @throws WSManException on error
*/
public String enumerateAndPullUsingFilter(String resourceUri, String dialect, String filter, List nodes, boolean recursive);
+
+ /**
+ *
+ *
+ * @param resourceUri uri
+ * @param body body with a root XML element
+ * @param selectors map of selectors
+ * @throws WSManException on error
+ */
+ public void put(String resourceUri, Element body, Map selectors);
}
diff --git a/api/src/main/java/org/opennms/core/wsman/WSManEndpoint.java b/api/src/main/java/org/opennms/core/wsman/WSManEndpoint.java
index bc40cee..de89b6b 100644
--- a/api/src/main/java/org/opennms/core/wsman/WSManEndpoint.java
+++ b/api/src/main/java/org/opennms/core/wsman/WSManEndpoint.java
@@ -34,6 +34,8 @@ public class WSManEndpoint {
private final String username;
private final String password;
private final boolean gssAuth;
+ private final boolean basicAuth;
+ private final boolean digestAuth;
private final boolean strictSSL;
private final WSManVersion serverVersion;
private final Integer maxElements;
@@ -46,6 +48,8 @@ private WSManEndpoint(Builder builder) {
username = builder.username;
password = builder.password;
gssAuth = builder.gssAuth;
+ basicAuth = builder.basicAuth;
+ digestAuth = builder.digestAuth;
strictSSL = builder.strictSSL;
serverVersion = builder.serverVersion;
maxElements = builder.maxElements;
@@ -60,6 +64,8 @@ public static class Builder {
private String username;
private String password;
private boolean gssAuth = false;
+ private boolean basicAuth = false;
+ private boolean digestAuth = false;
private WSManVersion serverVersion = WSManVersion.WSMAN_1_2;
private Integer maxElements;
private Integer maxEnvelopeSize;
@@ -75,11 +81,19 @@ public Builder(URL url) {
}
public Builder withBasicAuth(String username, String password) {
+ this.basicAuth = true;
this.username = Objects.requireNonNull(username, "username cannot be null");
this.password = Objects.requireNonNull(password, "password cannot be null");
return this;
}
+ public Builder withDigestAuth(String username, String password) {
+ this.digestAuth= true;
+ this.username = Objects.requireNonNull(username, "username cannot be null");
+ this.password = Objects.requireNonNull(password, "password cannot be null");
+ return this;
+ }
+
public Builder withGSSAuth() {
gssAuth = true;
return this;
@@ -137,7 +151,11 @@ public URL getUrl() {
}
public boolean isBasicAuth() {
- return !isGSSAuth() && username != null;
+ return !isGSSAuth() && basicAuth && username != null;
+ }
+
+ public boolean isDigestAuth() {
+ return !isGSSAuth() && digestAuth && username != null;
}
public String getUsername() {
diff --git a/cli/pom.xml b/cli/pom.xml
index 5704fa0..b516b46 100644
--- a/cli/pom.xml
+++ b/cli/pom.xml
@@ -81,11 +81,18 @@
jakarta.xml.ws-api
${jaxbVersion}
-
+
+
+
+ jakarta.activation
+ jakarta.activation-api
+ 2.1.2
+
args4j
args4j
diff --git a/cli/src/main/java/org/opennms/core/wsman/WSManCli.java b/cli/src/main/java/org/opennms/core/wsman/WSManCli.java
index bc7e6f2..dc94b0b 100644
--- a/cli/src/main/java/org/opennms/core/wsman/WSManCli.java
+++ b/cli/src/main/java/org/opennms/core/wsman/WSManCli.java
@@ -65,6 +65,9 @@ public enum WSManOperation {
@Option(name="-gssAuth", usage="GSS authentication")
private boolean gssAuth = false;
+ @Option(name="-digestAuth", usage="Digest authentication")
+ private boolean digestAuth = false;
+
@Option(name="-o", usage="operation")
WSManOperation operation = WSManOperation.ENUM;
@@ -126,6 +129,8 @@ public void doMain(String[] args) {
builder.withBasicAuth(username, password);
} else if (gssAuth) {
builder.withGSSAuth();
+ } else if (digestAuth) {
+ builder.withDigestAuth(username, password);
}
WSManEndpoint endpoint = builder.build();
LOG.info("Using endpoint: {}", endpoint);
diff --git a/cxf/pom.xml b/cxf/pom.xml
index a430938..9fe5b95 100644
--- a/cxf/pom.xml
+++ b/cxf/pom.xml
@@ -95,7 +95,7 @@
org.codehaus.mojo
jaxb2-maven-plugin
- 2.5.0
+ 3.1.0
true
@@ -164,5 +164,11 @@
${project.version}
test
+
+ jakarta.xml.ws
+ jakarta.xml.ws-api
+ 4.0.0
+ compile
+
diff --git a/cxf/src/main/java/org/opennms/core/wsman/cxf/CXFWSManClient.java b/cxf/src/main/java/org/opennms/core/wsman/cxf/CXFWSManClient.java
index 8f7b822..f2e8f1c 100644
--- a/cxf/src/main/java/org/opennms/core/wsman/cxf/CXFWSManClient.java
+++ b/cxf/src/main/java/org/opennms/core/wsman/cxf/CXFWSManClient.java
@@ -24,10 +24,11 @@
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
-import javax.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.BindingProvider;
+import jakarta.xml.ws.Holder;
import org.apache.cxf.Bus;
import org.apache.cxf.binding.soap.SoapBindingConstants;
import org.apache.cxf.bus.extension.ExtensionManagerBus;
@@ -42,6 +43,7 @@
import org.apache.cxf.message.Message;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transport.http.auth.DefaultBasicAuthSupplier;
+import org.apache.cxf.transport.http.auth.DigestAuthSupplier;
import org.apache.cxf.transport.http.auth.HttpAuthHeader;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.apache.cxf.ws.addressing.AddressingProperties;
@@ -63,6 +65,8 @@
import org.opennms.core.wsman.exceptions.WSManException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xmlsoap.schemas.ws._2004._09.enumeration.Enumerate;
import org.xmlsoap.schemas.ws._2004._09.enumeration.EnumerateResponse;
@@ -289,6 +293,25 @@ public String enumerateAndPullUsingFilter(String resourceUri, String dialect, St
return enumerateAndPull(resourceUri, dialect, filter, nodes, recursive);
}
+ @Override
+ public void put(String resourceUri, Element body, Map selectors) {
+ String elementType = TypeUtils.getElementTypeFromResourceUri(resourceUri);
+ final TransferOperations transferer = getTransferer(resourceUri, elementType, selectors);
+ try {
+ TransferElement transferElement = new TransferElement();
+ transferElement.getAny().clear();
+ // Add the root XML element as a child element of TransferElement
+ transferElement.getAny().add(body);
+
+ Holder holder = new Holder<>(transferElement);
+ transferer.put(holder);
+ } catch (RuntimeException e) {
+ throw wrapException(e);
+ } finally {
+ destroy(transferer);
+ }
+ }
+
@Override
public Node get(String resourceUri, Map selectors) {
String elementType = TypeUtils.getElementTypeFromResourceUri(resourceUri);
@@ -399,6 +422,14 @@ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
http.getAuthorization().setUserName(m_endpoint.getUsername());
http.getAuthorization().setPassword(m_endpoint.getPassword());
+ requestContext.put(BindingProvider.USERNAME_PROPERTY, m_endpoint.getUsername());
+ requestContext.put(BindingProvider.PASSWORD_PROPERTY, m_endpoint.getPassword());
+ } else if (m_endpoint.isDigestAuth()) {
+ LOG.debug("Enabling digest authentication.");
+ http.setAuthSupplier(new DigestAuthSupplier());
+ http.getAuthorization().setUserName(m_endpoint.getUsername());
+ http.getAuthorization().setPassword(m_endpoint.getPassword());
+
requestContext.put(BindingProvider.USERNAME_PROPERTY, m_endpoint.getUsername());
requestContext.put(BindingProvider.PASSWORD_PROPERTY, m_endpoint.getPassword());
}
diff --git a/cxf/src/main/java/org/opennms/core/wsman/cxf/EnumerationOperations.java b/cxf/src/main/java/org/opennms/core/wsman/cxf/EnumerationOperations.java
index e722387..4dccc78 100644
--- a/cxf/src/main/java/org/opennms/core/wsman/cxf/EnumerationOperations.java
+++ b/cxf/src/main/java/org/opennms/core/wsman/cxf/EnumerationOperations.java
@@ -15,14 +15,14 @@
*/
package org.opennms.core.wsman.cxf;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.jws.WebService;
-import javax.jws.soap.SOAPBinding;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.ws.Action;
-import javax.xml.ws.soap.Addressing;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebResult;
+import jakarta.jws.WebService;
+import jakarta.jws.soap.SOAPBinding;
+import jakarta.xml.bind.annotation.XmlSeeAlso;
+import jakarta.xml.ws.Action;
+import jakarta.xml.ws.soap.Addressing;
import org.xmlsoap.schemas.ws._2004._09.enumeration.Enumerate;
import org.xmlsoap.schemas.ws._2004._09.enumeration.EnumerateResponse;
diff --git a/cxf/src/main/java/org/opennms/core/wsman/cxf/IdentifyOperations.java b/cxf/src/main/java/org/opennms/core/wsman/cxf/IdentifyOperations.java
index 09872ea..1935859 100644
--- a/cxf/src/main/java/org/opennms/core/wsman/cxf/IdentifyOperations.java
+++ b/cxf/src/main/java/org/opennms/core/wsman/cxf/IdentifyOperations.java
@@ -15,13 +15,13 @@
*/
package org.opennms.core.wsman.cxf;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.jws.WebService;
-import javax.jws.soap.SOAPBinding;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.ws.soap.Addressing;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebResult;
+import jakarta.jws.WebService;
+import jakarta.jws.soap.SOAPBinding;
+import jakarta.xml.bind.annotation.XmlSeeAlso;
+import jakarta.xml.ws.soap.Addressing;
import schemas.dmtf.org.wbem.wsman.v1.IdentifyResponseType;
import schemas.dmtf.org.wbem.wsman.v1.IdentifyType;
diff --git a/cxf/src/main/java/org/opennms/core/wsman/cxf/TransferOperations.java b/cxf/src/main/java/org/opennms/core/wsman/cxf/TransferOperations.java
index 5f6997a..9a4925d 100644
--- a/cxf/src/main/java/org/opennms/core/wsman/cxf/TransferOperations.java
+++ b/cxf/src/main/java/org/opennms/core/wsman/cxf/TransferOperations.java
@@ -15,14 +15,14 @@
*/
package org.opennms.core.wsman.cxf;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.jws.WebService;
-import javax.jws.soap.SOAPBinding;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.ws.Action;
-import javax.xml.ws.soap.Addressing;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebResult;
+import jakarta.jws.WebService;
+import jakarta.jws.soap.SOAPBinding;
+import jakarta.xml.bind.annotation.XmlSeeAlso;
+import jakarta.xml.ws.Action;
+import jakarta.xml.ws.soap.Addressing;
import org.xmlsoap.schemas.ws._2004._09.transfer.ObjectFactory;
import org.xmlsoap.schemas.ws._2004._09.transfer.TransferElement;
@@ -54,7 +54,7 @@ public interface TransferOperations {
@Action(input = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Put", output = "http://schemas.xmlsoap.org/ws/2004/09/transfer/PutResponse")
public void put(
@WebParam(partName = "Body", mode = WebParam.Mode.INOUT, name = "TransferElement", targetNamespace = "http://schemas.xmlsoap.org/ws/2004/09/transfer")
- javax.xml.ws.Holder body
+ jakarta.xml.ws.Holder body
);
@WebMethod(operationName = "Delete")
diff --git a/cxf/src/main/java/org/opennms/core/wsman/cxf/TypeUtils.java b/cxf/src/main/java/org/opennms/core/wsman/cxf/TypeUtils.java
index 4fda580..01c26c6 100644
--- a/cxf/src/main/java/org/opennms/core/wsman/cxf/TypeUtils.java
+++ b/cxf/src/main/java/org/opennms/core/wsman/cxf/TypeUtils.java
@@ -3,9 +3,9 @@
import java.net.URI;
import java.util.List;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
diff --git a/cxf/src/main/java/org/opennms/core/wsman/cxf/WSManHeaderInterceptor.java b/cxf/src/main/java/org/opennms/core/wsman/cxf/WSManHeaderInterceptor.java
index cb0409c..d958174 100644
--- a/cxf/src/main/java/org/opennms/core/wsman/cxf/WSManHeaderInterceptor.java
+++ b/cxf/src/main/java/org/opennms/core/wsman/cxf/WSManHeaderInterceptor.java
@@ -21,8 +21,8 @@
import java.util.Map.Entry;
import java.util.Objects;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
diff --git a/cxf/src/main/resources/xsds/addressing.xsd b/cxf/src/main/resources/xsds/addressing.xsd
new file mode 100644
index 0000000..6f66e74
--- /dev/null
+++ b/cxf/src/main/resources/xsds/addressing.xsd
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If "Policy" elements from namespace "http://schemas.xmlsoap.org/ws/2002/12/policy#policy" are used, they must appear first (before any extensibility elements).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cxf/src/main/resources/xsds/wsman.xsd b/cxf/src/main/resources/xsds/wsman.xsd
index f826707..be2ee86 100644
--- a/cxf/src/main/resources/xsds/wsman.xsd
+++ b/cxf/src/main/resources/xsds/wsman.xsd
@@ -15,404 +15,440 @@ Change Requests:
None
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Instances of this type can be only simple types or EPRs, not arbitrary mixed data.
-
-
-
-
+ xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified" version="1.0.0e">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Instances of this type can be only simple types or EPRs, not arbitrary mixed data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/itests/pom.xml b/itests/pom.xml
index 765cf1c..1e61ffc 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -1,59 +1,61 @@
-
-
- org.opennms.core
- org.opennms.core.wsman
- 1.3.0-SNAPSHOT
-
- 4.0.0
- org.opennms.core.wsman
- org.opennms.core.wsman.itests
- OpenNMS :: Core :: WS-Man :: Integration Tests
- jar
+
+
+ org.opennms.core
+ org.opennms.core.wsman
+ 1.3.0-SNAPSHOT
+
+ 4.0.0
+ org.opennms.core.wsman
+ org.opennms.core.wsman.itests
+ OpenNMS :: Core :: WS-Man :: Integration Tests
+ jar
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- ${javaVersion}
- ${javaVersion}
-
-
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${javaVersion}
+ ${javaVersion}
+
+
+
+
-
-
- org.opennms.core.wsman
- org.opennms.core.wsman.api
- ${project.version}
-
+
+
+ org.opennms.core.wsman
+ org.opennms.core.wsman.api
+ ${project.version}
+
-
- junit
- junit
- ${junitVersion}
-
-
- com.mycila
- mycila-xmltool
- ${xmltoolVersion}
-
-
- org.slf4j
- slf4j-simple
- ${slf4jVersion}
-
-
- com.google.guava
- guava
- ${guavaVersion}
-
-
- com.github.tomakehurst
- wiremock-jre8-standalone
- ${wiremockVersion}
-
-
+
+ junit
+ junit
+ ${junitVersion}
+
+
+ com.mycila
+ mycila-xmltool
+ ${xmltoolVersion}
+
+
+ org.slf4j
+ slf4j-simple
+ ${slf4jVersion}
+
+
+ com.google.guava
+ guava
+ ${guavaVersion}
+
+
+
+ com.github.tomakehurst
+ wiremock
+ ${wiremockVersion}
+
+
diff --git a/openwsman/src/main/java/org/opennms/core/wsman/openwsman/OpenWSManClient.java b/openwsman/src/main/java/org/opennms/core/wsman/openwsman/OpenWSManClient.java
index cc5dc4b..ed1b531 100644
--- a/openwsman/src/main/java/org/opennms/core/wsman/openwsman/OpenWSManClient.java
+++ b/openwsman/src/main/java/org/opennms/core/wsman/openwsman/OpenWSManClient.java
@@ -25,12 +25,12 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.soap.MessageFactory;
-import javax.xml.soap.MimeHeaders;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPConstants;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.MessageFactory;
+import jakarta.xml.soap.MimeHeaders;
+import jakarta.xml.soap.SOAPBody;
+import jakarta.xml.soap.SOAPConstants;
+import jakarta.xml.soap.SOAPException;
+import jakarta.xml.soap.SOAPMessage;
import org.opennms.core.wsman.IdentifyResponse;
import org.opennms.core.wsman.WSManClient;
diff --git a/pom.xml b/pom.xml
index d87d0f1..57acf53 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,13 +43,13 @@
UTF-8
UTF-8
- 1.8
- 3.4.10
+ 17
+ 4.0.3
1.7.36
- 25.1-jre
+ 33.0.0-jre
2.33
4.4.ga
- 2.20.0
+ 2.22.1
4.13
2.27.2
4.0.0
@@ -81,7 +81,7 @@
org.apache.felix
maven-bundle-plugin
- 4.2.1
+ 5.1.1
org.apache.maven.plugins