GERONIMO-6648 ensure the common code is extracted in a common module
diff --git a/geronimo-opentracing-common/pom.xml b/geronimo-opentracing-common/pom.xml
new file mode 100644
index 0000000..491229d
--- /dev/null
+++ b/geronimo-opentracing-common/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>geronimo-opentracing-parent</artifactId>
+ <groupId>org.apache.geronimo</groupId>
+ <version>1.0.1-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>geronimo-opentracing-common</artifactId>
+ <name>Geronimo OpenTracing :: Common</name>
+ <description>Implementation environment independent (no CDI).</description>
+
+ <properties>
+ <geronimo-opentracing.Automatic-Module-Name>org.apache.geronimo.opentracing.common</geronimo-opentracing.Automatic-Module-Name>
+ </properties>
+</project>
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/config/DefaultOpenTracingConfig.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/config/GeronimoOpenTracingConfig.java
similarity index 61%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/config/DefaultOpenTracingConfig.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/config/GeronimoOpenTracingConfig.java
index 3eaf8a3..5f5f749 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/config/DefaultOpenTracingConfig.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/config/GeronimoOpenTracingConfig.java
@@ -1,12 +1,12 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
+ * 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
+ * the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * 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,
@@ -14,17 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.config;
+package org.apache.geronimo.microprofile.opentracing.common.config;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
+import java.util.ServiceConfigurationError;
+import java.util.ServiceLoader;
-import javax.enterprise.inject.Vetoed;
-
-@Vetoed
class DefaultOpenTracingConfig implements GeronimoOpenTracingConfig {
private final Map<String, String> configuration = new HashMap<>();
@@ -47,3 +47,22 @@
return configuration.getOrDefault(value, def);
}
}
+
+@FunctionalInterface
+public interface GeronimoOpenTracingConfig {
+
+ String read(String value, String def);
+
+ static GeronimoOpenTracingConfig create() {
+ try {
+ final Iterator<GeronimoOpenTracingConfig> iterator = ServiceLoader.load(GeronimoOpenTracingConfig.class)
+ .iterator();
+ if (iterator.hasNext()) {
+ return new PrefixedConfig(iterator.next());
+ }
+ } catch (final ServiceConfigurationError | ExceptionInInitializerError | NoClassDefFoundError | Exception e) {
+ // no-op
+ }
+ return new PrefixedConfig(new DefaultOpenTracingConfig());
+ }
+}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/config/PrefixedConfig.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/config/PrefixedConfig.java
similarity index 84%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/config/PrefixedConfig.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/config/PrefixedConfig.java
index 0253c2e..f81c610 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/config/PrefixedConfig.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/config/PrefixedConfig.java
@@ -14,11 +14,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.config;
+package org.apache.geronimo.microprofile.opentracing.common.config;
-import javax.enterprise.inject.Vetoed;
-
-@Vetoed
class PrefixedConfig implements GeronimoOpenTracingConfig {
private final GeronimoOpenTracingConfig delegate;
@@ -28,6 +25,9 @@
@Override
public String read(final String value, final String def) {
+ if (value.startsWith("mp.")) {
+ return delegate.read(value, delegate.read("geronimo.opentracing." + value, def));
+ }
return delegate.read("geronimo.opentracing." + value, def);
}
}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/FinishedSpan.java
similarity index 93%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/FinishedSpan.java
index c707d27..187c4fe 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/FinishedSpan.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import io.opentracing.Span;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/GeronimoTracer.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/GeronimoTracer.java
similarity index 88%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/GeronimoTracer.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/GeronimoTracer.java
index d15b3b3..c7e7654 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/GeronimoTracer.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/GeronimoTracer.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import static java.util.Collections.list;
import static java.util.Optional.ofNullable;
@@ -25,14 +25,11 @@
import java.util.Iterator;
import java.util.Map;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Event;
-import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.MultivaluedMap;
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.spi.Bus;
import io.opentracing.Scope;
import io.opentracing.ScopeManager;
@@ -42,19 +39,10 @@
import io.opentracing.propagation.Format;
import io.opentracing.propagation.TextMap;
-@ApplicationScoped
public class GeronimoTracer implements Tracer {
-
- @Inject
private ScopeManager scopeManager;
-
- @Inject
private IdGenerator idGenerator;
-
- @Inject
- private Event<FinishedSpan> finishedSpanEvent;
-
- @Inject
+ private Bus<FinishedSpan> finishedSpanEvent;
private GeronimoOpenTracingConfig config;
private String parentSpanIdHeader;
@@ -62,14 +50,29 @@
private String traceIdHeader;
private String baggageHeaderPrefix;
- @PostConstruct
- private void init() {
+ public void init() {
parentSpanIdHeader = config.read("propagation.headers.parentSpanId", "X-B3-ParentSpanId");
spanIdHeader = config.read("propagation.headers.spanId", "X-B3-SpanId");
traceIdHeader = config.read("propagation.headers.traceId", "X-B3-TraceId");
baggageHeaderPrefix = config.read("propagation.headers.baggagePrefix", "baggage-");
}
+ public void setScopeManager(final ScopeManager scopeManager) {
+ this.scopeManager = scopeManager;
+ }
+
+ public void setIdGenerator(final IdGenerator idGenerator) {
+ this.idGenerator = idGenerator;
+ }
+
+ public void setFinishedSpanEvent(final Bus<FinishedSpan> finishedSpanEvent) {
+ this.finishedSpanEvent = finishedSpanEvent;
+ }
+
+ public void setConfig(final GeronimoOpenTracingConfig config) {
+ this.config = config;
+ }
+
@Override
public ScopeManager scopeManager() {
return scopeManager;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/IdGenerator.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGenerator.java
similarity index 89%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/IdGenerator.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGenerator.java
index 4a066f0..12692ee 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/IdGenerator.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGenerator.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import java.util.Random;
import java.util.UUID;
@@ -22,21 +22,17 @@
import java.util.function.Supplier;
import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
-@ApplicationScoped
+// @ApplicationScoped
public class IdGenerator {
- @Inject
protected GeronimoOpenTracingConfig config;
private Supplier<Object> delegate;
private boolean counter;
- @PostConstruct
- void createDelegate() {
+ public void init() {
final String type = config.read("id.generator", "counter");
counter = "counter".equalsIgnoreCase(type);
switch (type) {
@@ -72,6 +68,10 @@
}
}
+ public void setConfig(final GeronimoOpenTracingConfig config) {
+ this.config = config;
+ }
+
public boolean isCounter() {
return counter;
}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/JaxRsHeaderTextMap.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/JaxRsHeaderTextMap.java
similarity index 96%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/JaxRsHeaderTextMap.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/JaxRsHeaderTextMap.java
index 53d5944..d074248 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/JaxRsHeaderTextMap.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/JaxRsHeaderTextMap.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import java.util.Iterator;
import java.util.Map;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ReferenceImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ReferenceImpl.java
similarity index 94%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ReferenceImpl.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ReferenceImpl.java
index 07036ff..46821cf 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ReferenceImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ReferenceImpl.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
public class ReferenceImpl {
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ScopeImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeImpl.java
similarity index 95%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ScopeImpl.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeImpl.java
index 8d5851e..3afcf85 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ScopeImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeImpl.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import io.opentracing.Scope;
import io.opentracing.Span;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ScopeManagerImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeManagerImpl.java
similarity index 92%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ScopeManagerImpl.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeManagerImpl.java
index 4ba677e..05110f3 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ScopeManagerImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ScopeManagerImpl.java
@@ -14,15 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
-
-import javax.enterprise.context.ApplicationScoped;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import io.opentracing.Scope;
import io.opentracing.ScopeManager;
import io.opentracing.Span;
-@ApplicationScoped
+// @ApplicationScoped
public class ScopeManagerImpl implements ScopeManager {
private final ThreadLocal<Scope> current = new ThreadLocal<>();
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ServletHeaderTextMap.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ServletHeaderTextMap.java
similarity index 97%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ServletHeaderTextMap.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ServletHeaderTextMap.java
index af135bc..b4d123c 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/ServletHeaderTextMap.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/ServletHeaderTextMap.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import java.util.Enumeration;
import java.util.Iterator;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanBuilderImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanBuilderImpl.java
similarity index 98%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanBuilderImpl.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanBuilderImpl.java
index 999bda4..9de9c56 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanBuilderImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanBuilderImpl.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import static java.util.stream.Collectors.toMap;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanContextImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanContextImpl.java
similarity index 96%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanContextImpl.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanContextImpl.java
index 1b61d3d..a1eee17 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanContextImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanContextImpl.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import java.util.Map;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanImpl.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanImpl.java
similarity index 98%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanImpl.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanImpl.java
index 3614d4f..4565c88 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/SpanImpl.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/SpanImpl.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
import static java.util.Collections.singletonMap;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/GeronimoClientTracingRegistrarProvider.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/GeronimoClientTracingRegistrarProvider.java
similarity index 80%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/GeronimoClientTracingRegistrarProvider.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/GeronimoClientTracingRegistrarProvider.java
index 538e83c..edb7e34 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/GeronimoClientTracingRegistrarProvider.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/GeronimoClientTracingRegistrarProvider.java
@@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.client;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.client;
import java.util.concurrent.ExecutorService;
-import javax.enterprise.inject.spi.CDI;
import javax.ws.rs.client.ClientBuilder;
-import org.apache.geronimo.microprofile.opentracing.microprofile.thread.OpenTracingExecutorService;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.thread.OpenTracingExecutorService;
+import org.apache.geronimo.microprofile.opentracing.common.spi.Container;
import org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider;
import io.opentracing.Tracer;
@@ -35,10 +35,10 @@
private final Tracer tracer;
public GeronimoClientTracingRegistrarProvider() {
- final CDI<Object> cdi = CDI.current();
- requestFilter = cdi.select(OpenTracingClientRequestFilter.class).get();
- responseFilter = cdi.select(OpenTracingClientResponseFilter.class).get();
- tracer = cdi.select(Tracer.class).get();
+ final Container container = Container.get();
+ requestFilter = container.lookup(OpenTracingClientRequestFilter.class);
+ responseFilter = container.lookup(OpenTracingClientResponseFilter.class);
+ tracer = container.lookup(Tracer.class);
}
@Override
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/OpenTracingClientRequestFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientRequestFilter.java
similarity index 86%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/OpenTracingClientRequestFilter.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientRequestFilter.java
index c02b445..f5653d1 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/OpenTracingClientRequestFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientRequestFilter.java
@@ -14,21 +14,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.client;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.client;
import static io.opentracing.References.CHILD_OF;
import static java.util.Optional.ofNullable;
import java.util.function.Consumer;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
-import org.apache.geronimo.microprofile.opentracing.impl.JaxRsHeaderTextMap;
+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;
@@ -37,26 +34,30 @@
import io.opentracing.propagation.Format;
import io.opentracing.tag.Tags;
-@ApplicationScoped
+// @ApplicationScoped
public class OpenTracingClientRequestFilter implements ClientRequestFilter {
- @Inject
private Tracer tracer;
-
- @Inject
private GeronimoOpenTracingConfig config;
private boolean skip;
private boolean skipDefaultTags;
private boolean skipPeerTags;
- @PostConstruct
- private void init() {
+ public void init() {
skip = Boolean.parseBoolean(config.read("client.filter.request.skip", "false"));
skipDefaultTags = Boolean.parseBoolean(config.read("client.filter.request.skipDefaultTags", "false"));
skipPeerTags = Boolean.parseBoolean(config.read("client.filter.request.skipPeerTags", "false"));
}
+ public void setTracer(final Tracer tracer) {
+ this.tracer = tracer;
+ }
+
+ public void setConfig(final GeronimoOpenTracingConfig config) {
+ this.config = config;
+ }
+
@Override
public void filter(final ClientRequestContext context) {
if (context.getProperty(OpenTracingClientRequestFilter.class.getName()) != null || skip) {
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/OpenTracingClientResponseFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientResponseFilter.java
similarity index 91%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/OpenTracingClientResponseFilter.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientResponseFilter.java
index 8b56c4d..62ac654 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/OpenTracingClientResponseFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientResponseFilter.java
@@ -14,12 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.client;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.client;
import static java.util.Optional.ofNullable;
import javax.annotation.Priority;
-import javax.enterprise.context.ApplicationScoped;
import javax.ws.rs.Priorities;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientResponseContext;
@@ -28,7 +27,7 @@
import io.opentracing.Scope;
import io.opentracing.tag.Tags;
-@ApplicationScoped
+// @ApplicationScoped
@Priority(Priorities.HEADER_DECORATOR)
public class OpenTracingClientResponseFilter implements ClientResponseFilter {
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/SyncExecutor.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/SyncExecutor.java
similarity index 95%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/SyncExecutor.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/SyncExecutor.java
index 916c4fd..653d9ff 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/SyncExecutor.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/SyncExecutor.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.client;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.client;
import static java.util.Collections.emptyList;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/GeronimoOpenTracingFeature.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/GeronimoOpenTracingFeature.java
similarity index 81%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/GeronimoOpenTracingFeature.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/GeronimoOpenTracingFeature.java
index badbf4f..7da58ca 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/GeronimoOpenTracingFeature.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/GeronimoOpenTracingFeature.java
@@ -14,16 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.server;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.server;
import static java.util.Optional.ofNullable;
import java.util.Optional;
import java.util.stream.Stream;
-import javax.enterprise.context.Dependent;
-import javax.enterprise.inject.spi.CDI;
-import javax.inject.Inject;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.Path;
import javax.ws.rs.container.DynamicFeature;
@@ -31,27 +28,41 @@
import javax.ws.rs.core.FeatureContext;
import javax.ws.rs.ext.Provider;
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.spi.Container;
import org.eclipse.microprofile.opentracing.Traced;
import io.opentracing.Tracer;
@Provider
-@Dependent
+// @Dependent
public class GeronimoOpenTracingFeature implements DynamicFeature {
-
- @Inject
private Tracer tracer;
-
- @Inject
private GeronimoOpenTracingConfig config;
+ private Container container;
+
+ public void setTracer(final Tracer tracer) {
+ this.tracer = tracer;
+ }
+
+ public void setConfig(final GeronimoOpenTracingConfig config) {
+ this.config = config;
+ }
+
+ public void setContainer(final Container container) {
+ this.container = container;
+ }
@Override
public void configure(final ResourceInfo resourceInfo, final FeatureContext context) {
+ if ((tracer == null || config == null) && container == null) {
+ container = Container.get();
+ }
if (tracer == null) { // configured instead of scanned
- CDI<Object> cdi = CDI.current();
- tracer = cdi.select(Tracer.class).get();
- config = cdi.select(GeronimoOpenTracingConfig.class).get();
+ tracer = container.lookup(Tracer.class);
+ }
+ if (config == null) {
+ config = container.lookup(GeronimoOpenTracingConfig.class);
}
final Optional<Traced> traced = ofNullable(ofNullable(resourceInfo.getResourceMethod().getAnnotation(Traced.class))
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingFilter.java
similarity index 84%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingFilter.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingFilter.java
index 577c12c..0504a6f 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingFilter.java
@@ -1,4 +1,4 @@
-package org.apache.geronimo.microprofile.opentracing.microprofile.server;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.server;
import static java.util.Optional.ofNullable;
import static java.util.stream.Collectors.toList;
@@ -13,7 +13,6 @@
import java.util.regex.Pattern;
import java.util.stream.Stream;
-import javax.inject.Inject;
import javax.servlet.AsyncEvent;
import javax.servlet.AsyncListener;
import javax.servlet.Filter;
@@ -25,9 +24,10 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
-import org.apache.geronimo.microprofile.opentracing.impl.ScopeManagerImpl;
-import org.apache.geronimo.microprofile.opentracing.impl.ServletHeaderTextMap;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.impl.ScopeManagerImpl;
+import org.apache.geronimo.microprofile.opentracing.common.impl.ServletHeaderTextMap;
+import org.apache.geronimo.microprofile.opentracing.common.spi.Container;
import io.opentracing.Scope;
import io.opentracing.Span;
@@ -36,15 +36,10 @@
import io.opentracing.tag.Tags;
public class OpenTracingFilter implements Filter {
-
- @Inject
private Tracer tracer;
-
- @Inject
private GeronimoOpenTracingConfig config;
-
- @Inject
private ScopeManagerImpl manager;
+ private Container container;
private Collection<Predicate<String>> forcedUrls;
@@ -52,8 +47,36 @@
private boolean skipDefaultTags;
+ public void setTracer(final Tracer tracer) {
+ this.tracer = tracer;
+ }
+
+ public void setConfig(final GeronimoOpenTracingConfig config) {
+ this.config = config;
+ }
+
+ public void setManager(final ScopeManagerImpl manager) {
+ this.manager = manager;
+ }
+
+ public void setContainer(final Container container) {
+ this.container = container;
+ }
+
@Override
- public void init(final FilterConfig filterConfig) throws ServletException {
+ public void init(final FilterConfig filterConfig) {
+ if (container == null) {
+ container = Container.get();
+ }
+ if (tracer == null) {
+ tracer = container.lookup(Tracer.class);
+ }
+ if (manager == null) {
+ manager = container.lookup(ScopeManagerImpl.class);
+ }
+ if (config == null) {
+ config = container.lookup(GeronimoOpenTracingConfig.class);
+ }
skipDefaultTags = Boolean.parseBoolean(config.read("filter.forcedTracing.skipDefaultTags", "false"));
forcedUrls = ofNullable(config.read("filter.forcedTracing.urls", null))
.map(String::trim).filter(v -> !v.isEmpty())
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingServerRequestFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerRequestFilter.java
similarity index 90%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingServerRequestFilter.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerRequestFilter.java
index 91aaed1..00c9d42 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingServerRequestFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerRequestFilter.java
@@ -14,15 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.server;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.server;
import static java.util.Optional.ofNullable;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
-import org.apache.geronimo.microprofile.opentracing.impl.JaxRsHeaderTextMap;
-import org.apache.geronimo.microprofile.opentracing.microprofile.client.OpenTracingClientRequestFilter;
+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;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingServerResponseFilter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerResponseFilter.java
similarity index 94%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingServerResponseFilter.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerResponseFilter.java
index d31bb82..b67734c 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/OpenTracingServerResponseFilter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/OpenTracingServerResponseFilter.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.server;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.server;
import static java.util.Optional.ofNullable;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/ServletTracingSetup.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/ServletTracingSetup.java
similarity index 89%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/ServletTracingSetup.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/ServletTracingSetup.java
index 824525c..cefdbe0 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/ServletTracingSetup.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/server/ServletTracingSetup.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.server;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.server;
import java.util.EnumSet;
import java.util.Set;
@@ -24,7 +24,7 @@
import javax.servlet.ServletContainerInitializer;
import javax.servlet.ServletContext;
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
public class ServletTracingSetup implements ServletContainerInitializer {
@Override
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/thread/OpenTracingExecutorService.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/thread/OpenTracingExecutorService.java
similarity index 97%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/thread/OpenTracingExecutorService.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/thread/OpenTracingExecutorService.java
index 9928fb2..159b999 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/thread/OpenTracingExecutorService.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/thread/OpenTracingExecutorService.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.thread;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.thread;
import static java.util.stream.Collectors.toList;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/thread/ScopePropagatingCallable.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/thread/ScopePropagatingCallable.java
similarity index 95%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/thread/ScopePropagatingCallable.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/thread/ScopePropagatingCallable.java
index bd56c7b..ccc05a8 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/thread/ScopePropagatingCallable.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/thread/ScopePropagatingCallable.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.thread;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.thread;
import java.util.concurrent.Callable;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinConverter.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinConverter.java
similarity index 89%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinConverter.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinConverter.java
index cab3bd3..195cff8 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinConverter.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinConverter.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.zipkin;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin;
import static java.util.Collections.emptyList;
import static java.util.Locale.ROOT;
@@ -31,42 +31,44 @@
import java.util.List;
import java.util.Map;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Event;
-import javax.enterprise.event.Observes;
-import javax.inject.Inject;
-
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
-import org.apache.geronimo.microprofile.opentracing.impl.FinishedSpan;
-import org.apache.geronimo.microprofile.opentracing.impl.IdGenerator;
-import org.apache.geronimo.microprofile.opentracing.impl.SpanImpl;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.impl.FinishedSpan;
+import org.apache.geronimo.microprofile.opentracing.common.impl.IdGenerator;
+import org.apache.geronimo.microprofile.opentracing.common.impl.SpanImpl;
+import org.apache.geronimo.microprofile.opentracing.common.spi.Bus;
+import org.apache.geronimo.microprofile.opentracing.common.spi.Listener;
import io.opentracing.Span;
import io.opentracing.tag.Tags;
// when writing this observer, opentracing has no standard propagation nor exchange format
// so falling back on zipkin
-@ApplicationScoped
-public class ZipkinConverter {
-
- @Inject
- private Event<ZipkinSpan> zipkinSpanEvent;
-
- @Inject
+// @ApplicationScoped
+public class ZipkinConverter implements Listener<FinishedSpan> {
+ private Bus<ZipkinSpan> zipkinSpanEvent;
private GeronimoOpenTracingConfig config;
-
- @Inject
private IdGenerator idGenerator;
private String serviceName;
- @PostConstruct
- private void init() {
+ public void setZipkinSpanEvent(final Bus<ZipkinSpan> zipkinSpanEvent) {
+ this.zipkinSpanEvent = zipkinSpanEvent;
+ }
+
+ public void setConfig(final GeronimoOpenTracingConfig config) {
+ this.config = config;
+ }
+
+ public void setIdGenerator(final IdGenerator idGenerator) {
+ this.idGenerator = idGenerator;
+ }
+
+ public void init() {
serviceName = config.read("zipkin.serviceName", getHostName() + "_" + getPid());
}
- public void onSpan(@Observes final FinishedSpan finishedSpan) {
+ @Override
+ public void onEvent(final FinishedSpan finishedSpan) {
final Span from = finishedSpan.getSpan();
if (!SpanImpl.class.isInstance(from)) {
throw new IllegalStateException("Unsupported span type: " + from + ", maybe check your configuration");
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinLogger.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinLogger.java
similarity index 68%
copy from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinLogger.java
copy to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinLogger.java
index 8a38ecb..7acf2e2 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinLogger.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinLogger.java
@@ -14,23 +14,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.zipkin;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin;
import java.util.logging.Logger;
-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 org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.spi.Listener;
// this allows to integrate with any backend using appenders.
-@ApplicationScoped
-public class ZipkinLogger {
+// @ApplicationScoped
+public class ZipkinLogger implements Listener<ZipkinSpan> {
private final Logger spanLogger = Logger.getLogger("org.apache.geronimo.opentracing.zipkin");
@@ -41,14 +38,22 @@
private boolean wrapAsList;
- @PostConstruct
- private void init() {
- jsonb = JsonbBuilder.create();
+ public void setConfig(final GeronimoOpenTracingConfig config) {
+ this.config = config;
+ }
+
+ public void setJsonb(final Jsonb jsonb) {
+ this.jsonb = jsonb;
+ }
+
+ public void init() {
+ if (jsonb == null) {
+ jsonb = JsonbBuilder.create();
+ }
wrapAsList = Boolean.parseBoolean(config.read("span.converter.zipkin.logger.wrapAsList", "true"));
}
- @PreDestroy
- private void destroy() {
+ public void destroy() {
try {
jsonb.close();
} catch (final Exception e) {
@@ -56,7 +61,8 @@
}
}
- public void onZipkinSpan(@Observes final ZipkinSpan zipkinSpan) {
+ @Override
+ public void onEvent(final ZipkinSpan zipkinSpan) {
final String json = jsonb.toJson(zipkinSpan);
spanLogger.info(wrapAsList ? '[' + json + ']' : json);
}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinSpan.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinSpan.java
similarity index 98%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinSpan.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinSpan.java
index 895011b..ba1a555 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinSpan.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/zipkin/ZipkinSpan.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.zipkin;
+package org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin;
import java.util.List;
import java.util.Map;
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/package-info.java
similarity index 73%
copy from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
copy to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/package-info.java
index c707d27..a0370d8 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/package-info.java
@@ -14,18 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
-import io.opentracing.Span;
-
-public class FinishedSpan {
- private final Span span;
-
- public FinishedSpan(final Span span) {
- this.span = span;
- }
-
- public Span getSpan() {
- return span;
- }
-}
+// give a handle to the package, no other usage
+package org.apache.geronimo.microprofile.opentracing.common;
\ No newline at end of file
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Bus.java
similarity index 73%
copy from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
copy to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Bus.java
index c707d27..4ea68d2 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Bus.java
@@ -14,18 +14,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.spi;
-import io.opentracing.Span;
-
-public class FinishedSpan {
- private final Span span;
-
- public FinishedSpan(final Span span) {
- this.span = span;
- }
-
- public Span getSpan() {
- return span;
- }
+public interface Bus<T> {
+ void fire(T event);
}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/config/GeronimoOpenTracingConfig.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Container.java
similarity index 63%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/config/GeronimoOpenTracingConfig.java
rename to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Container.java
index e86e1d2..6a379f4 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/config/GeronimoOpenTracingConfig.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Container.java
@@ -14,18 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.config;
+package org.apache.geronimo.microprofile.opentracing.common.spi;
-@FunctionalInterface
-public interface GeronimoOpenTracingConfig {
+import java.util.Iterator;
+import java.util.ServiceLoader;
- String read(String value, String def);
+public interface Container {
+ <T> T lookup(Class<T> type);
- static GeronimoOpenTracingConfig create() {
- try {
- return new PrefixedConfig(new OpenTracingConfigMpConfigImpl());
- } catch (final NoClassDefFoundError | ExceptionInInitializerError cnfe) {
- return new PrefixedConfig(new DefaultOpenTracingConfig());
+ static Container get() {
+ final Iterator<Container> iterator = ServiceLoader.load(Container.class).iterator();
+ if (!iterator.hasNext()) {
+ throw new IllegalArgumentException("No implementation of Container found");
}
+ return iterator.next();
}
}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Listener.java
similarity index 73%
copy from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
copy to geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Listener.java
index c707d27..b67e8c1 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
+++ b/geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/spi/Listener.java
@@ -14,18 +14,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.spi;
-import io.opentracing.Span;
-
-public class FinishedSpan {
- private final Span span;
-
- public FinishedSpan(final Span span) {
- this.span = span;
- }
-
- public Span getSpan() {
- return span;
- }
+public interface Listener<T> {
+ void onEvent(T event);
}
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/javax.servlet.ServletContainerInitializer
new file mode 100644
index 0000000..4b4f1df
--- /dev/null
+++ b/geronimo-opentracing-common/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
@@ -0,0 +1 @@
+org.apache.geronimo.microprofile.opentracing.common.microprofile.server.ServletTracingSetup
diff --git a/geronimo-opentracing-common/src/main/resources/META-INF/services/org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider b/geronimo-opentracing-common/src/main/resources/META-INF/services/org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider
new file mode 100644
index 0000000..f531863
--- /dev/null
+++ b/geronimo-opentracing-common/src/main/resources/META-INF/services/org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider
@@ -0,0 +1 @@
+org.apache.geronimo.microprofile.opentracing.common.microprofile.client.GeronimoClientTracingRegistrarProvider
diff --git a/src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java b/geronimo-opentracing-common/src/test/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGeneratorTest.java
similarity index 80%
rename from src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java
rename to geronimo-opentracing-common/src/test/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGeneratorTest.java
index b9ae7ee..c5531c6 100644
--- a/src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java
+++ b/geronimo-opentracing-common/src/test/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGeneratorTest.java
@@ -14,18 +14,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.common.impl;
-import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test;
public class IdGeneratorTest {
@Test
public void hex() {
- assertEquals(16, new IdGenerator() {{
+ assertEquals(new IdGenerator() {{
config = (value, def) -> "hex";
- createDelegate();
- }}.next().toString().length());
+ init();
+ }}.next().toString().length(), 16);
}
}
diff --git a/geronimo-opentracing/pom.xml b/geronimo-opentracing/pom.xml
new file mode 100644
index 0000000..0bcbfda
--- /dev/null
+++ b/geronimo-opentracing/pom.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.geronimo</groupId>
+ <artifactId>geronimo-opentracing-parent</artifactId>
+ <version>1.0.1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>geronimo-opentracing</artifactId>
+ <name>Geronimo OpenTracing :: Impl</name>
+
+ <properties>
+ <geronimo-opentracing.Automatic-Module-Name>org.apache.geronimo.opentracing</geronimo-opentracing.Automatic-Module-Name>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jcdi_2.0_spec</artifactId>
+ <version>1.0.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-interceptor_1.2_spec</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo</groupId>
+ <artifactId>geronimo-opentracing-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <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.5</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.arquillian.testng</groupId>
+ <artifactId>arquillian-testng-container</artifactId>
+ <version>1.1.13.Final</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.meecrowave</groupId>
+ <artifactId>meecrowave-arquillian</artifactId>
+ <version>1.2.1</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.microprofile.opentracing</groupId>
+ <artifactId>microprofile-opentracing-tck</artifactId>
+ <version>1.1</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.microprofile.opentracing</groupId>
+ <artifactId>microprofile-opentracing-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.opentracing</groupId>
+ <artifactId>opentracing-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-client</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jackson-provider</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.22.1</version>
+ <configuration>
+ <suiteXmlFiles>
+ <suiteXmlFile>${project.basedir}/src/test/resources/tck.xml</suiteXmlFile>
+ </suiteXmlFiles>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/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
similarity index 84%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/config/OpenTracingConfigMpConfigImpl.java
rename to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/config/OpenTracingConfigMpConfigImpl.java
index a1d735f..3eb9f1b 100644
--- a/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
@@ -18,14 +18,15 @@
import javax.enterprise.inject.Vetoed;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.ConfigProvider;
@Vetoed
-class OpenTracingConfigMpConfigImpl implements GeronimoOpenTracingConfig {
+public class OpenTracingConfigMpConfigImpl implements GeronimoOpenTracingConfig {
private final Config config;
- OpenTracingConfigMpConfigImpl() {
+ public OpenTracingConfigMpConfigImpl() {
config = ConfigProvider.getConfig();
}
diff --git a/src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiContainer.java
similarity index 70%
copy from src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java
copy to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiContainer.java
index b9ae7ee..4ad5128 100644
--- a/src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiContainer.java
@@ -16,16 +16,19 @@
*/
package org.apache.geronimo.microprofile.opentracing.impl;
-import static org.testng.AssertJUnit.assertEquals;
+import javax.enterprise.inject.spi.CDI;
-import org.testng.annotations.Test;
+import org.apache.geronimo.microprofile.opentracing.common.spi.Container;
-public class IdGeneratorTest {
- @Test
- public void hex() {
- assertEquals(16, new IdGenerator() {{
- config = (value, def) -> "hex";
- createDelegate();
- }}.next().toString().length());
+public class CdiContainer implements Container {
+ private final CDI<Object> cdi;
+
+ public CdiContainer() {
+ cdi = CDI.current();
+ }
+
+ @Override
+ public <T> T lookup(final Class<T> type) {
+ return cdi.select(type).get();
}
}
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
new file mode 100644
index 0000000..baafc13
--- /dev/null
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiGeronimoTracer.java
@@ -0,0 +1,55 @@
+/*
+ * 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.impl;
+
+import javax.annotation.PostConstruct;
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.event.Event;
+import javax.inject.Inject;
+
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.impl.FinishedSpan;
+import org.apache.geronimo.microprofile.opentracing.common.impl.GeronimoTracer;
+import org.apache.geronimo.microprofile.opentracing.common.impl.IdGenerator;
+
+import io.opentracing.ScopeManager;
+
+@ApplicationScoped
+public class CdiGeronimoTracer extends GeronimoTracer {
+
+ @Inject
+ private ScopeManager scopeManager;
+
+ @Inject
+ private IdGenerator idGenerator;
+
+ @Inject
+ private Event<FinishedSpan> finishedSpanEvent;
+
+ @Inject
+ private GeronimoOpenTracingConfig config;
+
+
+ @PostConstruct
+ public void init() {
+ setConfig(config);
+ setIdGenerator(idGenerator);
+ setScopeManager(scopeManager);
+ setFinishedSpanEvent(finishedSpanEvent::fire);
+ super.init();
+ }
+}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiIdGenerator.java
similarity index 62%
copy from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
copy to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiIdGenerator.java
index c707d27..68b9c27 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiIdGenerator.java
@@ -16,16 +16,22 @@
*/
package org.apache.geronimo.microprofile.opentracing.impl;
-import io.opentracing.Span;
+import javax.annotation.PostConstruct;
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
-public class FinishedSpan {
- private final Span span;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.impl.IdGenerator;
- public FinishedSpan(final Span span) {
- this.span = span;
- }
+@ApplicationScoped
+public class CdiIdGenerator extends IdGenerator {
+ @Inject
+ private GeronimoOpenTracingConfig config;
- public Span getSpan() {
- return span;
+ @Override
+ @PostConstruct
+ public void init() {
+ setConfig(config);
+ super.init();
}
}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiScopeManagerImpl.java
similarity index 79%
copy from src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
copy to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiScopeManagerImpl.java
index c707d27..f6e8c57 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/FinishedSpan.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/impl/CdiScopeManagerImpl.java
@@ -16,16 +16,10 @@
*/
package org.apache.geronimo.microprofile.opentracing.impl;
-import io.opentracing.Span;
+import javax.enterprise.context.ApplicationScoped;
-public class FinishedSpan {
- private final Span span;
+import org.apache.geronimo.microprofile.opentracing.common.impl.ScopeManagerImpl;
- public FinishedSpan(final Span span) {
- this.span = span;
- }
-
- public Span getSpan() {
- return span;
- }
+@ApplicationScoped
+public class CdiScopeManagerImpl extends ScopeManagerImpl {
}
diff --git a/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
similarity index 92%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/OpenTracingExtension.java
rename to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/OpenTracingExtension.java
index b275a85..f9c1e0d 100644
--- a/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
@@ -35,10 +35,10 @@
import javax.ws.rs.HttpMethod;
import javax.ws.rs.Path;
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
-import org.apache.geronimo.microprofile.opentracing.microprofile.thread.OpenTracingExecutorService;
-import org.apache.geronimo.microprofile.opentracing.microprofile.zipkin.ZipkinConverter;
-import org.apache.geronimo.microprofile.opentracing.microprofile.zipkin.ZipkinLogger;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.thread.OpenTracingExecutorService;
+import org.apache.geronimo.microprofile.opentracing.microprofile.zipkin.CdiZipkinConverter;
+import org.apache.geronimo.microprofile.opentracing.microprofile.zipkin.CdiZipkinLogger;
import org.eclipse.microprofile.opentracing.Traced;
public class OpenTracingExtension implements Extension {
@@ -54,13 +54,13 @@
useZipkinLogger = useZipkin && Boolean.parseBoolean(config.read("span.converter.zipkin.logger.active", "true"));
}
- void zipkinConverterToggle(@Observes final ProcessAnnotatedType<ZipkinConverter> onZipkinConverter) {
+ void zipkinConverterToggle(@Observes final ProcessAnnotatedType<CdiZipkinConverter> onZipkinConverter) {
if (!useZipkin) {
onZipkinConverter.veto();
}
}
- void zipkinLoggerToggle(@Observes final ProcessAnnotatedType<ZipkinLogger> onZipkinLogger) {
+ void zipkinLoggerToggle(@Observes final ProcessAnnotatedType<CdiZipkinLogger> onZipkinLogger) {
if (!useZipkinLogger) {
onZipkinLogger.veto();
}
diff --git a/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
similarity index 100%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorService.java
rename to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorService.java
diff --git a/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
similarity index 92%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java
rename to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java
index a7470f0..1506649 100644
--- a/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
@@ -16,8 +16,6 @@
*/
package org.apache.geronimo.microprofile.opentracing.microprofile.cdi;
-import io.opentracing.Tracer;
-
import java.io.Serializable;
import javax.annotation.Priority;
@@ -25,7 +23,9 @@
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
-import org.apache.geronimo.microprofile.opentracing.microprofile.thread.ScopePropagatingCallable;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.thread.ScopePropagatingCallable;
+
+import io.opentracing.Tracer;
@Interceptor
@TracedExecutorService
diff --git a/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
similarity index 100%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedInterceptor.java
rename to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedInterceptor.java
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientRequestFilter.java
similarity index 61%
copy from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java
copy to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientRequestFilter.java
index a7470f0..6898d96 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/cdi/TracedExecutorServiceInterceptor.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientRequestFilter.java
@@ -14,27 +14,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.microprofile.cdi;
+package org.apache.geronimo.microprofile.opentracing.microprofile.client;
+
+import javax.annotation.PostConstruct;
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.client.OpenTracingClientRequestFilter;
import io.opentracing.Tracer;
-import java.io.Serializable;
+@ApplicationScoped
+public class CdiOpenTracingClientRequestFilter extends OpenTracingClientRequestFilter {
-import javax.annotation.Priority;
-import javax.inject.Inject;
-import javax.interceptor.Interceptor;
-import javax.interceptor.InvocationContext;
-
-import org.apache.geronimo.microprofile.opentracing.microprofile.thread.ScopePropagatingCallable;
-
-@Interceptor
-@TracedExecutorService
-@Priority(Interceptor.Priority.LIBRARY_AFTER)
-public class TracedExecutorServiceInterceptor implements Serializable {
@Inject
private Tracer tracer;
- public Object around(final InvocationContext context) throws Exception {
- return new ScopePropagatingCallable<>(context::proceed, tracer).call();
+ @Inject
+ private GeronimoOpenTracingConfig config;
+
+ @PostConstruct
+ public void init() {
+ setConfig(config);
+ setTracer(tracer);
+ super.init();
}
}
diff --git a/src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientResponseFilter.java
similarity index 63%
copy from src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java
copy to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientResponseFilter.java
index b9ae7ee..68bf90e 100644
--- a/src/test/java/org/apache/geronimo/microprofile/opentracing/impl/IdGeneratorTest.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/client/CdiOpenTracingClientResponseFilter.java
@@ -14,18 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.microprofile.opentracing.impl;
+package org.apache.geronimo.microprofile.opentracing.microprofile.client;
-import static org.testng.AssertJUnit.assertEquals;
+import javax.annotation.Priority;
+import javax.enterprise.context.ApplicationScoped;
+import javax.ws.rs.Priorities;
-import org.testng.annotations.Test;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.client.OpenTracingClientResponseFilter;
-public class IdGeneratorTest {
- @Test
- public void hex() {
- assertEquals(16, new IdGenerator() {{
- config = (value, def) -> "hex";
- createDelegate();
- }}.next().toString().length());
- }
+@ApplicationScoped
+@Priority(Priorities.HEADER_DECORATOR)
+public class CdiOpenTracingClientResponseFilter extends 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
new file mode 100644
index 0000000..9188c2f
--- /dev/null
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/server/CdiGeronimoOpenTracingFeature.java
@@ -0,0 +1,42 @@
+/*
+ * 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.microprofile.server;
+
+import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
+import javax.ws.rs.ext.Provider;
+
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.server.GeronimoOpenTracingFeature;
+
+import io.opentracing.Tracer;
+
+@Provider
+@Dependent
+public class CdiGeronimoOpenTracingFeature extends GeronimoOpenTracingFeature {
+ @Inject
+ @Override
+ public void setTracer(final Tracer tracer) {
+ super.setTracer(tracer);
+ }
+
+ @Inject
+ @Override
+ public void setConfig(final GeronimoOpenTracingConfig config) {
+ super.setConfig(config);
+ }
+}
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
new file mode 100644
index 0000000..bd00795
--- /dev/null
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinConverter.java
@@ -0,0 +1,54 @@
+/*
+ * 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.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 org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.impl.FinishedSpan;
+import org.apache.geronimo.microprofile.opentracing.common.impl.IdGenerator;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin.ZipkinConverter;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin.ZipkinSpan;
+
+@ApplicationScoped
+public class CdiZipkinConverter extends ZipkinConverter {
+
+ @Inject
+ private Event<ZipkinSpan> zipkinSpanEvent;
+
+ @Inject
+ private GeronimoOpenTracingConfig config;
+
+ @Inject
+ private IdGenerator idGenerator;
+
+ @PostConstruct
+ public void init() {
+ setConfig(config);
+ setIdGenerator(idGenerator);
+ setZipkinSpanEvent(zipkinSpanEvent::fire);
+ super.init();
+ }
+
+ public void onSpan(@Observes final FinishedSpan finishedSpan) {
+ super.onEvent(finishedSpan);
+ }
+}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinLogger.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinLogger.java
similarity index 70%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinLogger.java
rename to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinLogger.java
index 8a38ecb..d5eed2a 100644
--- a/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/ZipkinLogger.java
+++ b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/microprofile/zipkin/CdiZipkinLogger.java
@@ -16,8 +16,6 @@
*/
package org.apache.geronimo.microprofile.opentracing.microprofile.zipkin;
-import java.util.logging.Logger;
-
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.enterprise.context.ApplicationScoped;
@@ -26,13 +24,13 @@
import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
-import org.apache.geronimo.microprofile.opentracing.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin.ZipkinLogger;
+import org.apache.geronimo.microprofile.opentracing.common.microprofile.zipkin.ZipkinSpan;
// this allows to integrate with any backend using appenders.
@ApplicationScoped
-public class ZipkinLogger {
-
- private final Logger spanLogger = Logger.getLogger("org.apache.geronimo.opentracing.zipkin");
+public class CdiZipkinLogger extends ZipkinLogger {
@Inject
private GeronimoOpenTracingConfig config;
@@ -42,22 +40,18 @@
private boolean wrapAsList;
@PostConstruct
- private void init() {
+ public void init() {
+ setConfig(config);
jsonb = JsonbBuilder.create();
- wrapAsList = Boolean.parseBoolean(config.read("span.converter.zipkin.logger.wrapAsList", "true"));
+ super.init();
}
@PreDestroy
- private void destroy() {
- try {
- jsonb.close();
- } catch (final Exception e) {
- // no-op
- }
+ public void destroy() {
+ super.destroy();
}
public void onZipkinSpan(@Observes final ZipkinSpan zipkinSpan) {
- final String json = jsonb.toJson(zipkinSpan);
- spanLogger.info(wrapAsList ? '[' + json + ']' : json);
+ super.onEvent(zipkinSpan);
}
}
diff --git a/src/main/java/org/apache/geronimo/microprofile/opentracing/package-info.java b/geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/package-info.java
similarity index 100%
rename from src/main/java/org/apache/geronimo/microprofile/opentracing/package-info.java
rename to geronimo-opentracing/src/main/java/org/apache/geronimo/microprofile/opentracing/package-info.java
diff --git a/src/main/resources/META-INF/beans.xml b/geronimo-opentracing/src/main/resources/META-INF/beans.xml
similarity index 100%
rename from src/main/resources/META-INF/beans.xml
rename to geronimo-opentracing/src/main/resources/META-INF/beans.xml
diff --git a/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension b/geronimo-opentracing/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
similarity index 100%
rename from src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
rename to geronimo-opentracing/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
diff --git a/geronimo-opentracing/src/main/resources/META-INF/services/org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig b/geronimo-opentracing/src/main/resources/META-INF/services/org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig
new file mode 100644
index 0000000..836fe3d
--- /dev/null
+++ b/geronimo-opentracing/src/main/resources/META-INF/services/org.apache.geronimo.microprofile.opentracing.common.config.GeronimoOpenTracingConfig
@@ -0,0 +1 @@
+org.apache.geronimo.microprofile.opentracing.config.OpenTracingConfigMpConfigImpl
diff --git a/geronimo-opentracing/src/main/resources/META-INF/services/org.apache.geronimo.microprofile.opentracing.common.spi.Container b/geronimo-opentracing/src/main/resources/META-INF/services/org.apache.geronimo.microprofile.opentracing.common.spi.Container
new file mode 100644
index 0000000..8b6df9c
--- /dev/null
+++ b/geronimo-opentracing/src/main/resources/META-INF/services/org.apache.geronimo.microprofile.opentracing.common.spi.Container
@@ -0,0 +1 @@
+org.apache.geronimo.microprofile.opentracing.impl.CdiContainer
diff --git a/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/CxfCdiWorkaround.java b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/CxfCdiWorkaround.java
similarity index 100%
rename from src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/CxfCdiWorkaround.java
rename to geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/CxfCdiWorkaround.java
diff --git a/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SkipOpentracingApiSetup.java b/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SkipOpentracingApiSetup.java
similarity index 100%
rename from src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SkipOpentracingApiSetup.java
rename to geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SkipOpentracingApiSetup.java
diff --git a/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
similarity index 94%
rename from src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/TckTracer.java
rename to geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/TckTracer.java
index d660c95..d607488 100644
--- a/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
@@ -27,10 +27,10 @@
import javax.enterprise.event.Observes;
import javax.enterprise.inject.Specializes;
-import org.apache.geronimo.microprofile.opentracing.impl.FinishedSpan;
-import org.apache.geronimo.microprofile.opentracing.impl.GeronimoTracer;
-import org.apache.geronimo.microprofile.opentracing.impl.SpanContextImpl;
-import org.apache.geronimo.microprofile.opentracing.impl.SpanImpl;
+import org.apache.geronimo.microprofile.opentracing.common.impl.FinishedSpan;
+import org.apache.geronimo.microprofile.opentracing.common.impl.SpanContextImpl;
+import org.apache.geronimo.microprofile.opentracing.common.impl.SpanImpl;
+import org.apache.geronimo.microprofile.opentracing.impl.CdiGeronimoTracer;
import io.opentracing.Span;
import io.opentracing.SpanContext;
@@ -38,7 +38,7 @@
// compat for TCK which assume the MockTracer impl for validations
@Specializes
@ApplicationScoped
-public class TckTracer extends GeronimoTracer {
+public class TckTracer extends CdiGeronimoTracer {
private final Collection<Span> spans = new LinkedHashSet<>();
synchronized void onSpan(@Observes final FinishedSpan span) {
diff --git a/src/test/resources/META-INF/geronimo/microprofile/opentracing.properties b/geronimo-opentracing/src/test/resources/META-INF/geronimo/microprofile/opentracing.properties
similarity index 100%
rename from src/test/resources/META-INF/geronimo/microprofile/opentracing.properties
rename to geronimo-opentracing/src/test/resources/META-INF/geronimo/microprofile/opentracing.properties
diff --git a/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/geronimo-opentracing/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
similarity index 100%
rename from src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
rename to geronimo-opentracing/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
diff --git a/src/test/resources/arquillian.xml b/geronimo-opentracing/src/test/resources/arquillian.xml
similarity index 97%
rename from src/test/resources/arquillian.xml
rename to geronimo-opentracing/src/test/resources/arquillian.xml
index 9d21c97..0eb6f40 100644
--- a/src/test/resources/arquillian.xml
+++ b/geronimo-opentracing/src/test/resources/arquillian.xml
@@ -23,7 +23,7 @@
<property name="tempDir">target/meecrowave/temp</property>
<property name="jaxrsDefaultProviders">
com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider,
- org.apache.geronimo.microprofile.opentracing.microprofile.server.GeronimoOpenTracingFeature
+ org.apache.geronimo.microprofile.opentracing.microprofile.server.CdiGeronimoOpenTracingFeature
</property>
<property name="scanningExcludes">
arquillian,
diff --git a/src/test/resources/tck-dev.xml b/geronimo-opentracing/src/test/resources/tck-dev.xml
similarity index 100%
rename from src/test/resources/tck-dev.xml
rename to geronimo-opentracing/src/test/resources/tck-dev.xml
diff --git a/src/test/resources/tck.xml b/geronimo-opentracing/src/test/resources/tck.xml
similarity index 100%
rename from src/test/resources/tck.xml
rename to geronimo-opentracing/src/test/resources/tck.xml
diff --git a/pom.xml b/pom.xml
index 8f2ab28..6a5f53e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,9 +25,10 @@
</parent>
<groupId>org.apache.geronimo</groupId>
- <artifactId>geronimo-opentracing</artifactId>
+ <artifactId>geronimo-opentracing-parent</artifactId>
<version>1.0.1-SNAPSHOT</version>
<name>Geronimo OpenTracing</name>
+ <packaging>pom</packaging>
<description>
Apache Geronimo implementation of the Microprofile OpenTracing Specification
@@ -54,18 +55,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jcdi_2.0_spec</artifactId>
- <version>1.0.1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-interceptor_1.2_spec</artifactId>
- <version>1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>9.0.8</version>
@@ -85,13 +74,6 @@
</dependency>
<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.geronimo.specs</groupId>
<artifactId>geronimo-jsonb_1.0_spec</artifactId>
<version>1.0</version>
@@ -100,94 +82,37 @@
</dependency>
<dependency>
- <groupId>org.apache.openwebbeans</groupId>
- <artifactId>openwebbeans-impl</artifactId>
- <version>2.0.5</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.arquillian.testng</groupId>
- <artifactId>arquillian-testng-container</artifactId>
- <version>1.1.13.Final</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.21</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.meecrowave</groupId>
- <artifactId>meecrowave-arquillian</artifactId>
- <version>1.2.1</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.eclipse.microprofile.opentracing</groupId>
- <artifactId>microprofile-opentracing-tck</artifactId>
- <version>1.1</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.eclipse.microprofile.opentracing</groupId>
- <artifactId>microprofile-opentracing-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.ws.rs</groupId>
- <artifactId>javax.ws.rs-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.opentracing</groupId>
- <artifactId>opentracing-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-client</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jackson-provider</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
</dependencies>
+ <modules>
+ <module>geronimo-opentracing-common</module>
+ <module>geronimo-opentracing</module>
+ </modules>
+
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.7.0</version>
+ <version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.21.0</version>
- <configuration>
- <suiteXmlFiles>
- <suiteXmlFile>${project.basedir}/src/test/resources/tck.xml</suiteXmlFile>
- </suiteXmlFiles>
- </configuration>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>3.0.2</version>
+ <version>3.1.0</version>
<configuration>
<archive combine.children="append">
<manifestEntries>
- <Automatic-Module-Name>org.apache.geronimo.opentracing</Automatic-Module-Name>
+ <Automatic-Module-Name>${geronimo-opentracing.Automatic-Module-Name}</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
diff --git a/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer b/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
deleted file mode 100644
index 86be236..0000000
--- a/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.geronimo.microprofile.opentracing.microprofile.server.ServletTracingSetup
diff --git a/src/main/resources/META-INF/services/org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider b/src/main/resources/META-INF/services/org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider
deleted file mode 100644
index f0f09c0..0000000
--- a/src/main/resources/META-INF/services/org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.geronimo.microprofile.opentracing.microprofile.client.GeronimoClientTracingRegistrarProvider