Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 64 additions & 69 deletions admin-ui/pom.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>admin-ui</artifactId>
<packaging>jar</packaging>
Expand All @@ -14,10 +15,10 @@
<description>A user interface for managing a Knowledge Network.</description>

<properties>
<swagger-core-version>1.5.18</swagger-core-version>
<jetty-version>9.4.51.v20230217</jetty-version>
<jersey2-version>2.34</jersey2-version>
<jackson-version>2.9.9</jackson-version>
<swagger-core-version>2.2.15</swagger-core-version>
<jetty-version>11.0.15</jetty-version>
<jersey3-version>3.1.3</jersey3-version>
<jackson-version>2.16.1</jackson-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Expand All @@ -29,22 +30,10 @@
</dependency>

<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jersey2-jaxrs</artifactId>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-jaxrs2-jakarta</artifactId>
<scope>compile</scope>
<version>${swagger-core-version}</version>
<exclusions>
<exclusion>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>
jersey-container-servlet-core
</artifactId>
</exclusion>
<exclusion>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
Expand Down Expand Up @@ -84,39 +73,34 @@
<version>${jetty-version}</version>
</dependency>

<!-- Jersey2 -->
<!-- Jersey3 -->

<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-servlet</artifactId>
<version>${jersey2-version}</version>
<artifactId>jersey-container-servlet-core</artifactId>
<version>${jersey3-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${jersey2-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-bean-validation</artifactId>
<version>${jersey2-version}</version>
<version>${jersey3-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>${jersey2-version}</version>
<version>${jersey3-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-jaxb</artifactId>
<version>${jersey2-version}</version>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey3-version}</version>
</dependency>

<!-- Add XML support -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>4.0.1</version>
</dependency>


Expand Down Expand Up @@ -163,16 +147,20 @@
<packageName>eu.knowledge.engine.admin</packageName>
<apiPackage>eu.knowledge.engine.admin.api</apiPackage>
<modelPackage>eu.knowledge.engine.admin.model</modelPackage>
<inputSpec>${project.basedir}/src/main/resources/openapi-admin-ui.yaml</inputSpec>
<inputSpec>
${project.basedir}/src/main/resources/openapi-admin-ui.yaml</inputSpec>
<generatorName>jaxrs-jersey</generatorName>
<generateSupportingFiles>true</generateSupportingFiles>
<generateApis>true</generateApis>
<apisToGenerate>KnowledgeInteractionLifeCycle,SmartConnectorLease</apisToGenerate>
<apisToGenerate>
KnowledgeInteractionLifeCycle,SmartConnectorLease</apisToGenerate>
<configOptions>
<implFolder>dummy</implFolder>
<strictSpec>true</strictSpec>
<useTags>true</useTags>
<additionalModelTypeAnnotations>@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)</additionalModelTypeAnnotations>
<library>jersey3</library>
<additionalModelTypeAnnotations>
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)</additionalModelTypeAnnotations>
</configOptions>
</configuration>
</execution>
Expand All @@ -191,7 +179,8 @@
</goals>
<configuration>
<sources>
<source>${project.basedir}/target/generated-sources/openapi/src/gen/java</source>
<source>
${project.basedir}/target/generated-sources/openapi/src/gen/java</source>
</sources>
</configuration>
</execution>
Expand All @@ -200,47 +189,53 @@

<!--
This plugin packages all dependencies in a so-called uber-jar. See also:
- https://stackoverflow.com/questions/58562397/org-apache-jena-shared-noreaderforlangexception-reader-not-found-nt
-
https://stackoverflow.com/questions/58562397/org-apache-jena-shared-noreaderforlangexception-reader-not-found-nt
- https://jena.apache.org/documentation/notes/jena-repack.html
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>with-dependencies</shadedClassifierName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>eu.knowledge.engine.admin.api.RestServer</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" />
<transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
<addHeader>false</addHeader>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<!-- Some jars are signed but shading breaks that.
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>with-dependencies</shadedClassifierName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>eu.knowledge.engine.admin.api.RestServer</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
<addHeader>false</addHeader>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<!-- Some jars are signed but shading breaks
that.
Don't include signing files.
-->
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
package eu.knowledge.engine.admin.api;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import jakarta.ws.rs.container.ContainerRequestContext;
import jakarta.ws.rs.container.ContainerResponseContext;
import jakarta.ws.rs.container.ContainerResponseFilter;
import java.io.IOException;


public class CORSFilter implements ContainerResponseFilter {

@Override
public void filter(ContainerRequestContext request,
ContainerResponseContext response) throws IOException {
response.getHeaders().add("Access-Control-Allow-Origin", "*");
response.getHeaders().add("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, HEAD");
response.getHeaders().add("Access-Control-Allow-Headers","Accept, Content-Type, Knowledge-Base-Id, Knowledge-Interaction-Id");
}
@Override
public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
response.getHeaders().add("Access-Control-Allow-Origin", "*");
response.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, HEAD");
response.getHeaders().add("Access-Control-Allow-Headers",
"Accept, Content-Type, Knowledge-Base-Id, Knowledge-Interaction-Id");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,6 @@
import java.util.List;
import java.util.Set;

import javax.ws.rs.GET;
import javax.ws.rs.NotFoundException;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.SecurityContext;

import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.rdf.model.ResourceFactory;
Expand Down Expand Up @@ -48,7 +37,22 @@
import eu.knowledge.engine.smartconnector.impl.MessageRouter;
import eu.knowledge.engine.smartconnector.impl.MyKnowledgeInteractionInfo;
import eu.knowledge.engine.smartconnector.impl.ReasonerProcessor;
import io.swagger.annotations.ApiParam;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.NotFoundException;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.container.AsyncResponse;
import jakarta.ws.rs.container.Suspended;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.SecurityContext;

@Path("/")
public class AdminApiServiceImpl {
Expand Down Expand Up @@ -78,13 +82,12 @@ public class AdminApiServiceImpl {
@GET
@Path("/sc/all/{include-meta}")
@Produces({ "application/json; charset=UTF-8", "text/plain; charset=UTF-8" })
@io.swagger.annotations.ApiOperation(value = "Get all smart connectors in the network.", notes = "", response = SmartConnector.class, responseContainer = "List", tags = {
"admin UI API", })
@io.swagger.annotations.ApiResponses(value = {
@io.swagger.annotations.ApiResponse(code = 200, message = "A list of smart connectors.", response = SmartConnector.class, responseContainer = "List"),
@io.swagger.annotations.ApiResponse(code = 500, message = "If a problem occurred.", response = String.class) })
@Operation(summary = "Get all smart connectors in the network.", description = "", tags = { "admin UI API", })
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "A list of smart connectors.", content = @Content(schema = @Schema(implementation = SmartConnector.class))),
@ApiResponse(responseCode = "500", description = "If a problem occurred.", content = @Content(schema = @Schema(implementation = String.class))) })
public void getSCOverview(
@ApiParam(value = "Include Meta-Knowledge-Interactions.", defaultValue = "true") @PathParam("include-meta") boolean includeMeta,
@Parameter(description = "Include Meta-Knowledge-Interactions.", schema = @Schema(defaultValue = "true")) @PathParam("include-meta") boolean includeMeta,
@Suspended final AsyncResponse asyncResponse, @Context SecurityContext securityContext)
throws NotFoundException {
admin = AdminUI.newInstance(false);
Expand Down
Loading