Move to latest possible MicroProfile OpenTracing and using also new jakarta namespace
diff --git a/geronimo-opentracing-common/pom.xml b/geronimo-opentracing-common/pom.xml
index 0578fc9..215b8de 100644
--- a/geronimo-opentracing-common/pom.xml
+++ b/geronimo-opentracing-common/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <artifactId>geronimo-opentracing-parent</artifactId>
     <groupId>org.apache.geronimo</groupId>
-    <version>1.0.4-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
@@ -43,15 +43,15 @@
             <Import-Package>
               io.opentracing,io.opentracing.propagation,
               io.opentracing.tag,
-              javax.annotation;version="[1.0,3)",
-              javax.json.bind;version="[1.0,3)";resolution:=optional,
-              javax.servlet,
-              javax.servlet.http,
-              javax.ws.rs;version="[2,3)",
-              javax.ws.rs.client;version="[2,3)",
-              javax.ws.rs.container;version="[2,3)",
-              javax.ws.rs.core;version="[2,3)",
-              javax.ws.rs.ext;version="[2,3)",
+              jakarta.annotation;version="[1.0,3)",
+              jakarta.json.bind;version="[1.0,3)";resolution:=optional,
+              jakarta.servlet,
+              jakarta.servlet.http,
+              jakarta.ws.rs;version="[2,3)",
+              jakarta.ws.rs.client;version="[2,3)",
+              jakarta.ws.rs.container;version="[2,3)",
+              jakarta.ws.rs.core;version="[2,3)",
+              jakarta.ws.rs.ext;version="[2,3)",
               *
             </Import-Package>
           </instructions>
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/GeronimoTracer.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/GeronimoTracer.java
index c7e7654..f2cf478 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/GeronimoTracer.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/GeronimoTracer.java
@@ -24,9 +24,10 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Optional;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.core.MultivaluedMap;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.core.MultivaluedMap;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.spi.Bus;
@@ -80,7 +81,12 @@
 
     @Override
     public Span activeSpan() {
-        return ofNullable(scopeManager.active()).map(Scope::span).orElse(null);
+        return ofNullable(scopeManager.activeSpan()).orElse(null);
+    }
+
+    @Override
+    public Scope activateSpan(final Span span) {
+        return scopeManager.activate(span);
     }
 
     @Override
@@ -153,6 +159,11 @@
         return null;
     }
 
+    @Override
+    public void close() {
+        Optional.of(activeSpan()).ifPresent(Span::finish);
+    }
+
     protected Span processNewSpan(final SpanImpl span) {
         return span;
     }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGenerator.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGenerator.java
index 12692ee..c17a71e 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGenerator.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGenerator.java
@@ -21,7 +21,7 @@
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.function.Supplier;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/JaxRsHeaderTextMap.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/JaxRsHeaderTextMap.java
index d074248..66082ee 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/JaxRsHeaderTextMap.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/JaxRsHeaderTextMap.java
@@ -19,7 +19,7 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import javax.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.MultivaluedMap;
 
 import io.opentracing.propagation.TextMap;
 
