diff --git a/vpro-shared-swagger/README.adoc b/archived/vpro-shared-swagger/README.adoc
similarity index 100%
rename from vpro-shared-swagger/README.adoc
rename to archived/vpro-shared-swagger/README.adoc
diff --git a/vpro-shared-swagger/pom.xml b/archived/vpro-shared-swagger/pom.xml
similarity index 100%
rename from vpro-shared-swagger/pom.xml
rename to archived/vpro-shared-swagger/pom.xml
diff --git a/vpro-shared-swagger/src/main/java/nl/vpro/rs/media/WelcomeFilter.java b/archived/vpro-shared-swagger/src/main/java/nl/vpro/rs/media/WelcomeFilter.java
similarity index 100%
rename from vpro-shared-swagger/src/main/java/nl/vpro/rs/media/WelcomeFilter.java
rename to archived/vpro-shared-swagger/src/main/java/nl/vpro/rs/media/WelcomeFilter.java
diff --git a/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerApplication.java b/archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerApplication.java
similarity index 100%
rename from vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerApplication.java
rename to archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerApplication.java
diff --git a/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerFilter.java b/archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerFilter.java
similarity index 100%
rename from vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerFilter.java
rename to archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerFilter.java
diff --git a/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerListingResource.java b/archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerListingResource.java
similarity index 100%
rename from vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerListingResource.java
rename to archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/SwaggerListingResource.java
diff --git a/vpro-shared-swagger/src/main/java/nl/vpro/swagger/model/InstantParamProcessor.java b/archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/model/InstantParamProcessor.java
similarity index 100%
rename from vpro-shared-swagger/src/main/java/nl/vpro/swagger/model/InstantParamProcessor.java
rename to archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/model/InstantParamProcessor.java
diff --git a/vpro-shared-swagger/src/main/java/nl/vpro/swagger/model/SwaggerReaderListener.java b/archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/model/SwaggerReaderListener.java
similarity index 100%
rename from vpro-shared-swagger/src/main/java/nl/vpro/swagger/model/SwaggerReaderListener.java
rename to archived/vpro-shared-swagger/src/main/java/nl/vpro/swagger/model/SwaggerReaderListener.java
diff --git a/vpro-shared-swagger/src/main/resources/META-INF/swagger.tld b/archived/vpro-shared-swagger/src/main/resources/META-INF/swagger.tld
similarity index 100%
rename from vpro-shared-swagger/src/main/resources/META-INF/swagger.tld
rename to archived/vpro-shared-swagger/src/main/resources/META-INF/swagger.tld
diff --git a/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/head-links.tagx b/archived/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/head-links.tagx
similarity index 100%
rename from vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/head-links.tagx
rename to archived/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/head-links.tagx
diff --git a/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/javascript.tagx b/archived/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/javascript.tagx
similarity index 100%
rename from vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/javascript.tagx
rename to archived/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/javascript.tagx
diff --git a/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/logo.tagx b/archived/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/logo.tagx
similarity index 100%
rename from vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/logo.tagx
rename to archived/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/logo.tagx
diff --git a/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/swaggerbase.tagx b/archived/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/swaggerbase.tagx
similarity index 100%
rename from vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/swaggerbase.tagx
rename to archived/vpro-shared-swagger/src/main/resources/META-INF/tags/swagger/swaggerbase.tagx
diff --git a/vpro-shared-swagger/src/main/resources/META-INF/vpro/swagger-context.xml b/archived/vpro-shared-swagger/src/main/resources/META-INF/vpro/swagger-context.xml
similarity index 100%
rename from vpro-shared-swagger/src/main/resources/META-INF/vpro/swagger-context.xml
rename to archived/vpro-shared-swagger/src/main/resources/META-INF/vpro/swagger-context.xml
diff --git a/vpro-shared-swagger/src/test/java/nl/vpro/swagger/SwaggerFilterTest.java b/archived/vpro-shared-swagger/src/test/java/nl/vpro/swagger/SwaggerFilterTest.java
similarity index 100%
rename from vpro-shared-swagger/src/test/java/nl/vpro/swagger/SwaggerFilterTest.java
rename to archived/vpro-shared-swagger/src/test/java/nl/vpro/swagger/SwaggerFilterTest.java
diff --git a/pom.xml b/pom.xml
index dad66fc4a..98aecdf3e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,7 @@
vpro-shared-monitoring
vpro-shared-persistence
vpro-shared-rs
- vpro-shared-swagger
+ vpro-shared-swagger3
vpro-shared-test
vpro-shared-util
@@ -81,6 +81,7 @@
vpro-shared-bom
- 1.6.9
+
+ 2.2.8
1.18.24
${project.build.directory}/delombok
@@ -305,15 +304,20 @@
- io.swagger
+ io.swagger.core.v3
swagger-annotations
${swagger.version}
- io.swagger
- swagger-jaxrs
+ io.swagger.core.v3
+ swagger-jaxrs2
${swagger.version}
+
+ io.swagger.core.v3
+ swagger-core
+ ${swagger.version}
+
nl.vpro.shared
vpro-shared-bom
diff --git a/vpro-shared-bom/pom.xml b/vpro-shared-bom/pom.xml
index 6f4b9335b..58422ffeb 100644
--- a/vpro-shared-bom/pom.xml
+++ b/vpro-shared-bom/pom.xml
@@ -159,9 +159,11 @@
vpro-shared-xml
${project.version}
+
+
nl.vpro.shared
- vpro-shared-swagger
+ vpro-shared-swagger3
${project.version}
@@ -233,6 +235,11 @@
vpro-shared-resteasy
2.21.0
+
+ nl.vpro.shared
+ vpro-shared-swagger
+ 3.0.1
+
diff --git a/vpro-shared-swagger3/README.adoc b/vpro-shared-swagger3/README.adoc
new file mode 100644
index 000000000..480cd6c89
--- /dev/null
+++ b/vpro-shared-swagger3/README.adoc
@@ -0,0 +1,5 @@
+= Swagger utilities
+
+This contains a few utility methods to deal with swagger.
+
+It has a dependency on a webjars for swagger frontend itself, and supplies a simply taglib to wire that into the actual HTML.
diff --git a/vpro-shared-swagger3/pom.xml b/vpro-shared-swagger3/pom.xml
new file mode 100644
index 000000000..bb6d18fd0
--- /dev/null
+++ b/vpro-shared-swagger3/pom.xml
@@ -0,0 +1,71 @@
+
+
+ 4.0.0
+
+
+ vpro-shared-parent
+ nl.vpro.shared
+ 3.1-SNAPSHOT
+
+ vpro-shared-swagger3
+ 3.1-SNAPSHOT
+
+
+
+
+
+
+ nl.vpro.shared
+ vpro-shared-jackson2
+
+
+ nl.vpro.shared
+ vpro-shared-web
+
+
+
+ io.swagger.core.v3
+ swagger-core
+
+
+ io.swagger.core.v3
+ swagger-jaxrs2
+
+
+ org.jboss.spec.javax.ws.rs
+ jboss-jaxrs-api_2.1_spec
+ 2.0.1.Final
+ provided
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+
+
+ org.webjars
+ swagger-ui
+ 4.9.1
+
+
+ org.projectlombok
+ lombok
+
+
+ nl.vpro.shared
+ vpro-shared-test
+ test
+
+
+ org.meeuw
+ mihxil-json-grep
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+
+
+
diff --git a/vpro-shared-swagger3/src/main/java/nl/vpro/rs/media/WelcomeFilter.java b/vpro-shared-swagger3/src/main/java/nl/vpro/rs/media/WelcomeFilter.java
new file mode 100644
index 000000000..fcff82dbb
--- /dev/null
+++ b/vpro-shared-swagger3/src/main/java/nl/vpro/rs/media/WelcomeFilter.java
@@ -0,0 +1,35 @@
+package nl.vpro.rs.media;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.IOException;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * MSE-4330. Er was gewoon een index.jsp die dat deed, maar dat werkt niet meer, omdat om een of andere reden het resteasy servlet er altijd tussen zat (terwijl niet eens gemapt)
+ * @author Michiel Meeuwissen
+ * @since 2.6
+ */
+@Slf4j
+public class WelcomeFilter implements Filter {
+
+
+
+ @Override
+ public void init(FilterConfig filterConfig) {
+
+ }
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException {
+ ((HttpServletResponse)servletResponse).sendRedirect("docs/api");
+
+ }
+
+ @Override
+ public void destroy() {
+
+ }
+}
diff --git a/vpro-shared-swagger3/src/main/java/nl/vpro/swagger/SwaggerApplication.java b/vpro-shared-swagger3/src/main/java/nl/vpro/swagger/SwaggerApplication.java
new file mode 100644
index 000000000..8eb6851e8
--- /dev/null
+++ b/vpro-shared-swagger3/src/main/java/nl/vpro/swagger/SwaggerApplication.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2013 All rights reserved
+ * VPRO The Netherlands
+ */
+package nl.vpro.swagger;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.*;
+
+import javax.annotation.PostConstruct;
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Application;
+
+
+/**
+ * Static helper to expose a dummy JAX-RS Application. Swagger needs such an application to expose the API docs for
+ * the given endpoints.
+ *
+ * @author Roelof Jan Koekoek
+ * @since 2.0
+ */
+@Slf4j
+@ApplicationPath("")
+public class SwaggerApplication extends Application {
+ private static final Set