From 9e23ad85ca9570473953d4ccf6b409fab084404f Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 23 Mar 2014 12:49:36 -0700 Subject: Fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=430963 Change-Id: Ia70f2514f46a863a778257903151e65a50f0624b --- .../ecf/provider/remoteservice/generic/RegistrySharedObject.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'providers') 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 577d5f3d4..688004cde 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 @@ -199,6 +199,13 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer } } + /** + * @since 4.1 + */ + protected RemoteServiceImpl createRemoteService(RemoteServiceRegistrationImpl registration) { + return new RemoteServiceImpl(this, registration); + } + /* (non-Javadoc) * @see org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter#getRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference) */ @@ -207,7 +214,7 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer final RemoteServiceRegistrationImpl registration = getRemoteServiceRegistrationImpl(reference); if (registration == null) return null; - final RemoteServiceImpl remoteService = new RemoteServiceImpl(this, registration); + final RemoteServiceImpl remoteService = createRemoteService(registration); synchronized (refToImplMap) { List remoteServiceImplList = (List) refToImplMap.get(reference); if (remoteServiceImplList == null) -- cgit v1.2.3 From bd48bc6447c7d6a51e5331db8f54807ea42995f5 Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 23 Mar 2014 12:50:46 -0700 Subject: Increment of bundle minor version for https://bugs.eclipse.org/bugs/show_bug.cgi?id=430963 Change-Id: I7439d0bfb51373587bbd7e228b402277a37c2c04 --- .../bundles/org.eclipse.ecf.provider.remoteservice/META-INF/MANIFEST.MF | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'providers') 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 a278031c5..3cc6ac131 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: 4.0.100.qualifier +Bundle-Version: 4.1.0.qualifier Bundle-Activator: org.eclipse.ecf.internal.provider.remoteservice.Activator Bundle-Vendor: %providerName Bundle-Localization: plugin -- cgit v1.2.3 From 5b5e004b91e6dca670fd3e53594f40bae5b0887c Mon Sep 17 00:00:00 2001 From: slewis Date: Mon, 24 Mar 2014 21:44:24 -0700 Subject: Initial checkin of generic provider java8 remote services support Change-Id: I8e84e824ba6fd122f34e60af1011b8063ea07a09 --- .../.classpath | 7 +++ .../.gitignore | 1 + .../.project | 28 +++++++++ .../.settings/org.eclipse.jdt.core.prefs | 7 +++ .../.settings/org.eclipse.pde.core.prefs | 3 + .../META-INF/MANIFEST.MF | 17 ++++++ .../about.html | 28 +++++++++ .../build.properties | 8 +++ .../plugin.properties | 10 ++++ .../plugin.xml | 40 +++++++++++++ .../java8/J8GenericContainerInstantiator.java | 67 ++++++++++++++++++++++ .../J8RemoteServiceContainerAdapterFactory.java | 58 +++++++++++++++++++ .../java8/J8TCPClientSOContainer.java | 19 ++++++ .../java8/J8TCPServerSOContainer.java | 25 ++++++++ 14 files changed, 318 insertions(+) create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.classpath create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.gitignore create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.project create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.settings/org.eclipse.jdt.core.prefs create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.settings/org.eclipse.pde.core.prefs create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/META-INF/MANIFEST.MF create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/about.html create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/build.properties create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.properties create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.xml create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8GenericContainerInstantiator.java create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8RemoteServiceContainerAdapterFactory.java create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8TCPClientSOContainer.java create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8TCPServerSOContainer.java (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.classpath b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.classpath new file mode 100644 index 000000000..eca7bdba8 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.gitignore b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.gitignore new file mode 100644 index 000000000..e660fd93d --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.gitignore @@ -0,0 +1 @@ +bin/ diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.project b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.project new file mode 100644 index 000000000..7fed21f82 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.project @@ -0,0 +1,28 @@ + + + org.eclipse.ecf.provider.remoteservice.java8 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..0c68a61dc --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.settings/org.eclipse.pde.core.prefs b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 000000000..706f07e8a --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +pluginProject.extensions=true +resolve.requirebundle=false diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/META-INF/MANIFEST.MF new file mode 100644 index 000000000..5dfaaed49 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.ecf.provider.remoteservice.java8;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: %pluginProvider +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: org.eclipse.ecf;bundle-version="3.3.0", + org.eclipse.ecf.provider;bundle-version="4.4.0", + org.eclipse.ecf.provider.remoteservice;bundle-version="4.1.0", + org.eclipse.ecf.sharedobject;bundle-version="2.4.0", + org.eclipse.equinox.common;bundle-version="3.6.200", + org.eclipse.ecf.remoteservice;bundle-version="8.3.0" +Import-Package: org.eclipse.equinox.concurrent.future;version="1.1.0", + org.osgi.framework;version="1.8.0" +Bundle-Localization: plugin + diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/about.html b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/about.html new file mode 100644 index 000000000..4c79781a5 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/about.html @@ -0,0 +1,28 @@ + + + + +About + + +

About This Content

+ +

June 25, 2008

+

License

+ +

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at http://www.eclipse.org/legal/epl-v10.html. +For purposes of the EPL, "Program" will mean the Content.

+ +

If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at http://www.eclipse.org.

+ + + \ No newline at end of file diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/build.properties b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/build.properties new file mode 100644 index 000000000..7b3c227b8 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/build.properties @@ -0,0 +1,8 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + plugin.properties,\ + about.html +src.includes = about.html diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.properties b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.properties new file mode 100644 index 000000000..b5ccef319 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.properties @@ -0,0 +1,10 @@ +############################################################################ +# Copyright (c) 2014 Composent Inc. and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +############################################################################ +pluginName = ECF Generic Provider RemoteServices Java8 Support +providerName = Eclipse.org - ECF diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.xml b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.xml new file mode 100644 index 000000000..3fa1bdf64 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8GenericContainerInstantiator.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8GenericContainerInstantiator.java new file mode 100644 index 000000000..1f6401160 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8GenericContainerInstantiator.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * Copyright (c) 2014 Composent, Inc. and others. All rights reserved. This + * program and the accompanying materials are made available under the terms of + * the Eclipse Public License v1.0 which accompanies this distribution, and is + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.provider.internal.remoteservice.java8; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.eclipse.ecf.core.ContainerTypeDescription; +import org.eclipse.ecf.core.IContainer; +import org.eclipse.ecf.provider.generic.GenericContainerInstantiator; +import org.eclipse.ecf.provider.generic.SOContainerConfig; + +public class J8GenericContainerInstantiator extends + GenericContainerInstantiator { + + public static final String JAVA8_CLIENT_NAME = "ecf.generic.client.java8"; + public static final String JAVA8_SERVER_NAME = "ecf.generic.server.java8"; + + @Override + protected boolean isClient(ContainerTypeDescription description) { + if (description.getName().equals(JAVA8_SERVER_NAME)) + return false; + return true; + } + + @Override + protected IContainer createClientContainer(GenericContainerArgs gcargs) + throws Exception { + return new J8TCPClientSOContainer(new SOContainerConfig(gcargs.getID()), gcargs.getKeepAlive().intValue()); + } + + @Override + protected IContainer createServerContainer(GenericContainerArgs gcargs) + throws Exception { + return new J8TCPServerSOContainer(new SOContainerConfig(gcargs.getID()), gcargs.getBindAddress(), gcargs.getKeepAlive().intValue()); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Override + public String[] getImportedConfigs(ContainerTypeDescription description, String[] exporterSupportedConfigs) { + if (exporterSupportedConfigs == null) + return null; + List results = new ArrayList(); + List supportedConfigs = Arrays.asList(exporterSupportedConfigs); + // For a server, if exporter is a client then we can be an importer + if (JAVA8_SERVER_NAME.equals(description.getName())) { + if (supportedConfigs.contains(JAVA8_CLIENT_NAME)) + results.add(JAVA8_SERVER_NAME); + // For a client, if exporter is server we can import + // or if remote is either generic server or generic client + } else if (JAVA8_CLIENT_NAME.equals(description.getName())) { + if (supportedConfigs.contains(JAVA8_SERVER_NAME) || supportedConfigs.contains(TCPCLIENT_NAME)) + results.add(JAVA8_CLIENT_NAME); + } + if (results.size() == 0) + return null; + return (String[]) results.toArray(new String[] {}); + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8RemoteServiceContainerAdapterFactory.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8RemoteServiceContainerAdapterFactory.java new file mode 100644 index 000000000..9a91c810d --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8RemoteServiceContainerAdapterFactory.java @@ -0,0 +1,58 @@ +/******************************************************************************* + * Copyright (c) 2014 Composent, Inc. and others. All rights reserved. This + * program and the accompanying materials are made available under the terms of + * the Eclipse Public License v1.0 which accompanies this distribution, and is + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.provider.internal.remoteservice.java8; + +import java.util.concurrent.CompletableFuture; + +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.sharedobject.*; +import org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject; +import org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceContainerAdapterFactory; +import org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceImpl; +import org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceRegistrationImpl; +import org.eclipse.ecf.remoteservice.IRemoteCall; +import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter; +import org.eclipse.ecf.remoteservice.events.IRemoteCallCompleteEvent; +import org.eclipse.ecf.remoteservice.events.IRemoteCallEvent; + +public class J8RemoteServiceContainerAdapterFactory extends RemoteServiceContainerAdapterFactory { + + protected ISharedObject createAdapter(ISharedObjectContainer container, @SuppressWarnings("rawtypes") Class adapterType, ID adapterID) { + if (adapterType.equals(IRemoteServiceContainerAdapter.class)) { + return new RegistrySharedObject() { + @Override + protected RemoteServiceImpl createRemoteService( + RemoteServiceRegistrationImpl registration) { + return new RemoteServiceImpl(this,registration) { + @SuppressWarnings("unchecked") + @Override + protected Object callFuture(IRemoteCall call, @SuppressWarnings("rawtypes") Class returnType) { + if (CompletableFuture.class.isAssignableFrom(returnType)) { + @SuppressWarnings("rawtypes") + CompletableFuture result = new CompletableFuture(); + callAsyncWithResult(call, (IRemoteCallEvent e) -> { + if (e instanceof IRemoteCallCompleteEvent) { + IRemoteCallCompleteEvent cce = (IRemoteCallCompleteEvent) e; + if (cce.hadException()) + result.completeExceptionally(cce.getException()); + else + result.complete(cce.getResponse()); + } + }); + return result; + } + return super.callFuture(call, returnType); + } + }; + } + }; + } + return null; + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8TCPClientSOContainer.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8TCPClientSOContainer.java new file mode 100644 index 000000000..243fd4ebd --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8TCPClientSOContainer.java @@ -0,0 +1,19 @@ +/******************************************************************************* + * Copyright (c) 2014 Composent, Inc. and others. All rights reserved. This + * program and the accompanying materials are made available under the terms of + * the Eclipse Public License v1.0 which accompanies this distribution, and is + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.provider.internal.remoteservice.java8; + +import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig; +import org.eclipse.ecf.provider.generic.TCPClientSOContainer; + +public class J8TCPClientSOContainer extends TCPClientSOContainer { + + public J8TCPClientSOContainer(ISharedObjectContainerConfig config, int ka) { + super(config, ka); + } +} \ No newline at end of file diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8TCPServerSOContainer.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8TCPServerSOContainer.java new file mode 100644 index 000000000..637cf822c --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8TCPServerSOContainer.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2014 Composent, Inc. and others. All rights reserved. This + * program and the accompanying materials are made available under the terms of + * the Eclipse Public License v1.0 which accompanies this distribution, and is + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.provider.internal.remoteservice.java8; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.URISyntaxException; + +import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig; +import org.eclipse.ecf.provider.generic.TCPServerSOContainer; + +public class J8TCPServerSOContainer extends TCPServerSOContainer { + + public J8TCPServerSOContainer(ISharedObjectContainerConfig config, + InetAddress bindAddress, int keepAlive) throws IOException, + URISyntaxException { + super(config, bindAddress, keepAlive); + } +} \ No newline at end of file -- cgit v1.2.3 From ea88e73ed7fcf5ecbe7e7e9e004ced274e530417 Mon Sep 17 00:00:00 2001 From: slewis Date: Tue, 25 Mar 2014 16:34:52 -0700 Subject: Initial checkin of ssl generic provider java8 remote services support Change-Id: I0000000000000000000000000000000000000000 --- .../plugin.xml | 35 +++++++++++ .../java8/J8GenericContainerInstantiator.java | 2 +- .../java8/J8SSLClientSOContainer.java | 19 ++++++ .../java8/J8SSLGenericContainerInstantiator.java | 67 ++++++++++++++++++++++ .../java8/J8SSLServerSOContainer.java | 25 ++++++++ 5 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLClientSOContainer.java create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLGenericContainerInstantiator.java create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLServerSOContainer.java (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.xml b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.xml index 3fa1bdf64..a8e6731fb 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.xml +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/plugin.xml @@ -19,6 +19,25 @@ hidden="true" name="ecf.generic.client.java8"> + + + + + + @@ -35,6 +54,22 @@ class="org.eclipse.ecf.provider.internal.remoteservice.java8.J8RemoteServiceContainerAdapterFactory"> + + + + + + + + + + diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8GenericContainerInstantiator.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8GenericContainerInstantiator.java index 1f6401160..c5644795a 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8GenericContainerInstantiator.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8GenericContainerInstantiator.java @@ -56,7 +56,7 @@ public class J8GenericContainerInstantiator extends // For a client, if exporter is server we can import // or if remote is either generic server or generic client } else if (JAVA8_CLIENT_NAME.equals(description.getName())) { - if (supportedConfigs.contains(JAVA8_SERVER_NAME) || supportedConfigs.contains(TCPCLIENT_NAME)) + if (supportedConfigs.contains(JAVA8_SERVER_NAME) || supportedConfigs.contains(JAVA8_CLIENT_NAME)) results.add(JAVA8_CLIENT_NAME); } if (results.size() == 0) diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLClientSOContainer.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLClientSOContainer.java new file mode 100644 index 000000000..fe82ee5a6 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLClientSOContainer.java @@ -0,0 +1,19 @@ +/******************************************************************************* + * Copyright (c) 2014 Composent, Inc. and others. All rights reserved. This + * program and the accompanying materials are made available under the terms of + * the Eclipse Public License v1.0 which accompanies this distribution, and is + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.provider.internal.remoteservice.java8; + +import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig; +import org.eclipse.ecf.provider.generic.SSLClientSOContainer; + +public class J8SSLClientSOContainer extends SSLClientSOContainer { + + public J8SSLClientSOContainer(ISharedObjectContainerConfig config, int ka) { + super(config, ka); + } +} \ No newline at end of file diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLGenericContainerInstantiator.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLGenericContainerInstantiator.java new file mode 100644 index 000000000..da2e1898f --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLGenericContainerInstantiator.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * Copyright (c) 2014 Composent, Inc. and others. All rights reserved. This + * program and the accompanying materials are made available under the terms of + * the Eclipse Public License v1.0 which accompanies this distribution, and is + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.provider.internal.remoteservice.java8; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.eclipse.ecf.core.ContainerTypeDescription; +import org.eclipse.ecf.core.IContainer; +import org.eclipse.ecf.provider.generic.SOContainerConfig; +import org.eclipse.ecf.provider.generic.SSLGenericContainerInstantiator; + +public class J8SSLGenericContainerInstantiator extends + SSLGenericContainerInstantiator { + + public static final String JAVA8_SSL_CLIENT_NAME = "ecf.generic.ssl.client.java8"; + public static final String JAVA8_SSL_SERVER_NAME = "ecf.generic.ssl.server.java8"; + + @Override + protected boolean isClient(ContainerTypeDescription description) { + if (description.getName().equals(JAVA8_SSL_SERVER_NAME)) + return false; + return true; + } + + @Override + protected IContainer createClientContainer(GenericContainerArgs gcargs) + throws Exception { + return new J8TCPClientSOContainer(new SOContainerConfig(gcargs.getID()), gcargs.getKeepAlive().intValue()); + } + + @Override + protected IContainer createServerContainer(GenericContainerArgs gcargs) + throws Exception { + return new J8TCPServerSOContainer(new SOContainerConfig(gcargs.getID()), gcargs.getBindAddress(), gcargs.getKeepAlive().intValue()); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Override + public String[] getImportedConfigs(ContainerTypeDescription description, String[] exporterSupportedConfigs) { + if (exporterSupportedConfigs == null) + return null; + List results = new ArrayList(); + List supportedConfigs = Arrays.asList(exporterSupportedConfigs); + // For a server, if exporter is a client then we can be an importer + if (JAVA8_SSL_SERVER_NAME.equals(description.getName())) { + if (supportedConfigs.contains(JAVA8_SSL_CLIENT_NAME)) + results.add(JAVA8_SSL_SERVER_NAME); + // For a client, if exporter is server we can import + // or if remote is either generic server or generic client + } else if (JAVA8_SSL_CLIENT_NAME.equals(description.getName())) { + if (supportedConfigs.contains(JAVA8_SSL_SERVER_NAME) || supportedConfigs.contains(JAVA8_SSL_CLIENT_NAME)) + results.add(JAVA8_SSL_CLIENT_NAME); + } + if (results.size() == 0) + return null; + return (String[]) results.toArray(new String[] {}); + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLServerSOContainer.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLServerSOContainer.java new file mode 100644 index 000000000..e3356c6ef --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/J8SSLServerSOContainer.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2014 Composent, Inc. and others. All rights reserved. This + * program and the accompanying materials are made available under the terms of + * the Eclipse Public License v1.0 which accompanies this distribution, and is + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.provider.internal.remoteservice.java8; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.URISyntaxException; + +import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig; +import org.eclipse.ecf.provider.generic.SSLServerSOContainer; + +public class J8SSLServerSOContainer extends SSLServerSOContainer { + + public J8SSLServerSOContainer(ISharedObjectContainerConfig config, + InetAddress bindAddress, int keepAlive) throws IOException, + URISyntaxException { + super(config, bindAddress, keepAlive); + } +} \ No newline at end of file -- cgit v1.2.3 From aa9b4b319c5b4e3367a23f6b6f0789ddeb92738c Mon Sep 17 00:00:00 2001 From: slewis Date: Wed, 26 Mar 2014 22:51:41 -0700 Subject: Reused AdapterManagerFactory Change-Id: I93698b040d124ece9d804ad3be921f138d3b41d6 --- .../eclipse/ecf/internal/provider/ProviderPlugin.java | 16 +++++----------- .../ecf/internal/provider/datashare/Activator.java | 13 ++++--------- 2 files changed, 9 insertions(+), 20 deletions(-) (limited to 'providers') diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java index 52099e772..0a388ee69 100644 --- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java +++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java @@ -13,7 +13,8 @@ package org.eclipse.ecf.internal.provider; import javax.net.ssl.SSLServerSocketFactory; import javax.net.ssl.SSLSocketFactory; -import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.IAdapterManager; +import org.eclipse.core.runtime.IStatus; import org.eclipse.ecf.core.util.*; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; @@ -36,7 +37,7 @@ public class ProviderPlugin implements BundleActivator { private ServiceTracker logServiceTracker = null; - private ServiceTracker adapterManagerTracker = null; + private AdapterManagerTracker adapterManagerTracker = null; private ServiceTracker sslServerSocketFactoryTracker; private ServiceTracker sslSocketFactoryTracker; @@ -46,17 +47,10 @@ public class ProviderPlugin implements BundleActivator { return null; // First, try to get the adapter manager via if (adapterManagerTracker == null) { - adapterManagerTracker = new ServiceTracker(this.context, IAdapterManager.class.getName(), null); + adapterManagerTracker = new AdapterManagerTracker(this.context); adapterManagerTracker.open(); } - IAdapterManager adapterManager = (IAdapterManager) adapterManagerTracker.getService(); - // Then, if the service isn't there, try to get from Platform class via - // PlatformHelper class - if (adapterManager == null) - adapterManager = PlatformHelper.getPlatformAdapterManager(); - if (adapterManager == null) - getDefault().log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "Cannot get adapter manager", null)); //$NON-NLS-1$ - return adapterManager; + return adapterManagerTracker.getAdapterManager(); } /** diff --git a/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/internal/provider/datashare/Activator.java b/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/internal/provider/datashare/Activator.java index 1c29ebfcf..e2bacf0c4 100644 --- a/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/internal/provider/datashare/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/internal/provider/datashare/Activator.java @@ -14,8 +14,8 @@ package org.eclipse.ecf.internal.provider.datashare; import org.eclipse.core.runtime.IAdapterManager; import org.eclipse.core.runtime.IStatus; import org.eclipse.ecf.core.IContainerManager; +import org.eclipse.ecf.core.util.AdapterManagerTracker; import org.eclipse.ecf.core.util.LogHelper; -import org.eclipse.ecf.core.util.PlatformHelper; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.service.log.LogService; @@ -35,7 +35,7 @@ public class Activator implements BundleActivator { private ServiceTracker logServiceTracker = null; - private ServiceTracker adapterManagerTracker = null; + private AdapterManagerTracker adapterManagerTracker = null; private ServiceTracker containerManagerTracker = null; @@ -103,15 +103,10 @@ public class Activator implements BundleActivator { public IAdapterManager getAdapterManager() { // First, try to get the adapter manager via if (adapterManagerTracker == null) { - adapterManagerTracker = new ServiceTracker(this.context, IAdapterManager.class.getName(), null); + adapterManagerTracker = new AdapterManagerTracker(this.context); adapterManagerTracker.open(); } - IAdapterManager adapterManager = (IAdapterManager) adapterManagerTracker.getService(); - // Then, if the service isn't there, try to get from Platform class via - // PlatformHelper class - if (adapterManager == null) - adapterManager = PlatformHelper.getPlatformAdapterManager(); - return adapterManager; + return adapterManagerTracker.getAdapterManager(); } /** -- cgit v1.2.3 From 0c7a3a1287fd45106d8691b1cf61bb5c26a8f953 Mon Sep 17 00:00:00 2001 From: slewis Date: Fri, 28 Mar 2014 23:33:17 -0700 Subject: Added support for generic provider container type registration and adapter factory registration without extension registry for bug 421569 Change-Id: I0000000000000000000000000000000000000000 --- .../org.eclipse.ecf.provider/build.properties | 3 +- .../ecf/internal/provider/ProviderPlugin.java | 16 +++++-- .../internal/provider/remoteservice/Activator.java | 50 ++++++++++++++++++++-- 3 files changed, 60 insertions(+), 9 deletions(-) (limited to 'providers') diff --git a/framework/bundles/org.eclipse.ecf.provider/build.properties b/framework/bundles/org.eclipse.ecf.provider/build.properties index 4203b3f2e..7a0fd6349 100644 --- a/framework/bundles/org.eclipse.ecf.provider/build.properties +++ b/framework/bundles/org.eclipse.ecf.provider/build.properties @@ -12,8 +12,7 @@ bin.includes = .,\ plugin.xml,\ META-INF/,\ about.html,\ - plugin.properties,\ - OSGI-INF/ + plugin.properties src.includes = about.html jars.compile.order = . source.. = src/ diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java index 0a388ee69..6e7280610 100644 --- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java +++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java @@ -13,9 +13,11 @@ package org.eclipse.ecf.internal.provider; import javax.net.ssl.SSLServerSocketFactory; import javax.net.ssl.SSLSocketFactory; -import org.eclipse.core.runtime.IAdapterManager; -import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.*; +import org.eclipse.ecf.core.ContainerTypeDescription; import org.eclipse.ecf.core.util.*; +import org.eclipse.ecf.provider.generic.GenericContainerInstantiator; +import org.eclipse.ecf.provider.generic.SSLGenericContainerInstantiator; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.service.log.LogService; @@ -64,8 +66,16 @@ public class ProviderPlugin implements BundleActivator { /** * This method is called upon plug-in activation */ - public void start(BundleContext context1) throws Exception { + public void start(final BundleContext context1) throws Exception { this.context = context1; + SafeRunner.run(new ExtensionRegistryRunnable(this.context) { + protected void runWithoutRegistry() throws Exception { + context1.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(GenericContainerInstantiator.TCPSERVER_NAME, new GenericContainerInstantiator(), "ECF Generic Server", true, false), null); //$NON-NLS-1$ + context1.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(GenericContainerInstantiator.TCPCLIENT_NAME, new GenericContainerInstantiator(), "ECF Generic Client", false, true), null); //$NON-NLS-1$ + context1.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(SSLGenericContainerInstantiator.SSLSERVER_NAME, new SSLGenericContainerInstantiator(), "ECF SSL Generic Server", true, false), null); //$NON-NLS-1$ + context1.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(SSLGenericContainerInstantiator.SSLCLIENT_NAME, new SSLGenericContainerInstantiator(), "ECF SSL Generic Client", false, true), null); //$NON-NLS-1$ + } + }); } /** 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 1a2531ce3..30a6342e8 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,9 +8,12 @@ ******************************************************************************/ package org.eclipse.ecf.internal.provider.remoteservice; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.ecf.core.util.LogHelper; -import org.eclipse.ecf.core.util.SystemLogService; +import java.util.*; +import org.eclipse.core.runtime.*; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.util.*; +import org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceContainerAdapterFactory; +import org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceNamespace; import org.osgi.framework.*; import org.osgi.service.log.LogService; import org.osgi.util.tracker.ServiceTracker; @@ -39,8 +42,39 @@ public class Activator implements BundleActivator { plugin = this; } - public void start(BundleContext ctxt) throws Exception { + private List rscAdapterFactories; + + private static IAdapterManager getAdapterManager(BundleContext ctx) { + AdapterManagerTracker t = new AdapterManagerTracker(ctx); + t.open(); + IAdapterManager am = t.getAdapterManager(); + t.close(); + return am; + } + + public void start(final BundleContext ctxt) throws Exception { this.context = ctxt; + SafeRunner.run(new ExtensionRegistryRunnable(this.context) { + protected void runWithoutRegistry() throws Exception { + ctxt.registerService(Namespace.class, new RemoteServiceNamespace(org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceNamespace.NAME, "Generic remote service namespace"), null); //$NON-NLS-1$ + IAdapterManager am = getAdapterManager(ctxt); + if (am != null) { + rscAdapterFactories = new ArrayList(); + IAdapterFactory af = new RemoteServiceContainerAdapterFactory(); + am.registerAdapters(af, org.eclipse.ecf.provider.generic.SSLServerSOContainer.class); + rscAdapterFactories.add(af); + af = new RemoteServiceContainerAdapterFactory(); + am.registerAdapters(af, org.eclipse.ecf.provider.generic.TCPServerSOContainer.class); + rscAdapterFactories.add(af); + af = new RemoteServiceContainerAdapterFactory(); + am.registerAdapters(af, org.eclipse.ecf.provider.generic.SSLClientSOContainer.class); + rscAdapterFactories.add(af); + af = new RemoteServiceContainerAdapterFactory(); + am.registerAdapters(af, org.eclipse.ecf.provider.generic.TCPClientSOContainer.class); + rscAdapterFactories.add(af); + } + } + }); } public void stop(BundleContext ctxt) throws Exception { @@ -49,6 +83,14 @@ public class Activator implements BundleActivator { logServiceTracker = null; logService = null; } + if (rscAdapterFactories != null) { + IAdapterManager am = getAdapterManager(this.context); + if (am != null) { + for (Iterator i = rscAdapterFactories.iterator(); i.hasNext();) + am.unregisterAdapters((IAdapterFactory) i.next()); + } + rscAdapterFactories = null; + } this.context = null; plugin = null; } -- cgit v1.2.3 From 13dabf26528a07883a2205b9dc67de66d9dec7ec Mon Sep 17 00:00:00 2001 From: slewis Date: Sat, 29 Mar 2014 12:11:28 -0700 Subject: Added no extension registry support to java8 generic provider Change-Id: If2f60e9229b3c58e7756821e20f103b93bca2368 --- .../META-INF/MANIFEST.MF | 5 +- .../internal/remoteservice/java8/Activator.java | 68 ++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/META-INF/MANIFEST.MF index 5dfaaed49..5f462461f 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/META-INF/MANIFEST.MF @@ -12,6 +12,9 @@ Require-Bundle: org.eclipse.ecf;bundle-version="3.3.0", org.eclipse.equinox.common;bundle-version="3.6.200", org.eclipse.ecf.remoteservice;bundle-version="8.3.0" Import-Package: org.eclipse.equinox.concurrent.future;version="1.1.0", - org.osgi.framework;version="1.8.0" + org.osgi.framework;version="1.8.0", + org.osgi.util.tracker;version="1.5.1" Bundle-Localization: plugin +Bundle-ActivationPolicy: lazy +Bundle-Activator: org.eclipse.ecf.provider.internal.remoteservice.java8.Activator diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java new file mode 100644 index 000000000..3da80c269 --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java @@ -0,0 +1,68 @@ +package org.eclipse.ecf.provider.internal.remoteservice.java8; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.core.runtime.IAdapterManager; +import org.eclipse.core.runtime.SafeRunner; +import org.eclipse.ecf.core.ContainerTypeDescription; +import org.eclipse.ecf.core.util.AdapterManagerTracker; +import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; +import org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceContainerAdapterFactory; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + private List rscAdapterFactories; + + private static IAdapterManager getAdapterManager(BundleContext ctx) { + AdapterManagerTracker t = new AdapterManagerTracker(ctx); + t.open(); + IAdapterManager am = t.getAdapterManager(); + t.close(); + return am; + } + + @Override + public void start(final BundleContext context) throws Exception { + SafeRunner.run(new ExtensionRegistryRunnable(context) { + protected void runWithoutRegistry() throws Exception { + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_SERVER_NAME, new J8GenericContainerInstantiator(), "ECF Generic Server", true, false), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_CLIENT_NAME, new J8GenericContainerInstantiator(), "ECF Generic Client", false, true), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_CLIENT_NAME, new J8SSLGenericContainerInstantiator(), "ECF SSL Generic Server", true, false), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_SERVER_NAME, new J8SSLGenericContainerInstantiator(), "ECF SSL Generic Client", false, true), null); //$NON-NLS-1$ + IAdapterManager am = getAdapterManager(context); + if (am != null) { + rscAdapterFactories = new ArrayList(); + IAdapterFactory af = new J8RemoteServiceContainerAdapterFactory(); + am.registerAdapters(af, J8SSLServerSOContainer.class); + rscAdapterFactories.add(af); + af = new RemoteServiceContainerAdapterFactory(); + am.registerAdapters(af, J8TCPServerSOContainer.class); + rscAdapterFactories.add(af); + af = new RemoteServiceContainerAdapterFactory(); + am.registerAdapters(af, J8SSLClientSOContainer.class); + rscAdapterFactories.add(af); + af = new RemoteServiceContainerAdapterFactory(); + am.registerAdapters(af, J8TCPClientSOContainer.class); + rscAdapterFactories.add(af); + } + } + }); + + } + + @Override + public void stop(BundleContext context) throws Exception { + if (rscAdapterFactories != null) { + IAdapterManager am = getAdapterManager(context); + if (am != null) { + for (IAdapterFactory af : rscAdapterFactories) + am.unregisterAdapters(af); + } + } + } + +} -- cgit v1.2.3 From c2c021a2c39100409ec8322172f87657487750e0 Mon Sep 17 00:00:00 2001 From: slewis Date: Sat, 29 Mar 2014 14:58:53 -0700 Subject: Update discovery api and jmdns discovery provider to be usable without extension registry per bug 421569 Change-Id: I02dc9a9659606b1803255369371e8e98bd78249f --- .../ecf/internal/discovery/DiscoveryNamespace.java | 8 ++++ .../ecf/internal/discovery/DiscoveryPlugin.java | 46 ++++++++++++---------- .../META-INF/MANIFEST.MF | 2 +- .../ecf/internal/provider/jmdns/JMDNSPlugin.java | 26 +++++++----- .../jmdns/container/ContainerInstantiator.java | 16 +++++++- .../provider/jmdns/identity/JMDNSNamespace.java | 11 ++++++ 6 files changed, 76 insertions(+), 33 deletions(-) (limited to 'providers') diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryNamespace.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryNamespace.java index 258de6c17..264c95401 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryNamespace.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryNamespace.java @@ -20,6 +20,14 @@ public class DiscoveryNamespace extends Namespace { private static final long serialVersionUID = 6474091408790223505L; public static final String NAME = "ecf.namespace.discovery"; //$NON-NLS-1$ + public DiscoveryNamespace() { + super(); + } + + public DiscoveryNamespace(String description) { + super(NAME, description); + } + /* * (non-Javadoc) * diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryPlugin.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryPlugin.java index 5cead024a..c6ff207c0 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryPlugin.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryPlugin.java @@ -10,8 +10,8 @@ package org.eclipse.ecf.internal.discovery; import org.eclipse.core.runtime.*; -import org.eclipse.ecf.core.util.LogHelper; -import org.eclipse.ecf.core.util.PlatformHelper; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.util.*; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.service.log.LogService; @@ -29,7 +29,7 @@ public class DiscoveryPlugin implements BundleActivator { private BundleContext context; - private ServiceTracker adapterManagerTracker; + private AdapterManagerTracker adapterManagerTracker; private ServiceTracker logServiceTracker = null; /** @@ -43,22 +43,16 @@ public class DiscoveryPlugin implements BundleActivator { public IAdapterManager getAdapterManager() { // First, try to get the adapter manager via if (adapterManagerTracker == null) { - adapterManagerTracker = new ServiceTracker(this.context, IAdapterManager.class.getName(), null); + adapterManagerTracker = new AdapterManagerTracker(this.context); adapterManagerTracker.open(); } - IAdapterManager adapterManager = (IAdapterManager) adapterManagerTracker.getService(); - // Then, if the service isn't there, try to get from Platform class via - // PlatformHelper class - if (adapterManager == null) - adapterManager = PlatformHelper.getPlatformAdapterManager(); - if (adapterManager == null) - getDefault().log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "Cannot get adapter manager", null)); //$NON-NLS-1$ - return adapterManager; + return adapterManagerTracker.getAdapterManager(); } public LogService getLogService() { if (logServiceTracker == null) { - logServiceTracker = new ServiceTracker(this.context, LogService.class.getName(), null); + logServiceTracker = new ServiceTracker(this.context, + LogService.class.getName(), null); logServiceTracker.open(); } return (LogService) logServiceTracker.getService(); @@ -67,23 +61,34 @@ public class DiscoveryPlugin implements BundleActivator { public void log(IStatus status) { LogService logService = getLogService(); if (logService != null) { - logService.log(LogHelper.getLogCode(status), LogHelper.getLogMessage(status), status.getException()); + logService.log(LogHelper.getLogCode(status), + LogHelper.getLogMessage(status), status.getException()); } } /** * This method is called upon plug-in activation - * @param ctxt the bundle context - * @throws Exception + * + * @param ctxt + * the bundle context + * @throws Exception */ - public void start(BundleContext ctxt) throws Exception { + public void start(final BundleContext ctxt) throws Exception { this.context = ctxt; + SafeRunner.run(new ExtensionRegistryRunnable(this.context) { + protected void runWithoutRegistry() throws Exception { + ctxt.registerService(Namespace.class, new DiscoveryNamespace( + "Discovery Namespace"), null); + } + }); } /** * This method is called when the plug-in is stopped - * @param ctxt the bundle context - * @throws Exception + * + * @param ctxt + * the bundle context + * @throws Exception */ public void stop(BundleContext ctxt) throws Exception { if (logServiceTracker != null) { @@ -100,6 +105,7 @@ public class DiscoveryPlugin implements BundleActivator { /** * Returns the shared instance. + * * @return default discovery plugin instance. */ public synchronized static DiscoveryPlugin getDefault() { @@ -112,7 +118,7 @@ public class DiscoveryPlugin implements BundleActivator { public static boolean isStopped() { return plugin == null; } - + public BundleContext getBundleContext() { return context; } diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.jmdns/META-INF/MANIFEST.MF index c08179f25..9e1d8fd86 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jmdns/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.ecf.provider.jmdns;singleton:=true -Bundle-Version: 4.2.0.qualifier +Bundle-Version: 4.3.0.qualifier Bundle-Activator: org.eclipse.ecf.internal.provider.jmdns.JMDNSPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/internal/provider/jmdns/JMDNSPlugin.java b/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/internal/provider/jmdns/JMDNSPlugin.java index 620ccbd69..0a1b56a84 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/internal/provider/jmdns/JMDNSPlugin.java +++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/internal/provider/jmdns/JMDNSPlugin.java @@ -12,14 +12,17 @@ package org.eclipse.ecf.internal.provider.jmdns; import java.util.Properties; import org.eclipse.core.runtime.IAdapterManager; -import org.eclipse.ecf.core.ContainerConnectException; -import org.eclipse.ecf.core.IContainer; +import org.eclipse.core.runtime.SafeRunner; +import org.eclipse.ecf.core.*; import org.eclipse.ecf.core.identity.IDCreateException; +import org.eclipse.ecf.core.identity.Namespace; import org.eclipse.ecf.core.util.*; import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; import org.eclipse.ecf.discovery.IDiscoveryLocator; import org.eclipse.ecf.discovery.service.IDiscoveryService; +import org.eclipse.ecf.provider.jmdns.container.ContainerInstantiator; import org.eclipse.ecf.provider.jmdns.container.JMDNSDiscoveryContainer; +import org.eclipse.ecf.provider.jmdns.identity.JMDNSNamespace; import org.osgi.framework.*; import org.osgi.service.log.LogService; import org.osgi.util.tracker.ServiceTracker; @@ -45,7 +48,7 @@ public class JMDNSPlugin implements BundleActivator { plugin = this; } - private ServiceTracker adapterManagerTracker = null; + private AdapterManagerTracker adapterManagerTracker = null; private ServiceRegistration serviceRegistration; @@ -56,15 +59,10 @@ public class JMDNSPlugin implements BundleActivator { public IAdapterManager getAdapterManager() { // First, try to get the adapter manager via if (adapterManagerTracker == null) { - adapterManagerTracker = new ServiceTracker(this.context, IAdapterManager.class.getName(), null); + adapterManagerTracker = new AdapterManagerTracker(this.context); adapterManagerTracker.open(); } - IAdapterManager adapterManager = (IAdapterManager) adapterManagerTracker.getService(); - // Then, if the service isn't there, try to get from Platform class via - // PlatformHelper class - if (adapterManager == null) - adapterManager = PlatformHelper.getPlatformAdapterManager(); - return adapterManager; + return adapterManagerTracker.getAdapterManager(); } /** @@ -78,6 +76,14 @@ public class JMDNSPlugin implements BundleActivator { props.put(Constants.SERVICE_RANKING, new Integer(750)); String[] clazzes = new String[] {IDiscoveryService.class.getName(), IDiscoveryLocator.class.getName(), IDiscoveryAdvertiser.class.getName()}; serviceRegistration = context.registerService(clazzes, serviceFactory, props); + SafeRunner.run(new ExtensionRegistryRunnable(ctxt) { + protected void runWithoutRegistry() throws Exception { + ctxt.registerService(Namespace.class, new JMDNSNamespace("JMDNS Discovery Namespace"), null); + ctxt.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(ContainerInstantiator.JMDNS_CONTAINER_NAME, new ContainerInstantiator(), "JMDNS Discovery Container", true, false), null); + ctxt.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(ContainerInstantiator.JMDNS_LOCATOR_NAME, new ContainerInstantiator(), "JMDNS Discovery Locator"), null); + ctxt.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(ContainerInstantiator.JMDNS_ADVERTISER_NAME, new ContainerInstantiator(), "JMDNS Discovery Advertiser"), null); + } + }); } private final DiscoveryServiceFactory serviceFactory = new DiscoveryServiceFactory(); diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/provider/jmdns/container/ContainerInstantiator.java b/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/provider/jmdns/container/ContainerInstantiator.java index 6fc8b3ce3..1fb03aa82 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/provider/jmdns/container/ContainerInstantiator.java +++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/provider/jmdns/container/ContainerInstantiator.java @@ -17,13 +17,25 @@ import org.eclipse.ecf.discovery.IDiscoveryContainerAdapter; public class ContainerInstantiator implements IContainerInstantiator { + /** + * @since 4.3 + */ + public static final String JMDNS_CONTAINER_NAME = "ecf.container.jmdns"; + /** + * @since 4.3 + */ + public static final String JMDNS_LOCATOR_NAME = "ecf.container.jmdns.locator"; + /** + * @since 4.3 + */ + public static final String JMDNS_ADVERTISER_NAME = "ecf.container.jmdns.advertiser"; + /* (non-Javadoc) * @see org.eclipse.ecf.core.provider.IContainerInstantiator#createInstance(org.eclipse.ecf.core.ContainerTypeDescription, java.lang.Object[]) */ public IContainer createInstance(final ContainerTypeDescription description, final Object[] args) throws ContainerCreateException { try { - final AbstractContainer container = new JMDNSDiscoveryContainer(); - return container; + return new JMDNSDiscoveryContainer(); } catch (final IDCreateException e) { final ContainerCreateException excep = new ContainerCreateException("Jmdns container create failed", e); //$NON-NLS-1$ excep.setStackTrace(e.getStackTrace()); diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/provider/jmdns/identity/JMDNSNamespace.java b/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/provider/jmdns/identity/JMDNSNamespace.java index 5c2691495..ac6a046fa 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/provider/jmdns/identity/JMDNSNamespace.java +++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/src/org/eclipse/ecf/provider/jmdns/identity/JMDNSNamespace.java @@ -23,6 +23,17 @@ public class JMDNSNamespace extends Namespace { public static final String NAME = "ecf.namespace.jmdns"; //$NON-NLS-1$ + public JMDNSNamespace() { + super(); + } + + /** + * @since 4.3 + */ + public JMDNSNamespace(String description) { + super(NAME, description); + } + private String getInitFromExternalForm(final Object[] args) { if (args == null || args.length < 1 || args[0] == null) return null; -- cgit v1.2.3 From 9b1e192c7ef5ebf007b403d843bd2f71b4a6d7b4 Mon Sep 17 00:00:00 2001 From: slewis Date: Sat, 29 Mar 2014 18:36:49 -0700 Subject: Updates to support r_osgi provider working without equinox extension registry as per bug 421569 Change-Id: If6102913c94f46279ee56abd028a670aff7a1f51 --- .../org.eclipse.ecf.provider.r_osgi/META-INF/MANIFEST.MF | 2 +- .../org/eclipse/ecf/internal/provider/r_osgi/Activator.java | 13 +++++++++++++ .../provider/r_osgi/R_OSGiContainerInstantiator.java | 1 + .../r_osgi/identity/R_OSGiRemoteServiceNamespace.java | 4 ++++ 4 files changed, 19 insertions(+), 1 deletion(-) (limited to 'providers') 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 2b40780f9..b0a7c8973 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 @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin.name Bundle-SymbolicName: org.eclipse.ecf.provider.r_osgi;singleton:=true -Bundle-Version: 3.3.0.qualifier +Bundle-Version: 3.4.0.qualifier Import-Package: org.eclipse.ecf.core.util.reflection, org.eclipse.equinox.concurrent.future;version="1.0.0", org.osgi.framework;version="1.3.0", diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/Activator.java b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/Activator.java index e5d33c2bb..216b2fcad 100644 --- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/Activator.java @@ -12,6 +12,12 @@ package org.eclipse.ecf.internal.provider.r_osgi; import ch.ethz.iks.r_osgi.RemoteOSGiService; +import org.eclipse.core.runtime.SafeRunner; +import org.eclipse.ecf.core.ContainerTypeDescription; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; +import org.eclipse.ecf.provider.r_osgi.identity.R_OSGiNamespace; +import org.eclipse.ecf.provider.r_osgi.identity.R_OSGiRemoteServiceNamespace; import org.eclipse.equinox.concurrent.future.IExecutor; import org.osgi.framework.*; import org.osgi.util.tracker.ServiceTracker; @@ -64,6 +70,13 @@ public final class Activator implements BundleActivator { this.context = bc; r_osgi_tracker = new ServiceTracker(context, RemoteOSGiService.class.getName(), null); r_osgi_tracker.open(); + SafeRunner.run(new ExtensionRegistryRunnable(bc) { + protected void runWithoutRegistry() throws Exception { + bc.registerService(Namespace.class, new R_OSGiNamespace(), null); + bc.registerService(Namespace.class, new R_OSGiRemoteServiceNamespace(), null); + bc.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(R_OSGiContainerInstantiator.NAME, new R_OSGiContainerInstantiator(), "R_OSGi Container", true, false), null); //$NON-NLS-1$ + } + }); } /** diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiContainerInstantiator.java b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiContainerInstantiator.java index db3bd9eaa..4e88fd40f 100644 --- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiContainerInstantiator.java +++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiContainerInstantiator.java @@ -104,6 +104,7 @@ public final class R_OSGiContainerInstantiator implements IContainerInstantiator } private static final String ROSGI_CONFIG = "ecf.r_osgi.peer"; //$NON-NLS-1$ + public static final String NAME = ROSGI_CONFIG; private static final String[] ROSGI_CONFIGS = new String[] {ROSGI_CONFIG}; diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/provider/r_osgi/identity/R_OSGiRemoteServiceNamespace.java b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/provider/r_osgi/identity/R_OSGiRemoteServiceNamespace.java index ac1ff8569..db8983bec 100644 --- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/provider/r_osgi/identity/R_OSGiRemoteServiceNamespace.java +++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/provider/r_osgi/identity/R_OSGiRemoteServiceNamespace.java @@ -23,6 +23,10 @@ public class R_OSGiRemoteServiceNamespace extends Namespace { public static final String NAME = "ecf.namespace.r_osgi.remoteservice"; //$NON-NLS-1$ + public R_OSGiRemoteServiceNamespace() { + super(NAME, "R_OSGi Remote Service Namespace"); //$NON-NLS-1$ + } + public ID createInstance(Object[] parameters) throws IDCreateException { if (parameters == null || parameters.length != 2) throw new IDCreateException("Parameters incorrect for remote ID creation"); //$NON-NLS-1$ -- cgit v1.2.3 From 286a091c369ece5625101e5cbb7eabe1e7a7e9c2 Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 12:30:03 -0700 Subject: Fix for java8 generic provider to allow for not using registry as per bug 421569 Change-Id: Ia9ee62256a5d1ffbf39423f45f7cc9f4ae26795e --- .../ecf/provider/internal/remoteservice/java8/Activator.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java index 3da80c269..ba64b4865 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java @@ -29,10 +29,10 @@ public class Activator implements BundleActivator { public void start(final BundleContext context) throws Exception { SafeRunner.run(new ExtensionRegistryRunnable(context) { protected void runWithoutRegistry() throws Exception { - context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_SERVER_NAME, new J8GenericContainerInstantiator(), "ECF Generic Server", true, false), null); //$NON-NLS-1$ - context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_CLIENT_NAME, new J8GenericContainerInstantiator(), "ECF Generic Client", false, true), null); //$NON-NLS-1$ - context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_CLIENT_NAME, new J8SSLGenericContainerInstantiator(), "ECF SSL Generic Server", true, false), null); //$NON-NLS-1$ - context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_SERVER_NAME, new J8SSLGenericContainerInstantiator(), "ECF SSL Generic Client", false, true), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_SERVER_NAME, new J8GenericContainerInstantiator(), "ECF Java8 Generic Server", true, false), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_CLIENT_NAME, new J8GenericContainerInstantiator(), "ECF Java8 Generic Client", false, true), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_CLIENT_NAME, new J8SSLGenericContainerInstantiator(), "ECF Java8 SSL Generic Server", true, false), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_SERVER_NAME, new J8SSLGenericContainerInstantiator(), "ECF Java8 SSL Generic Client", false, true), null); //$NON-NLS-1$ IAdapterManager am = getAdapterManager(context); if (am != null) { rscAdapterFactories = new ArrayList(); -- cgit v1.2.3 From a3f70fb5838739de3f6792d16e34aa2739f1a038 Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 14:29:34 -0700 Subject: Fix for generic java8 provider for bug 421569 Change-Id: Icd8a18e54c7bc417897e1f1a696af32b3b7d3425 --- .../ecf/provider/internal/remoteservice/java8/Activator.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java index ba64b4865..5645cb39e 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java @@ -30,22 +30,22 @@ public class Activator implements BundleActivator { SafeRunner.run(new ExtensionRegistryRunnable(context) { protected void runWithoutRegistry() throws Exception { context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_SERVER_NAME, new J8GenericContainerInstantiator(), "ECF Java8 Generic Server", true, false), null); //$NON-NLS-1$ - context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_CLIENT_NAME, new J8GenericContainerInstantiator(), "ECF Java8 Generic Client", false, true), null); //$NON-NLS-1$ - context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_CLIENT_NAME, new J8SSLGenericContainerInstantiator(), "ECF Java8 SSL Generic Server", true, false), null); //$NON-NLS-1$ - context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_SERVER_NAME, new J8SSLGenericContainerInstantiator(), "ECF Java8 SSL Generic Client", false, true), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_CLIENT_NAME, new J8GenericContainerInstantiator(), "ECF Java8 Generic Client", false, false), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_CLIENT_NAME, new J8SSLGenericContainerInstantiator(), "ECF Java8 SSL Generic Client", false, false), null); //$NON-NLS-1$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_SERVER_NAME, new J8SSLGenericContainerInstantiator(), "ECF Java8 SSL Generic Server", true, false), null); //$NON-NLS-1$ IAdapterManager am = getAdapterManager(context); if (am != null) { rscAdapterFactories = new ArrayList(); IAdapterFactory af = new J8RemoteServiceContainerAdapterFactory(); am.registerAdapters(af, J8SSLServerSOContainer.class); rscAdapterFactories.add(af); - af = new RemoteServiceContainerAdapterFactory(); + af = new J8RemoteServiceContainerAdapterFactory(); am.registerAdapters(af, J8TCPServerSOContainer.class); rscAdapterFactories.add(af); - af = new RemoteServiceContainerAdapterFactory(); + af = new J8RemoteServiceContainerAdapterFactory(); am.registerAdapters(af, J8SSLClientSOContainer.class); rscAdapterFactories.add(af); - af = new RemoteServiceContainerAdapterFactory(); + af = new J8RemoteServiceContainerAdapterFactory(); am.registerAdapters(af, J8TCPClientSOContainer.class); rscAdapterFactories.add(af); } -- cgit v1.2.3 From 7fba5ac802f0be0f3a5e9c7d7599b609f0a01915 Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 14:30:30 -0700 Subject: Fix for generic java8 provider for bug 421569 Change-Id: I0000000000000000000000000000000000000000 --- .../org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java | 1 - 1 file changed, 1 deletion(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java index 5645cb39e..4791bf408 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8/src/org/eclipse/ecf/provider/internal/remoteservice/java8/Activator.java @@ -9,7 +9,6 @@ import org.eclipse.core.runtime.SafeRunner; import org.eclipse.ecf.core.ContainerTypeDescription; import org.eclipse.ecf.core.util.AdapterManagerTracker; import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; -import org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceContainerAdapterFactory; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -- cgit v1.2.3 From c690aba14eb31e4fe085b0c6b80db497ad7bdbb8 Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 20:21:48 -0700 Subject: Additions to convert datashare provider to allow no registry bug 421569 Change-Id: Ia7f7558210a4b886e5b6d9836673d5369df32d8f --- .../META-INF/MANIFEST.MF | 2 +- .../org.eclipse.ecf.provider.datashare/plugin.xml | 18 +++++++++++++ .../ecf/internal/provider/datashare/Activator.java | 31 ++++++++++++++++++---- 3 files changed, 45 insertions(+), 6 deletions(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.datashare/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.datashare/META-INF/MANIFEST.MF index 04cb9629d..c0c72691e 100644 --- a/providers/bundles/org.eclipse.ecf.provider.datashare/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.datashare/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin.name Bundle-SymbolicName: org.eclipse.ecf.provider.datashare;singleton:=true -Bundle-Version: 1.4.100.qualifier +Bundle-Version: 1.5.0.qualifier Bundle-Activator: org.eclipse.ecf.internal.provider.datashare.Activator Bundle-Vendor: %plugin.provider Bundle-Localization: plugin diff --git a/providers/bundles/org.eclipse.ecf.provider.datashare/plugin.xml b/providers/bundles/org.eclipse.ecf.provider.datashare/plugin.xml index bf74e668b..38cd24e8c 100644 --- a/providers/bundles/org.eclipse.ecf.provider.datashare/plugin.xml +++ b/providers/bundles/org.eclipse.ecf.provider.datashare/plugin.xml @@ -18,5 +18,23 @@ + + + + + + + + + + + + diff --git a/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/internal/provider/datashare/Activator.java b/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/internal/provider/datashare/Activator.java index e2bacf0c4..035178190 100644 --- a/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/internal/provider/datashare/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/internal/provider/datashare/Activator.java @@ -11,11 +11,11 @@ package org.eclipse.ecf.internal.provider.datashare; -import org.eclipse.core.runtime.IAdapterManager; -import org.eclipse.core.runtime.IStatus; +import java.util.List; +import org.eclipse.core.runtime.*; import org.eclipse.ecf.core.IContainerManager; -import org.eclipse.ecf.core.util.AdapterManagerTracker; -import org.eclipse.ecf.core.util.LogHelper; +import org.eclipse.ecf.core.util.*; +import org.eclipse.ecf.provider.datashare.DatashareContainerAdapterFactory; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.service.log.LogService; @@ -61,11 +61,32 @@ public class Activator implements BundleActivator { } } + List rscAdapterFactories; + /** * This method is called upon plug-in activation */ - public void start(BundleContext ctxt) throws Exception { + public void start(final BundleContext ctxt) throws Exception { this.context = ctxt; + SafeRunner.run(new ExtensionRegistryRunnable(ctxt) { + protected void runWithoutRegistry() throws Exception { + IAdapterManager am = getAdapterManager(); + if (am != null) { + IAdapterFactory af = new DatashareContainerAdapterFactory(); + am.registerAdapters(af, org.eclipse.ecf.provider.generic.SSLServerSOContainer.class); + rscAdapterFactories.add(af); + af = new DatashareContainerAdapterFactory(); + am.registerAdapters(af, org.eclipse.ecf.provider.generic.TCPServerSOContainer.class); + rscAdapterFactories.add(af); + af = new DatashareContainerAdapterFactory(); + am.registerAdapters(af, org.eclipse.ecf.provider.generic.SSLClientSOContainer.class); + rscAdapterFactories.add(af); + af = new DatashareContainerAdapterFactory(); + am.registerAdapters(af, org.eclipse.ecf.provider.generic.TCPClientSOContainer.class); + rscAdapterFactories.add(af); + } + } + }); } /** -- cgit v1.2.3 From 387d3378fe26db656d3ccbf3f23318a1b7ef988d Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 20:40:34 -0700 Subject: Additions to allow org.eclipse.ecf.provider.discovery to be usable without extension registry bug 421569 Change-Id: I771e198fe86974f84da0ef536cabb81673a68b32 --- .../ecf/internal/provider/discovery/Activator.java | 18 +++++++++++++++++- .../provider/discovery/CompositeNamespace.java | 4 ++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/internal/provider/discovery/Activator.java b/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/internal/provider/discovery/Activator.java index 829b484c1..ced3201c6 100644 --- a/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/internal/provider/discovery/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/internal/provider/discovery/Activator.java @@ -12,12 +12,16 @@ package org.eclipse.ecf.internal.provider.discovery; import java.util.HashSet; import java.util.Properties; +import org.eclipse.core.runtime.SafeRunner; import org.eclipse.ecf.core.ContainerConnectException; +import org.eclipse.ecf.core.ContainerTypeDescription; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; import org.eclipse.ecf.core.util.Trace; import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; import org.eclipse.ecf.discovery.IDiscoveryLocator; import org.eclipse.ecf.discovery.service.IDiscoveryService; -import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; +import org.eclipse.ecf.provider.discovery.*; import org.osgi.framework.*; import org.osgi.util.tracker.ServiceTracker; @@ -47,6 +51,17 @@ public class Activator implements BundleActivator { * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext) */ public void start(final BundleContext context) throws Exception { + + SafeRunner.run(new ExtensionRegistryRunnable(context) { + protected void runWithoutRegistry() throws Exception { + context.registerService(Namespace.class, new CompositeNamespace(), null); + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription("ecf.discovery.composite", new CompositeDiscoveryContainerInstantiator(), "Composite Discovery Container", true, false), null); //$NON-NLS-1$ //$NON-NLS-2$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription("ecf.singleton.discovery", new SingletonDiscoveryContainerInstantiator(), "Composite Discovery Container Locator", true, false), null); //$NON-NLS-1$ //$NON-NLS-2$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription("ecf.discovery.composite.locator", new CompositeDiscoveryContainerInstantiator(), "Composite Discovery Container Locator"), null); //$NON-NLS-1$ //$NON-NLS-2$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription("ecf.discovery.composite.advertiser", new CompositeDiscoveryContainerInstantiator(), "Composite Discovery Container Advertiser"), null); //$NON-NLS-1$ //$NON-NLS-2$ + } + }); + final Properties props = new Properties(); props.put(IDiscoveryLocator.CONTAINER_NAME, CompositeDiscoveryContainer.NAME); props.put(Constants.SERVICE_RANKING, new Integer(1000)); @@ -119,6 +134,7 @@ public class Activator implements BundleActivator { ((CompositeDiscoveryContainer) service).dispose(); } }, props); + } /* diff --git a/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/internal/provider/discovery/CompositeNamespace.java b/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/internal/provider/discovery/CompositeNamespace.java index e37e23168..5ffc44e04 100644 --- a/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/internal/provider/discovery/CompositeNamespace.java +++ b/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/internal/provider/discovery/CompositeNamespace.java @@ -20,6 +20,10 @@ public class CompositeNamespace extends Namespace { private static final long serialVersionUID = -4774766051014928510L; public static final String NAME = "ecf.namespace.composite"; //$NON-NLS-1$ + public CompositeNamespace() { + super(NAME, "Composite Namespace"); //$NON-NLS-1$ + } + /* (non-Javadoc) * @see org.eclipse.ecf.core.identity.Namespace#createInstance(java.lang.Object[]) */ -- cgit v1.2.3 From 4e613370ac1e29572d1c7f597de1adc701efcbbb Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 20:50:56 -0700 Subject: Additions to allow org.eclipse.ecf.provider.dnssd to be used without extension registry bug 421569 Change-Id: Iee2d9793b10eee155535cedb4da1f848db6739f2 --- .../org.eclipse.ecf.provider.dnssd/META-INF/MANIFEST.MF | 2 +- .../bundles/org.eclipse.ecf.provider.dnssd/plugin.xml | 4 ++-- .../src/org/eclipse/ecf/provider/dnssd/Activator.java | 14 +++++++++++++- .../src/org/eclipse/ecf/provider/dnssd/DnsSdNamespace.java | 4 ++++ 4 files changed, 20 insertions(+), 4 deletions(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.dnssd/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.dnssd/META-INF/MANIFEST.MF index f5b132cb8..2b7a86804 100644 --- a/providers/bundles/org.eclipse.ecf.provider.dnssd/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.dnssd/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.ecf.provider.dnssd;singleton:=true -Bundle-Version: 1.1.0.qualifier +Bundle-Version: 1.2.0.qualifier Bundle-Activator: org.eclipse.ecf.provider.dnssd.Activator Bundle-Vendor: %pluginProvider Bundle-RequiredExecutionEnvironment: J2SE-1.4 diff --git a/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.xml b/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.xml index a93033e6b..43aac56d7 100644 --- a/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.xml +++ b/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.xml @@ -5,7 +5,7 @@ point="org.eclipse.ecf.containerFactory"> @@ -13,7 +13,7 @@ point="org.eclipse.ecf.containerFactory"> diff --git a/providers/bundles/org.eclipse.ecf.provider.dnssd/src/org/eclipse/ecf/provider/dnssd/Activator.java b/providers/bundles/org.eclipse.ecf.provider.dnssd/src/org/eclipse/ecf/provider/dnssd/Activator.java index b60c52fbb..d5471c4e5 100644 --- a/providers/bundles/org.eclipse.ecf.provider.dnssd/src/org/eclipse/ecf/provider/dnssd/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.dnssd/src/org/eclipse/ecf/provider/dnssd/Activator.java @@ -16,8 +16,12 @@ import java.util.Iterator; import java.util.Map; import java.util.Properties; +import org.eclipse.core.runtime.SafeRunner; import org.eclipse.ecf.core.ContainerConnectException; +import org.eclipse.ecf.core.ContainerTypeDescription; import org.eclipse.ecf.core.IContainer; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; import org.eclipse.ecf.discovery.IDiscoveryLocator; import org.osgi.framework.Bundle; @@ -46,9 +50,17 @@ public class Activator implements BundleActivator { * (non-Javadoc) * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) */ - public void start(BundleContext context) throws Exception { + public void start(final BundleContext context) throws Exception { this.context = context; + SafeRunner.run(new ExtensionRegistryRunnable(context) { + protected void runWithoutRegistry() throws Exception { + context.registerService(Namespace.class, new DnsSdNamespace(), null); + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(DISCOVERY_CONTAINER_NAME_VALUE + LOCATOR,new ContainerInstantiator(),"Discovery Locator Container"), null); + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(DISCOVERY_CONTAINER_NAME_VALUE + ADVERTISER,new ContainerInstantiator(),"Discovery Advertiser Container"), null); + } + }); + // register a managed factory for the locator service final Properties locCmProps = new Properties(); locCmProps.put(Constants.SERVICE_PID, DISCOVERY_CONTAINER_NAME_VALUE + LOCATOR); diff --git a/providers/bundles/org.eclipse.ecf.provider.dnssd/src/org/eclipse/ecf/provider/dnssd/DnsSdNamespace.java b/providers/bundles/org.eclipse.ecf.provider.dnssd/src/org/eclipse/ecf/provider/dnssd/DnsSdNamespace.java index 57bb9a9ef..7c1c2ac41 100644 --- a/providers/bundles/org.eclipse.ecf.provider.dnssd/src/org/eclipse/ecf/provider/dnssd/DnsSdNamespace.java +++ b/providers/bundles/org.eclipse.ecf.provider.dnssd/src/org/eclipse/ecf/provider/dnssd/DnsSdNamespace.java @@ -26,6 +26,10 @@ public class DnsSdNamespace extends Namespace { public static final String SCHEME = "dnssd"; //$NON-NLS-1$ public static final String NAME = "ecf.namespace.dnssd"; //$NON-NLS-1$ + public DnsSdNamespace() { + super(NAME,"Dns SD Namespace"); + } + /* (non-Javadoc) * @see org.eclipse.ecf.core.identity.Namespace#createInstance(java.lang.Object[]) */ -- cgit v1.2.3 From dc21fceea68dac3130698ca8fdb74431953d030a Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 21:02:11 -0700 Subject: Additions to allow org.eclipse.ecf.provider.jslp to be used without extension registry bug 421569 Change-Id: I0000000000000000000000000000000000000000 --- .../org.eclipse.ecf.provider.jslp/META-INF/MANIFEST.MF | 2 +- .../eclipse/ecf/internal/provider/jslp/Activator.java | 17 +++++++++++++++-- .../ecf/provider/jslp/identity/JSLPNamespace.java | 4 ++++ 3 files changed, 20 insertions(+), 3 deletions(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.jslp/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.jslp/META-INF/MANIFEST.MF index 2d62d7871..f8b5eb56a 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jslp/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.jslp/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.ecf.provider.jslp;singleton:=true -Bundle-Version: 3.1.0.qualifier +Bundle-Version: 3.2.0.qualifier Bundle-Activator: org.eclipse.ecf.internal.provider.jslp.Activator Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/internal/provider/jslp/Activator.java b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/internal/provider/jslp/Activator.java index 3a09c540b..49917c798 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/internal/provider/jslp/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/internal/provider/jslp/Activator.java @@ -13,13 +13,17 @@ package org.eclipse.ecf.internal.provider.jslp; import ch.ethz.iks.slp.Advertiser; import ch.ethz.iks.slp.Locator; import java.util.Properties; -import org.eclipse.ecf.core.ContainerConnectException; -import org.eclipse.ecf.core.IContainer; +import org.eclipse.core.runtime.SafeRunner; +import org.eclipse.ecf.core.*; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; import org.eclipse.ecf.core.util.Trace; import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; import org.eclipse.ecf.discovery.IDiscoveryLocator; import org.eclipse.ecf.discovery.service.IDiscoveryService; +import org.eclipse.ecf.provider.jslp.container.ContainerInstantiator; import org.eclipse.ecf.provider.jslp.container.JSLPDiscoveryContainer; +import org.eclipse.ecf.provider.jslp.identity.JSLPNamespace; import org.osgi.framework.*; import org.osgi.util.tracker.ServiceTracker; @@ -82,6 +86,15 @@ public class Activator implements BundleActivator { public void start(final BundleContext context) throws Exception { bundleContext = context; + SafeRunner.run(new ExtensionRegistryRunnable(context) { + protected void runWithoutRegistry() throws Exception { + context.registerService(Namespace.class, new JSLPNamespace(), null); + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription("ecf.discovery.jslp", new ContainerInstantiator(), "JSLP Discovery Container", true, false), null); //$NON-NLS-1$//$NON-NLS-2$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription("ecf.discovery.jslp.locator", new ContainerInstantiator(), "JSLP Discovery Locator Container", true, false), null); //$NON-NLS-1$//$NON-NLS-2$ + context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription("ecf.discovery.jslp.advertiser", new ContainerInstantiator(), "JSLP Discovery Advertiser Container", true, false), null); //$NON-NLS-1$//$NON-NLS-2$ + } + }); + // initially get the locator and add a life cycle listener locatorSt = new ServiceTracker(context, Locator.class.getName(), null); diff --git a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPNamespace.java b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPNamespace.java index e0d45cc7e..505831d92 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPNamespace.java +++ b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPNamespace.java @@ -23,6 +23,10 @@ public class JSLPNamespace extends Namespace { public static final String NAME = "ecf.namespace.slp"; //$NON-NLS-1$ + public JSLPNamespace() { + super(NAME, "JSLP Namespace"); //$NON-NLS-1$ + } + /* (non-Javadoc) * @see org.eclipse.ecf.core.identity.Namespace#createInstance(java.lang.Object[]) */ -- cgit v1.2.3 From b4d560fd891d1fe327910f53f7fcb9534885d9b3 Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 21:08:54 -0700 Subject: Additions to allow org.eclipse.ecf.provider.local to be used without extension registry bug 421569 Change-Id: I0000000000000000000000000000000000000000 --- .../org.eclipse.ecf.provider.local/META-INF/MANIFEST.MF | 2 +- .../eclipse/ecf/internal/provider/local/Activator.java | 15 ++++++++++++++- .../ecf/provider/local/identity/LocalNamespace.java | 4 ++++ 3 files changed, 19 insertions(+), 2 deletions(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.local/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.local/META-INF/MANIFEST.MF index 060762c01..7aaddeb01 100644 --- a/providers/bundles/org.eclipse.ecf.provider.local/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.local/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: ECF Local Remote Service Provider Bundle-SymbolicName: org.eclipse.ecf.provider.local;singleton:=true -Bundle-Version: 1.2.0.qualifier +Bundle-Version: 1.3.0.qualifier Bundle-Activator: org.eclipse.ecf.internal.provider.local.Activator Bundle-Vendor: Eclipse.org - ECF Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1, diff --git a/providers/bundles/org.eclipse.ecf.provider.local/src/org/eclipse/ecf/internal/provider/local/Activator.java b/providers/bundles/org.eclipse.ecf.provider.local/src/org/eclipse/ecf/internal/provider/local/Activator.java index 5add95bcd..40c0f7b8b 100644 --- a/providers/bundles/org.eclipse.ecf.provider.local/src/org/eclipse/ecf/internal/provider/local/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.local/src/org/eclipse/ecf/internal/provider/local/Activator.java @@ -1,5 +1,11 @@ package org.eclipse.ecf.internal.provider.local; +import org.eclipse.core.runtime.SafeRunner; +import org.eclipse.ecf.core.ContainerTypeDescription; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; +import org.eclipse.ecf.internal.provider.local.container.LocalRemoteServiceContainerInstantiator; +import org.eclipse.ecf.provider.local.identity.LocalNamespace; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; @@ -15,8 +21,15 @@ public class Activator implements BundleActivator { * (non-Javadoc) * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) */ - public void start(BundleContext bundleContext) throws Exception { + public void start(final BundleContext bundleContext) throws Exception { Activator.context = bundleContext; + + SafeRunner.run(new ExtensionRegistryRunnable(bundleContext) { + protected void runWithoutRegistry() throws Exception { + bundleContext.registerService(Namespace.class, new LocalNamespace(), null); + bundleContext.registerService(ContainerTypeDescription.class, new ContainerTypeDescription("ecf.local", new LocalRemoteServiceContainerInstantiator(), "Local Container Instantiator", false, false), null); //$NON-NLS-1$//$NON-NLS-2$ + } + }); } /* diff --git a/providers/bundles/org.eclipse.ecf.provider.local/src/org/eclipse/ecf/provider/local/identity/LocalNamespace.java b/providers/bundles/org.eclipse.ecf.provider.local/src/org/eclipse/ecf/provider/local/identity/LocalNamespace.java index cc4cdfa48..58355279c 100644 --- a/providers/bundles/org.eclipse.ecf.provider.local/src/org/eclipse/ecf/provider/local/identity/LocalNamespace.java +++ b/providers/bundles/org.eclipse.ecf.provider.local/src/org/eclipse/ecf/provider/local/identity/LocalNamespace.java @@ -19,6 +19,10 @@ public class LocalNamespace extends Namespace { public static final String NAME = "ecf.namespace.local"; //$NON-NLS-1$ public static final String SCHEME = "local"; //$NON-NLS-1$ + public LocalNamespace() { + super(NAME, "Local Namespace"); //$NON-NLS-1$ + } + public ID createInstance(Object[] parameters) throws IDCreateException { try { final String init = getInitStringFromExternalForm(parameters); -- cgit v1.2.3 From 8156bccb78e28630dd6098df2ecb394f2cdeb407 Mon Sep 17 00:00:00 2001 From: slewis Date: Sun, 30 Mar 2014 21:19:14 -0700 Subject: Additions to allow org.eclipse.ecf.provider.zookeeper to be used without extension registry bug 421569 Change-Id: I0000000000000000000000000000000000000000 --- .../META-INF/MANIFEST.MF | 2 +- .../bundles/org.eclipse.ecf.provider.zookeeper/plugin.xml | 8 ++++---- .../eclipse/ecf/provider/zookeeper/DiscoveryActivator.java | 14 ++++++++++++++ .../ecf/provider/zookeeper/core/ZooDiscoveryNamespace.java | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) (limited to 'providers') diff --git a/providers/bundles/org.eclipse.ecf.provider.zookeeper/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.zookeeper/META-INF/MANIFEST.MF index e73970267..8bf393314 100644 --- a/providers/bundles/org.eclipse.ecf.provider.zookeeper/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.zookeeper/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %bundle.name Bundle-SymbolicName: org.eclipse.ecf.provider.zookeeper;singleton:=true -Bundle-Version: 1.1.0.qualifier +Bundle-Version: 1.2.0.qualifier Bundle-Activator: org.eclipse.ecf.provider.zookeeper.DiscoveryActivator Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/providers/bundles/org.eclipse.ecf.provider.zookeeper/plugin.xml b/providers/bundles/org.eclipse.ecf.provider.zookeeper/plugin.xml index 2ca709379..97fa861c0 100644 --- a/providers/bundles/org.eclipse.ecf.provider.zookeeper/plugin.xml +++ b/providers/bundles/org.eclipse.ecf.provider.zookeeper/plugin.xml @@ -5,17 +5,17 @@ point="org.eclipse.ecf.containerFactory"> @@ -23,7 +23,7 @@ point="org.eclipse.ecf.identity.namespace"> diff --git a/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/DiscoveryActivator.java b/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/DiscoveryActivator.java index 0bac43bda..8175053f6 100644 --- a/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/DiscoveryActivator.java +++ b/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/DiscoveryActivator.java @@ -16,10 +16,15 @@ import java.util.HashSet; import java.util.Properties; import java.util.Set; +import org.eclipse.core.runtime.SafeRunner; +import org.eclipse.ecf.core.ContainerTypeDescription; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; import org.eclipse.ecf.discovery.IDiscoveryLocator; import org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryContainer; import org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryContainerInstantiator; +import org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryNamespace; import org.eclipse.ecf.provider.zookeeper.core.internal.BundleStoppingListener; import org.eclipse.ecf.provider.zookeeper.util.Logger; import org.eclipse.ecf.provider.zookeeper.util.PrettyPrinter; @@ -42,6 +47,15 @@ public class DiscoveryActivator implements BundleActivator { public void start(final BundleContext ctxt) { context = ctxt; + SafeRunner.run(new ExtensionRegistryRunnable(ctxt) { + protected void runWithoutRegistry() throws Exception { + ctxt.registerService(Namespace.class,new ZooDiscoveryNamespace(), null); + ctxt.registerService(ContainerTypeDescription.class,new ContainerTypeDescription(ZooDiscoveryContainerInstantiator.NAME,new ZooDiscoveryContainerInstantiator(),"Zookeeper Discovery Container"), null); + ctxt.registerService(ContainerTypeDescription.class,new ContainerTypeDescription(ZooDiscoveryContainerInstantiator.NAME+".advertiser",new ZooDiscoveryContainerInstantiator(),"Zookeeper Discovery Advertiser Container"), null); + ctxt.registerService(ContainerTypeDescription.class,new ContainerTypeDescription(ZooDiscoveryContainerInstantiator.NAME+".locator",new ZooDiscoveryContainerInstantiator(),"Zookeeper Discovery Locator Container"), null); + } + }); + final Properties props = new Properties(); props.put(IDiscoveryLocator.CONTAINER_NAME, ZooDiscoveryContainerInstantiator.NAME); props.put(IDiscoveryAdvertiser.CONTAINER_NAME, ZooDiscoveryContainerInstantiator.NAME); diff --git a/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/core/ZooDiscoveryNamespace.java b/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/core/ZooDiscoveryNamespace.java index a6e5339a5..bc15ecb60 100644 --- a/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/core/ZooDiscoveryNamespace.java +++ b/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/core/ZooDiscoveryNamespace.java @@ -26,7 +26,7 @@ public class ZooDiscoveryNamespace extends Namespace { public static final String NAME = "ecf.namespace.zoodiscovery"; //$NON-NLS-1$ public ZooDiscoveryNamespace() { - super(NAME, "ZooKeeper Based Discovery Namespace"); //$NON-NLS-1$ + super(NAME, "ZooKeeper Discovery Namespace"); //$NON-NLS-1$ } public ID createInstance(Object[] parameters) throws IDCreateException { -- cgit v1.2.3