org.apache.felix.http.jetty12
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.http.jetty12</artifactId>
<version>2.0.6</version>
</dependency><!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.felix</groupId>
<artifactId>felix-parent</artifactId>
<version>9</version>
<relativePath>../../pom/pom.xml</relativePath>
</parent>
<name>Apache Felix Http Jetty 12.x</name>
<description>This is an implementation of the R8.1 OSGi Servlet Service, the R7 OSGi Http Service and the R7 OSGi Http Whiteboard Specification</description>
<artifactId>org.apache.felix.http.jetty12</artifactId>
<version>2.0.6</version>
<packaging>bundle</packaging>
<scm>
<connection>scm:git:https://github.com/apache/felix-dev.git</connection>
<developerConnection>scm:git:https://github.com/apache/felix-dev.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=felix-dev.git</url>
<tag>org.apache.felix.http.jetty12-2.0.6</tag>
</scm>
<properties>
<!-- Minimum required Java version. Jetty 12.1 requires Java 17, so this is the floor.
The optional virtual-threads support (felix.jetty.threadpool.useVirtualThreads)
additionally requires Java 21 at runtime and is enabled conditionally (see JettyService). -->
<felix.java.version>17</felix.java.version>
<jetty.version>12.1.12</jetty.version>
<slf4j.version>2.0.17</slf4j.version>
<baseline.skip>false</baseline.skip>
<org.ops4j.pax.exam.version>4.13.3</org.ops4j.pax.exam.version>
<!-- To debug the pax process, override this with -D -->
<pax.vm.options>-Xmx512M</pax.vm.options>
</properties>
<build>
<plugins>
<!-- Use a groovy script to preserve the META-INF/services/* files for the artifacts that are embeded in the uber jar -->
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>groovy-magic</id>
<phase>prepare-package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source><![CDATA[
// make an output dir for the merged resource files
def slDir = new File(project.build.directory, "serviceloader-resources");
slDir.mkdirs();
// scan each of the artifacts to preserve the information found in any META-INF/services/* files
project.artifacts.each() { artifact ->
if (artifact.getArtifactHandler().isAddedToClasspath() && !org.apache.maven.artifact.Artifact.SCOPE_TEST.equals( artifact.getScope() )
&& !"org.eclipse.jetty.websocket".equals(artifact.getGroupId()) // skip the optional websocket artifacts
&& !"org.eclipse.jetty.ee11.websocket".equals(artifact.getGroupId()) // skip the optional websocket artifacts
&& !"jetty-ee11-annotations".equals(artifact.getArtifactId()) // skip the transitive artifacts from the optional websocket artifacts
&& !"jetty-ee11-plus".equals(artifact.getArtifactId())
&& !"jetty-webapp".equals(artifact.getArtifactId())
&& !"jetty-ee".equals(artifact.getArtifactId())) {
def jar;
try {
jar = new java.util.jar.JarFile(artifact.file)
jar.stream().each() { entry ->
if (!entry.isDirectory() && entry.name.startsWith("META-INF/services/")) {
// check if we already have a file with this name
def svcFile = new File(slDir, entry.name)
def svcSet = new LinkedHashSet();
if (svcFile.exists()) {
// found existing file, so load the items from the existing file so we can merge
svcFile.eachLine { className ->
className = className.trim();
if (!className.isEmpty()) {
svcSet.add(className);
}
}
}
// read the content of the found entry
def lineReader;
try {
lineReader = new BufferedReader(new InputStreamReader(jar.getInputStream(entry), java.nio.charset.StandardCharsets.UTF_8));
def className;
while ( ( className = lineReader.readLine() ) != null ) {
className = className.trim();
if (!className.isEmpty()) {
svcSet.add(className);
}
}
} finally {
// cleanup
if (lineReader != null) {
lineReader.close()
}
}
// write the merged data to the output file
if (!svcSet.isEmpty()) {
// make any missing folders
svcFile.getParentFile().mkdirs();
svcFile.withWriter('utf-8') { writer ->
svcSet.each() { item ->
writer.writeLine item;
}
// finish up with a blank line
writer.println();
}
}
}
}
} finally {
// cleanup
if (jar != null) {
jar.close();
}
}
}
}
]]></source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>6.0.2</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<X-Jetty-Version>
${jetty.version}
</X-Jetty-Version>
<Bundle-Activator>
org.apache.felix.http.jetty.internal.JettyActivator
</Bundle-Activator>
<Export-Package>
org.osgi.service.http,
org.osgi.service.http.context,
org.osgi.service.http.runtime,
org.osgi.service.http.runtime.dto,
org.osgi.service.http.whiteboard,
org.osgi.service.servlet.context,
org.osgi.service.servlet.runtime,
org.osgi.service.servlet.runtime.dto,
org.osgi.service.servlet.whiteboard,
org.eclipse.jetty.alpn.server,
org.eclipse.jetty.http.*,
org.eclipse.jetty.http2.*,
org.eclipse.jetty.io.*,
org.eclipse.jetty.jmx.*,
org.eclipse.jetty.security.*,
org.eclipse.jetty.session.*,
org.eclipse.jetty.server.*,
org.eclipse.jetty.util.*,
org.eclipse.jetty.ee.*,
!org.eclipse.jetty.ee11.websocket.*,
org.eclipse.jetty.ee11.servlet.*,
org.eclipse.jetty.compression.*,
org.apache.felix.http.jetty,
org.apache.felix.http.jakartawrappers,
org.apache.felix.http.javaxwrappers
</Export-Package>
<Private-Package>
org.apache.felix.http.base.*,
org.apache.felix.http.jetty.*,
org.eclipse.jetty.version
</Private-Package>
<Import-Package>
sun.misc;resolution:=optional,
sun.nio.ch;resolution:=optional,
javax.imageio;resolution:=optional,
javax.sql;resolution:=optional,
org.ietf.jgss;resolution:=optional,
org.osgi.service.cm;resolution:=optional;version="[1.3,2)",
org.osgi.service.event;resolution:=optional;version="[1.2,2)",
org.osgi.service.log;resolution:=optional;version="[1.3,2)",
org.osgi.service.metatype;resolution:=optional;version="[1.1,2)",
org.osgi.service.useradmin;resolution:=optional;version="[1.1,2)",
org.osgi.service.http;version="[1.2.1,1.3)",
org.osgi.service.http.context;version="[1.1,1.2)",
org.osgi.service.http.runtime;version="[1.1,1.2)",
org.osgi.service.http.runtime.dto;version="[1.1,1.2)",
*
</Import-Package>
<DynamicImport-Package>
org.osgi.service.cm;version="[1.3,2)",
org.osgi.service.event;version="[1.2,2)",
org.osgi.service.log;version="[1.3,2)",
org.osgi.service.metatype;version="[1.4,2)"
</DynamicImport-Package>
<Provide-Capability>
osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1";
uses:="javax.servlet,javax.servlet.http,org.osgi.service.http.context,org.osgi.service.http.whiteboard",
osgi.implementation;osgi.implementation="osgi.http";version:Version="2.0";
uses:="jakarta.servlet,jakarta.servlet.http,org.osgi.service.servlet.context,org.osgi.service.servlet.whiteboard",
osgi.service;objectClass:List<String>="org.osgi.service.servlet.runtime.HttpServiceRuntime";
uses:="org.osgi.service.servlet.runtime,org.osgi.service.servlet.runtime.dto",
osgi.service;objectClass:List<String>="org.osgi.service.http.runtime.HttpServiceRuntime";
uses:="org.osgi.service.http.runtime,org.osgi.service.http.runtime.dto",
osgi.service;objectClass:List<String>="org.osgi.service.http.HttpService";
uses:="org.osgi.service.http",
osgi.serviceloader;osgi.serviceloader="org.eclipse.jetty.http.HttpFieldPreEncoder"
</Provide-Capability>
<Require-Capability>
osgi.contract;filter:="(&(osgi.contract=JavaServlet)(version=4.0))",
osgi.contract;filter:="(&(osgi.contract=JakartaServlet)(version=6.0))",
osgi.extender;filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional,
osgi.extender;filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional,
osgi.serviceloader;filter:="(osgi.serviceloader=org.eclipse.jetty.http.HttpFieldPreEncoder)";resolution:=optional;cardinality:=multiple,
osgi.serviceloader;filter:="(osgi.serviceloader=org.eclipse.jetty.io.ssl.ALPNProcessor$Server)";resolution:=optional;cardinality:=multiple
</Require-Capability>
<Include-Resource>
{maven-resources},${project.build.directory}/serviceloader-resources
</Include-Resource>
<_removeheaders>
Private-Package,Conditional-Package,Include-Resource
</_removeheaders>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle</id>
<phase>package</phase>
<goals>
<goal>bundle</goal>
</goals>
</execution>
<execution>
<id>baseline</id>
<goals>
<goal>baseline</goal>
</goals>
<configuration>
<!-- Baseline only the packages this bundle owns. The re-exported
org.eclipse.jetty.* packages are versioned by Jetty itself, so
their versions legitimately change on every Jetty upgrade
(and Jetty's own micro releases can add API); baselining them
against a previous Felix release is meaningless and would break
on each bump. See FELIX-6856. -->
<filters>
<filter>!org.eclipse.jetty.*</filter>
<filter>*</filter>
</filters>
</configuration>
</execution>
<execution>
<id>light-bundle</id>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<classifier>light</classifier>
<instructions>
<Bundle-Name>${project.name} Light</Bundle-Name>
<Bundle-SymbolicName>${project.artifactId}.light</Bundle-SymbolicName>
<Export-Package>
org.osgi.service.http,
org.osgi.service.http.context,
org.osgi.service.http.runtime,
org.osgi.service.http.runtime.dto,
org.osgi.service.http.whiteboard,
org.osgi.service.servlet.context,
org.osgi.service.servlet.runtime,
org.osgi.service.servlet.runtime.dto,
org.osgi.service.servlet.whiteboard,
org.apache.felix.http.jetty,
org.apache.felix.http.javaxwrappers,
org.apache.felix.http.jakartawrappers
</Export-Package>
<Private-Package>
org.apache.felix.http.base.*,
org.apache.felix.http.jetty.*,
</Private-Package>
<Import-Package>
org.osgi.service.cm;resolution:=optional;version="[1.3,2)",
org.osgi.service.event;resolution:=optional;version="[1.2,2)",
org.osgi.service.log;resolution:=optional;version="[1.3,2)",
org.osgi.service.metatype;resolution:=optional;version="[1.4,2)",
org.osgi.service.useradmin;resolution:=optional;version="[1.1,2)",
org.osgi.service.http;version="[1.2.1,1.3)",
org.osgi.service.http.context;version="[1.1,1.2)",
org.osgi.service.http.runtime;version="[1.1,1.2)",
org.osgi.service.http.runtime.dto;version="[1.1,1.2)",
*
</Import-Package>
<!-- We need to override this from the base configuration to exclude the ServiceLoader capabilities -->
<Provide-Capability>
osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1";
uses:="javax.servlet,javax.servlet.http,org.osgi.service.http.context,org.osgi.service.http.whiteboard",
osgi.implementation;osgi.implementation="osgi.http";version:Version="2.0";
uses:="jakarta.servlet,jakarta.servlet.http,org.osgi.service.servlet.context,org.osgi.service.servlet.whiteboard",
osgi.service;objectClass:List<String>="org.osgi.service.servlet.runtime.HttpServiceRuntime";
uses:="org.osgi.service.servlet.runtime,org.osgi.service.servlet.runtime.dto",
osgi.service;objectClass:List<String>="org.osgi.service.http.runtime.HttpServiceRuntime";
uses:="org.osgi.service.http.runtime,org.osgi.service.http.runtime.dto",
osgi.service;objectClass:List<String>="org.osgi.service.http.HttpService";
uses:="org.osgi.service.http"
</Provide-Capability>
<!-- We need to override this from the base configuration to exclude the ServiceLoader capabilities -->
<Require-Capability>
osgi.contract;filter:="(&(osgi.contract=JavaServlet)(version=4.0))",
osgi.contract;filter:="(&(osgi.contract=JakartaServlet)(version=6.0))"
</Require-Capability>
<!-- We need to override this from the base configuration to exclude the ServiceLoader resources -->
<Include-Resource>
{maven-resources}
</Include-Resource>
<_removeheaders>
X-Jetty-Version,Private-Package,Conditional-Package,Include-Resource
</_removeheaders>
</instructions>
</configuration>
</execution>
<execution>
<id>with-jetty-websockets</id>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<classifier>with-jetty-websockets</classifier>
<!-- Only the instructions that differ from the primary bundle are declared here.
Everything else (Bundle-SymbolicName, Bundle-Version, X-Jetty-Version,
Bundle-Activator, Private-Package, DynamicImport-Package, Provide-Capability,
Require-Capability, Include-Resource, _removeheaders) is inherited from the
plugin-level <instructions> via Maven's plugin/execution configuration merge. -->
<instructions>
<!-- Adds the Jetty-specific websocket packages on top of the primary export set -->
<Export-Package>
org.osgi.service.http,
org.osgi.service.http.context,
org.osgi.service.http.runtime,
org.osgi.service.http.runtime.dto,
org.osgi.service.http.whiteboard,
org.osgi.service.servlet.context,
org.osgi.service.servlet.runtime,
org.osgi.service.servlet.runtime.dto,
org.osgi.service.servlet.whiteboard,
org.eclipse.jetty.alpn.server,
org.eclipse.jetty.http.*,
org.eclipse.jetty.http2.*,
org.eclipse.jetty.io.*,
org.eclipse.jetty.jmx.*,
org.eclipse.jetty.security.*,
org.eclipse.jetty.session.*,
org.eclipse.jetty.server.*,
org.eclipse.jetty.util.*,
org.eclipse.jetty.ee.*,
org.eclipse.jetty.ee11.servlet.*,
!org.eclipse.jetty.ee11.websocket.jakarta.*,
org.eclipse.jetty.ee11.websocket.*,
org.eclipse.jetty.websocket.*,
org.eclipse.jetty.compression.*,
org.apache.felix.http.jetty,
org.apache.felix.http.jakartawrappers,
org.apache.felix.http.javaxwrappers
</Export-Package>
<!-- Adds the optional org.eclipse.jetty.client import needed by the websocket bundles -->
<Import-Package>
org.eclipse.jetty.client;resolution:=optional,
sun.misc;resolution:=optional,
sun.nio.ch;resolution:=optional,
javax.imageio;resolution:=optional,
javax.sql;resolution:=optional,
org.ietf.jgss;resolution:=optional,
org.osgi.service.cm;resolution:=optional;version="[1.3,2)",
org.osgi.service.event;resolution:=optional;version="[1.2,2)",
org.osgi.service.log;resolution:=optional;version="[1.3,2)",
org.osgi.service.metatype;resolution:=optional;version="[1.1,2)",
org.osgi.service.useradmin;resolution:=optional;version="[1.1,2)",
org.osgi.service.http;version="[1.2.1,1.3)",
org.osgi.service.http.context;version="[1.1,1.2)",
org.osgi.service.http.runtime;version="[1.1,1.2)",
org.osgi.service.http.runtime.dto;version="[1.1,1.2)",
*
</Import-Package>
</instructions>
</configuration>
</execution>
<execution>
<id>with-jakarta-websockets</id>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<classifier>with-jakarta-websockets</classifier>
<!-- Only the instructions that differ from the primary bundle are declared here.
Everything else (Bundle-SymbolicName, Bundle-Version, X-Jetty-Version,
Bundle-Activator, Private-Package, DynamicImport-Package, Provide-Capability,
Require-Capability, Include-Resource, _removeheaders) is inherited from the
plugin-level <instructions> via Maven's plugin/execution configuration merge. -->
<instructions>
<!-- Adds the Jakarta websocket packages on top of the primary export set -->
<Export-Package>
org.osgi.service.http,
org.osgi.service.http.context,
org.osgi.service.http.runtime,
org.osgi.service.http.runtime.dto,
org.osgi.service.http.whiteboard,
org.osgi.service.servlet.context,
org.osgi.service.servlet.runtime,
org.osgi.service.servlet.runtime.dto,
org.osgi.service.servlet.whiteboard,
org.eclipse.jetty.alpn.server,
org.eclipse.jetty.http.*,
org.eclipse.jetty.http2.*,
org.eclipse.jetty.io.*,
org.eclipse.jetty.jmx.*,
org.eclipse.jetty.security.*,
org.eclipse.jetty.session.*,
org.eclipse.jetty.server.*,
org.eclipse.jetty.util.*,
org.eclipse.jetty.ee.*,
!org.eclipse.jetty.ee11.websocket.server.*,
!org.eclipse.jetty.ee11.websocket.servlet.*,
org.eclipse.jetty.ee11.websocket.jakarta.*,
org.eclipse.jetty.ee11.servlet.*,
org.eclipse.jetty.websocket.*,
org.eclipse.jetty.compression.*,
org.apache.felix.http.jetty,
org.apache.felix.http.jakartawrappers,
org.apache.felix.http.javaxwrappers
</Export-Package>
<!-- Adds the optional org.eclipse.jetty.client import needed by the websocket bundles -->
<Import-Package>
org.eclipse.jetty.client;resolution:=optional,
sun.misc;resolution:=optional,
sun.nio.ch;resolution:=optional,
javax.imageio;resolution:=optional,
javax.sql;resolution:=optional,
org.ietf.jgss;resolution:=optional,
org.osgi.service.cm;resolution:=optional;version="[1.3,2)",
org.osgi.service.event;resolution:=optional;version="[1.2,2)",
org.osgi.service.log;resolution:=optional;version="[1.3,2)",
org.osgi.service.metatype;resolution:=optional;version="[1.1,2)",
org.osgi.service.useradmin;resolution:=optional;version="[1.1,2)",
org.osgi.service.http;version="[1.2.1,1.3)",
org.osgi.service.http.context;version="[1.1,1.2)",
org.osgi.service.http.runtime;version="[1.1,1.2)",
org.osgi.service.http.runtime.dto;version="[1.1,1.2)",
*
</Import-Package>
</instructions>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>
<!-- plugins for paxexam integration tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<phase>integration-test</phase>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<systemPropertyVariables>
<jetty.version>${jetty.version}</jetty.version>
<bundle.filename>${basedir}/target/${project.build.finalName}.jar</bundle.filename>
<pax.vm.options>${pax.vm.options}</pax.vm.options>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.cm</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.event</artifactId>
<version>1.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.metatype</artifactId>
<version>1.4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.useradmin</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.ee11</groupId>
<artifactId>jetty-ee11-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util-ajax</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jmx</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-security</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>jetty-http2-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>jetty-http2-common</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>jetty-http2-hpack</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-alpn-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.ee11.websocket</groupId>
<artifactId>jetty-ee11-websocket-jakarta-server</artifactId>
<version>${jetty.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.ee11.websocket</groupId>
<artifactId>jetty-ee11-websocket-jetty-server</artifactId>
<version>${jetty.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>jetty-websocket-jetty-server</artifactId>
<version>${jetty.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-session</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.compression</groupId>
<artifactId>jetty-compression-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.compression</groupId>
<artifactId>jetty-compression-gzip</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.compression</groupId>
<artifactId>jetty-compression-common</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.servlet</artifactId>
<version>2.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.http</artifactId>
<version>1.2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.http.whiteboard</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.http.base</artifactId>
<version>6.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.http.wrappers</artifactId>
<version>6.1.0</version>
</dependency>
<!-- Testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.17.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.log</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
<!-- an OSGi framework -->
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>7.0.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<scope>test</scope>
</dependency>
<!-- Pax Exam -->
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam</artifactId>
<version>${org.ops4j.pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-cm</artifactId>
<version>${org.ops4j.pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-container-forked</artifactId>
<version>${org.ops4j.pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>${org.ops4j.pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-link-mvn</artifactId>
<version>${org.ops4j.pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-client</artifactId>
<version>${jetty.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>jetty-websocket-jetty-client</artifactId>
<version>${jetty.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>4.2.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>