diff --git a/webapp-javax/hakunapi-simple-servlet-javax/pom.xml b/webapp-javax/hakunapi-simple-servlet-javax/pom.xml
deleted file mode 100644
index 5bff49b..0000000
--- a/webapp-javax/hakunapi-simple-servlet-javax/pom.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
- 4.0.0
-
- fi.nls.hakunapi
- webapp-javax
- 2.0.0-SNAPSHOT
-
- hakunapi-simple-servlet-javax
- jar
-
-
- false
-
-
-
-
- fi.nls.hakunapi
- hakunapi-core
-
-
- fi.nls.hakunapi
- hakunapi-geojson
-
-
- fi.nls.hakunapi
- hakunapi-html
-
-
- javax.servlet
- javax.servlet-api
- provided
-
-
- javax.ws.rs
- javax.ws.rs-api
- provided
-
-
- org.glassfish.jersey.core
- jersey-server
-
-
- org.glassfish.jersey.containers
- jersey-container-servlet
-
-
- org.glassfish.jersey.inject
- jersey-hk2
-
-
- org.glassfish.jersey.media
- jersey-media-json-jackson
-
-
- tools.jackson.core
- jackson-core
-
-
- tools.jackson.core
- jackson-databind
-
-
- io.swagger.core.v3
- swagger-core
-
-
- com.github.ben-manes.caffeine
- caffeine
- ${caffeine.version}
-
-
- org.slf4j
- slf4j-api
-
-
- junit
- junit
- test
-
-
-
-
diff --git a/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/ObjectMapperProvider.java b/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/ObjectMapperProvider.java
deleted file mode 100644
index 7df2a40..0000000
--- a/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/ObjectMapperProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package fi.nls.hakunapi.simple.servlet.javax;
-
-import javax.ws.rs.ext.ContextResolver;
-import javax.ws.rs.ext.Provider;
-
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import tools.jackson.databind.ObjectMapper;
-import tools.jackson.databind.SerializationFeature;
-import tools.jackson.databind.json.JsonMapper;
-
-@Provider
-public class ObjectMapperProvider implements ContextResolver {
-
- final ObjectMapper om = JsonMapper.builder()
- .changeDefaultPropertyInclusion(incl ->
- incl.withValueInclusion(Include.NON_NULL))
- .enable(SerializationFeature.INDENT_OUTPUT)
- .build();
-
- @Override
- public ObjectMapper getContext(Class> type) {
- return om;
- }
-
-}
diff --git a/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/OpenAPIMessageBodyWriter.java b/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/OpenAPIMessageBodyWriter.java
deleted file mode 100644
index e142098..0000000
--- a/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/OpenAPIMessageBodyWriter.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package fi.nls.hakunapi.simple.servlet.javax;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyWriter;
-import javax.ws.rs.ext.Provider;
-
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import tools.jackson.databind.ObjectMapper;
-import tools.jackson.databind.SerializationFeature;
-import tools.jackson.databind.json.JsonMapper;
-
-import io.swagger.v3.core.jackson.mixin.*;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.callbacks.Callback;
-import io.swagger.v3.oas.models.examples.Example;
-import io.swagger.v3.oas.models.headers.Header;
-import io.swagger.v3.oas.models.info.Contact;
-import io.swagger.v3.oas.models.info.Info;
-import io.swagger.v3.oas.models.info.License;
-import io.swagger.v3.oas.models.links.Link;
-import io.swagger.v3.oas.models.links.LinkParameter;
-import io.swagger.v3.oas.models.media.DateSchema;
-import io.swagger.v3.oas.models.media.Discriminator;
-import io.swagger.v3.oas.models.media.Encoding;
-import io.swagger.v3.oas.models.media.EncodingProperty;
-// io.swagger.v3.oas.models.media.MediaType used via FQN to avoid collision with javax.ws.rs.core.MediaType
-import io.swagger.v3.oas.models.media.Schema;
-import io.swagger.v3.oas.models.media.XML;
-import io.swagger.v3.oas.models.parameters.Parameter;
-import io.swagger.v3.oas.models.parameters.RequestBody;
-import io.swagger.v3.oas.models.responses.ApiResponse;
-import io.swagger.v3.oas.models.responses.ApiResponses;
-import io.swagger.v3.oas.models.security.OAuthFlow;
-import io.swagger.v3.oas.models.security.OAuthFlows;
-import io.swagger.v3.oas.models.security.Scopes;
-import io.swagger.v3.oas.models.security.SecurityScheme;
-import io.swagger.v3.oas.models.servers.Server;
-import io.swagger.v3.oas.models.servers.ServerVariable;
-import io.swagger.v3.oas.models.servers.ServerVariables;
-import io.swagger.v3.oas.models.tags.Tag;
-
-@Provider
-@Produces(MediaTypes.APPLICATION_OPENAPI_V3)
-public class OpenAPIMessageBodyWriter implements MessageBodyWriter {
-
- private final ObjectMapper om = createMapper();
-
- private static ObjectMapper createMapper() {
- return JsonMapper.builder()
- .enable(SerializationFeature.INDENT_OUTPUT)
- .changeDefaultPropertyInclusion(incl ->
- incl.withValueInclusion(Include.NON_NULL))
- .addMixIn(ApiResponses.class, ExtensionsMixin.class)
- .addMixIn(Contact.class, ExtensionsMixin.class)
- .addMixIn(Encoding.class, ExtensionsMixin.class)
- .addMixIn(EncodingProperty.class, ExtensionsMixin.class)
- .addMixIn(Example.class, ExampleMixin.class)
- .addMixIn(ExternalDocumentation.class, ExtensionsMixin.class)
- .addMixIn(Link.class, ExtensionsMixin.class)
- .addMixIn(LinkParameter.class, ExtensionsMixin.class)
- .addMixIn(io.swagger.v3.oas.models.media.MediaType.class, MediaTypeMixin.class)
- .addMixIn(OAuthFlow.class, ExtensionsMixin.class)
- .addMixIn(OAuthFlows.class, ExtensionsMixin.class)
- .addMixIn(Operation.class, OperationMixin.class)
- .addMixIn(PathItem.class, ExtensionsMixin.class)
- .addMixIn(Paths.class, ExtensionsMixin.class)
- .addMixIn(Scopes.class, ExtensionsMixin.class)
- .addMixIn(Server.class, ExtensionsMixin.class)
- .addMixIn(ServerVariable.class, ExtensionsMixin.class)
- .addMixIn(ServerVariables.class, ExtensionsMixin.class)
- .addMixIn(Tag.class, ExtensionsMixin.class)
- .addMixIn(XML.class, ExtensionsMixin.class)
- .addMixIn(ApiResponse.class, ExtensionsMixin.class)
- .addMixIn(Parameter.class, ExtensionsMixin.class)
- .addMixIn(RequestBody.class, ExtensionsMixin.class)
- .addMixIn(Header.class, ExtensionsMixin.class)
- .addMixIn(SecurityScheme.class, ExtensionsMixin.class)
- .addMixIn(Callback.class, ExtensionsMixin.class)
- .addMixIn(Schema.class, SchemaMixin.class)
- .addMixIn(DateSchema.class, DateSchemaMixin.class)
- .addMixIn(Components.class, ComponentsMixin.class)
- .addMixIn(Info.class, InfoMixin.class)
- .addMixIn(License.class, LicenseMixin.class)
- .addMixIn(OpenAPI.class, OpenAPIMixin.class)
- .addMixIn(Discriminator.class, DiscriminatorMixin.class)
- .build();
- }
-
- @Override
- public boolean isWriteable(Class> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
- return OpenAPI.class.isAssignableFrom(type);
- }
-
- @Override
- public long getSize(OpenAPI openAPI, Class> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
- return -1;
- }
-
- @Override
- public void writeTo(OpenAPI openAPI, Class> type, Type genericType, Annotation[] annotations,
- MediaType mediaType, MultivaluedMap httpHeaders, OutputStream entityStream)
- throws IOException, WebApplicationException {
- om.writeValue(entityStream, openAPI);
- }
-}
diff --git a/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/OpenAPIObjectMapperProvider.java b/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/OpenAPIObjectMapperProvider.java
deleted file mode 100644
index 6ff4b52..0000000
--- a/webapp-javax/hakunapi-simple-servlet-javax/src/main/java/fi/nls/hakunapi/simple/servlet/javax/OpenAPIObjectMapperProvider.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package fi.nls.hakunapi.simple.servlet.javax;
-
-import javax.ws.rs.Produces;
-import javax.ws.rs.ext.ContextResolver;
-import javax.ws.rs.ext.Provider;
-
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import tools.jackson.databind.ObjectMapper;
-import tools.jackson.databind.SerializationFeature;
-import tools.jackson.databind.json.JsonMapper;
-
-import io.swagger.v3.core.jackson.mixin.*;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.callbacks.Callback;
-import io.swagger.v3.oas.models.examples.Example;
-import io.swagger.v3.oas.models.headers.Header;
-import io.swagger.v3.oas.models.info.Contact;
-import io.swagger.v3.oas.models.info.Info;
-import io.swagger.v3.oas.models.info.License;
-import io.swagger.v3.oas.models.links.Link;
-import io.swagger.v3.oas.models.links.LinkParameter;
-import io.swagger.v3.oas.models.media.DateSchema;
-import io.swagger.v3.oas.models.media.Discriminator;
-import io.swagger.v3.oas.models.media.Encoding;
-import io.swagger.v3.oas.models.media.EncodingProperty;
-import io.swagger.v3.oas.models.media.MediaType;
-import io.swagger.v3.oas.models.media.Schema;
-import io.swagger.v3.oas.models.media.XML;
-import io.swagger.v3.oas.models.parameters.Parameter;
-import io.swagger.v3.oas.models.parameters.RequestBody;
-import io.swagger.v3.oas.models.responses.ApiResponse;
-import io.swagger.v3.oas.models.responses.ApiResponses;
-import io.swagger.v3.oas.models.security.OAuthFlow;
-import io.swagger.v3.oas.models.security.OAuthFlows;
-import io.swagger.v3.oas.models.security.Scopes;
-import io.swagger.v3.oas.models.security.SecurityScheme;
-import io.swagger.v3.oas.models.servers.Server;
-import io.swagger.v3.oas.models.servers.ServerVariable;
-import io.swagger.v3.oas.models.servers.ServerVariables;
-import io.swagger.v3.oas.models.tags.Tag;
-
-@Provider
-@Produces(value = { MediaTypes.APPLICATION_OPENAPI_V3, MediaTypes.APPLICATION_SCHEMA })
-public class OpenAPIObjectMapperProvider implements ContextResolver {
-
- final ObjectMapper om = createMapper();
-
- private static ObjectMapper createMapper() {
- return JsonMapper.builder()
- .enable(SerializationFeature.INDENT_OUTPUT)
- .changeDefaultPropertyInclusion(incl ->
- incl.withValueInclusion(Include.NON_NULL))
- .addMixIn(ApiResponses.class, ExtensionsMixin.class)
- .addMixIn(Contact.class, ExtensionsMixin.class)
- .addMixIn(Encoding.class, ExtensionsMixin.class)
- .addMixIn(EncodingProperty.class, ExtensionsMixin.class)
- .addMixIn(Example.class, ExampleMixin.class)
- .addMixIn(ExternalDocumentation.class, ExtensionsMixin.class)
- .addMixIn(Link.class, ExtensionsMixin.class)
- .addMixIn(LinkParameter.class, ExtensionsMixin.class)
- .addMixIn(MediaType.class, MediaTypeMixin.class)
- .addMixIn(OAuthFlow.class, ExtensionsMixin.class)
- .addMixIn(OAuthFlows.class, ExtensionsMixin.class)
- .addMixIn(Operation.class, OperationMixin.class)
- .addMixIn(PathItem.class, ExtensionsMixin.class)
- .addMixIn(Paths.class, ExtensionsMixin.class)
- .addMixIn(Scopes.class, ExtensionsMixin.class)
- .addMixIn(Server.class, ExtensionsMixin.class)
- .addMixIn(ServerVariable.class, ExtensionsMixin.class)
- .addMixIn(ServerVariables.class, ExtensionsMixin.class)
- .addMixIn(Tag.class, ExtensionsMixin.class)
- .addMixIn(XML.class, ExtensionsMixin.class)
- .addMixIn(ApiResponse.class, ExtensionsMixin.class)
- .addMixIn(Parameter.class, ExtensionsMixin.class)
- .addMixIn(RequestBody.class, ExtensionsMixin.class)
- .addMixIn(Header.class, ExtensionsMixin.class)
- .addMixIn(SecurityScheme.class, ExtensionsMixin.class)
- .addMixIn(Callback.class, ExtensionsMixin.class)
- .addMixIn(Schema.class, SchemaMixin.class)
- .addMixIn(DateSchema.class, DateSchemaMixin.class)
- .addMixIn(Components.class, ComponentsMixin.class)
- .addMixIn(Info.class, InfoMixin.class)
- .addMixIn(License.class, LicenseMixin.class)
- .addMixIn(OpenAPI.class, OpenAPIMixin.class)
- .addMixIn(Discriminator.class, DiscriminatorMixin.class)
- .build();
- }
-
- @Override
- public ObjectMapper getContext(Class> type) {
- return om;
- }
-
-}
diff --git a/webapp-javax/hakunapi-simple-webapp-javax/src/main/java/fi/nls/hakunapi/simple/webapp/javax/SimpleFeaturesApplication.java b/webapp-javax/hakunapi-simple-webapp-javax/src/main/java/fi/nls/hakunapi/simple/webapp/javax/SimpleFeaturesApplication.java
deleted file mode 100644
index c4619f5..0000000
--- a/webapp-javax/hakunapi-simple-webapp-javax/src/main/java/fi/nls/hakunapi/simple/webapp/javax/SimpleFeaturesApplication.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package fi.nls.hakunapi.simple.webapp.javax;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.ServletContext;
-import javax.ws.rs.ApplicationPath;
-import javax.ws.rs.core.Context;
-
-import org.glassfish.hk2.utilities.binding.AbstractBinder;
-import org.glassfish.jersey.jackson.JacksonFeature;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.server.ServerProperties;
-
-import fi.nls.hakunapi.core.ConformanceClass;
-import fi.nls.hakunapi.core.FeatureServiceConfig;
-import fi.nls.hakunapi.core.OutputFormat;
-import fi.nls.hakunapi.core.config.HakunaConfigParser;
-import fi.nls.hakunapi.core.operation.CollectionMetadataOperation;
-import fi.nls.hakunapi.core.operation.CollectionsMetadataOperation;
-import fi.nls.hakunapi.core.operation.ConformanceOperation;
-import fi.nls.hakunapi.core.operation.FunctionsMetadataOperation;
-import fi.nls.hakunapi.core.operation.GetFeatureByIdOperation;
-import fi.nls.hakunapi.core.operation.GetFeaturesOperation;
-import fi.nls.hakunapi.core.operation.GetQueryablesOperation;
-import fi.nls.hakunapi.core.operation.GetSchemaOperation;
-import fi.nls.hakunapi.core.operation.LandingPageOperation;
-import fi.nls.hakunapi.core.operation.OperationImpl;
-import fi.nls.hakunapi.core.schemas.CollectionInfo;
-import fi.nls.hakunapi.core.schemas.CollectionsContent;
-import fi.nls.hakunapi.core.schemas.ConformanceClasses;
-import fi.nls.hakunapi.core.schemas.Queryables;
-import fi.nls.hakunapi.core.schemas.Root;
-import fi.nls.hakunapi.html.OutputFormatHTML;
-import fi.nls.hakunapi.simple.servlet.javax.CacheManager;
-import fi.nls.hakunapi.simple.servlet.javax.CatchAllExceptionMapper;
-import fi.nls.hakunapi.simple.servlet.javax.CorsFilter;
-import fi.nls.hakunapi.simple.servlet.javax.GlobalFQueryParamFilter;
-import fi.nls.hakunapi.simple.servlet.javax.GzipFilter;
-import fi.nls.hakunapi.simple.servlet.javax.GzipInterceptor;
-import fi.nls.hakunapi.simple.servlet.javax.NotAcceptableExceptionMapper;
-import fi.nls.hakunapi.simple.servlet.javax.NotFoundExceptionMapper;
-import fi.nls.hakunapi.simple.servlet.javax.ObjectMapperProvider;
-import fi.nls.hakunapi.simple.servlet.javax.OpenAPIMessageBodyWriter;
-import fi.nls.hakunapi.simple.servlet.javax.operation.CollectionMetadataImpl;
-import fi.nls.hakunapi.simple.servlet.javax.operation.CollectionsMetadataImpl;
-import fi.nls.hakunapi.simple.servlet.javax.operation.ConformanceImpl;
-import fi.nls.hakunapi.simple.servlet.javax.operation.FunctionsMetadataImpl;
-import fi.nls.hakunapi.simple.servlet.javax.operation.GetCollectionItemByIdOperation;
-import fi.nls.hakunapi.simple.servlet.javax.operation.GetCollectionItemsOperation;
-import fi.nls.hakunapi.simple.servlet.javax.operation.GetCollectionQueryablesImpl;
-import fi.nls.hakunapi.simple.servlet.javax.operation.GetCollectionSchemaImpl;
-import fi.nls.hakunapi.simple.servlet.javax.operation.GetItemsOperation;
-import fi.nls.hakunapi.simple.servlet.javax.operation.LandingPageImpl;
-import fi.nls.hakunapi.simple.servlet.javax.operation.OpenAPI30ApiOperation;
-import freemarker.template.Configuration;
-import io.swagger.v3.oas.models.OpenAPI;
-
-@ApplicationPath("/")
-public class SimpleFeaturesApplication extends ResourceConfig {
-
- public SimpleFeaturesApplication(@Context ServletContext servletContext) {
- final SimpleFeatureServiceConfig service = (SimpleFeatureServiceConfig) servletContext.getAttribute("hakunaService");
- final HakunaConfigParser parser = (HakunaConfigParser) servletContext.getAttribute("hakunaConfig");
-
- List opToImpl = new ArrayList<>();
- // Core is REQUIRED
- opToImpl.add(new OperationImpl(new LandingPageOperation(), LandingPageImpl.class));
- opToImpl.add(new OperationImpl(new CollectionsMetadataOperation(), CollectionsMetadataImpl.class));
- opToImpl.add(new OperationImpl(new CollectionMetadataOperation(), CollectionMetadataImpl.class));
- opToImpl.add(new OperationImpl(new ConformanceOperation(), ConformanceImpl.class));
- opToImpl.add(new OperationImpl(new GetFeatureByIdOperation(), GetCollectionItemByIdOperation.class));
- opToImpl.add(new OperationImpl(new GetFeaturesOperation(), GetCollectionItemsOperation.class));
- opToImpl.add(new OperationImpl(new GetSchemaOperation(), GetCollectionSchemaImpl.class));
-
- if (service.conformsTo(ConformanceClass.FILTER)) {
- opToImpl.add(new OperationImpl(new GetQueryablesOperation(), GetCollectionQueryablesImpl.class));
- }
-
- if(service.getFunctions()!=null) {
- opToImpl.add(new OperationImpl(new FunctionsMetadataOperation(), FunctionsMetadataImpl.class));
- }
-
- // Experimental
- opToImpl.add(new OperationImpl(new GetFeaturesOperation(), GetItemsOperation.class));
-
- for (OperationImpl p : opToImpl) {
- register(p.implementation);
- }
-
- register(NotFoundExceptionMapper.class);
- register(NotAcceptableExceptionMapper.class);
- register(CatchAllExceptionMapper.class);
-
- final GlobalFQueryParamFilter fParamFilter = new GlobalFQueryParamFilter(service);
- register(GlobalFQueryParamFilter.class);
-
- if (Boolean.parseBoolean(parser.get("hakuna.cors", "true"))) {
- register(CorsFilter.class);
- }
- if (Boolean.parseBoolean(parser.get("hakuna.gzip", "true"))) {
- register(GzipFilter.class);
- register(GzipInterceptor.class);
- }
-
- final OpenAPI30ApiOperation api = new OpenAPI30ApiOperation(service, opToImpl);
- register(OpenAPI30ApiOperation.class);
-
- final CacheManager cacheManager = new CacheManager();
-
- register(new AbstractBinder() {
- @Override
- protected void configure() {
- bind(service).to(FeatureServiceConfig.class);
- bind(service).to(SimpleFeatureServiceConfig.class);
- bind(api).to(OpenAPI30ApiOperation.class);
- bind(fParamFilter).to(GlobalFQueryParamFilter.class);
- bind(cacheManager).to(CacheManager.class);
- }
- });
-
- property(ServerProperties.WADL_FEATURE_DISABLE, true);
- property(ServerProperties.OUTBOUND_CONTENT_LENGTH_BUFFER, Integer.parseInt(parser.get("hakuna.content-length-buffer", "8192")));
-
- // Use Jackson as POJO provider
- register(ObjectMapperProvider.class);
- register(JacksonFeature.class);
-
- register(OpenAPIMessageBodyWriter.class);
-
- OutputFormat html = service.getOutputFormat(OutputFormatHTML.ID);
- if (html != null) {
- Configuration cfg = ((OutputFormatHTML) html).getConfiguration();
- HTMLMessageBodyWriter htmlWriter = new HTMLMessageBodyWriter(cfg);
- htmlWriter.add(CollectionInfo.class, "collectionInfo.ftl");
- htmlWriter.add(CollectionsContent.class, "collections.ftl");
- htmlWriter.add(ConformanceClasses.class, "conformance.ftl");
- htmlWriter.add(Root.class, "root.ftl");
- htmlWriter.add(OpenAPI.class, "api.ftl");
- htmlWriter.add(Queryables.class, "queryables.ftl");
- register(htmlWriter);
- }
- }
-
-}
diff --git a/webapp-javax/pom.xml b/webapp-javax/pom.xml
deleted file mode 100644
index ae253a9..0000000
--- a/webapp-javax/pom.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-
- 4.0.0
-
- fi.nls.hakunapi
- hakunapi
- 2.0.0-SNAPSHOT
-
- webapp-javax
- pom
-
-
- 2.47
- 3.0.1
- 2.0.1
-
-
-
- hakunapi-simple-servlet-javax
- hakunapi-simple-webapp-javax
- hakunapi-simple-webapp-test-javax
- hakunapi-telemetry-webapp-javax
- hakunapi-oracle-webapp-javax
-
-
-
-
-
-
- fi.nls.hakunapi
- hakunapi-simple-servlet-javax
- ${project.version}
-
-
- fi.nls.hakunapi
- hakunapi-simple-webapp-javax
- ${project.version}
-
-
- fi.nls.hakunapi
- hakunapi-simple-webapp-test-javax
- ${project.version}
-
-
- javax.annotation
- javax.annotation-api
- 1.3.2
-
-
- javax.servlet
- javax.servlet-api
- ${servlet.version}
- provided
-
-
- javax.ws.rs
- javax.ws.rs-api
- ${jaxrs.version}
- provided
-
-
- org.glassfish.jersey.core
- jersey-server
- ${jersey.version}
-
-
- org.glassfish.jersey.containers
- jersey-container-servlet
- ${jersey.version}
-
-
- org.glassfish.jersey.inject
- jersey-hk2
- ${jersey.version}
-
-
-
- org.glassfish.jersey.media
- jersey-media-json-jackson
- ${jersey.version}
-
-
- org.apache.logging.log4j
- log4j-web
- ${log4j.version}
-
-
-
-
\ No newline at end of file