Author: kwin
Date: Mon Jun 15 08:50:48 2015
New Revision: 1685514
URL: http://svn.apache.org/r1685514
Log:
SLING-4803 log why the dynamic class loader has been reloaded
Modified:
sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java
sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/DynamicClassLoaderManagerFactory.java
Modified:
sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java?rev=1685514&r1=1685513&r2=1685514&view=diff
==============================================================================
---
sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java
(original)
+++
sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java
Mon Jun 15 08:50:48 2015
@@ -29,6 +29,8 @@ import org.osgi.framework.ServiceRegistr
import org.osgi.framework.SynchronousBundleListener;
import org.osgi.service.packageadmin.PackageAdmin;
import org.osgi.util.tracker.ServiceTracker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This activator registers the dynamic class loader manager.
@@ -39,6 +41,9 @@ public class Activator implements Synchr
/** Package admin service name */
private static String PACKAGE_ADMIN_NAME = PackageAdmin.class.getName();
+
+ /** The logger. */
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
/** A service tracker for the package admin. */
private ServiceTracker packageAdminTracker;
@@ -115,8 +120,14 @@ public class Activator implements Synchr
if ( ( event.getType() == BundleEvent.STARTED && !lazyBundle)
|| (event.getType() == BundleEvent.STARTING && lazyBundle) ) {
reload = this.service.hasUnresolvedPackages(event.getBundle());
+ if (reload) {
+ logger.debug("Dynamic Class Loader is reloaded because the
new bundle '{}' provides previously unresolved packages", event.getBundle());
+ }
} else if ( event.getType() == BundleEvent.UNRESOLVED ||
event.getType() == BundleEvent.RESOLVED ) {
reload =
this.service.isBundleUsed(event.getBundle().getBundleId());
+ if (reload) {
+ logger.debug("Dynamic Class Loader is reloaded because it
has previously loaded classes from bundle '{}' which is no longer active",
event.getBundle());
+ }
} else {
reload = false;
}
Modified:
sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/DynamicClassLoaderManagerFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/DynamicClassLoaderManagerFactory.java?rev=1685514&r1=1685513&r2=1685514&view=diff
==============================================================================
---
sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/DynamicClassLoaderManagerFactory.java
(original)
+++
sling/trunk/bundles/commons/classloader/src/main/java/org/apache/sling/commons/classloader/impl/DynamicClassLoaderManagerFactory.java
Mon Jun 15 08:50:48 2015
@@ -26,6 +26,8 @@ import org.osgi.framework.ServiceFactory
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.packageadmin.ExportedPackage;
import org.osgi.service.packageadmin.PackageAdmin;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This is the service factory for the dynamic class loader manager.
@@ -33,6 +35,9 @@ import org.osgi.service.packageadmin.Pac
public class DynamicClassLoaderManagerFactory
implements ServiceFactory {
+ /** The logger. */
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
/** The package admin. */
private final PackageAdmin pckAdmin;
@@ -113,6 +118,7 @@ public class DynamicClassLoaderManagerFa
if ( pcks != null ) {
for(final ExportedPackage pck : pcks ) {
if ( this.unresolvedPackages.contains(pck.getName()) ) {
+ logger.debug("Bundle '{}' provides package '{}' which
has been previously unsuccessfully requested!", bundle, pck.getName());
return true;
}
}