* Save work

This commit is contained in:
richard-austin
2024-11-23 23:34:51 +00:00
parent 4b56817628
commit c481068673
19 changed files with 38 additions and 454 deletions

View File

@@ -17,7 +17,9 @@ repositories {
}
dependencies {
implementation group: 'jakarta.xml.ws', name: 'jakarta.xml.ws-api', version: '4.0.2'
implementation group: 'jakarta.xml.ws', name: 'jakarta.xml.ws-api', version: '3.0.1'
implementation group: 'jakarta.xml.soap', name: 'jakarta.xml.soap-api', version: '3.0.2'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '4.0.2'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '3.0.1'
implementation group: 'com.sun.xml.messaging.saaj', name: 'saaj-impl', version: '3.0.4'
}

View File

@@ -15,19 +15,25 @@ repositories {
// uri = uri("https://build.shibboleth.net/maven/releases/org/opensaml/")
}
configurations.all {
resolutionStrategy {
force group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '3.0.1'
}
}
dependencies {
// implementation group: 'org.apache.cxf', name: 'cxf-rt-frontend-jaxws', version: '4.0.5'
// implementation group: 'org.apache.cxf', name: 'cxf-rt-ws-security', version: '4.0.5'
// implementation group: 'org.apache.cxf', name: 'cxf-rt-transports-http', version: '4.0.5'
// implementation group: 'org.apache.cxf', name: 'apache-cxf', version: '4.0.5', ext: 'pom'
implementation group: 'jakarta.jws', name: 'jakarta.jws-api', version: '3.0.0'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '4.0.2'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '3.0.1'
implementation group: 'org.apache.cxf', name: 'cxf-rt-frontend-jaxws', version: '4.0.5'
implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '3.0.2'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '4.0.2'
implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '4.0.5'
implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '4.0.5'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '3.0.1'
// implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '4.0.5'
// implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '4.0.5'
implementation group: 'org.apache.wss4j', name: 'wss4j-ws-security-dom', version: '3.0.4'
implementation group: 'javax.xml.ws', name: 'jaxws-api', version: '2.3.1'
@@ -43,16 +49,18 @@ dependencies {
implementation group: 'org.opensaml', name: 'opensaml-messaging-api', version: '4.3.0'
implementation group: 'org.opensaml', name: 'opensaml-soap-impl', version: '4.3.0'
implementation group: 'jakarta.xml.ws', name: 'jakarta.xml.ws-api', version: '4.0.2'
implementation group: 'jakarta.xml.ws', name: 'jakarta.xml.ws-api', version: '3.0.1'
implementation group: 'jakarta.xml.soap', name: 'jakarta.xml.soap-api', version: '3.0.2'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '4.0.2'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '3.0.1'
implementation group: 'jakarta.activation', name: 'jakarta.activation-api', version: '2.1.3'
implementation group: 'com.sun.xml.messaging.saaj', name: 'saaj-impl', version: '3.0.4'
api project(':onvif-ws-client')
api libs.commons.io.commons.io
api libs.commons.codec.commons.codec
api libs.org.apache.commons.commons.lang3
api libs.com.sun.xml.messaging.saaj.saaj.impl
// api libs.com.sun.xml.messaging.saaj.saaj.impl
// api libs.com.sun.activation.javax.activation

View File

@@ -1,120 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onvif</groupId>
<artifactId>onvif</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>onvif-java</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-security</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>org.apache.cxf.services.ws-discovery</groupId> -->
<!-- <artifactId>cxf-services-ws-discovery-api</artifactId> -->
<!-- <version>${cxf.version}</version> -->
<!-- </dependency> -->
<!-- <dependency> -->
<!-- <groupId>org.apache.cxf.services.ws-discovery</groupId> -->
<!-- <artifactId>cxf-services-ws-discovery-service</artifactId> -->
<!-- <version>${cxf.version}</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.onvif</groupId>
<artifactId>onvif-ws-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.xml.messaging.saaj/saaj-impl -->
<!-- For Discovery -->
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>1.5.1</version>
</dependency>
<!-- For discovery using cxf -->
<!-- https://mvnrepository.com/artifact/org.apache.cxf.services.ws-discovery/cxf-services-ws-discovery-api -->
<!--
<dependency>
<groupId>org.apache.cxf.services.ws-discovery</groupId>
<artifactId>cxf-services-ws-discovery-api</artifactId>
<version>${cxf.version}</version>
</dependency>
-->
<!-- Java 9+ javax dependencies start -->
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>${javax.activation.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.api.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${jaxb.api.version}</version>
</dependency>
<!-- Java 9+ javax dependencies end -->
<!-- LOGGINBG... for testing -->
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.26</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -93,9 +93,8 @@ public class DeviceDiscovery {
for (String key : discoverWsDevices()) {
try {
final URL url = new URL(key);
boolean ok = true;
if (regexpProtocol.length() > 0 && !url.getProtocol().matches(regexpProtocol)) ok = false;
if (regexpPath.length() > 0 && !url.getPath().matches(regexpPath)) ok = false;
boolean ok = regexpProtocol.length() <= 0 || url.getProtocol().matches(regexpProtocol);
if (regexpPath.length() > 0 && !url.getPath().matches(regexpPath)) ok = false;
// ignore ip6 hosts
if (ok && !enableIPv6 && url.getHost().startsWith("[")) ok = false;
if (ok) urls.add(url);

View File

@@ -18,9 +18,8 @@ import org.apache.cxf.transport.http.HTTPConduit;
public class NaiveSSLHelper {
public static void makeWebServiceClientTrustEveryone(Object webServicePort) {
if (webServicePort instanceof BindingProvider) {
BindingProvider bp = (BindingProvider) webServicePort;
Map requestContext = bp.getRequestContext();
if (webServicePort instanceof BindingProvider bp) {
Map requestContext = bp.getRequestContext();
requestContext.put(JAXWS_SSL_SOCKET_FACTORY, getTrustingSSLSocketFactory());
requestContext.put(JAXWS_HOSTNAME_VERIFIER, new NaiveHostnameVerifier());
} else {

View File

@@ -4,10 +4,7 @@ import de.onvif.beans.DeviceInfo;
import java.net.ConnectException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import java.util.*;
import java.util.concurrent.TimeUnit;
import jakarta.xml.soap.SOAPException;
import jakarta.xml.ws.BindingProvider;
@@ -139,7 +136,7 @@ public class OnvifDevice {
// resetSystemDateAndTime(); // don't modify the camera in a constructor.. :)
Capabilities capabilities = this.device.getCapabilities(Arrays.asList(CapabilityCategory.ALL));
Capabilities capabilities = this.device.getCapabilities(List.of(CapabilityCategory.ALL));
if (capabilities == null) {
throw new ConnectException("Capabilities not reachable.");
}

View File

@@ -45,7 +45,7 @@ public class SimpleSecurityHandler implements SOAPHandler<SOAPMessageContext> {
private final String username;
private final String password;
private String utcTime;
private static Random rnd = new SecureRandom();
private static final Random rnd = new SecureRandom();
public SimpleSecurityHandler(String username, String password) {
this.username = username;

View File

@@ -97,7 +97,7 @@ public class GetTestDevice {
private static OnvifCredentials getFirstFromResource(String resource) throws IOException {
InputStream res = GetTestDevice.class.getResourceAsStream(resource);
if (res != null) {
try (Scanner s = new Scanner(res, StandardCharsets.UTF_8.name());) {
try (Scanner s = new Scanner(res, StandardCharsets.UTF_8)) {
s.useDelimiter("\\A");
while (s.hasNextLine()) {
String line = s.nextLine();

View File

@@ -57,9 +57,9 @@ public class ReadCommandsFromStdInput {
List<Profile> profiles = cam.getMedia().getProfiles();
for (Profile p : profiles) {
System.out.println(
"URL from Profile \'"
"URL from Profile '"
+ p.getName()
+ "\': "
+ "': "
+ cam.getMedia().getSnapshotUri(p.getToken()));
}
break;

View File

@@ -32,7 +32,7 @@ public class SimpleTest {
OnvifDevice cam =
new OnvifDevice(
credentials.getHost(), credentials.getUser(), credentials.getPassword());
System.out.printf("Connected to device %s (%s)%n", cam.getDeviceInfo(), k.toString());
System.out.printf("Connected to device %s (%s)%n", cam.getDeviceInfo(), k);
System.out.println(TestDevice.inspect(cam));
String snapshotUri = cam.getSnapshotUri();

View File

@@ -66,7 +66,7 @@ public class WsNotificationTest {
System.out.println("Connected to device " + cam.getDeviceInfo());
// get device capabilities
Capabilities cap = cam.getDevice().getCapabilities(Arrays.asList(CapabilityCategory.ALL));
Capabilities cap = cam.getDevice().getCapabilities(List.of(CapabilityCategory.ALL));
System.out.println(cap.getDevice().toString());
// print profiles
printProfiles(cam);

View File

@@ -1,40 +0,0 @@
plugins {
id 'java'
id 'com.github.bjornvester.wsdl2java' version '2.0.2'
}
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
repositories {
mavenCentral()
}
dependencies {
// implementation 'com.sun.xml.ws:jaxws-ri:4.0.1'
implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '3.0.2'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '4.0.2'
// implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '4.0.5'
implementation group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: '4.1.0'
// implementation group: 'com.sun.xml.bind', name: 'jaxb-core', version: '4.0.5'
// implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '4.0.5'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
}
test {
useJUnitPlatform()
}
layout.buildDirectory.set(layout.projectDirectory.dir("onvif-ws-client/src/main/resources"))
wsdl2java {
// layout.buildDirectory = "${projectDir}/onvif-ws-client/src/main/resources/wsdl"
verbose.set(true)
suppressGeneratedDate.set(true)
options.set(["-wsdlLocation", "null", "-catalog", "${layout.projectDirectory.dir('onvif-ws-client/src/main/resources/wsdl/jax-ws-catalog.xml')}"])
generatedSourceDir.set(layout.projectDirectory.dir("onvif-ws-client/src/main/java"))
wsdlDir.set(layout.projectDirectory.dir("onvif-ws-client/src/main/resources"))
useJakarta.set(true)
cxfVersion.set("4.0.2")
}

View File

@@ -1,189 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onvif</groupId>
<artifactId>onvif</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>onvif-ws-client</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>org.apache.cxf</groupId> -->
<!-- <artifactId>cxf-rt-transports-http-hc</artifactId> -->
<!-- <version>${cxf.version}</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<!-- Java 9+ javax dependencies start -->
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.jws</groupId>
<artifactId>javax.jws-api</artifactId>
<version>1.1</version>
</dependency>
<!-- Java 9+ javax dependencies end -->
<dependency>
<groupId>org.apache.cxf.services.wsn</groupId>
<artifactId>cxf-services-wsn-core</artifactId>
<version>${cxf.version}</version>
</dependency>
<!-- For creating human readable toString() functions in generated classes. -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf.xjc-utils</groupId>
<artifactId>cxf-xjc-runtime</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model-builder</artifactId>
<version>3.6.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.3.2</version>
<executions>
<execution>
<id>generate-ws-stubs</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<wsdlRoot>${basedir}/src/main/resources/wsdl</wsdlRoot>
<sourceRoot>${basedir}/src/main/java</sourceRoot>
<!--
// TODO: Consider moving generated sources to separate folder and excluse from source control.
<sourceRoot>${basedir}/generated/src/main/java</sourceRoot>
-->
<includes>
<include>*.wsdl</include>
</includes>
<defaultOptions>
<extraargs>
<!-- DataMapper compatibility requires that the boolean getters
and setters follow naming conventions for other getters and setters. -->
<extraarg>-xjc-Xbg</extraarg>
<extraarg>-xjc-Xts</extraarg> <!-- added for toString() builder -->
<extraarg>-verbose</extraarg>
<extraarg>-suppress-generated-date</extraarg>
<extraarg>-wsdlLocation</extraarg>
<extraarg>null</extraarg>
<extraarg>-catalog</extraarg>
<extraarg>${basedir}/src/main/resources/wsdl/jax-ws-catalog.xml</extraarg>
</extraargs>
</defaultOptions>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-bindings-soap</artifactId>
<version>3.1.0</version>
</dependency>
<!-- Boolean getters/setters -->
<dependency>
<groupId>org.apache.cxf.xjcplugins</groupId>
<artifactId>cxf-xjc-boolean</artifactId>
<version>3.1.0</version>
</dependency>
<!-- ToString -->
<dependency>
<groupId>org.apache.cxf.xjcplugins</groupId>
<artifactId>cxf-xjc-ts</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf.xjc-utils</groupId>
<artifactId>cxf-xjc-runtime</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model-builder</artifactId>
<version>3.6.1</version>
</dependency>
<!-- for java 10+ -->
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>${javax.activation.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.api.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${jaxb.api.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>

View File

@@ -11,6 +11,12 @@ plugins {
//sourceCompatibility = "1.8"
//targetCompatibility = "1.8"
configurations.all {
resolutionStrategy {
force group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '3.0.1'
}
}
dependencies {
api libs.org.apache.cxf.cxf.rt.frontend.jaxws
api libs.org.apache.cxf.cxf.rt.transports.http.jetty
@@ -31,6 +37,7 @@ dependencies {
implementation group: 'jakarta.xml.ws', name: 'jakarta.xml.ws-api', version: '3.0.0'
implementation group: 'jakarta.xml.soap', name: 'jakarta.xml.soap-api', version: '3.0.0'
implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '3.0.0'
implementation group: 'com.sun.xml.messaging.saaj', name: 'saaj-impl', version: '3.0.4'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'

79
pom.xml
View File

@@ -1,79 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.onvif</groupId>
<artifactId>onvif</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<java.version>21</java.version>
<cxf.version>3.3.2</cxf.version>
<checkstyle-maven-plugin.version>3.0.0</checkstyle-maven-plugin.version>
<javax.activation.version>1.2.0</javax.activation.version>
<jaxb.api.version>2.3.1</jaxb.api.version> <!-- 2.3.0, 2.3.1 or 2.4.0-b180830.0359 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<modules>
<module>onvif-ws-client</module>
<module>onvif-java</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<jdkToolchain>
<version>${java.version}</version>
</jdkToolchain>
<source>${java.version}</source>
<target>${java.version}</target>
<release>${java.version}</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${checkstyle-maven-plugin.version}</version>
<configuration>
<configLocation>google_checks.xml</configLocation>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${checkstyle-maven-plugin.version}</version>
<configuration>
<configLocation>google_checks.xml</configLocation>
</configuration>
</plugin>
</plugins>
</reporting>
<distributionManagement>
<repository>
<id>internal</id>
<url>file://${project.build.directory}/mvn-repo</url>
</repository>
</distributionManagement>
</project>