Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2021-09-19 02:22:30 +0000
committerslewis2021-09-19 02:22:30 +0000
commit6365d817a5fd9522d53b379e5da668dc9a0feba7 (patch)
treebf741664cd56165c345382d4f9979a61014fc44f /providers/bundles
parente8903c811a6f29608f035960a4ddaa80722a4ac6 (diff)
downloadorg.eclipse.ecf-6365d817a5fd9522d53b379e5da668dc9a0feba7.tar.gz
org.eclipse.ecf-6365d817a5fd9522d53b379e5da668dc9a0feba7.tar.xz
org.eclipse.ecf-6365d817a5fd9522d53b379e5da668dc9a0feba7.zip
rOSGI provider impl for
https://bugs.eclipse.org/bugs/show_bug.cgi?id=576085 Change-Id: I581fbf424dbda91de7c662e6e79975d3651261ab
Diffstat (limited to 'providers/bundles')
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.r_osgi/META-INF/MANIFEST.MF2
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.r_osgi/pom.xml2
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java7
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/RemoteServiceRegistrationImpl.java23
4 files changed, 28 insertions, 6 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.r_osgi/META-INF/MANIFEST.MF
index 0df8c6999..2bc601cc3 100644
--- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/META-INF/MANIFEST.MF
+++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: org.eclipse.ecf.provider.r_osgi;singleton:=true
Automatic-Module-Name: org.eclipse.ecf.provider.r_osgi
-Bundle-Version: 3.6.301.qualifier
+Bundle-Version: 3.7.0.qualifier
Import-Package: ch.ethz.iks.r_osgi;version="[1.0.1,2.0.0)",
org.eclipse.ecf.core.util.reflection,
org.eclipse.ecf.osgi.services.remoteserviceadmin;version="1.3.0",
diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/pom.xml b/providers/bundles/org.eclipse.ecf.provider.r_osgi/pom.xml
index a6f5560eb..97b729cc0 100644
--- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/pom.xml
+++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/pom.xml
@@ -10,6 +10,6 @@
</parent>
<groupId>org.eclipse.ecf</groupId>
<artifactId>org.eclipse.ecf.provider.r_osgi</artifactId>
- <version>3.6.301-SNAPSHOT</version>
+ <version>3.7.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java
index f64981a10..b5375801e 100644
--- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java
@@ -278,9 +278,8 @@ class R_OSGiRemoteServiceContainer implements IOSGiRemoteServiceContainerAdapter
if (clazz == null) {
results.add(createLocalRemoteServiceReference(ref));
} else {
- IRemoteFilter rf = createRemoteFilter(filter != null
- ? "(&" + filter + "(" //$NON-NLS-1$ //$NON-NLS-2$
- + Constants.OBJECTCLASS + "=" + clazz + "))" //$NON-NLS-1$//$NON-NLS-2$
+ IRemoteFilter rf = createRemoteFilter(filter != null ? "(&" + filter + "(" //$NON-NLS-1$ //$NON-NLS-2$
+ + Constants.OBJECTCLASS + "=" + clazz + "))" //$NON-NLS-1$//$NON-NLS-2$
: "(" //$NON-NLS-1$
+ Constants.OBJECTCLASS + "=" + clazz + ")"); //$NON-NLS-1$//$NON-NLS-2$
if (rf.match(refProperties)) {
@@ -490,7 +489,7 @@ class R_OSGiRemoteServiceContainer implements IOSGiRemoteServiceContainerAdapter
remoteServicesRegs.put(reg.getReference(), reg);
}
// Construct a IRemoteServiceID, and provide to new registration impl instance
- return new RemoteServiceRegistrationImpl(this, createRemoteServiceID(containerID, (Long) reg.getReference().getProperty(Constants.SERVICE_ID)), reg);
+ return new RemoteServiceRegistrationImpl(service.getClass().getClassLoader(), this, createRemoteServiceID(containerID, (Long) reg.getReference().getProperty(Constants.SERVICE_ID)), reg);
}
Dictionary prepareProperties(ServiceReference reference) {
diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/RemoteServiceRegistrationImpl.java b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/RemoteServiceRegistrationImpl.java
index ae4e75a13..399a95eee 100644
--- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/RemoteServiceRegistrationImpl.java
+++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/RemoteServiceRegistrationImpl.java
@@ -51,6 +51,18 @@ final class RemoteServiceRegistrationImpl implements IRemoteServiceRegistration
this.remoteReference = new LocalRemoteServiceReferenceImpl(remoteServiceID, reg.getReference());
}
+ public RemoteServiceRegistrationImpl(final ClassLoader cl, final R_OSGiRemoteServiceContainer container, final IRemoteServiceID remoteServiceID, final ServiceRegistration reg) {
+ Assert.isNotNull(remoteServiceID);
+ Assert.isNotNull(reg);
+ Assert.isNotNull(container);
+ Assert.isNotNull(cl);
+ setClassLoader(cl);
+ this.container = container;
+ this.remoteServiceID = remoteServiceID;
+ this.reg = reg;
+ this.remoteReference = new LocalRemoteServiceReferenceImpl(remoteServiceID, reg.getReference());
+ }
+
/**
* get the container ID.
*
@@ -117,9 +129,20 @@ final class RemoteServiceRegistrationImpl implements IRemoteServiceRegistration
} catch (IllegalStateException e) {
// underlying service registration already unregistered
}
+ this.classLoader = null;
}
public IRemoteServiceID getID() {
return remoteServiceID;
}
+
+ private ClassLoader classLoader = RemoteServiceRegistrationImpl.class.getClassLoader();
+
+ public ClassLoader getClassLoader() {
+ return classLoader;
+ }
+
+ protected void setClassLoader(ClassLoader cl) {
+ this.classLoader = cl;
+ }
}

Back to the top