@@ -38,7 +38,7 @@
     @Override
     public Iterator<Map.Entry<String, String>> iterator() {
         final Iterator<String> iterator = headers.keySet().iterator();
-        return new Iterator<Map.Entry<String, String>>() {
+        return new Iterator<>() {
 
             @Override
             public boolean hasNext() {
@@ -48,7 +48,7 @@
             @Override
             public Map.Entry<String, String> next() {
                 final String next = iterator.next();
-                return new Map.Entry<String, String>() {
+                return new Map.Entry<>() {
 
                     @Override
                     public String getKey() {
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeImpl.java
index 3afcf85..209d130 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeImpl.java
@@ -27,10 +27,10 @@
 
     private final Runnable onClose;
 
-    public ScopeImpl(final Runnable onClose, final Span span, final boolean finishSpanOnClose) {
+    public ScopeImpl(final Runnable onClose, final Span span) {
         this.onClose = onClose;
         this.span = span;
-        this.finishOnClose = finishSpanOnClose;
+        this.finishOnClose = true;
     }
 
     @Override
@@ -46,7 +46,6 @@
         }
     }
 
-    @Override
     public Span span() {
         return span;
     }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeManagerImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeManagerImpl.java
index 05110f3..85d9cb8 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeManagerImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeManagerImpl.java
@@ -25,29 +25,30 @@
 
     private final ThreadLocal<Scope> current = new ThreadLocal<>();
 
+    public void clear() {
+        current.remove();
+    }
+
     @Override
-    public Scope activate(final Span span, final boolean finishSpanOnClose) {
+    public Scope activate(final Span span) {
         final Thread thread = Thread.currentThread();
         final Scope oldScope = current.get();
         final ScopeImpl newScope = new ScopeImpl(() -> {
             if (Thread.currentThread() == thread) {
                 current.set(oldScope);
             } // else error?
-        }, span, finishSpanOnClose);
+        }, span);
         current.set(newScope);
         return newScope;
     }
 
     @Override
-    public Scope active() {
-        final Scope scope = current.get();
+    public Span activeSpan() {
+        final ScopeImpl scope = (ScopeImpl) current.get();
         if (scope == null) {
             current.remove();
+            return null;
         }
-        return scope;
-    }
-
-    public void clear() {
-        current.remove();
+        return scope.span();
     }
 }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ServletHeaderTextMap.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ServletHeaderTextMap.java
index b4d123c..fa6f968 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ServletHeaderTextMap.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ServletHeaderTextMap.java
@@ -20,8 +20,8 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import io.opentracing.propagation.TextMap;
 
@@ -43,7 +43,7 @@
     @Override
     public Iterator<Map.Entry<String, String>> iterator() {
         final Enumeration<String> iterator = request.getHeaderNames();
-        return new Iterator<Map.Entry<String, String>>() {
+        return new Iterator<>() {
 
             @Override
             public boolean hasNext() {
@@ -53,7 +53,7 @@
             @Override
             public Map.Entry<String, String> next() {
                 final String next = iterator.nextElement();
-                return new Map.Entry<String, String>() {
+                return new Map.Entry<>() {
 
                     @Override
                     public String getKey() {
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanBuilderImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanBuilderImpl.java
index 9de9c56..1501777 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanBuilderImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanBuilderImpl.java
@@ -16,7 +16,11 @@
  */
 package org.apache.geronimo.microprofile.opentracing.common.impl;
 
-import static java.util.stream.Collectors.toMap;
+import io.opentracing.References;
+import io.opentracing.Span;
+import io.opentracing.SpanContext;
+import io.opentracing.Tracer;
+import io.opentracing.tag.Tag;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -28,11 +32,7 @@
 import java.util.function.Consumer;
 import java.util.stream.StreamSupport;
 
-import io.opentracing.References;
-import io.opentracing.Scope;
-import io.opentracing.Span;
-import io.opentracing.SpanContext;
-import io.opentracing.Tracer;
+import static java.util.stream.Collectors.toMap;
 
 public class SpanBuilderImpl implements Tracer.SpanBuilder {
 
@@ -105,17 +105,17 @@
     }
 
     @Override
+    public <T> Tracer.SpanBuilder withTag(final Tag<T> tag, final T t) {
+        tags.put(tag.getKey(), t);
+        return this;
+    }
+
+    @Override
     public Tracer.SpanBuilder withStartTimestamp(final long microseconds) {
         this.timestamp = microseconds;
         return this;
     }
 
-    @Override
-    public Scope startActive(final boolean finishSpanOnClose) {
-        return tracer.scopeManager().activate(startManual(), finishSpanOnClose);
-    }
-
-    @Override
     public Span startManual() {
         if (timestamp < 0) {
             timestamp = TimeUnit.MILLISECONDS.toMicros(System.currentTimeMillis());
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanContextImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanContextImpl.java
index a1eee17..65545c5 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanContextImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanContextImpl.java
@@ -54,6 +54,16 @@
     }
 
     @Override
+    public String toTraceId() {
+        return String.valueOf(getTraceId());
+    }
+
+    @Override
+    public String toSpanId() {
+        return String.valueOf(getSpanId());
+    }
+
+    @Override
     public Iterable<Map.Entry<String, String>> baggageItems() {
         return baggageItems.entrySet();
     }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanImpl.java
index 4565c88..6c3cc03 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanImpl.java
@@ -26,6 +26,7 @@
 
 import io.opentracing.Span;
 import io.opentracing.SpanContext;
+import io.opentracing.tag.Tag;
 import io.opentracing.tag.Tags;
 
 public class SpanImpl implements Span {
@@ -108,6 +109,12 @@
     }
 
     @Override
+    public <T> Span setTag(final Tag<T> tag, final T t) {
+        tags.put(tag.getKey(), t);
+        return this;
+    }
+
+    @Override
     public Span log(final Map<String, ?> fields) {
         return log(startTimestamp, fields);
     }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/GeronimoClientTracingRegistrarProvider.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/GeronimoClientTracingRegistrarProvider.java
index edb7e34..74768e6 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/GeronimoClientTracingRegistrarProvider.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/GeronimoClientTracingRegistrarProvider.java
@@ -18,7 +18,7 @@
 
 import java.util.concurrent.ExecutorService;
 
-import javax.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.ClientBuilder;
 
 import org.apache.geronimo.microprofile.opentracing.common.microprofile.thread.OpenTracingExecutorService;
 import org.apache.geronimo.microprofile.opentracing.common.spi.Container;
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientRequestFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientRequestFilter.java
index f5653d1..5c0a370 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientRequestFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientRequestFilter.java
@@ -21,13 +21,12 @@
 
 import java.util.function.Consumer;
 
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientRequestFilter;
+import jakarta.ws.rs.client.ClientRequestContext;
+import jakarta.ws.rs.client.ClientRequestFilter;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.impl.JaxRsHeaderTextMap;
 
-import io.opentracing.Scope;
 import io.opentracing.Span;
 import io.opentracing.SpanContext;
 import io.opentracing.Tracer;
@@ -71,8 +70,7 @@
         ofNullable(SpanContext.class.cast(context.getProperty(CHILD_OF)))
                 .ifPresent(parent -> builder.ignoreActiveSpan().asChildOf(parent));
 
-        final Scope scope = builder.startActive(true);
-        final Span span = scope.span();
+        final Span span = builder.start();
         if (!skipDefaultTags) {
             Tags.HTTP_METHOD.set(span, context.getMethod());
             Tags.HTTP_URL.set(span, context.getUri().toASCIIString());
@@ -87,7 +85,7 @@
                 .ifPresent(consumer -> Consumer.class.cast(consumer).accept(span));
 
         tracer.inject(span.context(), Format.Builtin.HTTP_HEADERS, new JaxRsHeaderTextMap<>(context.getHeaders()));
-        context.setProperty(OpenTracingClientRequestFilter.class.getName(), scope);
+        context.setProperty(OpenTracingClientRequestFilter.class.getName(), span);
 
     }
 }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientResponseFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientResponseFilter.java
index 62ac654..7687817 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientResponseFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientResponseFilter.java
@@ -16,16 +16,15 @@
  */
 package org.apache.geronimo.microprofile.opentracing.common.microprofile.client;
 
-import static java.util.Optional.ofNullable;
-
-import javax.annotation.Priority;
-import javax.ws.rs.Priorities;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientResponseContext;
-import javax.ws.rs.client.ClientResponseFilter;
-
-import io.opentracing.Scope;
+import io.opentracing.Span;
 import io.opentracing.tag.Tags;
+import jakarta.annotation.Priority;
+import jakarta.ws.rs.Priorities;
+import jakarta.ws.rs.client.ClientRequestContext;
+import jakarta.ws.rs.client.ClientResponseContext;
+import jakarta.ws.rs.client.ClientResponseFilter;
+
+import static java.util.Optional.ofNullable;
 
 // @ApplicationScoped
 @Priority(Priorities.HEADER_DECORATOR)
@@ -33,10 +32,10 @@
 
     @Override
     public void filter(final ClientRequestContext req, final ClientResponseContext resp) {
-        ofNullable(req.getProperty(OpenTracingClientRequestFilter.class.getName())).map(Scope.class::cast)
-                .ifPresent(scope -> {
-                    Tags.HTTP_STATUS.set(scope.span(), resp.getStatus());
-                    scope.close();
+        ofNullable(req.getProperty(OpenTracingClientRequestFilter.class.getName())).map(Span.class::cast)
+                .ifPresent(span -> {
+                    Tags.HTTP_STATUS.set(span, resp.getStatus());
+                    span.finish();
                 });
     }
 }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/GeronimoOpenTracingFeature.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/GeronimoOpenTracingFeature.java
index acd8501..6cd85f2 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/GeronimoOpenTracingFeature.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/GeronimoOpenTracingFeature.java
@@ -26,12 +26,11 @@
 import java.util.regex.Pattern;
 import java.util.stream.Stream;
 
-import javax.ws.rs.HttpMethod;
-import javax.ws.rs.Path;
-import javax.ws.rs.container.DynamicFeature;
-import javax.ws.rs.container.ResourceInfo;
-import javax.ws.rs.core.FeatureContext;
-import javax.ws.rs.ext.Provider;
+import jakarta.ws.rs.HttpMethod;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.container.DynamicFeature;
+import jakarta.ws.rs.container.ResourceInfo;
+import jakarta.ws.rs.core.FeatureContext;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.spi.Container;
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingFilter.java
index a3e7da8..27c2397 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingFilter.java
@@ -18,16 +18,16 @@
 import java.util.regex.Pattern;
 import java.util.stream.Stream;
 
-import javax.servlet.AsyncEvent;
-import javax.servlet.AsyncListener;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.AsyncEvent;
+import jakarta.servlet.AsyncListener;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.impl.ScopeManagerImpl;
@@ -134,15 +134,14 @@
                                 new ServletHeaderTextMap(req, HttpServletResponse.class.cast(response)))))
                                         .ifPresent(builder::asChildOf);
 
-                final Scope scope = builder.startActive(true);
-                final Span span = scope.span();
+                final Span span = builder.start();
 
                 if (!skipDefaultTags) {
                     Tags.HTTP_METHOD.set(span, req.getMethod());
                     Tags.HTTP_URL.set(span, req.getRequestURL().toString());
                 }
 
-                request.setAttribute(OpenTracingFilter.class.getName(), scope);
+                request.setAttribute(OpenTracingFilter.class.getName(), span);
             }
         }
         if (skipUrls != null && !skipUrls.isEmpty()) {
@@ -156,16 +155,16 @@
         try {
             chain.doFilter(request, response);
         } catch (final Exception ex) {
-            getCurrentScope(request).ifPresent(scope -> onError(response, ex, scope));
+            getCurrentSpan(request).ifPresent(scope -> onError(response, ex, scope));
             throw ex;
         } finally {
-            getCurrentScope(request).ifPresent(scope -> {
+            getCurrentSpan(request).ifPresent(scope -> {
                 if (request.isAsyncStarted()) {
                     request.getAsyncContext().addListener(new AsyncListener() {
 
                         @Override
                         public void onComplete(final AsyncEvent event) {
-                            scope.close();
+                            scope.finish();
                         }
 
                         @Override
@@ -198,15 +197,14 @@
                         ScopeManagerImpl.class.cast(managerImpl).clear();
                     }
                 } else {
-                    scope.close();
+                    scope.finish();
                 }
             });
         }
     }
 
-    private void onError(final ServletResponse response, final Throwable ex, final Scope scope) {
+    private void onError(final ServletResponse response, final Throwable ex, final Span span) {
         final int status = HttpServletResponse.class.cast(response).getStatus();
-        final Span span = scope.span();
         Tags.HTTP_STATUS.set(span,
                 status == HttpServletResponse.SC_OK ? HttpServletResponse.SC_INTERNAL_SERVER_ERROR : status);
         if (forceStackLog) {
@@ -218,9 +216,9 @@
         }
     }
 
-    private Optional<Scope> getCurrentScope(final ServletRequest request) {
+    private Optional<Span> getCurrentSpan(final ServletRequest request) {
         return ofNullable(ofNullable(request.getAttribute(OpenTracingFilter.class.getName()))
-                .orElseGet(() -> tracer.scopeManager().active())).map(Scope.class::cast);
+                .orElseGet(() -> tracer.scopeManager().activeSpan())).map(Span.class::cast);
     }
 
     protected String buildServletOperationName(final HttpServletRequest req) {
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerRequestFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerRequestFilter.java
index d7d738d..30adee2 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerRequestFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerRequestFilter.java
@@ -18,13 +18,11 @@
 
 import static java.util.Optional.ofNullable;
 
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerRequestFilter;
 
 import org.apache.geronimo.microprofile.opentracing.common.impl.JaxRsHeaderTextMap;
-import org.apache.geronimo.microprofile.opentracing.common.microprofile.client.OpenTracingClientRequestFilter;
 
-import io.opentracing.Scope;
 import io.opentracing.Span;
 import io.opentracing.Tracer;
 import io.opentracing.propagation.Format;
@@ -62,14 +60,13 @@
                 .orElseGet(() -> tracer.extract(Format.Builtin.HTTP_HEADERS, new JaxRsHeaderTextMap<>(context.getHeaders()))))
                 .ifPresent(builder::asChildOf);
 
-        final Scope scope = builder.startActive(true);
-        final Span span = scope.span();
+        final Span span = builder.start();
 
         if (!skipDefaultTags) {
             Tags.HTTP_METHOD.set(span, context.getMethod());
             Tags.HTTP_URL.set(span, context.getUriInfo().getRequestUri().toASCIIString());
         }
 
-        context.setProperty(OpenTracingFilter.class.getName(), scope);
+        context.setProperty(OpenTracingFilter.class.getName(), span);
     }
 }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerResponseFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerResponseFilter.java
index b67734c..30954b8 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerResponseFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerResponseFilter.java
@@ -16,23 +16,22 @@
  */
 package org.apache.geronimo.microprofile.opentracing.common.microprofile.server;
 
-import static java.util.Optional.ofNullable;
-
-import javax.annotation.Priority;
-import javax.ws.rs.Priorities;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
-
-import io.opentracing.Scope;
+import io.opentracing.Span;
 import io.opentracing.tag.Tags;
+import jakarta.annotation.Priority;
+import jakarta.ws.rs.Priorities;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
+
+import static java.util.Optional.ofNullable;
 
 @Priority(Priorities.HEADER_DECORATOR)
 public class OpenTracingServerResponseFilter implements ContainerResponseFilter {
 
     @Override
     public void filter(final ContainerRequestContext req, final ContainerResponseContext resp) {
-        ofNullable(req.getProperty(OpenTracingFilter.class.getName())).map(Scope.class::cast)
-                .ifPresent(scope -> Tags.HTTP_STATUS.set(scope.span(), resp.getStatus()));
+        ofNullable(req.getProperty(OpenTracingFilter.class.getName())).map(Span.class::cast)
+                .ifPresent(span -> Tags.HTTP_STATUS.set(span, resp.getStatus()));
     }
 }
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/ServletTracingSetup.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/ServletTracingSetup.java
index cefdbe0..733513f 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/ServletTracingSetup.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/ServletTracingSetup.java
@@ -19,10 +19,10 @@
 import java.util.EnumSet;
 import java.util.Set;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.FilterRegistration;
-import javax.servlet.ServletContainerInitializer;
-import javax.servlet.ServletContext;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.FilterRegistration;
+import jakarta.servlet.ServletContainerInitializer;
+import jakarta.servlet.ServletContext;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinHttp.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinHttp.java
index 451b19c..6a73c5b 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinHttp.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinHttp.java
@@ -20,8 +20,8 @@
 import static java.util.Optional.ofNullable;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.MINUTES;
-import static javax.ws.rs.client.Entity.entity;
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE;
+import static jakarta.ws.rs.client.Entity.entity;
+import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON_TYPE;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -34,11 +34,11 @@
 import java.util.logging.Logger;
 import java.util.stream.Stream;
 
-import javax.json.bind.Jsonb;
-import javax.json.bind.JsonbBuilder;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.core.Response;
+import jakarta.json.bind.Jsonb;
+import jakarta.json.bind.JsonbBuilder;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.core.Response;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.spi.Listener;
diff --git a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinLogger.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinLogger.java
index ae73637..8803d2a 100644
--- a/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinLogger.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinLogger.java
@@ -18,8 +18,8 @@
 
 import java.util.logging.Logger;
 
-import javax.json.bind.Jsonb;
-import javax.json.bind.JsonbBuilder;
+import jakarta.json.bind.Jsonb;
+import jakarta.json.bind.JsonbBuilder;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.spi.Listener;
diff --git a/geronimo-opentracing-common/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer b/geronimo-opentracing-common/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer
similarity index 100%
rename from geronimo-opentracing-common/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
rename to geronimo-opentracing-common/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer
diff --git a/geronimo-opentracing-extension/pom.xml b/geronimo-opentracing-extension/pom.xml
index e5fac10..93bac84 100644
--- a/geronimo-opentracing-extension/pom.xml
+++ b/geronimo-opentracing-extension/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <artifactId>geronimo-opentracing-parent</artifactId>
     <groupId>org.apache.geronimo</groupId>
-    <version>1.0.4-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
@@ -34,8 +34,8 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-jcdi_2.0_spec</artifactId>
+      <groupId>jakarta.enterprise</groupId>
+      <artifactId>jakarta.enterprise.cdi-api</artifactId>
     </dependency>
 
     <dependency>
diff --git a/geronimo-opentracing-extension/src/main/java/org/apache/geronimo/opentracing/extension/proxy/TracingProxyFactory.java b/geronimo-opentracing-extension/src/main/java/org/apache/geronimo/opentracing/extension/proxy/TracingProxyFactory.java
index b209ef6..829e39f 100644
--- a/geronimo-opentracing-extension/src/main/java/org/apache/geronimo/opentracing/extension/proxy/TracingProxyFactory.java
+++ b/geronimo-opentracing-extension/src/main/java/org/apache/geronimo/opentracing/extension/proxy/TracingProxyFactory.java
@@ -16,8 +16,9 @@
  */
 package org.apache.geronimo.opentracing.extension.proxy;
 
-import static java.util.Collections.emptyMap;
-import static java.util.Optional.ofNullable;
+import io.opentracing.Span;
+import io.opentracing.Tracer;
+import io.opentracing.tag.Tags;
 
 import java.io.Serializable;
 import java.lang.reflect.InvocationHandler;
@@ -29,10 +30,8 @@
 import java.util.concurrent.CompletionStage;
 import java.util.stream.Stream;
 
-import io.opentracing.Scope;
-import io.opentracing.Span;
-import io.opentracing.Tracer;
-import io.opentracing.tag.Tags;
+import static java.util.Collections.emptyMap;
+import static java.util.Optional.ofNullable;
 
 public class TracingProxyFactory {
     public <T> T decorate(final Tracer tracer, final T instance) {
@@ -80,7 +79,7 @@
             tags.forEach(builder::withTag);
             ofNullable(tracer.activeSpan()).ifPresent(builder::asChildOf);
 
-            final Scope scope = builder.startActive(false /*just handle span inheritance for async case*/);
+            final Span span = builder.start();
             boolean doFinish = true;
             try {
                 final Object result = method.invoke(delegate, args);
@@ -90,24 +89,23 @@
                     return stage.handle((r, e) -> {
                         try {
                             if (e != null) {
-                                onError(scope, e);
+                                onError(span, e);
                                 return rethrow(e);
                             }
                             return r;
                         } finally {
-                            scope.span().finish();
+                            span.finish();
                         }
                     });
                 }
                 return result;
             } catch (final InvocationTargetException ite) {
-                onError(scope, ite.getTargetException());
+                onError(span, ite.getTargetException());
                 throw ite.getTargetException();
             } finally {
                 if (doFinish) {
-                    scope.span().finish();
+                    span.finish();
                 }
-                scope.close();
             }
         }
 
@@ -121,8 +119,7 @@
             throw new IllegalStateException(e);
         }
 
-        private void onError(final Scope scope, final Throwable e) {
-            final Span span = scope.span();
+        private void onError(final Span span, final Throwable e) {
             Tags.ERROR.set(span, true);
 
             final Map<String, Object> logs = new LinkedHashMap<>();
diff --git a/geronimo-opentracing-osgi/pom.xml b/geronimo-opentracing-osgi/pom.xml
index 7c603d3..a00bb52 100644
--- a/geronimo-opentracing-osgi/pom.xml
+++ b/geronimo-opentracing-osgi/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <artifactId>geronimo-opentracing-parent</artifactId>
     <groupId>org.apache.geronimo</groupId>
-    <version>1.0.4-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
@@ -31,13 +31,17 @@
     <geronimo-opentracing.Automatic-Module-Name>org.apache.geronimo.opentracing.osgi</geronimo-opentracing.Automatic-Module-Name>
 
     <pax.exam.version>4.12.0</pax.exam.version>
-    <slf4j.version>1.7.25</slf4j.version>
+    <slf4j.version>1.7.36</slf4j.version>
     <karaf.version>4.2.1</karaf.version>
-    <johnzon.version>1.1.10</johnzon.version>
   </properties>
 
   <dependencies>
     <dependency>
+      <groupId>jakarta.inject</groupId>
+      <artifactId>jakarta.inject-api</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
       <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
       <version>6.0.0</version>
@@ -106,7 +110,7 @@
     <dependency>
       <groupId>org.apache.tomee</groupId>
       <artifactId>ziplock</artifactId>
-      <version>7.1.0</version>
+      <version>8.0.10</version>
       <scope>test</scope>
       <exclusions>
         <exclusion>
@@ -138,7 +142,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.22.1</version>
+        <version>3.0.0-M6</version>
         <executions>
           <execution>
             <id>default-test</id>
@@ -179,8 +183,8 @@
             <Export-Package>org.apache.geronimo.microprofile.opentracing.osgi.*</Export-Package>
             <Import-Package>
               io.opentracing,
-              javax.ws.rs.client;version="[2,3)",
-              javax.ws.rs.container;version="[2,3)",
+              jakarta.ws.rs.client;version="[2,3)",
+              jakarta.ws.rs.container;version="[2,3)",
               *
             </Import-Package>
           </instructions>
diff --git a/geronimo-opentracing-osgi/src/main/java/org/apache/geronimo/microprofile/opentracing/osgi/OpenTracingActivator.java b/geronimo-opentracing-osgi/src/main/java/org/apache/geronimo/microprofile/opentracing/osgi/OpenTracingActivator.java
index b8087ce..eb3dfb1 100644
--- a/geronimo-opentracing-osgi/src/main/java/org/apache/geronimo/microprofile/opentracing/osgi/OpenTracingActivator.java
+++ b/geronimo-opentracing-osgi/src/main/java/org/apache/geronimo/microprofile/opentracing/osgi/OpenTracingActivator.java
@@ -27,9 +27,9 @@
 import java.util.Map;
 import java.util.function.BiConsumer;
 
-import javax.ws.rs.client.ClientRequestFilter;
-import javax.ws.rs.client.ClientResponseFilter;
-import javax.ws.rs.container.DynamicFeature;
+import jakarta.ws.rs.client.ClientRequestFilter;
+import jakarta.ws.rs.client.ClientResponseFilter;
+import jakarta.ws.rs.container.DynamicFeature;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.impl.FinishedSpan;
diff --git a/geronimo-opentracing-osgi/src/test/java/org/apache/geronimo/microprofile/opentracing/osgi/KarafTest.java b/geronimo-opentracing-osgi/src/test/java/org/apache/geronimo/microprofile/opentracing/osgi/KarafTest.java
index 327e699..febf17d 100644
--- a/geronimo-opentracing-osgi/src/test/java/org/apache/geronimo/microprofile/opentracing/osgi/KarafTest.java
+++ b/geronimo-opentracing-osgi/src/test/java/org/apache/geronimo/microprofile/opentracing/osgi/KarafTest.java
@@ -23,7 +23,6 @@
 import static org.ops4j.pax.exam.CoreOptions.bundle;
 import static org.ops4j.pax.exam.CoreOptions.maven;
 import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.systemPackage;
 import static org.ops4j.pax.exam.CoreOptions.url;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
@@ -37,7 +36,7 @@
 import java.util.Dictionary;
 import java.util.Hashtable;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 
 import org.junit.Ignore;
 import org.junit.Test;
diff --git a/geronimo-opentracing-osgi/src/test/java/org/apache/geronimo/microprofile/opentracing/osgi/endpoint/HiWorld.java b/geronimo-opentracing-osgi/src/test/java/org/apache/geronimo/microprofile/opentracing/osgi/endpoint/HiWorld.java
index 946b0ac..e83b765 100644
--- a/geronimo-opentracing-osgi/src/test/java/org/apache/geronimo/microprofile/opentracing/osgi/endpoint/HiWorld.java
+++ b/geronimo-opentracing-osgi/src/test/java/org/apache/geronimo/microprofile/opentracing/osgi/endpoint/HiWorld.java
@@ -16,8 +16,8 @@
  */
 package org.apache.geronimo.microprofile.opentracing.osgi.endpoint;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
 
 @Path("hi")
 public class HiWorld {
diff --git a/geronimo-opentracing/pom.xml b/geronimo-opentracing/pom.xml
index 6eecd55..31f7bd5 100644
--- a/geronimo-opentracing/pom.xml
+++ b/geronimo-opentracing/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.geronimo</groupId>
     <artifactId>geronimo-opentracing-parent</artifactId>
-    <version>1.0.4-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>geronimo-opentracing</artifactId>
@@ -33,19 +33,17 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-jcdi_2.0_spec</artifactId>
+      <groupId>jakarta.enterprise</groupId>
+      <artifactId>jakarta.enterprise.cdi-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-interceptor_1.2_spec</artifactId>
-      <version>1.0</version>
+      <groupId>jakarta.interceptor</groupId>
+      <artifactId>jakarta.interceptor-api</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-atinject_1.0_spec</artifactId>
-      <version>1.1</version>
+      <groupId>jakarta.inject</groupId>
+      <artifactId>jakarta.inject-api</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
@@ -57,39 +55,51 @@
     <dependency>
       <groupId>org.eclipse.microprofile.config</groupId>
       <artifactId>microprofile-config-api</artifactId>
-      <version>1.2</version>
       <scope>provided</scope>
-      <optional>true</optional>
     </dependency>
 
     <dependency>
       <groupId>org.apache.openwebbeans</groupId>
-      <artifactId>openwebbeans-impl</artifactId>
-      <version>2.0.7</version>
+      <artifactId>openwebbeans-spi</artifactId>
+      <version>2.0.27-SNAPSHOT</version>
+      <classifier>jakarta</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>org.apache.openwebbeans</groupId>
+      <artifactId>openwebbeans-impl</artifactId>
+      <version>2.0.27-SNAPSHOT</version>
+      <classifier>jakarta</classifier>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.openwebbeans</groupId>
+          <artifactId>*</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
       <groupId>org.jboss.arquillian.testng</groupId>
       <artifactId>arquillian-testng-container</artifactId>
-      <version>1.1.13.Final</version>
+      <version>1.7.0.Alpha10</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.meecrowave</groupId>
       <artifactId>meecrowave-arquillian</artifactId>
-      <version>1.2.3</version>
+      <version>1.2.13</version>
       <scope>test</scope>
       <exclusions>
         <exclusion>
-          <groupId>javax.inject</groupId>
-          <artifactId>javax.inject</artifactId>
+          <groupId>jakarta.inject</groupId>
+          <artifactId>jakarta.inject</artifactId>
         </exclusion>
       </exclusions>
     </dependency>
     <dependency>
       <groupId>org.eclipse.microprofile.opentracing</groupId>
       <artifactId>microprofile-opentracing-tck</artifactId>
-      <version>1.2</version>
+      <version>3.0</version>
       <scope>test</scope>
       <exclusions>
         <exclusion>
@@ -97,8 +107,8 @@
           <artifactId>microprofile-opentracing-api</artifactId>
         </exclusion>
         <exclusion>
-          <groupId>javax.ws.rs</groupId>
-          <artifactId>javax.ws.rs-api</artifactId>
+          <groupId>jakarta.ws.rs</groupId>
+          <artifactId>jakarta.ws.rs-api</artifactId>
         </exclusion>
         <exclusion>
           <groupId>io.opentracing</groupId>
@@ -117,7 +127,8 @@
     <dependency>
       <groupId>org.apache.geronimo.config</groupId>
       <artifactId>geronimo-config-impl</artifactId>
-      <version>1.2</version>
+      <version>1.2.3</version>
+      <classifier>jakarta</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -134,12 +145,13 @@
     </dependency>
   </dependencies>
 
+  <!--
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.22.1</version>
+        <version>3.0.0-M6</version>
         <configuration>
           <suiteXmlFiles>
             <suiteXmlFile>${project.basedir}/src/test/resources/tck.xml</suiteXmlFile>
@@ -148,4 +160,5 @@
       </plugin>
     </plugins>
   </build>
+  -->
 </project>
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/config/OpenTracingConfigMpConfigImpl.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/config/OpenTracingConfigMpConfigImpl.java
index 3eb9f1b..03e6305 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/config/OpenTracingConfigMpConfigImpl.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/config/OpenTracingConfigMpConfigImpl.java
@@ -16,7 +16,7 @@
  */
 package org.apache.geronimo.microprofile.opentracing.config;
 
-import javax.enterprise.inject.Vetoed;
+import jakarta.enterprise.inject.Vetoed;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.eclipse.microprofile.config.Config;
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiContainer.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiContainer.java
index 4ad5128..3d2e4c8 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiContainer.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiContainer.java
@@ -16,7 +16,7 @@
  */
 package org.apache.geronimo.microprofile.opentracing.impl;
 
-import javax.enterprise.inject.spi.CDI;
+import jakarta.enterprise.inject.spi.CDI;
 
 import org.apache.geronimo.microprofile.opentracing.common.spi.Container;
 
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiGeronimoTracer.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiGeronimoTracer.java
index baafc13..8ca1c98 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiGeronimoTracer.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiGeronimoTracer.java
@@ -16,10 +16,10 @@
  */
 package org.apache.geronimo.microprofile.opentracing.impl;
 
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Event;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Event;
+import jakarta.inject.Inject;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.impl.FinishedSpan;
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiIdGenerator.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiIdGenerator.java
index 68b9c27..c28d73b 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiIdGenerator.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiIdGenerator.java
@@ -16,9 +16,9 @@
  */
 package org.apache.geronimo.microprofile.opentracing.impl;
 
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.impl.IdGenerator;
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiScopeManagerImpl.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiScopeManagerImpl.java
index f6e8c57..db46faa 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiScopeManagerImpl.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiScopeManagerImpl.java
@@ -16,7 +16,7 @@
  */
 package org.apache.geronimo.microprofile.opentracing.impl;
 
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
 
 import org.apache.geronimo.microprofile.opentracing.common.impl.ScopeManagerImpl;
 
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/OpenTracingExtension.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/OpenTracingExtension.java
index e9ffe8a..4b15f96 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/OpenTracingExtension.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/OpenTracingExtension.java
@@ -20,20 +20,20 @@
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Observes;
-import javax.enterprise.inject.Any;
-import javax.enterprise.inject.Default;
-import javax.enterprise.inject.spi.AfterBeanDiscovery;
-import javax.enterprise.inject.spi.AnnotatedMethod;
-import javax.enterprise.inject.spi.AnnotatedType;
-import javax.enterprise.inject.spi.BeforeBeanDiscovery;
-import javax.enterprise.inject.spi.Extension;
-import javax.enterprise.inject.spi.ProcessAnnotatedType;
-import javax.enterprise.inject.spi.WithAnnotations;
-import javax.enterprise.inject.spi.configurator.AnnotatedTypeConfigurator;
-import javax.ws.rs.HttpMethod;
-import javax.ws.rs.Path;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Observes;
+import jakarta.enterprise.inject.Any;
+import jakarta.enterprise.inject.Default;
+import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
+import jakarta.enterprise.inject.spi.AnnotatedMethod;
+import jakarta.enterprise.inject.spi.AnnotatedType;
+import jakarta.enterprise.inject.spi.BeforeBeanDiscovery;
+import jakarta.enterprise.inject.spi.Extension;
+import jakarta.enterprise.inject.spi.ProcessAnnotatedType;
+import jakarta.enterprise.inject.spi.WithAnnotations;
+import jakarta.enterprise.inject.spi.configurator.AnnotatedTypeConfigurator;
+import jakarta.ws.rs.HttpMethod;
+import jakarta.ws.rs.Path;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.impl.IdGenerator;
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorService.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorService.java
index 61e511b..fba09c0 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorService.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorService.java
@@ -24,7 +24,7 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
-import javax.interceptor.InterceptorBinding;
+import jakarta.interceptor.InterceptorBinding;
 
 @InterceptorBinding
 @Retention(RUNTIME)
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java
index 1506649..c36da7e 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java
@@ -18,10 +18,10 @@
 
 import java.io.Serializable;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
-import javax.interceptor.Interceptor;
-import javax.interceptor.InvocationContext;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
+import jakarta.interceptor.Interceptor;
+import jakarta.interceptor.InvocationContext;
 
 import org.apache.geronimo.microprofile.opentracing.common.microprofile.thread.ScopePropagatingCallable;
 
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedInterceptor.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedInterceptor.java
index 917946f..b92bfd9 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedInterceptor.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedInterceptor.java
@@ -28,19 +28,18 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import javax.annotation.Priority;
-import javax.enterprise.inject.Intercepted;
-import javax.enterprise.inject.spi.AnnotatedType;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.inject.Inject;
-import javax.interceptor.AroundInvoke;
-import javax.interceptor.Interceptor;
-import javax.interceptor.InvocationContext;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.inject.Intercepted;
+import jakarta.enterprise.inject.spi.AnnotatedType;
+import jakarta.enterprise.inject.spi.Bean;
+import jakarta.enterprise.inject.spi.BeanManager;
+import jakarta.inject.Inject;
+import jakarta.interceptor.AroundInvoke;
+import jakarta.interceptor.Interceptor;
+import jakarta.interceptor.InvocationContext;
 
 import org.eclipse.microprofile.opentracing.Traced;
 
-import io.opentracing.Scope;
 import io.opentracing.Span;
 import io.opentracing.Tracer;
 import io.opentracing.tag.Tags;
@@ -83,17 +82,16 @@
         }
 
         final Tracer.SpanBuilder spanBuilder = tracer.buildSpan(meta.operationName);
-        final Scope parent = tracer.scopeManager().active();
+        final Span parent = tracer.scopeManager().activeSpan();
         if (parent != null) {
-            spanBuilder.asChildOf(parent.span());
+            spanBuilder.asChildOf(parent);
         }
-        Scope scope = null;
+        Span span = null;
         try {
-            scope = spanBuilder.startActive(true);
+            span = spanBuilder.start();
             return context.proceed();
         } catch (final RuntimeException re) {
-            if (scope != null) {
-                final Span span = scope.span();
+            if (span != null) {
                 Tags.ERROR.set(span, true);
                 final Map<String, Object> logs = new LinkedHashMap<>();
                 logs.put("event", Tags.ERROR.getKey());
@@ -102,8 +100,8 @@
             }
             throw re;
         } finally {
-            if (scope != null) {
-                scope.close();
+            if (span != null) {
+                span.finish();
             }
         }
     }
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientRequestFilter.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientRequestFilter.java
index 6898d96..4fb9dfa 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientRequestFilter.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientRequestFilter.java
@@ -16,9 +16,9 @@
  */
 package org.apache.geronimo.microprofile.opentracing.microprofile.client;
 
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.microprofile.client.OpenTracingClientRequestFilter;
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientResponseFilter.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientResponseFilter.java
index 68bf90e..354777e 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientResponseFilter.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientResponseFilter.java
@@ -16,9 +16,9 @@
  */
 package org.apache.geronimo.microprofile.opentracing.microprofile.client;
 
-import javax.annotation.Priority;
-import javax.enterprise.context.ApplicationScoped;
-import javax.ws.rs.Priorities;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.ws.rs.Priorities;
 
 import org.apache.geronimo.microprofile.opentracing.common.microprofile.client.OpenTracingClientResponseFilter;
 
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/CdiGeronimoOpenTracingFeature.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/CdiGeronimoOpenTracingFeature.java
index 9188c2f..410ea5f 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/CdiGeronimoOpenTracingFeature.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/CdiGeronimoOpenTracingFeature.java
@@ -16,9 +16,9 @@
  */
 package org.apache.geronimo.microprofile.opentracing.microprofile.server;
 
-import javax.enterprise.context.Dependent;
-import javax.inject.Inject;
-import javax.ws.rs.ext.Provider;
+import jakarta.enterprise.context.Dependent;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.ext.Provider;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.microprofile.server.GeronimoOpenTracingFeature;
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinConverter.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinConverter.java
index bd00795..5a582fa 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinConverter.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinConverter.java
@@ -16,11 +16,11 @@
  */
 package org.apache.geronimo.microprofile.opentracing.microprofile.zipkin;
 
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Event;
-import javax.enterprise.event.Observes;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Event;
+import jakarta.enterprise.event.Observes;
+import jakarta.inject.Inject;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.impl.FinishedSpan;
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinHttp.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinHttp.java
index 37c7807..62ff5ce 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinHttp.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinHttp.java
@@ -16,13 +16,13 @@
  */
 package org.apache.geronimo.microprofile.opentracing.microprofile.zipkin;
 
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Observes;
-import javax.inject.Inject;
-import javax.json.bind.Jsonb;
-import javax.json.bind.JsonbBuilder;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.PreDestroy;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Observes;
+import jakarta.inject.Inject;
+import jakarta.json.bind.Jsonb;
+import jakarta.json.bind.JsonbBuilder;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin.ZipkinHttp;
diff --git a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinLogger.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinLogger.java
index a34f214..4e12b81 100644
--- a/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinLogger.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinLogger.java
@@ -16,13 +16,13 @@
  */
 package org.apache.geronimo.microprofile.opentracing.microprofile.zipkin;
 
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Observes;
-import javax.inject.Inject;
-import javax.json.bind.Jsonb;
-import javax.json.bind.JsonbBuilder;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.PreDestroy;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Observes;
+import jakarta.inject.Inject;
+import jakarta.json.bind.Jsonb;
+import jakarta.json.bind.JsonbBuilder;
 
 import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
 import org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin.ZipkinLogger;
diff --git a/geronimo-opentracing/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension b/geronimo-opentracing/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
similarity index 100%
rename from geronimo-opentracing/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
rename to geronimo-opentracing/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
diff --git a/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/BasicZipkinTest.java b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/BasicZipkinTest.java
deleted file mode 100644
index 9e160b5..0000000
--- a/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/BasicZipkinTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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.
- */
-package org.apache.geronimo.microprofile.opentracing.tck.setup;
-
-
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.container.test.api.RunAsClient;
-import org.jboss.arquillian.test.api.ArquillianResource;
-import org.jboss.arquillian.testng.Arquillian;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.testng.Assert;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.Test;
-import zipkin2.Span;
-
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
-import java.net.URL;
-import java.util.List;
-
-public class BasicZipkinTest extends Arquillian {
-
-    @Deployment
-    public static WebArchive createDeployment() {
-        return ShrinkWrap.create(WebArchive.class)
-                .addClasses(SimpleService.class)
-                .addAsWebInfResource(new ClassLoaderAsset("test-beans.xml"), "beans.xml")
-                .addAsServiceProvider(javax.enterprise.inject.spi.Extension.class, UseGeronimoTracerExtension.class);
-    }
-
-    private ZipkinRule zipkin;
-
-    @ArquillianResource
-    private URL serviceUrl;
-
-    @BeforeMethod
-    public void configure() {
-
-
-    }
-
-    @BeforeSuite
-    public void setup() {
-        zipkin = new ZipkinRule();
-        System.setProperty("geronimo.opentracing.span.converter.zipkin.sender", "http");
-        System.setProperty("geronimo.opentracing.span.converter.zipkin.http.collector", zipkin.httpUrl() + "/api/v2/spans");
-        System.setProperty("geronimo.opentracing.span.converter.zipkin.http.bulkSendInterval", "6000");
-        System.setProperty("geronimo.opentracing.span.converter.zipkin.http.maxSpansPerBulk", "1");
-        System.setProperty("geronimo.opentracing.span.converter.zipkin.http.maxSpansIteration","1");
-        System.setProperty("geronimo.opentracing.span.converter.zipkin.http.bufferSize","1");
-        System.setProperty("geronimo.opentracing.span.converter.zipkin.http.useV2","true");
-    }
-
-
-    /**
-     * Test that server endpoint is adding standard tags
-     */
-    @Test
-    @RunAsClient
-    public void testSimpleService() throws Exception {
-        Client client = ClientBuilder.newClient();
-        String url = serviceUrl.toExternalForm() + "hello";
-
-        WebTarget target = client.target(url);
-        Response response = target.request().get();
-        if (response.getStatus() != 200) {
-            String unexpectedResponse = response.readEntity(String.class);
-            Assert.fail("Expected HTTP response code 200 but received " + response.getStatus() + "; Response: " + unexpectedResponse);
-        }
-
-        Thread.sleep(10000);
-
-        final List<List<Span>> traces = zipkin.getTraces();
-        Assert.assertTrue(traces.size() > 0, "Expected some traces");
-    }
-
-
-}
diff --git a/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SimpleService.java b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SimpleService.java
index fc2fdfd..e8d150a 100644
--- a/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SimpleService.java
+++ b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SimpleService.java
@@ -18,11 +18,11 @@
 
 import org.eclipse.microprofile.opentracing.Traced;
 
-import javax.enterprise.context.RequestScoped;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 
 @Traced
 @RequestScoped
diff --git a/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/TckTracer.java b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/TckTracer.java
index d607488..b296ff9 100644
--- a/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/TckTracer.java
+++ b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/TckTracer.java
@@ -23,9 +23,9 @@
 import java.util.LinkedHashSet;
 import java.util.Map;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Observes;
-import javax.enterprise.inject.Specializes;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Observes;
+import jakarta.enterprise.inject.Specializes;
 
 import org.apache.geronimo.microprofile.opentracing.common.impl.FinishedSpan;
 import org.apache.geronimo.microprofile.opentracing.common.impl.SpanContextImpl;
diff --git a/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/UseGeronimoTracerExtension.java b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/UseGeronimoTracerExtension.java
index 1836018..bcc38c9 100644
--- a/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/UseGeronimoTracerExtension.java
+++ b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/UseGeronimoTracerExtension.java
@@ -16,9 +16,9 @@
  */
 package org.apache.geronimo.microprofile.opentracing.tck.setup;
 
-import javax.enterprise.event.Observes;
-import javax.enterprise.inject.spi.Extension;
-import javax.enterprise.inject.spi.ProcessAnnotatedType;
+import jakarta.enterprise.event.Observes;
+import jakarta.enterprise.inject.spi.Extension;
+import jakarta.enterprise.inject.spi.ProcessAnnotatedType;
 
 public class UseGeronimoTracerExtension implements Extension {
 
diff --git a/pom.xml b/pom.xml
index d6cd4c5..c9974da 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
 
   <groupId>org.apache.geronimo</groupId>
   <artifactId>geronimo-opentracing-parent</artifactId>
-  <version>1.0.4-SNAPSHOT</version>
+  <version>2.0.0-SNAPSHOT</version>
   <name>Geronimo OpenTracing</name>
   <packaging>pom</packaging>
 
@@ -42,46 +42,40 @@
   </scm>
 
   <properties>
-    <opentracing-api.version>0.31.0</opentracing-api.version>
-    <microprofile-opentracing-api.version>1.2</microprofile-opentracing-api.version>
+    <opentracing-api.version>0.33.0</opentracing-api.version>
+    <microprofile-opentracing-api.version>3.0</microprofile-opentracing-api.version>
   </properties>
 
   <dependencies>
     <dependency>
       <groupId>org.eclipse.microprofile.opentracing</groupId>
       <artifactId>microprofile-opentracing-api</artifactId>
-      <version>${microprofile-opentracing-api.version}</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>io.opentracing</groupId>
       <artifactId>opentracing-api</artifactId>
-      <version>${opentracing-api.version}</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-servlet-api</artifactId>
-      <version>9.0.12</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-jaxrs_2.1_spec</artifactId>
-      <version>1.0</version>
+      <groupId>jakarta.ws.rs</groupId>
+      <artifactId>jakarta.ws.rs-api</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-annotation_1.3_spec</artifactId>
-      <version>1.0</version>
+      <groupId>jakarta.annotation</groupId>
+      <artifactId>jakarta.annotation-api</artifactId>
       <scope>provided</scope>
     </dependency>
 
     <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-jsonb_1.0_spec</artifactId>
-      <version>1.0</version>
+      <groupId>jakarta.json.bind</groupId>
+      <artifactId>jakarta.json.bind-api</artifactId>
       <scope>provided</scope>
       <optional>true</optional>
     </dependency>
@@ -89,7 +83,7 @@
     <dependency>
       <groupId>org.testng</groupId>
       <artifactId>testng</artifactId>
-      <version>6.8.21</version>
+      <version>7.5</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -97,11 +91,74 @@
   <dependencyManagement>
     <dependencies>
       <dependency>
-        <groupId>org.apache.geronimo.specs</groupId>
-        <artifactId>geronimo-jcdi_2.0_spec</artifactId>
-        <version>1.1</version>
+        <groupId>org.eclipse.microprofile.opentracing</groupId>
+        <artifactId>microprofile-opentracing-api</artifactId>
+        <version>${microprofile-opentracing-api.version}</version>
         <scope>provided</scope>
       </dependency>
+      <dependency>
+        <groupId>io.opentracing</groupId>
+        <artifactId>opentracing-api</artifactId>
+        <version>${opentracing-api.version}</version>
+        <scope>provided</scope>
+      </dependency>
+
+      <dependency>
+        <groupId>org.eclipse.microprofile.config</groupId>
+        <artifactId>microprofile-config-api</artifactId>
+        <version>3.0.1</version>
+        <scope>provided</scope>
+        <optional>true</optional>
+      </dependency>
+
+      <dependency>
+        <groupId>jakarta.inject</groupId>
+        <artifactId>jakarta.inject-api</artifactId>
+        <version>2.0.0</version>
+      </dependency>
+      <dependency>
+        <groupId>jakarta.interceptor</groupId>
+        <artifactId>jakarta.interceptor-api</artifactId>
+        <version>2.0.0</version>
+      </dependency>
+      <dependency>
+        <groupId>jakarta.enterprise</groupId>
+        <artifactId>jakarta.enterprise.cdi-api</artifactId>
+        <version>3.0.0</version>
+        <exclusions>
+          <exclusion>
+            <groupId>jakarta.inject</groupId>
+            <artifactId>jakarta.inject-api</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat</groupId>
+        <artifactId>tomcat-servlet-api</artifactId>
+        <version>10.0.18</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>jakarta.ws.rs</groupId>
+        <artifactId>jakarta.ws.rs-api</artifactId>
+        <version>3.0.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>jakarta.annotation</groupId>
+        <artifactId>jakarta.annotation-api</artifactId>
+        <version>2.0.0</version>
+        <scope>provided</scope>
+      </dependency>
+
+      <dependency>
+        <groupId>jakarta.json.bind</groupId>
+        <artifactId>jakarta.json.bind-api</artifactId>
+        <version>2.0.0</version>
+        <scope>provided</scope>
+        <optional>true</optional>
+      </dependency>
+
     </dependencies>
   </dependencyManagement>
 
@@ -123,10 +180,9 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.8.0</version>
+        <version>3.10.1</version>
         <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
+          <release>11</release>
         </configuration>
       </plugin>
       <plugin>
@@ -141,68 +197,6 @@
           </archive>
         </configuration>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>3.2.4</version>
-        <executions>
-            <execution>
-                <phase>package</phase>
-                <goals>
-                    <goal>shade</goal>
-                </goals>
-                <configuration>
-                    <shadedArtifactAttached>true</shadedArtifactAttached>
-                    <shadedClassifierName>jakarta</shadedClassifierName>
-                    <createDependencyReducedPom>false</createDependencyReducedPom>
-                    <transformers>
-                        <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
-                    </transformers>
-                    <artifactSet> <!-- don't include transitive deps -->
-                        <includes>
-                            <include>${project.groupId}:${project.artifactId}</include>
-                        </includes>
-                    </artifactSet>
-                    <relocations>
-                        <relocation>
-                            <pattern>javax.annotation</pattern>
-                            <shadedPattern>jakarta.annotation</shadedPattern>
-                            <excludes>
-                                <exclude>javax.annotation.processing.**</exclude>
-                            </excludes>
-                        </relocation>
-                        <relocation>
-                            <pattern>javax.enterprise</pattern>
-                            <shadedPattern>jakarta.enterprise</shadedPattern>
-                            <excludes>
-                                <exclude>javax.enterprise.deploy.**</exclude>
-                            </excludes>
-                        </relocation>
-                        <relocation>
-                            <pattern>javax.inject</pattern>
-                            <shadedPattern>jakarta.inject</shadedPattern>
-                        </relocation>
-                        <relocation>
-                            <pattern>javax.interceptor</pattern>
-                            <shadedPattern>jakarta.interceptor</shadedPattern>
-                        </relocation>
-                        <relocation>
-                          <pattern>javax.json</pattern>
-                          <shadedPattern>jakarta.json</shadedPattern>
-                        </relocation>
-                        <relocation>
-                          <pattern>javax.servlet</pattern>
-                          <shadedPattern>jakarta.servlet</shadedPattern>
-                        </relocation>
-                        <relocation>
-                            <pattern>javax.ws.rs</pattern>
-                            <shadedPattern>jakarta.ws.rs</shadedPattern>
-                        </relocation>
-                    </relocations>
-                </configuration>
-            </execution>
-        </executions>
-    </plugin>
     </plugins>
   </build>