From f8302c69142d3a820ad23634ee5e042eb4e9bca0 Mon Sep 17 00:00:00 2001 From: brian Date: Sat, 6 Jul 2024 08:29:01 +0200 Subject: [PATCH] Initial version to support Tomcat 10 (Servlet 6.0 spec), JavaEE (jakarta.* namespace) and Java 17 or higher --- build.gradle | 59 ++- lib/DocBuilder-20131001.jar | Bin 24724 -> 0 bytes .../brutex/xservices/cmtypes/ItemType.java | 4 +- .../xservices/cmtypes/ItemTypeList.java | 4 +- .../xservices/security/XServicesRealm.java | 5 +- .../brutex/xservices/types/AttributeType.java | 4 +- .../xservices/types/CompressionType.java | 2 +- .../xservices/types/DateFormatType.java | 6 +- .../xservices/types/DateInfoExtendedType.java | 4 +- .../brutex/xservices/types/DateInfoType.java | 4 +- .../brutex/xservices/types/DateTimeUnits.java | 4 +- .../brutex/xservices/types/FileInfoType.java | 12 +- .../xservices/types/HostConnection.java | 4 +- .../brutex/xservices/types/HostinfoType.java | 2 +- .../brutex/xservices/types/MailMimeType.java | 4 +- .../xservices/types/NamespaceListType.java | 4 +- .../brutex/xservices/types/NamespaceType.java | 4 +- .../xservices/types/ReplacePattern.java | 4 +- .../brutex/xservices/types/ReturnCode.java | 4 +- .../xservices/types/RuntimeInfoType.java | 2 +- .../brutex/xservices/types/ScheduledJob.java | 8 +- .../xservices/types/StringMatchType.java | 2 +- .../xservices/types/StringReplaceType.java | 2 +- .../xservices/types/StringSplitType.java | 2 +- .../xservices/types/TargetNodeType.java | 4 +- .../brutex/xservices/types/TimeZoneType.java | 4 +- .../types/alfevent/ALFEventResponseType.java | 8 +- .../types/alfevent/ALFEventType.java | 12 +- .../ALFEventWithReplyResponseType.java | 8 +- .../types/alfevent/ALFSecurityType.java | 12 +- .../types/alfevent/BaseExtensionType.java | 10 +- .../types/alfevent/CredentialsType.java | 12 +- .../types/alfevent/CustomExtensionType.java | 10 +- .../types/alfevent/DetailExtensionType.java | 10 +- .../xservices/types/alfevent/EmBaseType.java | 12 +- .../types/alfevent/EmExtensionType.java | 10 +- .../types/alfevent/EventBaseType.java | 12 +- .../types/alfevent/ObjectFactory.java | 6 +- .../xservices/types/alfevent/SourceType.java | 10 +- .../xservices/types/ant/AntProperty.java | 4 +- .../xservices/types/ant/ArchiveResource.java | 6 +- .../xservices/types/ant/AttachmentType.java | 4 +- .../xservices/types/ant/CollectionType.java | 4 +- .../types/ant/ContainsSelectorType.java | 4 +- .../xservices/types/ant/DateInfoType.java | 4 +- .../xservices/types/ant/FileResource.java | 6 +- .../xservices/types/ant/FileSetResource.java | 6 +- .../xservices/types/ant/PatternElement.java | 4 +- .../xservices/types/ant/PatternSetType.java | 2 +- .../xservices/types/ant/SelectorType.java | 2 +- .../util/EventmanagerConfiguration.java | 4 +- .../brutex/xservices/util/LockCleanerJob.java | 3 + .../MiscServiceServletContextListener.java | 35 +- .../brutex/xservices/util/RetentionJob.java | 52 ++ .../util/cache/CacheExecutorService.java | 6 +- .../xservices/util/cache/CacheServlet.java | 4 +- .../util/cache/FindingsCacheServlet.java | 7 +- .../brutex/xservices/ws/ArchiveService.java | 6 +- .../net/brutex/xservices/ws/DateService.java | 9 +- .../brutex/xservices/ws/ExecuteService.java | 8 +- .../net/brutex/xservices/ws/FileService.java | 8 +- .../net/brutex/xservices/ws/JobService.java | 8 +- .../net/brutex/xservices/ws/MailService.java | 8 +- .../net/brutex/xservices/ws/MiscService.java | 8 +- .../xservices/ws/OpenAirProxyService.java | 218 -------- .../brutex/xservices/ws/StorageService.java | 6 +- .../brutex/xservices/ws/StringService.java | 8 +- .../brutex/xservices/ws/XServicesFault.java | 8 +- .../net/brutex/xservices/ws/XmlService.java | 8 +- .../xservices/ws/impl/ArchiveServiceImpl.java | 6 +- .../xservices/ws/impl/DateServiceImpl.java | 2 +- .../xservices/ws/impl/ExecuteServiceImpl.java | 6 +- .../xservices/ws/impl/FileServiceImpl.java | 8 +- .../xservices/ws/impl/JobServiceImpl.java | 2 +- .../xservices/ws/impl/MailServiceImpl.java | 2 +- .../xservices/ws/impl/MiscServiceImpl.java | 19 +- .../ws/impl/OpenAirProxyServiceImpl.java | 492 ------------------ .../xservices/ws/impl/StorageServiceImpl.java | 2 +- .../xservices/ws/impl/StringServiceImpl.java | 2 +- .../xservices/ws/impl/XmlServiceImpl.java | 2 +- .../net/brutex/xservices/ws/rs/CVSInfo.java | 12 +- .../brutex/xservices/ws/rs/CVSInfoImpl.java | 14 +- .../net/brutex/xservices/ws/rs/DIMCMInfo.java | 22 +- .../brutex/xservices/ws/rs/DIMCMInfoImpl.java | 6 +- .../net/brutex/xservices/ws/rs/FileInfo.java | 24 +- .../brutex/xservices/ws/rs/FileInfoImpl.java | 16 +- .../brutex/xservices/ws/rs/FileListType.java | 4 +- .../xservices/ws/rs/OpenAirInfoService.java | 49 -- .../ws/rs/OpenAirInfoServiceImpl.java | 87 ---- src/main/resources/cache.ccf | 2 +- src/main/resources/simplelogger.properties | 2 +- .../webapp/WEB-INF/applicationContext.xml | 10 +- .../webapp/WEB-INF/eventmanager.properties | 5 + test/MiscService-soapui-project.xml | 420 ++++++++++----- 94 files changed, 684 insertions(+), 1282 deletions(-) delete mode 100644 lib/DocBuilder-20131001.jar create mode 100644 src/main/java/net/brutex/xservices/util/RetentionJob.java delete mode 100644 src/main/java/net/brutex/xservices/ws/OpenAirProxyService.java delete mode 100644 src/main/java/net/brutex/xservices/ws/impl/OpenAirProxyServiceImpl.java delete mode 100644 src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoService.java delete mode 100644 src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoServiceImpl.java diff --git a/build.gradle b/build.gradle index 6d7c91a..87dd6b5 100644 --- a/build.gradle +++ b/build.gradle @@ -5,16 +5,22 @@ apply plugin: "signing" repositories { mavenCentral() } - +/* java { toolchain { languageVersion = JavaLanguageVersion.of(8) } } +*/ -project.version "2.0.2-SNAPSHOT" +project.version "3.0.0-SNAPSHOT" group "net.brutex.xservices" +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + publishing { publications { maven(MavenPublication) { @@ -69,10 +75,20 @@ tasks.register('createDist', Zip) {Zip t -> } dependencies { - compileOnly "javax.servlet:javax.servlet-api:4.0.1" - compileOnly "javax.ws.rs:javax.ws.rs-api:2.1.1" + compileOnly "jakarta.servlet:jakarta.servlet-api:6.0.0" - implementation "org.apache.commons:commons-configuration2:2.9.0" + implementation "jakarta.ws.rs:jakarta.ws.rs-api:4.0.0" + //runtimeOnly "com.sun.ws.rs:" + + implementation "jakarta.xml.ws:jakarta.xml.ws-api:2.3.3" + //runtimeOnly "com.sun.xml.ws:jaxws-rt:2.3.3" + + implementation "jakarta.xml.bind:jakarta.xml.bind-api:4.0.2" + runtimeOnly "com.sun.xml.bind:jaxb-impl:4.0.2" + + implementation 'jakarta.jws:jakarta.jws-api:3.0.0' + + implementation 'org.apache.commons:commons-configuration2:2.10.1' implementation "org.apache.commons:commons-lang3:3.12.0" implementation "commons-net:commons-net:3.9.0" implementation "commons-beanutils:commons-beanutils:1.9.4" @@ -89,40 +105,35 @@ dependencies { implementation "org.apache.commons:commons-jcs-core:2.2.1" - implementation "org.quartz-scheduler:quartz:2.3.2" + implementation "org.quartz-scheduler:quartz:2.5.0-rc1" implementation "org.slf4j:slf4j-api:2.0.7" runtimeOnly "ch.qos.logback:logback-core:1.3.8" runtimeOnly "ch.qos.logback:logback-classic:1.3.8" //runtimeOnly "org.slf4j:slf4j-simple:2.0.7" - implementation "org.apache.ws.commons.axiom:axiom:1.2.22" - implementation "org.apache.ws.commons.axiom:axiom-impl:1.2.22" + implementation "org.apache.ws.commons.axiom:axiom:1.4.0" + implementation "org.apache.ws.commons.axiom:axiom-impl:1.4.0" - implementation "org.apache.shiro:shiro-core:1.12.0" - implementation "org.apache.shiro:shiro-root:1.12.0" - implementation "org.apache.shiro:shiro-web:1.12.0" + implementation 'org.apache.shiro:shiro-jakarta-ee:2.0.1' + implementation "org.apache.shiro:shiro-web:2.0.1:jakarta" - implementation "org.apache.cxf:cxf:3.4.10" - implementation "org.apache.cxf:cxf-rt-databinding-aegis:3.2.14" - - runtimeOnly "org.apache.cxf:cxf-rt-transports-http:3.2.14" - runtimeOnly "org.apache.cxf:cxf-rt-frontend-jaxrs:3.2.14" - runtimeOnly "org.apache.cxf:cxf-rt-frontend-jaxws:3.2.14" - runtimeOnly "org.apache.cxf:cxf-rt-security:3.2.14" + implementation "org.apache.cxf:cxf-rt-transports-http:4.0.4" + implementation "org.apache.cxf:cxf-rt-databinding-aegis:4.0.4" + runtimeOnly "org.apache.cxf:cxf-rt-transports-http:4.0.4" + runtimeOnly "org.apache.cxf:cxf-rt-frontend-jaxrs:4.0.4" + runtimeOnly "org.apache.cxf:cxf-rt-frontend-jaxws:4.0.4" + runtimeOnly "org.apache.cxf:cxf-rt-security:4.0.4" implementation "rhino:js:1.7R2" - implementation "org.springframework:spring-core:5.3.29" - implementation "org.springframework:spring-context:5.3.29" - implementation "org.springframework:spring-web:5.3.29" + implementation 'org.springframework:spring-core:6.1.10' + implementation "org.springframework:spring-context:6.1.10" + implementation "org.springframework:spring-web:6.1.10" implementation "com.h2database:h2:2.2.222" - implementation "com.sun.xml.bind:jaxb-impl:2.3.0.1" - implementation "com.sun.xml.bind:jaxb-core:2.3.0.1" - implementation fileTree(dir: "lib/", includes: ["*.jar"], excludes: ["serena.*.jar"]) compileOnly fileTree(dir: "lib/", includes: ["serena.*.jar"]) diff --git a/lib/DocBuilder-20131001.jar b/lib/DocBuilder-20131001.jar deleted file mode 100644 index e94f6a489952190af105b2af06338e514edf2557..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24724 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 diff --git a/src/main/java/net/brutex/xservices/cmtypes/ItemType.java b/src/main/java/net/brutex/xservices/cmtypes/ItemType.java index 7d0f5d4..70df59a 100644 --- a/src/main/java/net/brutex/xservices/cmtypes/ItemType.java +++ b/src/main/java/net/brutex/xservices/cmtypes/ItemType.java @@ -16,9 +16,9 @@ package net.brutex.xservices.cmtypes; -import java.net.URL; -import javax.xml.bind.annotation.XmlType; +import java.net.URL; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="Item") public class ItemType { diff --git a/src/main/java/net/brutex/xservices/cmtypes/ItemTypeList.java b/src/main/java/net/brutex/xservices/cmtypes/ItemTypeList.java index 29e6a5d..a3a3970 100644 --- a/src/main/java/net/brutex/xservices/cmtypes/ItemTypeList.java +++ b/src/main/java/net/brutex/xservices/cmtypes/ItemTypeList.java @@ -20,8 +20,8 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; @XmlRootElement public class ItemTypeList implements Serializable { diff --git a/src/main/java/net/brutex/xservices/security/XServicesRealm.java b/src/main/java/net/brutex/xservices/security/XServicesRealm.java index 4a71582..06b85c4 100644 --- a/src/main/java/net/brutex/xservices/security/XServicesRealm.java +++ b/src/main/java/net/brutex/xservices/security/XServicesRealm.java @@ -20,8 +20,9 @@ package net.brutex.xservices.security; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.config.Ini; +import org.apache.shiro.lang.util.Nameable; import org.apache.shiro.realm.text.IniRealm; -import org.apache.shiro.util.Nameable; + import java.net.URI; import java.net.URISyntaxException; @@ -39,7 +40,7 @@ import java.net.URISyntaxException; * The Class XServicesRealm. */ @Slf4j -public class XServicesRealm extends IniRealm implements Nameable { +public class XServicesRealm extends IniRealm implements Nameable { /** The name. */ diff --git a/src/main/java/net/brutex/xservices/types/AttributeType.java b/src/main/java/net/brutex/xservices/types/AttributeType.java index c5ac273..eeac5e9 100644 --- a/src/main/java/net/brutex/xservices/types/AttributeType.java +++ b/src/main/java/net/brutex/xservices/types/AttributeType.java @@ -16,8 +16,8 @@ package net.brutex.xservices.types; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/CompressionType.java b/src/main/java/net/brutex/xservices/types/CompressionType.java index abe99c8..a895753 100644 --- a/src/main/java/net/brutex/xservices/types/CompressionType.java +++ b/src/main/java/net/brutex/xservices/types/CompressionType.java @@ -16,7 +16,7 @@ package net.brutex.xservices.types; -import javax.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnum; /** * diff --git a/src/main/java/net/brutex/xservices/types/DateFormatType.java b/src/main/java/net/brutex/xservices/types/DateFormatType.java index ec0aa34..aa8ea86 100644 --- a/src/main/java/net/brutex/xservices/types/DateFormatType.java +++ b/src/main/java/net/brutex/xservices/types/DateFormatType.java @@ -21,9 +21,9 @@ import java.util.Date; import java.util.Locale; import java.util.TimeZone; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/DateInfoExtendedType.java b/src/main/java/net/brutex/xservices/types/DateInfoExtendedType.java index 344cfb9..7260b49 100644 --- a/src/main/java/net/brutex/xservices/types/DateInfoExtendedType.java +++ b/src/main/java/net/brutex/xservices/types/DateInfoExtendedType.java @@ -20,8 +20,8 @@ import java.text.SimpleDateFormat; import java.util.GregorianCalendar; import java.util.TimeZone; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/DateInfoType.java b/src/main/java/net/brutex/xservices/types/DateInfoType.java index d63f01e..6a485ec 100644 --- a/src/main/java/net/brutex/xservices/types/DateInfoType.java +++ b/src/main/java/net/brutex/xservices/types/DateInfoType.java @@ -20,8 +20,8 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/DateTimeUnits.java b/src/main/java/net/brutex/xservices/types/DateTimeUnits.java index c9dcb6c..e8ca74e 100644 --- a/src/main/java/net/brutex/xservices/types/DateTimeUnits.java +++ b/src/main/java/net/brutex/xservices/types/DateTimeUnits.java @@ -15,8 +15,8 @@ */ package net.brutex.xservices.types; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; /** * Different pre-defined date formats. diff --git a/src/main/java/net/brutex/xservices/types/FileInfoType.java b/src/main/java/net/brutex/xservices/types/FileInfoType.java index 77de99b..00add1f 100644 --- a/src/main/java/net/brutex/xservices/types/FileInfoType.java +++ b/src/main/java/net/brutex/xservices/types/FileInfoType.java @@ -35,12 +35,12 @@ import java.nio.file.attribute.PosixFileAttributes; import java.nio.file.attribute.UserPrincipal; import java.util.GregorianCalendar; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorOrder; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorOrder; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** * @author Brian Rosenberger, bru(at)brutex.de * diff --git a/src/main/java/net/brutex/xservices/types/HostConnection.java b/src/main/java/net/brutex/xservices/types/HostConnection.java index bdf01f5..b01e01c 100644 --- a/src/main/java/net/brutex/xservices/types/HostConnection.java +++ b/src/main/java/net/brutex/xservices/types/HostConnection.java @@ -16,8 +16,8 @@ package net.brutex.xservices.types; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** * diff --git a/src/main/java/net/brutex/xservices/types/HostinfoType.java b/src/main/java/net/brutex/xservices/types/HostinfoType.java index c102b39..8dbf235 100644 --- a/src/main/java/net/brutex/xservices/types/HostinfoType.java +++ b/src/main/java/net/brutex/xservices/types/HostinfoType.java @@ -23,7 +23,7 @@ import net.brutex.xservices.util.BrutexNamespaces; * Host information. * @author Brian Rosenberger, bru@brutex.de */ -@javax.xml.bind.annotation.XmlType(name=HostinfoType.XML_NAME, namespace=BrutexNamespaces.WS_XSERVICES) +@jakarta.xml.bind.annotation.XmlType(name=HostinfoType.XML_NAME, namespace=BrutexNamespaces.WS_XSERVICES) public class HostinfoType { public final static String XML_NAME="hostinfo"; diff --git a/src/main/java/net/brutex/xservices/types/MailMimeType.java b/src/main/java/net/brutex/xservices/types/MailMimeType.java index 4bb6be7..0083d1a 100644 --- a/src/main/java/net/brutex/xservices/types/MailMimeType.java +++ b/src/main/java/net/brutex/xservices/types/MailMimeType.java @@ -15,8 +15,8 @@ */ package net.brutex.xservices.types; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; /** * MIME types for email messages. diff --git a/src/main/java/net/brutex/xservices/types/NamespaceListType.java b/src/main/java/net/brutex/xservices/types/NamespaceListType.java index d69e688..173981c 100644 --- a/src/main/java/net/brutex/xservices/types/NamespaceListType.java +++ b/src/main/java/net/brutex/xservices/types/NamespaceListType.java @@ -19,8 +19,8 @@ package net.brutex.xservices.types; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** * @author Brian Rosenberger, bru(at)brutex.de diff --git a/src/main/java/net/brutex/xservices/types/NamespaceType.java b/src/main/java/net/brutex/xservices/types/NamespaceType.java index 496ceb0..c5f1765 100644 --- a/src/main/java/net/brutex/xservices/types/NamespaceType.java +++ b/src/main/java/net/brutex/xservices/types/NamespaceType.java @@ -18,8 +18,8 @@ package net.brutex.xservices.types; import java.net.URI; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** * @author Brian Rosenberger, bru(at)brutex.de diff --git a/src/main/java/net/brutex/xservices/types/ReplacePattern.java b/src/main/java/net/brutex/xservices/types/ReplacePattern.java index 8ddbe03..0e465a6 100644 --- a/src/main/java/net/brutex/xservices/types/ReplacePattern.java +++ b/src/main/java/net/brutex/xservices/types/ReplacePattern.java @@ -18,8 +18,8 @@ package net.brutex.xservices.types; import java.util.ArrayList; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** * Generic key/ value pairs. diff --git a/src/main/java/net/brutex/xservices/types/ReturnCode.java b/src/main/java/net/brutex/xservices/types/ReturnCode.java index a9c6e8f..562de78 100644 --- a/src/main/java/net/brutex/xservices/types/ReturnCode.java +++ b/src/main/java/net/brutex/xservices/types/ReturnCode.java @@ -17,8 +17,8 @@ package net.brutex.xservices.types; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.types.ant.AntProperty; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/RuntimeInfoType.java b/src/main/java/net/brutex/xservices/types/RuntimeInfoType.java index e1d3fba..af01212 100644 --- a/src/main/java/net/brutex/xservices/types/RuntimeInfoType.java +++ b/src/main/java/net/brutex/xservices/types/RuntimeInfoType.java @@ -16,7 +16,7 @@ package net.brutex.xservices.types; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElement; /** * @author Brian Rosenberger, bru(at)brutex.de diff --git a/src/main/java/net/brutex/xservices/types/ScheduledJob.java b/src/main/java/net/brutex/xservices/types/ScheduledJob.java index 7573965..92c8308 100644 --- a/src/main/java/net/brutex/xservices/types/ScheduledJob.java +++ b/src/main/java/net/brutex/xservices/types/ScheduledJob.java @@ -17,10 +17,10 @@ package net.brutex.xservices.types; import java.util.GregorianCalendar; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/StringMatchType.java b/src/main/java/net/brutex/xservices/types/StringMatchType.java index d372933..84583dc 100644 --- a/src/main/java/net/brutex/xservices/types/StringMatchType.java +++ b/src/main/java/net/brutex/xservices/types/StringMatchType.java @@ -19,7 +19,7 @@ package net.brutex.xservices.types; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlType; /** * @author Brian Rosenberger, bru(at)brutex.de diff --git a/src/main/java/net/brutex/xservices/types/StringReplaceType.java b/src/main/java/net/brutex/xservices/types/StringReplaceType.java index f8f7cb4..f4b9ccf 100644 --- a/src/main/java/net/brutex/xservices/types/StringReplaceType.java +++ b/src/main/java/net/brutex/xservices/types/StringReplaceType.java @@ -16,7 +16,7 @@ package net.brutex.xservices.types; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlType; @XmlType public class StringReplaceType diff --git a/src/main/java/net/brutex/xservices/types/StringSplitType.java b/src/main/java/net/brutex/xservices/types/StringSplitType.java index e1c03f1..658e61b 100644 --- a/src/main/java/net/brutex/xservices/types/StringSplitType.java +++ b/src/main/java/net/brutex/xservices/types/StringSplitType.java @@ -19,7 +19,7 @@ package net.brutex.xservices.types; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlType; /** * @author Brian Rosenberger, bru(at)brutex.de diff --git a/src/main/java/net/brutex/xservices/types/TargetNodeType.java b/src/main/java/net/brutex/xservices/types/TargetNodeType.java index 624a69b..f133f43 100644 --- a/src/main/java/net/brutex/xservices/types/TargetNodeType.java +++ b/src/main/java/net/brutex/xservices/types/TargetNodeType.java @@ -16,8 +16,8 @@ package net.brutex.xservices.types; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/TimeZoneType.java b/src/main/java/net/brutex/xservices/types/TimeZoneType.java index adf52b2..4308aff 100644 --- a/src/main/java/net/brutex/xservices/types/TimeZoneType.java +++ b/src/main/java/net/brutex/xservices/types/TimeZoneType.java @@ -17,8 +17,8 @@ package net.brutex.xservices.types; import java.util.TimeZone; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/ALFEventResponseType.java b/src/main/java/net/brutex/xservices/types/alfevent/ALFEventResponseType.java index efe0094..1650bfd 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/ALFEventResponseType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/ALFEventResponseType.java @@ -3,10 +3,10 @@ package net.brutex.xservices.types.alfevent; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/ALFEventType.java b/src/main/java/net/brutex/xservices/types/alfevent/ALFEventType.java index f888840..16b8d49 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/ALFEventType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/ALFEventType.java @@ -3,12 +3,12 @@ package net.brutex.xservices.types.alfevent; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/ALFEventWithReplyResponseType.java b/src/main/java/net/brutex/xservices/types/alfevent/ALFEventWithReplyResponseType.java index 20b8b77..d9e328b 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/ALFEventWithReplyResponseType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/ALFEventWithReplyResponseType.java @@ -3,10 +3,10 @@ package net.brutex.xservices.types.alfevent; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/ALFSecurityType.java b/src/main/java/net/brutex/xservices/types/alfevent/ALFSecurityType.java index 7636b4a..a2c2fba 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/ALFSecurityType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/ALFSecurityType.java @@ -5,12 +5,12 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyAttribute; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyAttribute; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.namespace.QName; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/BaseExtensionType.java b/src/main/java/net/brutex/xservices/types/alfevent/BaseExtensionType.java index 696bc0f..b11d673 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/BaseExtensionType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/BaseExtensionType.java @@ -5,11 +5,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyAttribute; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyAttribute; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.namespace.QName; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/CredentialsType.java b/src/main/java/net/brutex/xservices/types/alfevent/CredentialsType.java index 3c8026a..ae5e063 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/CredentialsType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/CredentialsType.java @@ -5,12 +5,12 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyAttribute; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyAttribute; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.namespace.QName; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/CustomExtensionType.java b/src/main/java/net/brutex/xservices/types/alfevent/CustomExtensionType.java index 7956f87..d285f50 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/CustomExtensionType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/CustomExtensionType.java @@ -5,11 +5,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyAttribute; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyAttribute; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.namespace.QName; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/DetailExtensionType.java b/src/main/java/net/brutex/xservices/types/alfevent/DetailExtensionType.java index 451b327..c79bd0d 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/DetailExtensionType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/DetailExtensionType.java @@ -5,11 +5,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyAttribute; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyAttribute; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.namespace.QName; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/EmBaseType.java b/src/main/java/net/brutex/xservices/types/alfevent/EmBaseType.java index 1a32942..9abfc4f 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/EmBaseType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/EmBaseType.java @@ -3,12 +3,12 @@ package net.brutex.xservices.types.alfevent; import java.util.HashMap; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/EmExtensionType.java b/src/main/java/net/brutex/xservices/types/alfevent/EmExtensionType.java index d821630..f0235fb 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/EmExtensionType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/EmExtensionType.java @@ -5,11 +5,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyAttribute; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyAttribute; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.namespace.QName; import org.w3c.dom.Element; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/EventBaseType.java b/src/main/java/net/brutex/xservices/types/alfevent/EventBaseType.java index 8f77e4a..d3949f6 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/EventBaseType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/EventBaseType.java @@ -3,12 +3,12 @@ package net.brutex.xservices.types.alfevent; import java.util.HashMap; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/ObjectFactory.java b/src/main/java/net/brutex/xservices/types/alfevent/ObjectFactory.java index aa0330d..46426e3 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/ObjectFactory.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/ObjectFactory.java @@ -1,9 +1,9 @@ package net.brutex.xservices.types.alfevent; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; import javax.xml.namespace.QName; diff --git a/src/main/java/net/brutex/xservices/types/alfevent/SourceType.java b/src/main/java/net/brutex/xservices/types/alfevent/SourceType.java index ddb23a9..906196d 100644 --- a/src/main/java/net/brutex/xservices/types/alfevent/SourceType.java +++ b/src/main/java/net/brutex/xservices/types/alfevent/SourceType.java @@ -1,11 +1,11 @@ package net.brutex.xservices.types.alfevent; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/src/main/java/net/brutex/xservices/types/ant/AntProperty.java b/src/main/java/net/brutex/xservices/types/ant/AntProperty.java index b93d6c2..64aa560 100644 --- a/src/main/java/net/brutex/xservices/types/ant/AntProperty.java +++ b/src/main/java/net/brutex/xservices/types/ant/AntProperty.java @@ -19,8 +19,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** * Generic key/ value pairs. diff --git a/src/main/java/net/brutex/xservices/types/ant/ArchiveResource.java b/src/main/java/net/brutex/xservices/types/ant/ArchiveResource.java index cdf0f1b..8f4fc6b 100644 --- a/src/main/java/net/brutex/xservices/types/ant/ArchiveResource.java +++ b/src/main/java/net/brutex/xservices/types/ant/ArchiveResource.java @@ -17,9 +17,9 @@ package net.brutex.xservices.types.ant; import java.io.File; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; import org.apache.tools.ant.Project; diff --git a/src/main/java/net/brutex/xservices/types/ant/AttachmentType.java b/src/main/java/net/brutex/xservices/types/ant/AttachmentType.java index d95f369..a70df87 100644 --- a/src/main/java/net/brutex/xservices/types/ant/AttachmentType.java +++ b/src/main/java/net/brutex/xservices/types/ant/AttachmentType.java @@ -19,8 +19,8 @@ package net.brutex.xservices.types.ant; import java.io.File; import java.io.IOException; -import javax.activation.DataHandler; -import javax.xml.bind.annotation.XmlMimeType; +import jakarta.activation.DataHandler; +import jakarta.xml.bind.annotation.XmlMimeType; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/types/ant/CollectionType.java b/src/main/java/net/brutex/xservices/types/ant/CollectionType.java index 943321c..2f73ff9 100644 --- a/src/main/java/net/brutex/xservices/types/ant/CollectionType.java +++ b/src/main/java/net/brutex/xservices/types/ant/CollectionType.java @@ -18,8 +18,8 @@ package net.brutex.xservices.types.ant; import java.util.UUID; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** * Defines a collection of storable objects. diff --git a/src/main/java/net/brutex/xservices/types/ant/ContainsSelectorType.java b/src/main/java/net/brutex/xservices/types/ant/ContainsSelectorType.java index 5522d06..2160bb9 100644 --- a/src/main/java/net/brutex/xservices/types/ant/ContainsSelectorType.java +++ b/src/main/java/net/brutex/xservices/types/ant/ContainsSelectorType.java @@ -16,8 +16,8 @@ package net.brutex.xservices.types.ant; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import org.apache.tools.ant.types.selectors.ContainsSelector; import org.apache.tools.ant.types.selectors.FileSelector; diff --git a/src/main/java/net/brutex/xservices/types/ant/DateInfoType.java b/src/main/java/net/brutex/xservices/types/ant/DateInfoType.java index aa46470..c9fa1f4 100644 --- a/src/main/java/net/brutex/xservices/types/ant/DateInfoType.java +++ b/src/main/java/net/brutex/xservices/types/ant/DateInfoType.java @@ -19,8 +19,8 @@ package net.brutex.xservices.types.ant; import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.types.DateFormatType; /** diff --git a/src/main/java/net/brutex/xservices/types/ant/FileResource.java b/src/main/java/net/brutex/xservices/types/ant/FileResource.java index f3f191e..fbd3abc 100644 --- a/src/main/java/net/brutex/xservices/types/ant/FileResource.java +++ b/src/main/java/net/brutex/xservices/types/ant/FileResource.java @@ -17,9 +17,9 @@ package net.brutex.xservices.types.ant; import java.io.File; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlType; import net.brutex.xservices.util.BrutexNamespaces; import org.apache.tools.ant.Project; diff --git a/src/main/java/net/brutex/xservices/types/ant/FileSetResource.java b/src/main/java/net/brutex/xservices/types/ant/FileSetResource.java index 9a74adf..3999cf6 100644 --- a/src/main/java/net/brutex/xservices/types/ant/FileSetResource.java +++ b/src/main/java/net/brutex/xservices/types/ant/FileSetResource.java @@ -16,9 +16,9 @@ package net.brutex.xservices.types.ant; import java.io.File; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlType; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.Resource; diff --git a/src/main/java/net/brutex/xservices/types/ant/PatternElement.java b/src/main/java/net/brutex/xservices/types/ant/PatternElement.java index 8c355f8..0136551 100644 --- a/src/main/java/net/brutex/xservices/types/ant/PatternElement.java +++ b/src/main/java/net/brutex/xservices/types/ant/PatternElement.java @@ -16,8 +16,8 @@ package net.brutex.xservices.types.ant; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** * diff --git a/src/main/java/net/brutex/xservices/types/ant/PatternSetType.java b/src/main/java/net/brutex/xservices/types/ant/PatternSetType.java index 1aa9ac1..936c861 100644 --- a/src/main/java/net/brutex/xservices/types/ant/PatternSetType.java +++ b/src/main/java/net/brutex/xservices/types/ant/PatternSetType.java @@ -16,7 +16,7 @@ package net.brutex.xservices.types.ant; import java.util.List; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElement; /** * diff --git a/src/main/java/net/brutex/xservices/types/ant/SelectorType.java b/src/main/java/net/brutex/xservices/types/ant/SelectorType.java index 4e84ea0..9f71af4 100644 --- a/src/main/java/net/brutex/xservices/types/ant/SelectorType.java +++ b/src/main/java/net/brutex/xservices/types/ant/SelectorType.java @@ -17,7 +17,7 @@ package net.brutex.xservices.types.ant; import java.util.List; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElement; import org.apache.tools.ant.types.selectors.FileSelector; /** diff --git a/src/main/java/net/brutex/xservices/util/EventmanagerConfiguration.java b/src/main/java/net/brutex/xservices/util/EventmanagerConfiguration.java index 512dc50..74c925a 100644 --- a/src/main/java/net/brutex/xservices/util/EventmanagerConfiguration.java +++ b/src/main/java/net/brutex/xservices/util/EventmanagerConfiguration.java @@ -12,7 +12,7 @@ import org.apache.commons.configuration2.event.ConfigurationEvent; import org.apache.commons.configuration2.event.EventListener; import org.apache.commons.configuration2.ex.ConfigurationException; -import javax.servlet.ServletContext; +import jakarta.servlet.ServletContext; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.List; @@ -48,6 +48,7 @@ public class EventmanagerConfiguration { private int cleaner_interval; private List alf_filter = new ArrayList<>(); private int init_delay; + private long logMaxAge; public synchronized EventmanagerConfiguration refreshConfig() { @@ -66,6 +67,7 @@ public class EventmanagerConfiguration { this.jdbc_filedb = config.getString("fdb", "jdbc:h2:mem:lockdb;DB_CLOSE_DELAY=-1;"); this.isEmitterActive = config.getBoolean("emitter_active", true); this.cleaner_interval = config.getInt("cleaner_interval", 5); + this.logMaxAge = config.getLong("logMaxAge", 72); List lst = config.getList(String.class,"alf_filter", new ArrayList()); for ( String c :lst ) { diff --git a/src/main/java/net/brutex/xservices/util/LockCleanerJob.java b/src/main/java/net/brutex/xservices/util/LockCleanerJob.java index cd1df01..e7e543f 100644 --- a/src/main/java/net/brutex/xservices/util/LockCleanerJob.java +++ b/src/main/java/net/brutex/xservices/util/LockCleanerJob.java @@ -3,6 +3,8 @@ package net.brutex.xservices.util; import java.sql.*; import java.time.Instant; import java.util.concurrent.atomic.AtomicBoolean; + +import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.h2.jdbcx.JdbcConnectionPool; import org.quartz.*; @@ -18,6 +20,7 @@ public class LockCleanerJob implements Job, InterruptableJob { log.debug("LockCleaner is executing now."); final Instant d = Instant.now(); final long ts = d.toEpochMilli(); + @NonNull final JdbcConnectionPool mpool = (JdbcConnectionPool) context.getMergedJobDataMap().get("mdbConnection"); final String deleteMemTable = "DELETE FROM brutex.tbl_lock where btx_validity < " + (ts-5000); diff --git a/src/main/java/net/brutex/xservices/util/MiscServiceServletContextListener.java b/src/main/java/net/brutex/xservices/util/MiscServiceServletContextListener.java index aa53901..fe2f31b 100644 --- a/src/main/java/net/brutex/xservices/util/MiscServiceServletContextListener.java +++ b/src/main/java/net/brutex/xservices/util/MiscServiceServletContextListener.java @@ -6,10 +6,10 @@ import org.h2.jdbcx.JdbcConnectionPool; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.annotation.WebListener; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; @@ -187,6 +187,7 @@ public class MiscServiceServletContextListener implements ServletContextListener } startLockCleaner((Scheduler) context.getAttribute("scheduler")); + startLogRetention((Scheduler) context.getAttribute("scheduler")); } private String getLinkSQL() { @@ -262,6 +263,32 @@ public class MiscServiceServletContextListener implements ServletContextListener } } + private void startLogRetention(Scheduler scheduler) { + try { + if (!scheduler.checkExists(JobKey.jobKey("Retention"))) { + JobDetail job2 = JobBuilder.newJob(RetentionJob.class).withIdentity("Retention").build(); + job2.getJobDataMap().put("fdbConnection", fdbpool); + SimpleTrigger t = + (SimpleTrigger) + newTrigger() + .withIdentity("Retention") + .withSchedule( + SimpleScheduleBuilder.simpleSchedule() + .withIntervalInMinutes(60) + .repeatForever()) + .startAt( + Date.from( + Instant.now() + .plus(60, ChronoUnit.MINUTES))) + .build(); + scheduler.scheduleJob(job2, t); + } + } catch (SchedulerException ex) { + log.error("Could not start Retention: {}", ex.getMessage()); + } + } + + private void readConfiguration(ServletContext ctx) { /* Configure ServletContext attributes using configuration object*/ EventmanagerConfiguration c = EventmanagerConfiguration.getInstance().refreshConfig(); diff --git a/src/main/java/net/brutex/xservices/util/RetentionJob.java b/src/main/java/net/brutex/xservices/util/RetentionJob.java new file mode 100644 index 0000000..b11fd01 --- /dev/null +++ b/src/main/java/net/brutex/xservices/util/RetentionJob.java @@ -0,0 +1,52 @@ +package net.brutex.xservices.util; + +import java.sql.*; +import java.time.Instant; +import java.util.concurrent.atomic.AtomicBoolean; +import lombok.extern.slf4j.Slf4j; +import org.h2.jdbcx.JdbcConnectionPool; +import org.quartz.*; + +@Slf4j +@DisallowConcurrentExecution +public class RetentionJob implements Job, InterruptableJob { + + private final AtomicBoolean isInterrupted = new AtomicBoolean(false); + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + log.debug("Retention job is executing now for alf event logs."); + final Instant d = Instant.now(); + final long ts = d.toEpochMilli(); + final JdbcConnectionPool fpool = (JdbcConnectionPool) context.getMergedJobDataMap().get("fdbConnection"); + final EventmanagerConfiguration conf = (EventmanagerConfiguration) context.getMergedJobDataMap().get(EventmanagerConfiguration.KEY); + final String deleteMemTable = "DELETE FROM brutex.tbl_events_all where btx_timestamp < " + (ts-(conf.getLogMaxAge()*60*60*1000)); + + try (Connection mcon = fpool.getConnection()) { + Statement stmt = mcon.createStatement(); + stmt.execute(deleteMemTable); + int count = stmt.getUpdateCount(); + log.debug("Retention job deleted '{}' stale locks.", count); + + } catch (SQLException e) { + log.error("Exception in SQL execution: {}", e.getMessage()); + throw new JobExecutionException(e); + } + } + + + /** + *

+ * Called by the {@link Scheduler} when a user + * interrupts the Job. + *

+ * + * @throws UnableToInterruptJobException if there is an exception while interrupting the job. + */ + @Override + public synchronized void interrupt() throws UnableToInterruptJobException { + isInterrupted.set(true); + log.warn("Retention job received an interrupt."); + Thread.currentThread().interrupt(); + } +} diff --git a/src/main/java/net/brutex/xservices/util/cache/CacheExecutorService.java b/src/main/java/net/brutex/xservices/util/cache/CacheExecutorService.java index 5bff845..6179f79 100644 --- a/src/main/java/net/brutex/xservices/util/cache/CacheExecutorService.java +++ b/src/main/java/net/brutex/xservices/util/cache/CacheExecutorService.java @@ -19,9 +19,9 @@ package net.brutex.xservices.util.cache; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; /** * @author Brian Rosenberger, bru(at)brutex.de diff --git a/src/main/java/net/brutex/xservices/util/cache/CacheServlet.java b/src/main/java/net/brutex/xservices/util/cache/CacheServlet.java index 0123dbc..2e44536 100644 --- a/src/main/java/net/brutex/xservices/util/cache/CacheServlet.java +++ b/src/main/java/net/brutex/xservices/util/cache/CacheServlet.java @@ -21,8 +21,8 @@ import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.concurrent.ExecutorService; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; import lombok.extern.slf4j.Slf4j; import net.brutex.xservices.types.scm.ObjectFactory; diff --git a/src/main/java/net/brutex/xservices/util/cache/FindingsCacheServlet.java b/src/main/java/net/brutex/xservices/util/cache/FindingsCacheServlet.java index e32fe2e..d0b2f38 100644 --- a/src/main/java/net/brutex/xservices/util/cache/FindingsCacheServlet.java +++ b/src/main/java/net/brutex/xservices/util/cache/FindingsCacheServlet.java @@ -26,10 +26,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.ws.rs.core.Response; import lombok.extern.slf4j.Slf4j; import net.brutex.xservices.types.scm.ItemListType; @@ -46,6 +42,9 @@ import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.commons.jcs.access.exception.CacheException; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; + /** * @author Brian Rosenberger, bru(at)brutex.de diff --git a/src/main/java/net/brutex/xservices/ws/ArchiveService.java b/src/main/java/net/brutex/xservices/ws/ArchiveService.java index b49ddd5..2d3ec02 100644 --- a/src/main/java/net/brutex/xservices/ws/ArchiveService.java +++ b/src/main/java/net/brutex/xservices/ws/ArchiveService.java @@ -15,9 +15,9 @@ g * Copyright 2010 Brian Rosenberger (Brutex Network) */ package net.brutex.xservices.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; import net.brutex.xservices.types.CompressionType; import net.brutex.xservices.types.ReturnCode; diff --git a/src/main/java/net/brutex/xservices/ws/DateService.java b/src/main/java/net/brutex/xservices/ws/DateService.java index 01e939c..53aa6d2 100644 --- a/src/main/java/net/brutex/xservices/ws/DateService.java +++ b/src/main/java/net/brutex/xservices/ws/DateService.java @@ -21,11 +21,10 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.List; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.datatype.XMLGregorianCalendar; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; +import jakarta.xml.bind.annotation.XmlElement; import net.brutex.xservices.types.DateFormatType; import net.brutex.xservices.types.DateInfoExtendedType; diff --git a/src/main/java/net/brutex/xservices/ws/ExecuteService.java b/src/main/java/net/brutex/xservices/ws/ExecuteService.java index 644a77c..5c267cf 100644 --- a/src/main/java/net/brutex/xservices/ws/ExecuteService.java +++ b/src/main/java/net/brutex/xservices/ws/ExecuteService.java @@ -16,10 +16,10 @@ package net.brutex.xservices.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlElement; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; +import jakarta.xml.bind.annotation.XmlElement; import net.brutex.xservices.types.HostConnection; import net.brutex.xservices.types.ReturnCode; diff --git a/src/main/java/net/brutex/xservices/ws/FileService.java b/src/main/java/net/brutex/xservices/ws/FileService.java index 44c4d64..6e8524c 100644 --- a/src/main/java/net/brutex/xservices/ws/FileService.java +++ b/src/main/java/net/brutex/xservices/ws/FileService.java @@ -18,10 +18,10 @@ package net.brutex.xservices.ws; import java.util.List; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlElement; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; +import jakarta.xml.bind.annotation.XmlElement; import org.apache.cxf.annotations.WSDLDocumentation; import org.apache.cxf.annotations.WSDLDocumentationCollection; diff --git a/src/main/java/net/brutex/xservices/ws/JobService.java b/src/main/java/net/brutex/xservices/ws/JobService.java index 11898fe..5f6664b 100644 --- a/src/main/java/net/brutex/xservices/ws/JobService.java +++ b/src/main/java/net/brutex/xservices/ws/JobService.java @@ -18,10 +18,10 @@ package net.brutex.xservices.ws; import java.util.List; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlElement; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; +import jakarta.xml.bind.annotation.XmlElement; import net.brutex.xservices.types.ScheduledJob; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/ws/MailService.java b/src/main/java/net/brutex/xservices/ws/MailService.java index e43d83e..ad61dcf 100644 --- a/src/main/java/net/brutex/xservices/ws/MailService.java +++ b/src/main/java/net/brutex/xservices/ws/MailService.java @@ -15,10 +15,10 @@ */ package net.brutex.xservices.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlElement; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; +import jakarta.xml.bind.annotation.XmlElement; import net.brutex.xservices.types.HostConnection; import net.brutex.xservices.types.MailMimeType; diff --git a/src/main/java/net/brutex/xservices/ws/MiscService.java b/src/main/java/net/brutex/xservices/ws/MiscService.java index 9b8c1be..d8dc521 100644 --- a/src/main/java/net/brutex/xservices/ws/MiscService.java +++ b/src/main/java/net/brutex/xservices/ws/MiscService.java @@ -15,10 +15,10 @@ */ package net.brutex.xservices.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; +import jakarta.jws.soap.SOAPBinding; import net.brutex.xservices.types.HostConnection; import net.brutex.xservices.types.HostinfoType; diff --git a/src/main/java/net/brutex/xservices/ws/OpenAirProxyService.java b/src/main/java/net/brutex/xservices/ws/OpenAirProxyService.java deleted file mode 100644 index 65a4658..0000000 --- a/src/main/java/net/brutex/xservices/ws/OpenAirProxyService.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright 2017 Brian Rosenberger (Brutex Network) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.brutex.xservices.ws; - -import java.util.GregorianCalendar; -import java.util.List; - -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.xml.bind.annotation.XmlElement; - -import org.apache.cxf.annotations.WSDLDocumentation; - -import net.brutex.mgmt.api.xml.AnyEntity; -import net.brutex.mgmt.api.xml.Customer; -import net.brutex.mgmt.api.xml.Project; -import net.brutex.mgmt.api.xml.TimesheetEntry; -import net.brutex.mgmt.api.xml.TimesheetFilter; -import net.brutex.mgmt.api.xml.User; -import net.brutex.xservices.types.ant.AttachmentType; -import net.brutex.xservices.util.BrutexNamespaces; - - - -/** - * OpenAir proxy services - * @author Brian Rosenberger - * @since 20160531 - * - */ -@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES) -public interface OpenAirProxyService { - - public static final String SERVICE_NAME = "OpenAirProxyService"; - final String OPERATION_GETTIMEENTRIES = "getTimeentries"; - final String OPERATION_GETEXCELTIMESHEET = "getExcelTimesheet"; - final String OPERATION_GETEXCELTIMESHEET2 = "getExcelTimesheet2"; - final String OPERATION_GETPROJECTBYEXTERNALID = "getProjectsByExternalId"; - final String OPERATION_GETPROJECTBYOPPID = "getProjectsByOppId"; - final String OPERATION_GETCUSTOMERBYID = "getCustomerById"; - final String OPERATION_GETUSERBYID = "getUserById"; - final String OPERATION_GETUSERBYUSERNAME = "getUserByUsername"; - final String OPERATION_GETANYOBJECT = "getAnyObject"; - final String OPERATION_GETUPDATEDCOMPANIES = "getUpdatedCustomer"; - final String OPERATION_GETUPDATEDPROJECTS = "getUpdatedProject"; - - - final String PARAM_PROJECTID = "oa_projectid"; - final String PARAM_CUSTOMERID = "oa_customerid"; - final String PARAM_USERID = "oa_userid"; - final String PARAM_USERNAME = "oa_username"; - final String PARAM_TEMPLATE ="template"; - final String PARAM_STARTDATE = "startdate"; - final String PARAM_ENDDATE = "enddate"; - final String PARAM_ENTRYLIST = "timeentries"; - final String PARAM_EXTERNALID = "externalid"; - final String PARAM_OPPID = "oppid"; - final String PARAM_INCLUDENONBILLABLE = "includeNonBillable"; - final String PARAM_OBJECTTYPE = "objecttype"; - final String PARAM_QUERIES = "queries"; - final String PARAM_DATE = "datetime"; - final String PARAM_OFFSET = "offset_minutes"; - final String PARAM_TIMESHEETSTATUS = "timesheetstatus"; - - /** - * Get a list of time entries. - * - * @return List of time entries - * @throws XServicesFault - */ - @WebMethod(operationName=OPERATION_GETTIMEENTRIES) - @WSDLDocumentation(value="Get list of time entries") - public abstract List getTimeEntryList( - @WebParam(name=PARAM_PROJECTID) int oa_projectid, - @WebParam(name=PARAM_CUSTOMERID) int oa_customerid, - @WebParam(name=PARAM_USERID) int oa_userid, - @WebParam(name=PARAM_STARTDATE) GregorianCalendar startdate, - @WebParam(name=PARAM_ENDDATE) GregorianCalendar enddate, - @WebParam(name=PARAM_INCLUDENONBILLABLE) boolean includeNonBillable, - @WebParam(name=PARAM_TIMESHEETSTATUS) java.util.List filter) - throws XServicesFault; - - - - /** - * Get an excel time sheet file. - * - * @return List of time entries - * @throws XServicesFault - */ - @WebMethod(operationName=OPERATION_GETEXCELTIMESHEET) - @WSDLDocumentation(value="Get an excel time sheet file.") - public abstract AttachmentType getExcelTimesheet( - @WebParam(name=PARAM_PROJECTID) int oa_projectid, - @WebParam(name=PARAM_CUSTOMERID) int oa_customerid, - @WebParam(name=PARAM_USERID) int oa_userid, - @WebParam(name=PARAM_STARTDATE) GregorianCalendar startdate, - @WebParam(name=PARAM_ENDDATE) GregorianCalendar enddate, - @WebParam(name=PARAM_INCLUDENONBILLABLE) boolean includeNonBillable, - @WebParam(name=PARAM_TIMESHEETSTATUS) java.util.List filter, - @WebParam(name=PARAM_TEMPLATE) AttachmentType templatefile) throws XServicesFault; - - /** - * Get an excel time sheet file. - * - * @return List of time entries - * @throws XServicesFault - */ - @WebMethod(operationName=OPERATION_GETEXCELTIMESHEET2) - @WSDLDocumentation(value="Get an excel time sheet file.") - public abstract AttachmentType getExcelTimesheet2( - @WebParam(name=PARAM_ENTRYLIST) List entries, - @WebParam(name=PARAM_INCLUDENONBILLABLE) boolean includeNonBillable, - @WebParam(name=PARAM_TEMPLATE) AttachmentType templatefile) throws XServicesFault; - - - /** - * Get a project from External Id - * - * @return List of projects with this ExternalId - * @throws XServicesFault - */ - @WebMethod(operationName=OPERATION_GETPROJECTBYEXTERNALID) - @WSDLDocumentation(value="Get a project from External Id") - public abstract List getProjectsByExternalId( - @WebParam(name=PARAM_EXTERNALID) String externalid) throws XServicesFault; - - /** - * Get a project from Opportunity - * - * @return List of projects with this Opportunity - * @throws XServicesFault - */ - @WebMethod(operationName=OPERATION_GETPROJECTBYOPPID) - @WSDLDocumentation(value="Get a project from Opportunity Id") - public abstract List getProjectsByOppId( - @WebParam(name=PARAM_OPPID) String oppid) throws XServicesFault; - - /** - * Get a customer by its ID - * - * @return Customer object - * @throws XServicesFault - */ - @WebMethod(operationName=OPERATION_GETCUSTOMERBYID) - @WSDLDocumentation(value="Get a customer by its Id") - public abstract Customer getCustomerById( - @WebParam(name=PARAM_CUSTOMERID) int customerid) throws XServicesFault; - - /** - * Get a user record by its ID - * - * @return user object - * @throws XServicesFault - */ - @WebMethod(operationName=OPERATION_GETUSERBYID) - @WSDLDocumentation(value="Get a user by its Id") - public abstract User getUserById( - @WebParam(name=PARAM_USERID) int userid) throws XServicesFault; - - - /** - * Get a user record by its username - * - * @return user object - * @throws XServicesFault - */ - @WebMethod(operationName=OPERATION_GETUSERBYUSERNAME) - @WSDLDocumentation(value="Get a user by its username") - public abstract User getUserByUsername( - @WebParam(name=PARAM_USERNAME) String username) throws XServicesFault; - - @WebMethod(operationName=OPERATION_GETANYOBJECT) - @WSDLDocumentation(value="Get any Object by Query") - public abstract List getAnyObject( - @WebParam(name=PARAM_OBJECTTYPE) @XmlElement(required=true) String objecttype, - @WebParam(name=PARAM_QUERIES) List queries) throws XServicesFault; - - - @WebMethod(operationName=OPERATION_GETUPDATEDCOMPANIES) - @WSDLDocumentation(value="Get updated customers") - public abstract List getUpdatedCustomer( - @WebParam(name=PARAM_DATE) @XmlElement(required=true) GregorianCalendar date, - @WebParam(name=PARAM_OFFSET) @XmlElement(required=true) int offset) - throws XServicesFault; - - @WebMethod(operationName=OPERATION_GETUPDATEDPROJECTS) - @WSDLDocumentation(value="Get updated projects") - - public abstract List getUpdatedProjects( - @WebParam(name=PARAM_DATE) @XmlElement(required=true) GregorianCalendar date, - @WebParam(name=PARAM_OFFSET) @XmlElement(required=true) int offset) - throws XServicesFault; - - - public class QueryParameter { - @XmlElement(required=true) - public String field; - @XmlElement(required=true) - public String value; - } -} diff --git a/src/main/java/net/brutex/xservices/ws/StorageService.java b/src/main/java/net/brutex/xservices/ws/StorageService.java index 28fe29b..7dfdc92 100644 --- a/src/main/java/net/brutex/xservices/ws/StorageService.java +++ b/src/main/java/net/brutex/xservices/ws/StorageService.java @@ -16,9 +16,9 @@ package net.brutex.xservices.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; import net.brutex.xservices.types.TargetNodeType; import net.brutex.xservices.types.ant.AttachmentType; import net.brutex.xservices.types.ant.CollectionType; diff --git a/src/main/java/net/brutex/xservices/ws/StringService.java b/src/main/java/net/brutex/xservices/ws/StringService.java index 7e4fafe..c0c418c 100644 --- a/src/main/java/net/brutex/xservices/ws/StringService.java +++ b/src/main/java/net/brutex/xservices/ws/StringService.java @@ -16,10 +16,10 @@ package net.brutex.xservices.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlElement; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; +import jakarta.xml.bind.annotation.XmlElement; import net.brutex.xservices.types.StringMatchType; import net.brutex.xservices.types.StringReplaceType; diff --git a/src/main/java/net/brutex/xservices/ws/XServicesFault.java b/src/main/java/net/brutex/xservices/ws/XServicesFault.java index 5343023..c246b42 100644 --- a/src/main/java/net/brutex/xservices/ws/XServicesFault.java +++ b/src/main/java/net/brutex/xservices/ws/XServicesFault.java @@ -17,13 +17,13 @@ package net.brutex.xservices.ws; import java.util.GregorianCalendar; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; -import javax.xml.ws.WebFault; +import jakarta.xml.ws.WebFault; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/ws/XmlService.java b/src/main/java/net/brutex/xservices/ws/XmlService.java index cc67f2f..e010ab3 100644 --- a/src/main/java/net/brutex/xservices/ws/XmlService.java +++ b/src/main/java/net/brutex/xservices/ws/XmlService.java @@ -16,10 +16,10 @@ package net.brutex.xservices.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlElement; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; +import jakarta.xml.bind.annotation.XmlElement; import net.brutex.xservices.types.AttributeType; import net.brutex.xservices.types.NamespaceListType; diff --git a/src/main/java/net/brutex/xservices/ws/impl/ArchiveServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/ArchiveServiceImpl.java index 4b8f64c..d076d40 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/ArchiveServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/ArchiveServiceImpl.java @@ -16,9 +16,9 @@ package net.brutex.xservices.ws.impl; import java.io.File; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; import net.brutex.xservices.types.CompressionType; import net.brutex.xservices.types.ReturnCode; import net.brutex.xservices.types.ant.ArchiveResource; diff --git a/src/main/java/net/brutex/xservices/ws/impl/DateServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/DateServiceImpl.java index 62bff0f..959cb1d 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/DateServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/DateServiceImpl.java @@ -24,7 +24,7 @@ import java.util.GregorianCalendar; import java.util.List; import java.util.TimeZone; -import javax.jws.WebService; +import jakarta.jws.WebService; import net.brutex.xservices.types.DateFormatType; import net.brutex.xservices.types.DateInfoExtendedType; import net.brutex.xservices.types.DateInfoType; diff --git a/src/main/java/net/brutex/xservices/ws/impl/ExecuteServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/ExecuteServiceImpl.java index 934499c..07e208c 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/ExecuteServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/ExecuteServiceImpl.java @@ -17,9 +17,9 @@ package net.brutex.xservices.ws.impl; import java.io.File; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; import net.brutex.xservices.types.HostConnection; import net.brutex.xservices.types.ReturnCode; import net.brutex.xservices.util.BrutexNamespaces; diff --git a/src/main/java/net/brutex/xservices/ws/impl/FileServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/FileServiceImpl.java index 5945eb7..a81c2e4 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/FileServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/FileServiceImpl.java @@ -22,10 +22,10 @@ import java.io.IOException; import java.io.InputStream; import java.util.List; -import javax.activation.DataHandler; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebService; +import jakarta.activation.DataHandler; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebService; import net.brutex.xservices.types.ReplacePattern; import net.brutex.xservices.types.ReturnCode; diff --git a/src/main/java/net/brutex/xservices/ws/impl/JobServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/JobServiceImpl.java index 4943558..35236f6 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/JobServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/JobServiceImpl.java @@ -24,7 +24,7 @@ import java.util.Set; import java.util.TimeZone; import java.util.UUID; -import javax.jws.WebService; +import jakarta.jws.WebService; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; diff --git a/src/main/java/net/brutex/xservices/ws/impl/MailServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/MailServiceImpl.java index f374aa9..d598b6f 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/MailServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/MailServiceImpl.java @@ -16,7 +16,7 @@ package net.brutex.xservices.ws.impl; -import javax.jws.WebService; +import jakarta.jws.WebService; import net.brutex.xservices.types.HostConnection; import net.brutex.xservices.types.MailMimeType; diff --git a/src/main/java/net/brutex/xservices/ws/impl/MiscServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/MiscServiceImpl.java index 0ae08e5..0115f88 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/MiscServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/MiscServiceImpl.java @@ -18,7 +18,6 @@ package net.brutex.xservices.ws.impl; import static org.quartz.TriggerBuilder.newTrigger; -import java.io.StringReader; import java.io.StringWriter; import java.math.BigInteger; import java.sql.*; @@ -26,15 +25,15 @@ import java.time.Instant; import java.util.*; import java.util.Date; import java.util.concurrent.atomic.AtomicLong; -import javax.annotation.Resource; -import javax.jws.WebService; -import javax.servlet.ServletContext; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; -import javax.xml.ws.WebServiceContext; -import javax.xml.ws.handler.MessageContext; +import jakarta.annotation.Resource; +import jakarta.jws.WebService; +import jakarta.servlet.ServletContext; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; +import jakarta.xml.ws.WebServiceContext; +import jakarta.xml.ws.handler.MessageContext; import lombok.extern.slf4j.Slf4j; import net.brutex.xservices.types.*; import net.brutex.xservices.types.alfevent.ALFEventResponseType; diff --git a/src/main/java/net/brutex/xservices/ws/impl/OpenAirProxyServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/OpenAirProxyServiceImpl.java deleted file mode 100644 index b58ab13..0000000 --- a/src/main/java/net/brutex/xservices/ws/impl/OpenAirProxyServiceImpl.java +++ /dev/null @@ -1,492 +0,0 @@ -/* - * Copyright 2017 Brian Rosenberger (Brutex Network) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.brutex.xservices.ws.impl; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.GregorianCalendar; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.activation.DataHandler; -import javax.jws.WebParam; -import javax.jws.WebService; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.ex.ConfigurationException; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.jcs.JCS; -import org.apache.commons.jcs.access.exception.CacheException; - - -import net.brutex.DocBuilder.DocBuilder; -import net.brutex.mgmt.api.generator.JITCompiler; -import net.brutex.mgmt.api.xml.AnyEntity; -import net.brutex.mgmt.api.xml.Customer; -import net.brutex.mgmt.api.xml.DateFilter; -import net.brutex.mgmt.api.xml.Project; -import net.brutex.mgmt.api.xml.Query; -import net.brutex.mgmt.api.xml.Query.BOOL; -import net.brutex.mgmt.api.xml.QueryEntity; -import net.brutex.mgmt.api.xml.StringEntity; -import net.brutex.mgmt.api.xml.TimesheetEntry; -import net.brutex.mgmt.api.xml.TimesheetFilter; -import net.brutex.mgmt.api.xml.User; -import net.brutex.mgmt.openair.OpenAirRestConnection; -import net.brutex.xservices.types.ant.AttachmentType; -import net.brutex.xservices.util.BrutexNamespaces; -import net.brutex.xservices.ws.OpenAirProxyService; -import net.brutex.xservices.ws.XServicesFault; - -/** - * @author Brian Rosenberger - * - */ -@Slf4j -@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES, endpointInterface = "net.brutex.xservices.ws.OpenAirProxyService", serviceName = OpenAirProxyService.SERVICE_NAME) -public class OpenAirProxyServiceImpl implements OpenAirProxyService { - - - /* - * (non-Javadoc) - * - * @see - * net.brutex.xservices.ws.OpenAirProxyService#getTimeEntryList(java.lang. - * String) - */ - - @Override - public List getTimeEntryList(int oa_projectid, int oa_customerid, int oa_userid, - GregorianCalendar startdate, GregorianCalendar enddate, boolean includeNonBillable, List filter) throws XServicesFault { - return getTimeEntries(oa_projectid, oa_customerid, oa_userid, startdate, enddate, includeNonBillable, filter); - } - - - private List getTimeEntries(final int oa_projectid, final int oa_customerid, final int oa_userid, - final GregorianCalendar fromDate, final GregorianCalendar toDate, final boolean includeNonBillable, List filter) - throws XServicesFault { - - List resultlist = new ArrayList(); - - if( filter != null && filter.size()>0) { - for( TimesheetFilter.TimesheetFilterType f : filter) { - resultlist.addAll( - getTimeEntriesRAW(oa_projectid, oa_customerid, oa_userid, fromDate, toDate, includeNonBillable, f) - ); - } - } else { - resultlist = getTimeEntriesRAW(oa_projectid, oa_customerid, oa_userid, fromDate, toDate, includeNonBillable, null); - } - return resultlist; - } - - - - - private List getTimeEntriesRAW(final int oa_projectid, final int oa_customerid, final int oa_userid, - final GregorianCalendar fromDate, final GregorianCalendar toDate, final boolean includeNonBillable, TimesheetFilter.TimesheetFilterType filter) - throws XServicesFault { - - final OpenAirRestConnection con = getOpenAirConnection(); - if (con == null) { - throw new XServicesFault("Could not establish Open Air connection."); - } - - Query query = new Query(TimesheetEntry.class); - - if (oa_projectid > 0) { - query.addQuery(new QueryEntity("projectid", new StringEntity(String.valueOf(oa_projectid))), BOOL.AND); - } - - if (oa_customerid > 0) { - query.addQuery(new QueryEntity("customerid", new StringEntity(String.valueOf(oa_customerid))), BOOL.AND); - } - - if (oa_userid > 0) { - query.addQuery(new QueryEntity("userid", new StringEntity(String.valueOf(oa_userid))), BOOL.AND); - } - - if (fromDate != null) { - //adjust - fromDate.add(GregorianCalendar.DAY_OF_MONTH, -1); - DateFilter date = new DateFilter("date"); - date.setStartdate(fromDate); - if (toDate != null) { - toDate.add(GregorianCalendar.DAY_OF_MONTH, 1); - date.setEnddate(toDate); - } - query.addFilter(date); - } - - if (filter != null) { - query.addFilter(new TimesheetFilter(filter)); - } - - - List timesheets = (List) con.getEntitiesByQuery(query); - if (!includeNonBillable) - timesheets = filterBillableOnly(timesheets); - return timesheets; - - /* - * Query q = new Query(Project.class); - * - * //QueryEntity qe = new QueryEntity("Portfolio__c", new - * StringEntity("Serena")); QueryEntity qe = new QueryEntity("id", new - * StringEntity("19738")); //DWP Bank QueryEntity qe2 = new - * QueryEntity("id", new StringEntity("19737")); //PNW //QueryEntity qe2 - * = new QueryEntity("customer_name", new StringEntity( - * "Gerencia Informatica Seguridad Social (GISS)")); - * - * q.addQuery(qe, Query.BOOL.OR); q.addQuery(qe2, Query.BOOL.OR); - * - * List list = (List) con.getEntitiesByQuery(q, true); - * - * /*for (Project p : list) { - * Logger.getLogger("TestMain").debug(p.getName()); - * System.out.println(p.toString()); } - */ - // User user = con.getUserByLogin("brosenberger"); - - // System.out.println(user.toString()); - } - - @Override - public AttachmentType getExcelTimesheet(int oa_projectid, int oa_customerid, int oa_userid, - GregorianCalendar startdate, GregorianCalendar enddate, boolean includeNonBillable, List filter, AttachmentType template) - throws XServicesFault { - - List list = getTimeEntries(oa_projectid, oa_customerid, oa_userid, startdate, enddate, - includeNonBillable, filter); - AttachmentType t = getExcelTimesheet2(list, includeNonBillable, template); - - /* - * Try to set a time sheet name: - * SignOff - - .xlxs - * - */ - String filename = "SignOff"; - if(startdate!=null) { - filename += "_"; - filename += startdate.toZonedDateTime() - .format( DateTimeFormatter.ofPattern( "uuuu-MM-dd" ) ); - } - if(enddate!=null) { - filename += "-"; - filename += enddate.toZonedDateTime() - .format( DateTimeFormatter.ofPattern( "uuuu-MM-dd" ) ); - } - if(oa_projectid > 0) { - //Project spezifiziert - filename += "_"; - if(list.size()>0) { - TimesheetEntry anyentry = list.get(0); - filename += anyentry.getProject().getName(); - } else { - filename +="Emtpy"; - } - } else { - //Mehrere Projekte, gibt es vielleicht nur eins? - int i = 0; - Set namen = new HashSet(); - for (TimesheetEntry entry : list) { - namen.add( entry.getProject().getId() ); - } - if(namen.size()>1) { - filename += "_Multiple_Projects"; - } else { - if(list.size()>0) { - TimesheetEntry anyentry = list.get(0); - filename += anyentry.getProject().getName(); - } else { - filename +="_Emtpy"; - } - } - } - //Username - if(oa_userid>0) { - filename += "_"; - if(list.size()>0) { - TimesheetEntry anyentry = list.get(0); - filename += anyentry.getUser().getName(); - } - } - - filename = filename.replace(" ","_"); - filename = filename.replaceAll("[^A-Za-z0-9_\\-]", ""); - filename += ".xlsx"; - t.setFilename(filename); - - return t; - } - - @Override - public AttachmentType getExcelTimesheet2(List entries, boolean includeNonBillable, - AttachmentType templatefile) throws XServicesFault { - DocBuilder builder = new DocBuilder(); - DataHandler dh; - if (templatefile != null) { - dh = builder.createTimesheet(entries, templatefile.getContent()); - } else { - dh = builder.createTimesheet(entries, null); - } - AttachmentType t = new AttachmentType(); - t.setContent(dh); - - t.setFilename("timesheet.xlsx"); - return t; - } - - @Override - public List getProjectsByExternalId(String externalid) throws XServicesFault { - - final OpenAirRestConnection con = getOpenAirConnection(); - if (con == null) { - throw new XServicesFault("Could not establish Open Air connection."); - } - - Query query = new Query(Project.class); - - if (externalid.length() > 0) { - query.addQuery(new QueryEntity("externalid", new StringEntity(externalid)), BOOL.AND); - } - - List projects = (List) con.getEntitiesByQuery(query); - - return projects; - } - - /* - * (non-Javadoc) - * - * @see - * net.brutex.xservices.ws.OpenAirProxyService#getProjectsByOppId(java.lang. - * String) - */ - @Override - public List getProjectsByOppId(String oppid) throws XServicesFault { - final OpenAirRestConnection con = getOpenAirConnection(); - if (con == null) { - throw new XServicesFault("Could not establish Open Air connection."); - } - - Query query = new Query(Project.class); - - if (oppid.length() > 0) { - query.addQuery(new QueryEntity("opportunity_num__c", new StringEntity(oppid)), BOOL.OR); - query.addQuery(new QueryEntity("SAP_Oracle_Number__c", new StringEntity(oppid)), BOOL.OR); - } - - List projects = (List) con.getEntitiesByQuery(query); - - return projects; - } - - @Override - public Customer getCustomerById(int customerid) throws XServicesFault { - final OpenAirRestConnection con = getOpenAirConnection(); - if (con == null) { - throw new XServicesFault("Could not establish Open Air connection."); - } - - Query query = new Query(Customer.class); - - if (customerid > 0) { - query.addQuery(new QueryEntity("id", new StringEntity(String.valueOf(customerid))), BOOL.AND); - } - - List customer = (List) con.getEntitiesByQuery(query); - - if (customer.isEmpty()) { - return null; - } else { - return customer.get(0); - } - } - - - - /* (non-Javadoc) - * @see net.brutex.xservices.ws.OpenAirProxyService#getUpdatedCustomer(java.util.GregorianCalendar) - */ - @Override - public List getUpdatedCustomer(GregorianCalendar date, int offset) throws XServicesFault { - - final OpenAirRestConnection con = getOpenAirConnection(); - if (con == null) { - throw new XServicesFault("Could not establish Open Air connection."); - } - - Query query = new Query(Customer.class); - //query.addQuery("Address_Country", new StringEntity(search), BOOL.AND); - query.addQuery("active", new StringEntity("1"), BOOL.AND); - - DateFilter datefilter = new DateFilter("updated"); - date.add(GregorianCalendar.MINUTE, -1*offset); - datefilter.setStartdate(date); - query.addFilter(datefilter); - - List customer = (List) con.getEntitiesByQuery(query); - - if (customer.isEmpty()) { - return null; - } else { - return customer; - } - } - - - @Override - public List getUpdatedProjects(GregorianCalendar date, int offset) throws XServicesFault { - - final OpenAirRestConnection con = getOpenAirConnection(); - if (con == null) { - throw new XServicesFault("Could not establish Open Air connection."); - } - - Query query = new Query(Project.class); - //query.addQuery("Address_Country", new StringEntity(search), BOOL.AND); - query.addQuery("Stage", new StringEntity("3"), BOOL.AND); - - DateFilter datefilter = new DateFilter("updated"); - date.add(GregorianCalendar.MINUTE, -1*offset); - datefilter.setStartdate(date); - query.addFilter(datefilter); - - List project = (List) con.getEntitiesByQuery(query); - - if (project.isEmpty()) { - return null; - } else { - return project; - } - } - - @Override - public User getUserById(int userid) throws XServicesFault { - Query query = new Query(User.class); - if (userid > 0) { - query.addQuery(new QueryEntity("id", new StringEntity(String.valueOf(userid))), BOOL.AND); - } else { - return null; - } - return getUserByQuery(query); - } - - - @Override - public User getUserByUsername(String username) throws XServicesFault { - Query query = new Query(User.class); - query.addQuery(new QueryEntity("nickname", new StringEntity(username)), BOOL.AND); - return getUserByQuery(query); - } - - - @Override - public List getAnyObject(String objecttype, List queries) throws XServicesFault { - JITCompiler.load(); - final OpenAirRestConnection con = getOpenAirConnection(); - if (con == null) { - throw new XServicesFault("Could not establish Open Air connection."); - } - Class clazz; - try { - Class.forName("net.brutex.mgmt.api.xml.EntityType"); - Class.forName("net.brutex.mgmt.api.xml.AbstractEntity"); - clazz = Class.forName("net.brutex.mgmt.api.xml."+objecttype); - } catch (ClassNotFoundException ex ) { - throw new XServicesFault(ex); - } - Query query = new Query(clazz); - - for(QueryParameter p : queries) { - query.addQuery(new QueryEntity(p.field, new StringEntity(p.value)), BOOL.AND); - } - - List anyentity = (List) con.getEntitiesByQuery(query); - - if (anyentity.isEmpty()) { - return null; - } else { - return anyentity; - } - } - - private User getUserByQuery(Query query) throws XServicesFault { - final OpenAirRestConnection con = getOpenAirConnection(); - if (con == null) { - throw new XServicesFault("Could not establish Open Air connection."); - } - User user = (User) con.getSingleEntityByQuery(query); - return user; - } - - - - List filterBillableOnly(List timesheets) { - List list = new ArrayList(); - for (TimesheetEntry entry : timesheets) { - if (entry.getProjecttask().isBillable()) { - list.add(entry); - } - } - return list; - } - - private OpenAirRestConnection getOpenAirConnection() { - - /* - * get details from configuration file - */ - final PropertiesConfiguration props; - try { - final String config = "../openair.properties"; - log.debug("Loading Open Air connection details from " + this.getClass().getClassLoader().getResource("/") - + config); - - final URL configloc = this.getClass().getClassLoader().getResource(config); - - props = new PropertiesConfiguration(); - props.read( new InputStreamReader( new BufferedInputStream( configloc.openStream() ))); - final String user = props.getString("user"); - final String password = props.getString("password"); - final String company = props.getString("company"); - final String apikey = props.getString("apikey", "_PUT_HERE_"); - final String namespace = props.getString("namespace"); - - final OpenAirRestConnection con; - - con = new OpenAirRestConnection(JCS.getInstance("OACache"), company, user, password); - return con; - } catch (CacheException | ConfigurationException | IOException e) { - log.error(e.getMessage()); - e.printStackTrace(); - } finally { - - } - return null; - } - - - - - -} diff --git a/src/main/java/net/brutex/xservices/ws/impl/StorageServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/StorageServiceImpl.java index a88ae37..78ece6c 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/StorageServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/StorageServiceImpl.java @@ -15,7 +15,7 @@ */ package net.brutex.xservices.ws.impl; -import javax.jws.WebService; +import jakarta.jws.WebService; import net.brutex.xservices.types.TargetNodeType; import net.brutex.xservices.types.ant.AttachmentType; diff --git a/src/main/java/net/brutex/xservices/ws/impl/StringServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/StringServiceImpl.java index 0a371e2..9284f4a 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/StringServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/StringServiceImpl.java @@ -22,7 +22,7 @@ import java.util.StringTokenizer; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.jws.WebService; +import jakarta.jws.WebService; import net.brutex.xservices.types.StringMatchType; import net.brutex.xservices.types.StringReplaceType; diff --git a/src/main/java/net/brutex/xservices/ws/impl/XmlServiceImpl.java b/src/main/java/net/brutex/xservices/ws/impl/XmlServiceImpl.java index 769e8a7..2ed09fd 100644 --- a/src/main/java/net/brutex/xservices/ws/impl/XmlServiceImpl.java +++ b/src/main/java/net/brutex/xservices/ws/impl/XmlServiceImpl.java @@ -26,7 +26,7 @@ import java.nio.charset.Charset; import java.nio.charset.IllegalCharsetNameException; import java.util.Iterator; import java.util.List; -import javax.jws.WebService; +import jakarta.jws.WebService; import javax.xml.namespace.QName; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; diff --git a/src/main/java/net/brutex/xservices/ws/rs/CVSInfo.java b/src/main/java/net/brutex/xservices/ws/rs/CVSInfo.java index 801e4ab..289110d 100644 --- a/src/main/java/net/brutex/xservices/ws/rs/CVSInfo.java +++ b/src/main/java/net/brutex/xservices/ws/rs/CVSInfo.java @@ -1,14 +1,10 @@ package net.brutex.xservices.ws.rs; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.Response; import java.io.File; -import javax.ws.rs.DefaultValue; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; @Path("/CVSService/") @Produces({"application/xml", "application/json"}) diff --git a/src/main/java/net/brutex/xservices/ws/rs/CVSInfoImpl.java b/src/main/java/net/brutex/xservices/ws/rs/CVSInfoImpl.java index 3f763fa..0201832 100644 --- a/src/main/java/net/brutex/xservices/ws/rs/CVSInfoImpl.java +++ b/src/main/java/net/brutex/xservices/ws/rs/CVSInfoImpl.java @@ -4,13 +4,11 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileReader; import java.io.IOException; -import java.io.PrintStream; -import java.net.URI; -import java.util.List; import java.util.StringTokenizer; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.Response; + import lombok.extern.slf4j.Slf4j; import net.brutex.xservices.types.scm.AttributeType; @@ -24,7 +22,6 @@ import net.brutex.xservices.types.scm.TagListType; import net.brutex.xservices.types.scmfindings.FindingsListType; import net.brutex.xservices.util.BasicCVSListener; import net.brutex.xservices.util.CVSClient; -import net.brutex.xservices.util.CVSRoot; import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.commons.jcs.JCS; @@ -33,15 +30,12 @@ import org.apache.commons.jcs.access.exception.CacheException; import org.netbeans.lib.cvsclient.Client; import org.netbeans.lib.cvsclient.command.CommandAbortedException; import org.netbeans.lib.cvsclient.command.CommandException; -import org.netbeans.lib.cvsclient.command.FileInfoContainer; import org.netbeans.lib.cvsclient.command.PipedFileInformation; import org.netbeans.lib.cvsclient.command.checkout.CheckoutCommand; import org.netbeans.lib.cvsclient.command.checkout.ModuleListInformation; import org.netbeans.lib.cvsclient.command.log.LogInformation; -import org.netbeans.lib.cvsclient.command.log.LogInformation.Revision; import org.netbeans.lib.cvsclient.command.log.RlogCommand; import org.netbeans.lib.cvsclient.connection.AuthenticationException; -import org.netbeans.lib.cvsclient.event.EventManager; import org.netbeans.lib.cvsclient.event.FileInfoEvent; @Slf4j @@ -51,7 +45,7 @@ public class CVSInfoImpl implements CVSInfo { final ItemListType list = this.FACTORY.createItemListType(); public Response getRepositoryFiles(HttpHeaders h, File f, String modules, - boolean isRecursive, boolean showRevisions, boolean forceNoCache) { + boolean isRecursive, boolean showRevisions, boolean forceNoCache) { String cachekey = "getFiles" + f.toURI().toString(); log.debug("forceNoCache=" + forceNoCache); ItemListType cacheresult = (ItemListType) getCacheInstance().get( diff --git a/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfo.java b/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfo.java index 0fd6034..016225f 100644 --- a/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfo.java +++ b/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfo.java @@ -18,15 +18,15 @@ package net.brutex.xservices.ws.rs; import java.io.File; -import javax.ws.rs.DefaultValue; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.DefaultValue; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.apache.commons.jcs.access.exception.CacheException; @@ -52,7 +52,7 @@ public abstract interface DIMCMInfo { * @param paramHttpHeaders the param http headers * @param uriInfo request url info * @param directory The directory to list. - * @param includeDirectories Whether or not to include directories in the listing. Default is true. + * @param recursive Whether or not to include directories in the listing. Default is true. * @param includeFiles Whether or not to include files in the listing. Default is true. * @param depth Include subdirectories down to a given depth. Default is 1. * @param search Additional "Glob search pattern" for the file/ directory name. I.e. '*.log' @@ -70,7 +70,7 @@ public abstract interface DIMCMInfo { @QueryParam("projSpec") String project, @QueryParam("directory") String directory, @QueryParam("recursive") @DefaultValue("false") boolean recursive, - @QueryParam("includeFiles") @DefaultValue("1") boolean includeFiles, + @QueryParam("includeFiles") @DefaultValue("true") boolean includeFiles, @QueryParam("depth") @DefaultValue("1") int depth, @QueryParam("search") String search, @QueryParam("itemsPerPage") @DefaultValue("50") int itemsPerPage, diff --git a/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfoImpl.java b/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfoImpl.java index 8afedd6..bf694e6 100644 --- a/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfoImpl.java +++ b/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfoImpl.java @@ -29,9 +29,9 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.configuration2.PropertiesConfiguration; diff --git a/src/main/java/net/brutex/xservices/ws/rs/FileInfo.java b/src/main/java/net/brutex/xservices/ws/rs/FileInfo.java index 1f76a0b..5328da4 100644 --- a/src/main/java/net/brutex/xservices/ws/rs/FileInfo.java +++ b/src/main/java/net/brutex/xservices/ws/rs/FileInfo.java @@ -18,15 +18,15 @@ package net.brutex.xservices.ws.rs; import java.io.File; -import javax.ws.rs.DefaultValue; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.DefaultValue; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import net.brutex.xservices.ws.XServicesFault; @@ -65,13 +65,13 @@ public abstract interface FileInfo { @Context HttpHeaders paramHttpHeaders, @Context UriInfo uriInfo, @QueryParam("directory") String directory, - @QueryParam("includeDirectories") @DefaultValue("0") boolean includeDirectories, - @QueryParam("includeFiles") @DefaultValue("1") boolean includeFiles, + @QueryParam("includeDirectories") @DefaultValue("false") boolean includeDirectories, + @QueryParam("includeFiles") @DefaultValue("true") boolean includeFiles, @QueryParam("depth") @DefaultValue("1") int depth, @QueryParam("search") String search, @QueryParam("itemsPerPage") @DefaultValue("50") int itemsPerPage, @QueryParam("page") @DefaultValue("1") int page, - @QueryParam("usecache") @DefaultValue("1") boolean useCache); + @QueryParam("usecache") @DefaultValue("true") boolean useCache); @GET @Path("getFile/") diff --git a/src/main/java/net/brutex/xservices/ws/rs/FileInfoImpl.java b/src/main/java/net/brutex/xservices/ws/rs/FileInfoImpl.java index 684b783..176b6fe 100644 --- a/src/main/java/net/brutex/xservices/ws/rs/FileInfoImpl.java +++ b/src/main/java/net/brutex/xservices/ws/rs/FileInfoImpl.java @@ -38,14 +38,14 @@ import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import javax.ws.rs.NotAuthorizedException; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.GenericEntity; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.StreamingOutput; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.NotAuthorizedException; +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.GenericEntity; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.StreamingOutput; +import jakarta.ws.rs.core.UriInfo; import lombok.extern.slf4j.Slf4j; import net.brutex.xservices.security.DirectoryPermission; diff --git a/src/main/java/net/brutex/xservices/ws/rs/FileListType.java b/src/main/java/net/brutex/xservices/ws/rs/FileListType.java index 2eca8f8..c96a5d6 100644 --- a/src/main/java/net/brutex/xservices/ws/rs/FileListType.java +++ b/src/main/java/net/brutex/xservices/ws/rs/FileListType.java @@ -16,8 +16,8 @@ package net.brutex.xservices.ws.rs; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; @XmlRootElement(name="FileList") public class FileListType diff --git a/src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoService.java b/src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoService.java deleted file mode 100644 index 22a2eaf..0000000 --- a/src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoService.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2013 Brian Rosenberger (Brutex Network) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.brutex.xservices.ws.rs; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; - - -/** - * The OpenAirInfoService Rest Service. - * - * @author Brian Rosenberger, bru(at)brutex.de - */ - -@Path("/OpenAirInfoService/") -@Produces({ "text/xml" }) -public abstract interface OpenAirInfoService { - - public final static String BASE_PATH = "/OpenAirInfoService/"; - public final static String SERVICE_NAME = "OpenAirInfoService"; - - - - @GET - @Path("getCompanies/") - //@Produces("application/octet-stream") - public abstract Response getCompanies( - @Context HttpHeaders paramHttpHeaders, - @QueryParam("search") String search); -} diff --git a/src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoServiceImpl.java b/src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoServiceImpl.java deleted file mode 100644 index db1ed59..0000000 --- a/src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoServiceImpl.java +++ /dev/null @@ -1,87 +0,0 @@ -package net.brutex.xservices.ws.rs; - -import java.net.URL; -import java.util.GregorianCalendar; -import java.util.List; - -import javax.ws.rs.core.GenericEntity; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; -import org.apache.commons.configuration2.ex.ConfigurationException; -import org.apache.commons.jcs.JCS; -import org.apache.commons.jcs.access.exception.CacheException; - -import net.brutex.mgmt.api.xml.Customer; -import net.brutex.mgmt.api.xml.DateFilter; -import net.brutex.mgmt.api.xml.Query; -import net.brutex.mgmt.api.xml.Query.BOOL; -import net.brutex.mgmt.api.xml.StringEntity; -import net.brutex.mgmt.openair.OpenAirRestConnection; - -@Slf4j -public class OpenAirInfoServiceImpl implements OpenAirInfoService { - - - @Override - public Response getCompanies(HttpHeaders paramHttpHeaders, String search) { - OpenAirRestConnection con = getOpenAirConnection(); - Query query = new Query(Customer.class); - - query.addQuery("Address_Country", new StringEntity(search), BOOL.AND); - query.addQuery("active", new StringEntity("1"), BOOL.AND); - DateFilter datefilter = new DateFilter("updated"); - GregorianCalendar date = new GregorianCalendar(); - - date.add(GregorianCalendar.MINUTE, -5); - datefilter.setStartdate(date); - - query.addFilter(datefilter); - //query.addQuery("CustomerAccountCode", new StringEntity(search), BOOL.OR); - List resultlist = (List) con.getEntitiesByQuery(query); - GenericEntity generic = new GenericEntity>(resultlist) {}; - Response response = Response.ok(generic).build(); - return response; - } - - - - private OpenAirRestConnection getOpenAirConnection() { - - /* - * get details from configuration file - */ - Configurations configs = new Configurations(); - final PropertiesConfiguration props; - try { - final String config = "../openair.properties"; - log.debug("Loading Open Air connection details from '{}'.", this.getClass().getClassLoader().getResource("/") - + config); - - final URL configloc = this.getClass().getClassLoader().getResource(config); - - props = configs.properties(configloc); - - final String user = props.getString("user"); - final String password = props.getString("password"); - final String company = props.getString("company"); - final String apikey = props.getString("apikey", "9x7G49ENkLCJ81i9XZJU"); - final String namespace = props.getString("namespace"); - - final OpenAirRestConnection con; - - con = new OpenAirRestConnection(JCS.getInstance("FileCache"), company, user, password); - return con; - } catch (CacheException | ConfigurationException e) { - log.error(e.getMessage()); - e.printStackTrace(); - } finally { - - } - return null; - } - -} diff --git a/src/main/resources/cache.ccf b/src/main/resources/cache.ccf index 0fb8764..9252830 100644 --- a/src/main/resources/cache.ccf +++ b/src/main/resources/cache.ccf @@ -7,7 +7,7 @@ jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory # AVAILABLE AUXILIARY CACHES jcs.auxiliary.DC=org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory jcs.auxiliary.DC.attributes=org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes -jcs.auxiliary.DC.attributes.DiskPath=${user.dir}/jcs_swap +jcs.auxiliary.DC.attributes.DiskPath=${user.dir}/.jcs_swap jcs.auxiliary.DC.attributes.MaxPurgatorySize=10000000 jcs.auxiliary.DC.attributes.MaxKeySize=1000000 jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount=300000 diff --git a/src/main/resources/simplelogger.properties b/src/main/resources/simplelogger.properties index a037279..47c1d84 100644 --- a/src/main/resources/simplelogger.properties +++ b/src/main/resources/simplelogger.properties @@ -9,7 +9,7 @@ org.slf4j.simpleLogger.defaultLogLevel=warn # Logging detail level for a SimpleLogger instance named "xxxxx". # Must be one of ("trace", "debug", "info", "warn", or "error"). # If not specified, the default logging detail level is used. -org.slf4j.simpleLogger.log.net.brutex.xservices=info +org.slf4j.simpleLogger.log.net.brutex.xservices=debug # Set to true if you want the current date and time to be included in output messages. # Default is false, and will output the number of milliseconds elapsed since startup. diff --git a/src/main/webapp/WEB-INF/applicationContext.xml b/src/main/webapp/WEB-INF/applicationContext.xml index 61b0bab..fbe3494 100644 --- a/src/main/webapp/WEB-INF/applicationContext.xml +++ b/src/main/webapp/WEB-INF/applicationContext.xml @@ -3,12 +3,13 @@ xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> - - + + + @@ -80,9 +81,6 @@ - - - diff --git a/src/main/webapp/WEB-INF/eventmanager.properties b/src/main/webapp/WEB-INF/eventmanager.properties index 3204121..5e2baa0 100644 --- a/src/main/webapp/WEB-INF/eventmanager.properties +++ b/src/main/webapp/WEB-INF/eventmanager.properties @@ -36,6 +36,11 @@ emitter_active = true # deactivates the cleaner. Value in minutes. cleaner_interval = 4 +# EventLogCleaner retention interval, max age of logs in the tbl_events_all table. The job runs once an hour. +# Value is in hours and default is 72. +# logMaxAge = 72 +logMaxAge = 72 + # ALFEventFilter classes, executed in order. This can be a comma separated list of classes # default: empty alf_filter = net.brutex.xservices.util.EventIdTruncateFilter \ No newline at end of file diff --git a/test/MiscService-soapui-project.xml b/test/MiscService-soapui-project.xml index f3856a8..2207659 100644 --- a/test/MiscService-soapui-project.xml +++ b/test/MiscService-soapui-project.xml @@ -1,8 +1,8 @@ -http://localhost:8080/XServices/MiscService?WSDL +http://localhost:8080/XServices/MiscService?WSDL - + @@ -15,7 +15,7 @@ - + @@ -36,10 +36,31 @@ + + + + + + + + + + + + + + + + + + + + + @@ -52,6 +73,7 @@ + @@ -64,16 +86,16 @@ - + - + - + @@ -85,16 +107,9 @@ - - - - - - + - - @@ -135,16 +150,6 @@ - - - - - - - - - - @@ -218,6 +223,7 @@ + @@ -235,6 +241,9 @@ + + + @@ -247,21 +256,18 @@ - - - + + + - - - @@ -277,17 +283,17 @@ - - - - - Get a lock. + + + + + Get XService information. @@ -324,18 +330,6 @@ - - - - - - - - - - - - @@ -348,6 +342,18 @@ + + + + + + + + + + + + @@ -400,49 +406,125 @@ - - ${=org.apache.commons.lang.RandomStringUtils.randomNumeric(12)} - - 12345-${=org.apache.commons.lang.RandomStringUtils.randomNumeric(1)} - + -]]>No Authorization<xml-fragment/>UTF-8http://localhost:8080/XServices/MiscService\r - \r - \r - \r - \r - \r - \r - ${=org.apache.commons.lang.RandomStringUtils.randomNumeric(12)}\r - - ${=java.time.Instant.now()}\r - sync\r - User\r - ABC${=org.apache.commons.lang.RandomStringUtils.randomNumeric(1)}\r - \r - IDM\r - 1.0\r - Default\r - - \r - \r - \r - \r - - \r - \r - \r - \r - \r - \r - \r - \r - \r - \r - \r - \r - \r -]]>No AuthorizationSEQUENTIAL<xml-fragment/>http://localhost:8080/XServices/MiscService?WSDL200MiscServiceSoapBindinggetHostinfo<xml-fragment/>UTF-8http://localhost:8080/XServices/MiscService +]]>No Authorization<xml-fragment/>UTF-8http://localhost:8080/XServices/MiscService + + + + + 15b5fafba04143fb82a2fbfab51541a0 + 2023-05-15T17:15:00Z + sync + OU + T945GyIUhU615E/eORsiFA== + + IDM + 1.0 + Default + + + + + idminterface + H?_{_8>8@wNWRx?ZaQ + + + + + + C=DE\O=SYSTEM\OU=IDM\OU=MasterData\OU=OrgUnit\CN=24054 + + + OU + 15b5fafba04143fb82a2fbfab51541a0 + true + C=DE\O=SYSTEM\OU=IDM\OU=MasterData\OU=OrgUnit\CN=24054 + \IDMTEST\DE\SYSTEM\IDM\MasterData\OrgUnit\24054 + 7173715 + + T945GyIUhU615E/eORsiFA== + + + CN + + + + true + 1668775101#1357 + string + 24054 + + + + + degOULevel + + + + 1668775101#1328 + int + 5 + + + + + degOUManager + + + + 1668775101#1344 + string + N0165 + + + + + degOUShort + + + + 1668775101#1333 + string + IDM NEU 31052023_1 + + + + + degStatus + + + + 1668775101#1334 + int + 1 + + + + + GUID + + + + 1668775101#1358 + octet + T945GyIUhU615E/eORsiFA== + + + + + T945GyIUhU615E/eORsiFA== + 15b5fafba04143fb82a2fbfab51541a0 + sync + \IDMTEST\DE\SYSTEM\IDM\MasterData\OrgUnit\24054 + + + + + + + +]]>No AuthorizationSEQUENTIAL<xml-fragment/>http://localhost:8080/XServices/MiscService?WSDL500No AuthorizationMiscServiceSoapBindinggetHostinfo<xml-fragment/>UTF-8http://localhost:8080/XServices/MiscService @@ -500,7 +582,7 @@ 0 -]]>120200Global HTTP SettingsMiscServiceSoapBindingsleep<xml-fragment/>UTF-8http://localhost:8080/XServices/MiscService +]]>120200BasicBasicGlobal HTTP SettingsMiscServiceSoapBindingsleep<xml-fragment/>UTF-8http://localhost:8080/XServices/MiscService @@ -518,48 +600,128 @@ \r \r \r - ${=org.apache.commons.lang.RandomStringUtils.randomNumeric(12)}\r + ${=org.apache.commons.lang.RandomStringUtils.randomNumeric(4)}\r \r - 12345-${=org.apache.commons.lang.RandomStringUtils.randomNumeric(1)}\r + 12345-${=org.apache.commons.lang.RandomStringUtils.randomNumeric(2)}\r \r \r -]]>No Authorizationfalse20250truetrue-130TIMESimple3000.5100true500MiscServiceSoapBindingEventNotice<xml-fragment/>UTF-8http://localhost:8080/XServices/MiscService\r - \r - \r - \r - \r - \r - \r - ${=org.apache.commons.lang.RandomStringUtils.randomNumeric(12)}\r - - ${=java.time.Instant.now()}\r - sync\r - User\r - ABC${=org.apache.commons.lang.RandomStringUtils.randomNumeric(5)}\r - \r - IDM\r - 1.0\r - Default\r - - \r - \r - \r - \r - - \r - \r - \r - \r - \r - \r - \r - \r - \r - \r - \r - \r - \r -]]>No Authorizationfalsetruetrue10250truetrue-15000COUNTSimple200.51000falsefalsetrue500falseMiscServiceSoapBindinggenerateUUIDUTF-8http://localhost:8080/XServices/MiscService\r +]]>No Authorizationfalse120250truetrue-11000000COUNTSimple200.5100true500MiscServiceSoapBindingmergeALFEvent<xml-fragment/>UTF-8http://localhost:8080/XServices/MiscService + + + + + 15b5fafba04143fb82a2fefab51541a0ccccccccccccccccccccccccccccc + 2023-05-15T17:15:10Z + sync + OU + T945GyIUhU615E/eOR${=org.apache.commons.lang.RandomStringUtils.randomNumeric(5)} + + IDM + 1.0 + Default + + + + + idminterface + H?_{_8>8@wNWRx?ZaQ + + + + + + C=DE\O=SYSTEM\OU=IDM\OU=MasterData\OU=OrgUnit\CN=24054 + + + OU + 15b5fafba04143fb82a2fbfab51541a0 + true + C=DE\O=SYSTEM\OU=IDM\OU=MasterData\OU=OrgUnit\CN=24054 + \IDMTEST\DE\SYSTEM\IDM\MasterData\OrgUnit\24054 + 7173715 + + T945GyIUhU615E/eORsiFA== + + + CN + + + + true + 1668775101#1357 + string + 24054 + + + + + degOULevel + + + + 1668775101#1328 + int + 5 + + + + + degOUManager + + + + 1668775101#1344 + string + N0165 + + + + + degOUShort + + + + 1668775101#1333 + string + IDM NEU 31052023_1 + + + + + degStatus + + + + 1668775101#1334 + int + 1 + + + + + GUID + + + + 1668775101#1358 + octet + T945GyIUhU615E/eORsiFA== + + + + + T945GyIUhU615E/eORsiFA== + 15b5fafba04143fb82a2fbfab51541a0 + sync + \IDMTEST\DE\SYSTEM\IDM\MasterData\OrgUnit\24054 + + + + + + + +]]>No Authorizationfalsetruetrue80250truetrue-1300000COUNTVariance500000.51000falsefalsetrue500falseMiscServiceSoapBindinggenerateUUIDUTF-8http://localhost:8080/XServices/MiscService\r \r \r \r