Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2016-02-03 16:04:00 +0000
committerslewis2016-02-03 16:04:00 +0000
commit9186df55f90fccbe8ccb66e2260a6ce915022940 (patch)
tree132f19bf74e47cf166db3c145421ce237ad988d4
parent5d2796c11ab9c387d4a699ea44b982b05d5620ee (diff)
downloadorg.eclipse.ecf-9186df55f90fccbe8ccb66e2260a6ce915022940.tar.gz
org.eclipse.ecf-9186df55f90fccbe8ccb66e2260a6ce915022940.tar.xz
org.eclipse.ecf-9186df55f90fccbe8ccb66e2260a6ce915022940.zip
Made reference to equinox registry optional so that this bundle can run
on non-equinox frameworks. Change-Id: I41b21557290552d669d1f3639f61a58027b2a7f3
-rw-r--r--server-side/bundles/org.eclipse.ecf.server.generic/META-INF/MANIFEST.MF6
-rw-r--r--server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java40
-rw-r--r--server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java20
3 files changed, 37 insertions, 29 deletions
diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/META-INF/MANIFEST.MF b/server-side/bundles/org.eclipse.ecf.server.generic/META-INF/MANIFEST.MF
index 8b2eb863c..499d8a92e 100644
--- a/server-side/bundles/org.eclipse.ecf.server.generic/META-INF/MANIFEST.MF
+++ b/server-side/bundles/org.eclipse.ecf.server.generic/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: org.eclipse.ecf.server.generic;singleton:=true
-Bundle-Version: 7.0.0.qualifier
+Bundle-Version: 7.1.0.qualifier
Bundle-Activator: org.eclipse.ecf.internal.server.generic.Activator
Bundle-Vendor: %plugin.provider
Bundle-Localization: plugin
@@ -13,10 +13,10 @@ Require-Bundle: org.eclipse.equinox.common,
org.eclipse.ecf.discovery,
org.eclipse.ecf.provider.remoteservice;bundle-version="3.0.0",
org.eclipse.ecf.remoteservice;bundle-version="3.0.0",
- org.eclipse.equinox.registry
+ org.eclipse.equinox.registry;resolution:=optional
Eclipse-LazyStart: true
Export-Package: org.eclipse.ecf.internal.server.generic;version="6.0.0";x-internal:=true,
- org.eclipse.ecf.server.generic;version="6.0.0",
+ org.eclipse.ecf.server.generic;version="7.1.0",
org.eclipse.ecf.server.generic.app;version="6.0.0"
Import-Package: javax.xml.parsers,
org.eclipse.equinox.app;version="1.0.0",
diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java
index 406a93050..3e13ad661 100644
--- a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java
+++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java
@@ -1,13 +1,11 @@
package org.eclipse.ecf.internal.server.generic;
-import org.eclipse.ecf.server.generic.GenericServerContainerGroupFactory;
-
import org.eclipse.core.runtime.*;
import org.eclipse.ecf.core.IContainerManager;
-import org.eclipse.ecf.core.util.LogHelper;
+import org.eclipse.ecf.core.util.*;
import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
-import org.eclipse.ecf.server.generic.IGenericServerContainerGroupFactory;
-import org.eclipse.ecf.server.generic.ServerManager;
+import org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceContainerAdapterFactory;
+import org.eclipse.ecf.server.generic.*;
import org.osgi.framework.*;
import org.osgi.service.log.LogService;
import org.osgi.util.tracker.ServiceTracker;
@@ -27,8 +25,6 @@ public class Activator implements BundleActivator {
private ServerManager serverManager = null;
- private ServiceTracker extensionRegistryTracker = null;
-
private ServiceTracker discoveryTracker = null;
private ServiceTracker logServiceTracker = null;
@@ -45,8 +41,8 @@ public class Activator implements BundleActivator {
// null constructor
}
- public IExtensionRegistry getExtensionRegistry() {
- return (IExtensionRegistry) extensionRegistryTracker.getService();
+ public BundleContext getContext() {
+ return context;
}
public IDiscoveryAdvertiser getDiscovery() {
@@ -89,14 +85,30 @@ public class Activator implements BundleActivator {
public void start(BundleContext ctxt) throws Exception {
this.context = ctxt;
plugin = this;
- this.extensionRegistryTracker = new ServiceTracker(ctxt, IExtensionRegistry.class.getName(), null);
- this.extensionRegistryTracker.open();
this.discoveryTracker = new ServiceTracker(ctxt, IDiscoveryAdvertiser.class.getName(), null);
this.discoveryTracker.open();
- serverManager = new ServerManager();
+ try {
+ // for backward compatibility
+ serverManager = new ServerManager();
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
// Register generic server container group factory service
this.gscgFactory = new GenericServerContainerGroupFactory();
this.gscgRegistration = this.context.registerService(IGenericServerContainerGroupFactory.class.getName(), gscgFactory, null);
+
+ SafeRunner.run(new ExtensionRegistryRunnable(this.context) {
+ protected void runWithoutRegistry() throws Exception {
+ AdapterManagerTracker t = new AdapterManagerTracker(getContext());
+ t.open();
+ IAdapterManager am = t.getAdapterManager();
+ t.close();
+ if (am != null) {
+ am.registerAdapters(new RemoteServiceContainerAdapterFactory(), org.eclipse.ecf.server.generic.GenericServerContainer.class);
+ am.registerAdapters(new RemoteServiceContainerAdapterFactory(), org.eclipse.ecf.server.generic.SSLGenericServerContainer.class);
+ }
+ }
+ });
}
/*
@@ -112,10 +124,6 @@ public class Activator implements BundleActivator {
logServiceTracker.close();
logServiceTracker = null;
}
- if (extensionRegistryTracker != null) {
- extensionRegistryTracker.close();
- extensionRegistryTracker = null;
- }
if (discoveryTracker != null) {
discoveryTracker.close();
discoveryTracker = null;
diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java
index 1c3a08fa9..d68a44e42 100644
--- a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java
+++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java
@@ -21,6 +21,7 @@ import org.eclipse.ecf.core.ContainerTypeDescription;
import org.eclipse.ecf.core.IContainerManager;
import org.eclipse.ecf.core.identity.*;
import org.eclipse.ecf.core.sharedobject.ISharedObjectContainer;
+import org.eclipse.ecf.core.util.ExtensionRegistryRunnable;
import org.eclipse.ecf.discovery.*;
import org.eclipse.ecf.discovery.identity.IServiceTypeID;
import org.eclipse.ecf.discovery.identity.ServiceIDFactory;
@@ -64,16 +65,15 @@ public class ServerManager {
public static final String DISCOVERY_ATTR = "discovery"; //$NON-NLS-1$
public ServerManager() {
- final IExtensionRegistry reg = Activator.getDefault().getExtensionRegistry();
- try {
- if (reg != null && reg.getExtensionPoint(EXTENSION_POINT) != null) {
- createServersFromExtensionRegistry(reg);
- } else {
+ SafeRunner.run(new ExtensionRegistryRunnable(Activator.getDefault().getContext()) {
+ protected void runWithoutRegistry() throws Exception {
createServersFromConfigurationFile(Activator.getDefault().getBundle().getEntry("server.xml").openStream()); //$NON-NLS-1$
}
- } catch (final Exception e) {
- Activator.log("Exception creating servers", e); //$NON-NLS-1$
- }
+
+ protected void runWithRegistry(IExtensionRegistry registry) throws Exception {
+ createServersFromExtensionRegistry(registry);
+ }
+ });
}
public synchronized ISharedObjectContainer getServer(ID id) {
@@ -82,7 +82,7 @@ public class ServerManager {
return (ISharedObjectContainer) servers.get(id);
}
- private void createServersFromExtensionRegistry(IExtensionRegistry registry) throws Exception {
+ void createServersFromExtensionRegistry(IExtensionRegistry registry) throws Exception {
final IExtensionPoint extensionPoint = registry.getExtensionPoint(EXTENSION_POINT);
if (extensionPoint == null)
return;
@@ -161,7 +161,7 @@ public class ServerManager {
}
}
- private void createServersFromConfigurationFile(InputStream ins) throws Exception {
+ void createServersFromConfigurationFile(InputStream ins) throws Exception {
final ServerConfigParser scp = new ServerConfigParser();
final List connectors = scp.load(ins);
if (connectors != null)

Back to the top