This is an automated email from the ASF dual-hosted git repository.
chetanm pushed a commit to branch SLING-3049
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-log.git
The following commit(s) were added to refs/heads/SLING-3049 by this push:
new 19e888e SLING-3049 - Make Logback Stacktrace Packaging data support
OSGi aware
19e888e is described below
commit 19e888e652402cd06d959ca58d78922e21c74e66
Author: Chetan Mehrotra <[email protected]>
AuthorDate: Tue Oct 31 17:33:04 2017 +0530
SLING-3049 - Make Logback Stacktrace Packaging data support OSGi aware
Support for including BSN also along with version
---
.../internal/stacktrace/OSGiAwareExceptionHandling.java | 6 +++---
.../logback/internal/stacktrace/PackageInfoCollector.java | 14 +++++++++-----
.../commons/log/logback/integration/ITPackagingData.java | 5 +++--
.../log/logback/integration/PackagingDataTestUtil.java | 3 ++-
4 files changed, 17 insertions(+), 11 deletions(-)
diff --git
a/src/main/java/org/apache/sling/commons/log/logback/internal/stacktrace/OSGiAwareExceptionHandling.java
b/src/main/java/org/apache/sling/commons/log/logback/internal/stacktrace/OSGiAwareExceptionHandling.java
index 45c8aeb..165d65a 100644
---
a/src/main/java/org/apache/sling/commons/log/logback/internal/stacktrace/OSGiAwareExceptionHandling.java
+++
b/src/main/java/org/apache/sling/commons/log/logback/internal/stacktrace/OSGiAwareExceptionHandling.java
@@ -51,9 +51,9 @@ public class OSGiAwareExceptionHandling extends
EnsureExceptionHandling {
@Override
protected void extraData(StringBuilder builder, StackTraceElementProxy
step) {
if (step != null) {
- String version =
collector.getVersion(step.getStackTraceElement().getClassName());
- if (version != null) {
- builder.append(" [").append(version).append(']');
+ String bundleInfo =
collector.getBundleInfo(step.getStackTraceElement().getClassName());
+ if (bundleInfo != null) {
+ builder.append(" [").append(bundleInfo).append(']');
}
}
}
diff --git
a/src/main/java/org/apache/sling/commons/log/logback/internal/stacktrace/PackageInfoCollector.java
b/src/main/java/org/apache/sling/commons/log/logback/internal/stacktrace/PackageInfoCollector.java
index 36cde17..e80eed1 100644
---
a/src/main/java/org/apache/sling/commons/log/logback/internal/stacktrace/PackageInfoCollector.java
+++
b/src/main/java/org/apache/sling/commons/log/logback/internal/stacktrace/PackageInfoCollector.java
@@ -26,7 +26,7 @@ import org.osgi.framework.hooks.weaving.WeavingHook;
import org.osgi.framework.hooks.weaving.WovenClass;
public class PackageInfoCollector implements WeavingHook{
- private final Map<String, String> pkgVersionMapping = new
ConcurrentHashMap<>();
+ private final Map<String, String> pkgInfoMapping = new
ConcurrentHashMap<>();
@Override
public void weave(WovenClass wovenClass) {
@@ -34,19 +34,23 @@ public class PackageInfoCollector implements WeavingHook{
}
public int size() {
- return pkgVersionMapping.size();
+ return pkgInfoMapping.size();
}
void add(Bundle bundle, String className) {
- pkgVersionMapping.put(getPackageName(className),
bundle.getVersion().toString());
+ pkgInfoMapping.put(getPackageName(className), getInfo(bundle));
}
- String getVersion(String className) {
+ String getBundleInfo(String className) {
if (className == null) {
return null;
}
String packageName = getPackageName(className);
- return pkgVersionMapping.get(packageName);
+ return pkgInfoMapping.get(packageName);
+ }
+
+ static String getInfo(Bundle bundle) {
+ return bundle.getSymbolicName() + ":" + bundle.getVersion();
}
static String getPackageName(String className) {
diff --git
a/src/test/java/org/apache/sling/commons/log/logback/integration/ITPackagingData.java
b/src/test/java/org/apache/sling/commons/log/logback/integration/ITPackagingData.java
index adc44ca..e30e976 100644
---
a/src/test/java/org/apache/sling/commons/log/logback/integration/ITPackagingData.java
+++
b/src/test/java/org/apache/sling/commons/log/logback/integration/ITPackagingData.java
@@ -51,8 +51,9 @@ import org.osgi.util.tracker.ServiceTracker;
import org.slf4j.LoggerFactory;
import static
org.apache.sling.commons.log.logback.integration.ITConfigAdminSupport.PID;
+import static
org.apache.sling.commons.log.logback.integration.PackagingDataTestUtil.TEST_BUNDLE_NAME;
+import static
org.apache.sling.commons.log.logback.integration.PackagingDataTestUtil.TEST_BUNDLE_VERSION;
import static
org.apache.sling.commons.log.logback.internal.LogConfigManager.FACTORY_PID_CONFIGS;
-import static
org.apache.sling.commons.log.logback.internal.LogConfigManager.LOGBACK_FILE;
import static
org.apache.sling.commons.log.logback.internal.LogConfigManager.LOG_FILE;
import static
org.apache.sling.commons.log.logback.internal.LogConfigManager.LOG_LEVEL;
import static
org.apache.sling.commons.log.logback.internal.LogConfigManager.LOG_LOGGERS;
@@ -171,7 +172,7 @@ public class ITPackagingData extends LogTestBase {
}
}
assertNotNull(testLine);
- assertThat(testLine,
containsString("["+PackagingDataTestUtil.TEST_BUNDLE_VERSION+"]"));
+ assertThat(testLine, containsString("["+
TEST_BUNDLE_NAME+":"+TEST_BUNDLE_VERSION+"]"));
//Check that default logback support is still disabled
assertFalse(((LoggerContext)
LoggerFactory.getILoggerFactory()).isPackagingDataEnabled());
diff --git
a/src/test/java/org/apache/sling/commons/log/logback/integration/PackagingDataTestUtil.java
b/src/test/java/org/apache/sling/commons/log/logback/integration/PackagingDataTestUtil.java
index db5c5ed..05de164 100644
---
a/src/test/java/org/apache/sling/commons/log/logback/integration/PackagingDataTestUtil.java
+++
b/src/test/java/org/apache/sling/commons/log/logback/integration/PackagingDataTestUtil.java
@@ -36,11 +36,12 @@ import static
org.ops4j.pax.tinybundles.core.TinyBundles.withBnd;
public class PackagingDataTestUtil {
public static final String TEST_BUNDLE_VERSION = "0.0.7";
+ public static final String TEST_BUNDLE_NAME = "packagedatatest";
public static InputStream createTestBundle() {
return bundle()
.set(Constants.BUNDLE_ACTIVATOR,
PackageDataActivator.class.getName())
- .set(Constants.BUNDLE_SYMBOLICNAME, "packagedatatest")
+ .set(Constants.BUNDLE_SYMBOLICNAME, TEST_BUNDLE_NAME)
.set(Constants.BUNDLE_VERSION, TEST_BUNDLE_VERSION)
.add(PackageDataActivator.class, InnerClassStrategy.NONE)
.add(TestRunnable.class, InnerClassStrategy.NONE)
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].