Bug 394979 - Use the OSGi LogService
diff --git a/org.eclipse.gemini.management/META-INF/MANIFEST.MF b/org.eclipse.gemini.management/META-INF/MANIFEST.MF
index 3d558fa..1a89800 100644
--- a/org.eclipse.gemini.management/META-INF/MANIFEST.MF
+++ b/org.eclipse.gemini.management/META-INF/MANIFEST.MF
@@ -18,6 +18,7 @@
org.osgi.jmx.service.cm;version="1.3",
org.osgi.jmx.service.useradmin;version="1.1.1",
org.osgi.service.cm,
+ org.osgi.service.log,
org.osgi.service.packageadmin,
org.osgi.service.permissionadmin,
org.osgi.service.provisioning,
diff --git a/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/Activator.java b/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/Activator.java
index 1d3a2e8..3427eee 100644
--- a/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/Activator.java
+++ b/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/Activator.java
@@ -19,8 +19,6 @@
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import javax.management.InstanceAlreadyExistsException;
import javax.management.InstanceNotFoundException;
@@ -53,6 +51,7 @@
import org.osgi.jmx.service.provisioning.ProvisioningServiceMBean;
import org.osgi.jmx.service.useradmin.UserAdminMBean;
import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.service.log.LogService;
import org.osgi.service.permissionadmin.PermissionAdmin;
import org.osgi.service.provisioning.ProvisioningService;
import org.osgi.service.useradmin.UserAdmin;
@@ -66,8 +65,6 @@
*/
@SuppressWarnings("deprecation")
public class Activator implements BundleActivator {
-
- private static final Logger LOGGER = Logger.getLogger(Activator.class.getCanonicalName());
private final List<MBeanServer> mbeanServers = new CopyOnWriteArrayList<MBeanServer>();
@@ -114,6 +111,22 @@
private ServiceTracker<ProvisioningService, ?> provisioningServiceTracker;
private ServiceTracker<UserAdmin, ?> userAdminTracker;
+
+ private ServiceTracker<LogService, ?> logServiceTracker;
+
+ private LogService logger;
+
+ private void log (int level, String message) {
+ if (logger != null) {
+ logger.log(level, message);
+ }
+ }
+
+ private void log (int level, String message, Throwable t) {
+ if (logger != null) {
+ logger.log(level, message, t);
+ }
+ }
private void createObjectNames() {
try {
@@ -135,12 +148,14 @@
* {@inheritDoc}
*/
public void start(BundleContext bundleContext) throws Exception {
- objectNameTranslator = DefaultObjectNameTranslator.initialiseObjectNameTranslator(bundleContext);
+ logServiceTracker = new ServiceTracker<LogService, Object>(bundleContext, LogService.class, new LogServiceTracker());
+ logServiceTracker.open();
+ objectNameTranslator = DefaultObjectNameTranslator.initialiseObjectNameTranslator(bundleContext, logger);
createObjectNames();
this.bundleContext = bundleContext;
registerDefaultMBeanServer();
this.mbeanServiceTracker = new ServiceTracker<MBeanServer, Object>(this.bundleContext, MBeanServer.class, new MBeanServiceTracker());
- LOGGER.fine("Awaiting initial MBeanServer service registration");
+ log(LogService.LOG_INFO, "Awaiting initial MBeanServer service registration");
this.mbeanServiceTracker.open();
}
@@ -180,97 +195,97 @@
if (!servicesRegistered.get()) {
return;
}
- LOGGER.fine("Deregistering framework with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering framework with MBeanServer: " + mbeanServer);
try {
mbeanServer.unregisterMBean(frameworkName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINE, "FrameworkMBean not found on deregistration", e);
+ log(LogService.LOG_INFO, "FrameworkMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "FrameworkMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "FrameworkMBean deregistration problem", e);
}
framework = null;
- LOGGER.fine("Deregistering bundle state with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering bundle state with MBeanServer: " + mbeanServer);
try {
mbeanServer.unregisterMBean(bundleStateName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINEST, "OSGi BundleStateMBean not found on deregistration", e);
+ log(LogService.LOG_INFO, "OSGi BundleStateMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "OSGi BundleStateMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "OSGi BundleStateMBean deregistration problem", e);
}
bundleState = null;
- LOGGER.fine("Deregistering bundle wiring state with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering bundle wiring state with MBeanServer: " + mbeanServer);
try {
mbeanServer.unregisterMBean(bundleWiringStateName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINEST, "OSGi BundleWiringStateMBean not found on deregistration", e);
+ log(LogService.LOG_DEBUG, "OSGi BundleWiringStateMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "OSGi BundleWiringStateMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "OSGi BundleWiringStateMBean deregistration problem", e);
}
bundleWiringState = null;
- LOGGER.fine("Deregistering services monitor with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering services monitor with MBeanServer: " + mbeanServer);
try {
mbeanServer.unregisterMBean(serviceStateName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINEST, "OSGi ServiceStateMBean not found on deregistration", e);
+ log(LogService.LOG_DEBUG, "OSGi ServiceStateMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "OSGi ServiceStateMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "OSGi ServiceStateMBean deregistration problem", e);
}
serviceState = null;
- LOGGER.fine("Deregistering packages monitor with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering packages monitor with MBeanServer: " + mbeanServer);
try {
mbeanServer.unregisterMBean(packageStateName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINEST, "OSGi PackageStateMBean not found on deregistration", e);
+ log(LogService.LOG_DEBUG, "OSGi PackageStateMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "OSGi PackageStateMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "OSGi PackageStateMBean deregistration problem", e);
}
packageState = null;
- LOGGER.fine("Deregistering config admin with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering config admin with MBeanServer: " + mbeanServer);
configAdminTracker.close();
try {
mbeanServer.unregisterMBean(configAdminName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINEST, "OSGi ConfigAdminMBean not found on deregistration", e);
+ log(LogService.LOG_DEBUG, "OSGi ConfigAdminMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "OSGi ConfigAdminMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "OSGi ConfigAdminMBean deregistration problem", e);
}
configAdminTracker = null;
- LOGGER.fine("Deregistering permission admin with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering permission admin with MBeanServer: " + mbeanServer);
permissionAdminTracker.close();
try {
mbeanServer.unregisterMBean(permissionAdminName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINEST, "OSGi PermissionAdminMBean not found on deregistration", e);
+ log(LogService.LOG_DEBUG, "OSGi PermissionAdminMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "OSGi PermissionAdminMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "OSGi PermissionAdminMBean deregistration problem", e);
}
permissionAdminTracker = null;
- LOGGER.fine("Deregistering provisioning service admin with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering provisioning service admin with MBeanServer: " + mbeanServer);
provisioningServiceTracker.close();
try {
mbeanServer.unregisterMBean(provisioningServiceName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINEST, "OSGi ProvisioningServiceMBean not found on deregistration", e);
+ log(LogService.LOG_DEBUG, "OSGi ProvisioningServiceMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "OSGi ProvisioningServiceMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "OSGi ProvisioningServiceMBean deregistration problem", e);
}
provisioningServiceTracker = null;
- LOGGER.fine("Deregistering user admin with MBeanServer: " + mbeanServer);
+ log(LogService.LOG_INFO, "Deregistering user admin with MBeanServer: " + mbeanServer);
userAdminTracker.close();
try {
mbeanServer.unregisterMBean(userAdminName);
} catch (InstanceNotFoundException e) {
- LOGGER.log(Level.FINEST, "OSGi UserAdminMBean not found on deregistration", e);
+ log(LogService.LOG_DEBUG, "OSGi UserAdminMBean not found on deregistration", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.FINE, "OSGi UserAdminMBean deregistration problem", e);
+ log(LogService.LOG_INFO, "OSGi UserAdminMBean deregistration problem", e);
}
userAdminTracker = null;
servicesRegistered.set(false);
@@ -285,87 +300,87 @@
try {
framework = new StandardMBean(new Framework(bundleContext), FrameworkMBean.class);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Unable to create StandardMBean for Framework", e);
+ log(LogService.LOG_ERROR, "Unable to create StandardMBean for Framework", e);
return;
}
try {
bundleState = new StandardMBean(new BundleState(bundleContext), BundleStateMBean.class);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Unable to create StandardMBean for BundleState", e);
+ log(LogService.LOG_ERROR, "Unable to create StandardMBean for BundleState", e);
return;
}
try {
bundleWiringState = new StandardMBean(new BundleWiringState(bundleContext), BundleWiringStateMBean.class);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Unable to create StandardMBean for BundleWiringState", e);
+ log(LogService.LOG_ERROR, "Unable to create StandardMBean for BundleWiringState", e);
return;
}
try {
serviceState = new StandardMBean(new ServiceState(bundleContext), CustomServiceStateMBean.class);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Unable to create StandardMBean for ServiceState", e);
+ log(LogService.LOG_ERROR, "Unable to create StandardMBean for ServiceState", e);
return;
}
try {
packageState = new StandardMBean(new PackageState(bundleContext), PackageStateMBean.class);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Unable to create StandardMBean for PackageState", e);
+ log(LogService.LOG_ERROR, "Unable to create StandardMBean for PackageState", e);
return;
}
- LOGGER.fine("Registering Framework with MBeanServer: " + mbeanServer + " with name: " + frameworkName);
+ log(LogService.LOG_INFO, "Registering Framework with MBeanServer: " + mbeanServer + " with name: " + frameworkName);
try {
mbeanServer.registerMBean(framework, frameworkName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register OSGi framework MBean", e);
+ log(LogService.LOG_INFO, "Cannot register OSGi framework MBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi framework MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi framework MBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi framework MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi framework MBean", e);
}
- LOGGER.fine("Registering bundle state with MBeanServer: " + mbeanServer + " with name: " + bundleStateName);
+ log(LogService.LOG_INFO, "Registering bundle state with MBeanServer: " + mbeanServer + " with name: " + bundleStateName);
try {
mbeanServer.registerMBean(bundleState, bundleStateName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register OSGi BundleStateMBean", e);
+ log(LogService.LOG_INFO, "Cannot register OSGi BundleStateMBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi BundleStateMBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi BundleStateMBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi BundleStateMBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi BundleStateMBean", e);
}
- LOGGER.fine("Registering bundle wiring state with MBeanServer: " + mbeanServer + " with name: " + bundleStateName);
+ log(LogService.LOG_INFO, "Registering bundle wiring state with MBeanServer: " + mbeanServer + " with name: " + bundleStateName);
try {
mbeanServer.registerMBean(bundleWiringState, bundleWiringStateName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register OSGi BundleWiringStateMBean", e);
+ log(LogService.LOG_INFO, "Cannot register OSGi BundleWiringStateMBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi BundleWiringStateMBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi BundleWiringStateMBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi BundleWiringStateMBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi BundleWiringStateMBean", e);
}
- LOGGER.fine("Registering services monitor with MBeanServer: " + mbeanServer + " with name: " + serviceStateName);
+ log(LogService.LOG_INFO, "Registering services monitor with MBeanServer: " + mbeanServer + " with name: " + serviceStateName);
try {
mbeanServer.registerMBean(serviceState, serviceStateName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register OSGi ServiceStateMBean", e);
+ log(LogService.LOG_INFO, "Cannot register OSGi ServiceStateMBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi ServiceStateMBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi ServiceStateMBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi ServiceStateMBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi ServiceStateMBean", e);
}
- LOGGER.fine("Registering packages monitor with MBeanServer: " + mbeanServer + " with name: " + packageStateName);
+ log(LogService.LOG_INFO, "Registering packages monitor with MBeanServer: " + mbeanServer + " with name: " + packageStateName);
try {
mbeanServer.registerMBean(packageState, packageStateName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register OSGi PackageStateMBean", e);
+ log(LogService.LOG_INFO, "Cannot register OSGi PackageStateMBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi PackageStateMBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi PackageStateMBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register OSGi PackageStateMBean", e);
+ log(LogService.LOG_ERROR, "Cannot register OSGi PackageStateMBean", e);
}
configAdminTracker = new ServiceTracker<ConfigurationAdmin, Object>(bundleContext, "org.osgi.service.cm.ConfigurationAdmin",
@@ -391,7 +406,7 @@
*/
public MBeanServer addingService(ServiceReference<MBeanServer> servicereference) {
try {
- LOGGER.fine("Adding MBeanServer: " + servicereference);
+ log(LogService.LOG_INFO, "Adding MBeanServer: " + servicereference);
final MBeanServer mbeanServer = bundleContext.getService(servicereference);
mbeanServers.add(mbeanServer);
Runnable registration = new Runnable() {
@@ -406,7 +421,7 @@
return mbeanServer;
} catch (RuntimeException e) {
- LOGGER.log(Level.SEVERE, "uncaught exception in addingService", e);
+ log(LogService.LOG_ERROR, "uncaught exception in addingService", e);
throw e;
}
}
@@ -422,7 +437,7 @@
*/
public void removedService(ServiceReference<MBeanServer> servicereference, Object obj) {
try {
- LOGGER.fine("Removing MBeanServer: " + servicereference);
+ log(LogService.LOG_INFO, "Removing MBeanServer: " + servicereference);
final MBeanServer mbeanServer = bundleContext.getService(servicereference);
mbeanServers.remove(mbeanServer);
Runnable deregister = new Runnable() {
@@ -436,7 +451,7 @@
deregisterThread.start();
} catch (Throwable e) {
- LOGGER.log(Level.FINE, "uncaught exception in removedService", e);
+ log(LogService.LOG_INFO, "uncaught exception in removedService", e);
}
}
}
@@ -455,27 +470,27 @@
try {
admin = bundleContext.getService(reference);
} catch (ClassCastException e) {
- LOGGER.log(Level.SEVERE, "Incompatible class version for the Configuration Admin Manager", e);
+ log(LogService.LOG_ERROR, "Incompatible class version for the Configuration Admin Manager", e);
return bundleContext.getService(reference);
}
try {
- manager = new StandardMBean(new ConfigAdminManager(admin), ConfigurationAdminMBean.class);
+ manager = new StandardMBean(new ConfigAdminManager(admin, logger), ConfigurationAdminMBean.class);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Unable to create Configuration Admin Manager", e);
+ log(LogService.LOG_ERROR, "Unable to create Configuration Admin Manager", e);
return admin;
}
for (MBeanServer mbeanServer : mbeanServers) {
- LOGGER.fine("Registering configuration admin with MBeanServer: " + mbeanServer + " with name: " + configAdminName);
+ log(LogService.LOG_INFO, "Registering configuration admin with MBeanServer: " + mbeanServer + " with name: " + configAdminName);
try {
mbeanServer.registerMBean(manager, configAdminName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register Configuration Manager MBean", e);
+ log(LogService.LOG_INFO, "Cannot register Configuration Manager MBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register Configuration Manager MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register Configuration Manager MBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register Configuration Manager MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register Configuration Manager MBean", e);
}
}
@@ -494,13 +509,13 @@
public void removedService(ServiceReference<ConfigurationAdmin> reference, Object service) {
for (MBeanServer mbeanServer : mbeanServers) {
- LOGGER.fine("deregistering configuration admin from: " + mbeanServer + " with name: " + configAdminName);
+ log(LogService.LOG_INFO, "deregistering configuration admin from: " + mbeanServer + " with name: " + configAdminName);
try {
mbeanServer.unregisterMBean(configAdminName);
} catch (InstanceNotFoundException e) {
- LOGGER.fine("Configuration Manager MBean was never registered");
+ log(LogService.LOG_INFO, "Configuration Manager MBean was never registered");
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot deregister Configuration Manager MBean", e);
+ log(LogService.LOG_INFO, "Cannot deregister Configuration Manager MBean", e);
}
}
}
@@ -520,25 +535,25 @@
try {
admin = bundleContext.getService(reference);
} catch (ClassCastException e) {
- LOGGER.log(Level.SEVERE, "Incompatible class version for the Permission Admin Manager", e);
+ log(LogService.LOG_ERROR, "Incompatible class version for the Permission Admin Manager", e);
return bundleContext.getService(reference);
}
try {
manager = new StandardMBean(new PermissionManager(admin), PermissionAdminMBean.class);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Unable to create Permission Admin Manager", e);
+ log(LogService.LOG_ERROR, "Unable to create Permission Admin Manager", e);
return admin;
}
for (MBeanServer mbeanServer : mbeanServers) {
- LOGGER.fine("Registering permission admin with MBeanServer: " + mbeanServer + " with name: " + permissionAdminName);
+ log(LogService.LOG_INFO, "Registering permission admin with MBeanServer: " + mbeanServer + " with name: " + permissionAdminName);
try {
mbeanServer.registerMBean(manager, permissionAdminName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register Permission Manager MBean", e);
+ log(LogService.LOG_INFO, "Cannot register Permission Manager MBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register Permission Manager MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register Permission Manager MBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register Permission Manager MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register Permission Manager MBean", e);
}
}
return admin;
@@ -555,13 +570,13 @@
*/
public void removedService(ServiceReference<PermissionAdmin> reference, Object service) {
for (MBeanServer mbeanServer : mbeanServers) {
- LOGGER.fine("deregistering permission admin with MBeanServer: " + mbeanServer + " with name: " + permissionAdminName);
+ log(LogService.LOG_INFO, "deregistering permission admin with MBeanServer: " + mbeanServer + " with name: " + permissionAdminName);
try {
mbeanServer.unregisterMBean(permissionAdminName);
} catch (InstanceNotFoundException e) {
- LOGGER.fine("Permission Manager MBean was never registered");
+ log(LogService.LOG_INFO, "Permission Manager MBean was never registered");
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot deregister Permission Manager MBean", e);
+ log(LogService.LOG_ERROR, "Cannot deregister Permission Manager MBean", e);
}
}
}
@@ -582,27 +597,27 @@
try {
service = bundleContext.getService(reference);
} catch (ClassCastException e) {
- LOGGER.log(Level.SEVERE, "Incompatible class version for the Provisioning service", e);
+ log(LogService.LOG_ERROR, "Incompatible class version for the Provisioning service", e);
return bundleContext.getService(reference);
}
try {
provisioning = new StandardMBean(new Provisioning(service), ProvisioningServiceMBean.class);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Unable to create Provisioning Service Manager", e);
+ log(LogService.LOG_ERROR, "Unable to create Provisioning Service Manager", e);
return service;
}
for (MBeanServer mbeanServer : mbeanServers) {
- LOGGER.fine("Registering provisioning service with MBeanServer: " + mbeanServer + " with name: " + provisioningServiceName);
+ log(LogService.LOG_INFO, "Registering provisioning service with MBeanServer: " + mbeanServer + " with name: " + provisioningServiceName);
try {
mbeanServer.registerMBean(provisioning, provisioningServiceName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register Provisioning Service MBean", e);
+ log(LogService.LOG_INFO, "Cannot register Provisioning Service MBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register Provisioning Service MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register Provisioning Service MBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register Provisioning Service MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register Provisioning Service MBean", e);
}
}
return service;
@@ -619,13 +634,13 @@
*/
public void removedService(ServiceReference<ProvisioningService> reference, Object service) {
for (MBeanServer mbeanServer : mbeanServers) {
- LOGGER.fine("deregistering provisioning service with MBeanServer: " + mbeanServer + " with name: " + provisioningServiceName);
+ log(LogService.LOG_INFO, "deregistering provisioning service with MBeanServer: " + mbeanServer + " with name: " + provisioningServiceName);
try {
mbeanServer.unregisterMBean(provisioningServiceName);
} catch (InstanceNotFoundException e) {
- LOGGER.fine("Provisioning Service MBean was never registered");
+ log(LogService.LOG_INFO, "Provisioning Service MBean was never registered");
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot deregister Provisioning Service MBean", e);
+ log(LogService.LOG_ERROR, "Cannot deregister Provisioning Service MBean", e);
}
}
}
@@ -645,27 +660,27 @@
try {
admin = bundleContext.getService(reference);
} catch (ClassCastException e) {
- LOGGER.log(Level.SEVERE, "Incompatible class version for the User Admin manager", e);
+ log(LogService.LOG_ERROR, "Incompatible class version for the User Admin manager", e);
return bundleContext.getService(reference);
}
try {
manager = new StandardMBean(new UserManager(admin), UserAdminMBean.class);
} catch (NotCompliantMBeanException e1) {
- LOGGER.log(Level.SEVERE, "Unable to create User Admin Manager");
+ log(LogService.LOG_ERROR, "Unable to create User Admin Manager");
return admin;
}
for (MBeanServer mbeanServer : mbeanServers) {
- LOGGER.fine("Registering user admin with MBeanServer: " + mbeanServer + " with name: " + userAdminName);
+ log(LogService.LOG_INFO, "Registering user admin with MBeanServer: " + mbeanServer + " with name: " + userAdminName);
try {
mbeanServer.registerMBean(manager, userAdminName);
} catch (InstanceAlreadyExistsException e) {
- LOGGER.log(Level.FINE, "Cannot register User Manager MBean", e);
+ log(LogService.LOG_INFO, "Cannot register User Manager MBean", e);
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot register User Manager MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register User Manager MBean", e);
} catch (NotCompliantMBeanException e) {
- LOGGER.log(Level.SEVERE, "Cannot register User Manager MBean", e);
+ log(LogService.LOG_ERROR, "Cannot register User Manager MBean", e);
}
}
return admin;
@@ -682,16 +697,38 @@
*/
public void removedService(ServiceReference<UserAdmin> reference, Object service) {
for (MBeanServer mbeanServer : mbeanServers) {
- LOGGER.fine("Deregistering user admin with MBeanServer: " + mbeanServer + " with name: " + userAdminName);
+ log(LogService.LOG_INFO, "Deregistering user admin with MBeanServer: " + mbeanServer + " with name: " + userAdminName);
try {
mbeanServer.unregisterMBean(userAdminName);
} catch (InstanceNotFoundException e) {
- LOGGER.fine("User Manager MBean was never registered");
+ log(LogService.LOG_INFO, "User Manager MBean was never registered");
} catch (MBeanRegistrationException e) {
- LOGGER.log(Level.SEVERE, "Cannot deregister User Manager MBean", e);
+ log(LogService.LOG_ERROR, "Cannot deregister User Manager MBean", e);
}
}
}
}
+ private class LogServiceTracker implements ServiceTrackerCustomizer<LogService, Object> {
+
+ @Override
+ public Object addingService(ServiceReference<LogService> reference) {
+ logger = bundleContext.getService(reference);
+ return logger;
+ }
+
+ @Override
+ public void modifiedService(ServiceReference<LogService> reference,
+ Object service) {
+ // no op
+ }
+
+ @Override
+ public void removedService(ServiceReference<LogService> reference,
+ Object service) {
+ logger = null;
+ }
+
+ }
+
}
diff --git a/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/DefaultObjectNameTranslator.java b/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/DefaultObjectNameTranslator.java
index 8683e90..a324e83 100755
--- a/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/DefaultObjectNameTranslator.java
+++ b/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/DefaultObjectNameTranslator.java
@@ -21,6 +21,7 @@
import org.osgi.framework.wiring.BundleRevision;
import org.osgi.framework.wiring.BundleWire;
import org.osgi.framework.wiring.BundleWiring;
+import org.osgi.service.log.LogService;
/**
* {@link DefaultObjectNameTranslator} is a default implementation of {@link ObjectNameTranslator} which maps each
@@ -32,7 +33,7 @@
*/
final class DefaultObjectNameTranslator implements ObjectNameTranslator {
- private static final Logger LOGGER = Logger.getLogger(DefaultObjectNameTranslator.class.getCanonicalName());
+// private static final Logger LOGGER = Logger.getLogger(DefaultObjectNameTranslator.class.getCanonicalName());
/**
* {@inheritDoc}
@@ -52,7 +53,7 @@
* @throws InstantiationException if the configured class cannot be instantiated
* @throws IllegalAccessException if the configured class or its default constructor is not accessible
*/
- static ObjectNameTranslator initialiseObjectNameTranslator(BundleContext bundleContext) throws ClassNotFoundException, InstantiationException,
+ static ObjectNameTranslator initialiseObjectNameTranslator(BundleContext bundleContext, LogService logger) throws ClassNotFoundException, InstantiationException,
IllegalAccessException {
Bundle bundle = bundleContext.getBundle();
BundleWiring wiring = bundle.adapt(BundleWiring.class);
@@ -66,10 +67,14 @@
try {
return (ObjectNameTranslator) objectNameTranslatorClass.getConstructor(BundleContext.class).newInstance(bundleContext);
} catch (Exception e) {
- LOGGER.warning(String.format("Unable to create ObjectNameTranslator from fragment %d '%s'", fragment.getBundleId(), e.getMessage()));
+ if (logger != null) {
+ logger.log(LogService.LOG_WARNING, String.format("Unable to create ObjectNameTranslator from fragment %d '%s'", fragment.getBundleId(), e.getMessage()));
+ }
}
} else {
- LOGGER.warning(String.format("Unable to create ObjectNameTranslator as specified class '%s' is not an assignable to '%s'", objectNameTranslator, ObjectNameTranslator.class.getName()));
+ if (logger != null) {
+ logger.log(LogService.LOG_WARNING, String.format("Unable to create ObjectNameTranslator as specified class '%s' is not an assignable to '%s'", objectNameTranslator, ObjectNameTranslator.class.getName()));
+ }
}
}
}
diff --git a/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/configurationadmin/ConfigAdminManager.java b/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/configurationadmin/ConfigAdminManager.java
index 03ef2f9..dd8b22c 100644
--- a/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/configurationadmin/ConfigAdminManager.java
+++ b/org.eclipse.gemini.management/src/main/java/org/eclipse/gemini/management/configurationadmin/ConfigAdminManager.java
@@ -30,6 +30,7 @@
import org.osgi.jmx.service.cm.ConfigurationAdminMBean;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.service.log.LogService;
/**
*
@@ -38,10 +39,17 @@
private final ConfigurationAdmin admin;
- private static final Logger log = Logger.getLogger(ConfigAdminManager.class.getCanonicalName());
+ private final LogService logger;
- public ConfigAdminManager(ConfigurationAdmin admin) {
+ public ConfigAdminManager(ConfigurationAdmin admin, LogService logger) {
this.admin = admin;
+ this.logger = logger;
+ }
+
+ private void log(int level, String message, Throwable t) {
+ if (logger != null) {
+ logger.log(level, message, t);
+ }
}
/**
@@ -96,7 +104,7 @@
try {
confs = admin.listConfigurations(filter);
} catch (InvalidSyntaxException e) {
- log.log(Level.SEVERE, "Invalid filter argument: " + filter, e);
+ log(LogService.LOG_ERROR, "Invalid filter argument: " + filter, e);
throw new IOException("Invalid filter: " + e);
}
if (confs != null) {
@@ -169,7 +177,7 @@
try {
configurations = admin.listConfigurations(filter);
} catch (InvalidSyntaxException e) {
- log.log(Level.SEVERE, "Invalid filter argument: " + filter, e);
+ log(LogService.LOG_ERROR, "Invalid filter argument: " + filter, e);
throw new IOException("Invalid filter: " + e);
}
if (configurations != null) {