diff options
author | slewis | 2008-12-08 22:42:17 +0000 |
---|---|---|
committer | slewis | 2008-12-08 22:42:17 +0000 |
commit | 5f3ac867c126fca6a41d711c6cc0d74a9fed7e7d (patch) | |
tree | 29eed0692b69294fbdaed04ccb716d3c150cc08c | |
parent | 90f3c2b041fdd52d1028f17cb39fbf78cc6a2d24 (diff) | |
download | org.eclipse.ecf-5f3ac867c126fca6a41d711c6cc0d74a9fed7e7d.tar.gz org.eclipse.ecf-5f3ac867c126fca6a41d711c6cc0d74a9fed7e7d.tar.xz org.eclipse.ecf-5f3ac867c126fca6a41d711c6cc0d74a9fed7e7d.zip |
Fix for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=257999
5 files changed, 39 insertions, 7 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.remoteservice/META-INF/MANIFEST.MF index 3489b6def..30e4da62d 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.ecf.provider.remoteservice;singleton:=true -Bundle-Version: 1.3.0.qualifier +Bundle-Version: 1.3.100.qualifier Bundle-Activator: org.eclipse.ecf.internal.provider.remoteservice.Activator Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -20,5 +20,7 @@ Require-Bundle: org.eclipse.equinox.common, org.eclipse.ecf.remoteservice, org.eclipse.ecf.discovery Import-Package: org.eclipse.osgi.util;version="1.1.0", - org.osgi.framework;version="1.3.0" + org.osgi.framework;version="1.3.0", + org.osgi.service.log, + org.osgi.util.tracker Bundle-ActivationPolicy: lazy diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/internal/provider/remoteservice/Activator.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/internal/provider/remoteservice/Activator.java index ee225cf4c..ee867b309 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/internal/provider/remoteservice/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/internal/provider/remoteservice/Activator.java @@ -8,13 +8,19 @@ ******************************************************************************/ package org.eclipse.ecf.internal.provider.remoteservice; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.ecf.core.util.LogHelper; import org.osgi.framework.*; +import org.osgi.service.log.LogService; +import org.osgi.util.tracker.ServiceTracker; /** * The activator class controls the plug-in life cycle */ public class Activator implements BundleActivator { + private ServiceTracker logServiceTracker = null; + // The plug-in ID public static final String PLUGIN_ID = "org.eclipse.ecf.provider.remoteservice"; //$NON-NLS-1$ @@ -63,4 +69,19 @@ public class Activator implements BundleActivator { return context.createFilter(filter); } + protected LogService getLogService() { + if (logServiceTracker == null) { + logServiceTracker = new ServiceTracker(this.context, LogService.class.getName(), null); + logServiceTracker.open(); + } + return (LogService) logServiceTracker.getService(); + } + + public void log(IStatus status) { + LogService logService = getLogService(); + if (logService != null) { + logService.log(LogHelper.getLogCode(status), LogHelper.getLogMessage(status), status.getException()); + } + } + } diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/internal/provider/remoteservice/messages.properties b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/internal/provider/remoteservice/messages.properties index b5f6fae53..4fd326e74 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/internal/provider/remoteservice/messages.properties +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/internal/provider/remoteservice/messages.properties @@ -20,6 +20,6 @@ RegistrySharedObject_EXCEPTION_SENDING_RESPONSE=Exception sending response RegistrySharedObject_EXCEPTION_SENDING_SERVICE_UNREGISTER=exception sending service unregister message RegistrySharedObject_EXCEPTION_SERVICE_CANNOT_BE_NULL=service cannot be null RegistrySharedObject_EXCEPTION_SERVICE_CLASSES_LIST_EMPTY=service classes list is empty -RegistrySharedObject_EXCEPTION_SHARED_OBJECT_INVOKE=Exception in shared object message invoke +RegistrySharedObject_EXCEPTION_SHARED_OBJECT_INVOKE=Exception invoking shared object msg={0} RegistrySharedObject_EXCEPTION_TIMEOUT_FOR_CALL_REQUEST=timeout for call request RegistrySharedObject_EXCEPTION_WAIT_INTERRUPTED=Wait for response interrupted diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java index 57ac53be7..06a7818cc 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java @@ -12,7 +12,7 @@ import java.io.IOException; import java.io.Serializable; import java.security.*; import java.util.*; -import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.*; import org.eclipse.ecf.core.events.IContainerConnectedEvent; import org.eclipse.ecf.core.events.IContainerDisconnectedEvent; import org.eclipse.ecf.core.identity.ID; @@ -22,6 +22,7 @@ import org.eclipse.ecf.core.util.*; import org.eclipse.ecf.internal.provider.remoteservice.*; import org.eclipse.ecf.remoteservice.*; import org.eclipse.ecf.remoteservice.events.*; +import org.eclipse.osgi.util.NLS; import org.osgi.framework.*; public class RegistrySharedObject extends BaseSharedObject implements IRemoteServiceContainerAdapter { @@ -976,11 +977,16 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer return requests.remove(request); } + protected void logException(int code, String message, Throwable e) { + Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, code, message, e)); + } + protected boolean handleSharedObjectMsg(SharedObjectMsg msg) { try { msg.invoke(this); + return true; } catch (final Exception e) { - log(MSG_INVOKE_ERROR_CODE, MSG_INVOKE_ERROR_MESSAGE, e); + logException(MSG_INVOKE_ERROR_CODE, NLS.bind(MSG_INVOKE_ERROR_MESSAGE, msg), e); } return false; } diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteFilterImpl.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteFilterImpl.java index e48f0e4a7..f9323b817 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteFilterImpl.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteFilterImpl.java @@ -16,8 +16,7 @@ import org.eclipse.ecf.internal.provider.remoteservice.Activator; import org.eclipse.ecf.internal.provider.remoteservice.Messages; import org.eclipse.ecf.remoteservice.IRemoteFilter; import org.eclipse.ecf.remoteservice.IRemoteServiceReference; -import org.osgi.framework.Filter; -import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.*; /** * @@ -87,4 +86,8 @@ public class RemoteFilterImpl implements IRemoteFilter { public String toString() { return filter.toString(); } + + public boolean match(ServiceReference reference) { + return false; + } } |