ECF API Refactoring |
||||||||||||||||||||||||||
ECF Core Bundle Split into 3 Bundles |
Previously, there was one core ECF bundle org.eclipse.ecf. This bundle was approximately 150K of code. In response to dev mailing list postings about ECF code size and applicability in multiple runtime environments we went about refactoring the ECF core plugins so that there was less code, and less code was required for other ECF APIs (like filetransfer, datashare, discovery, remoteservices).
There are now two core plugins: org.eclipse.ecf.identity and org.eclipse.ecf. org.eclipse.ecf depends upon org.eclipse.ecf.identity.
NOTE: One consequence of this refactoring is that the shared object API interfaces and classes (ISharedObject, ISharedObjectContainer, etc) that were present in the org.eclipse.ecf.core package are now no longer in that package. These classes can, however, be found in the org.eclipse.ecf.core.sharedobject package, which is now in the org.eclipse.ecf.sharedobject plugin (the org.eclipse.ecf.core.sharedobject project). In most cases, adding the org.eclipse.ecf.sharedobject plugin to list of your plugin's dependencies and then having Eclipse "Add Import" or "Organize Imports" should fix with new package names. | |||||||||||||||||||||||||
ECF Core and API plugins Now Able to Run on CDC 1.0/Foundation 1.0 Execution Environments |
The following plugins are now able to run on a minimum of the CDC 1.0/Foundation 1.0 execution environment:
| |||||||||||||||||||||||||
Package Changes for ecf.core.identity |
|
|||||||||||||||||||||||||
Package Changes for ecf.core, ecf.core.events, ecf.core.security, ecf.core.provider, ecf.core.util |
Many of the classes previously in these packages have moved to the org.eclipse.ecf.sharedobject bundle. The classes are now in the following packages in that bundle: ecf.core.sharedobject, ecf.core.sharedobject.events, ecf.core.sharedobject.provider, ecf.core.sharedobject.security, and ecf.core.sharedobject.util. To use the classes it's now necessary to include (via Require-Bundle or Import-Package) from the org.eclipse.ecf.sharedobject bundle. | |||||||||||||||||||||||||
Extension Point Changes |
Previously there were four extension points defined in the org.eclipse.ecf bundle: org.eclipse.ecf.namespace, org.eclipse.ecf.containerFactory, org.eclipse.ecf.connectionFactory, org.eclipse.ecf.startup, and org.eclipse.ecf.sharedObjectFactory. The following changes have been made to these extention points:
| |||||||||||||||||||||||||
Added org.eclipse.ecf.filetransfer plugin, removed org.eclipse.ecf.fileshare plugin |
For filetransfer, the plugin org.eclipse.ecf.filetransfer was created/added. Further, the org.eclipse.ecf.fileshare plugin was removed from the main distribution and will no longer be supported. | |||||||||||||||||||||||||
NEW ECF CONVENTION: Container adapter interfaces now use common naming |
Previously, the container adapter interfaces in the various extension APIs (e.g. discovery) did not have a common naming convention. For example, org.eclipse.ecf.discovery.IDiscoveryContainer, or org.eclipse.ecf.datashare.IChannelContainer. Now, all of these adapter interfaces have the convention of I<type>ContainerAdapter.class. So, for example, org.eclipse.ecf.discovery.IDiscoveryContainer.class is now called org.eclipse.ecf.discovery.IDiscoveryContainerAdapter.class, and org.eclipse.ecf.datashare.IChannelContainer is now called org.eclipse.ecf.datashare.IChannelContainerAdapter. These interfaces are intended to be used as adapters for org.eclipse.ecf.core.IContainer instances, e.g.: IContainer container = ContainerFactory.getDefault().createContainer("type"); IDiscoveryContainerAdapter discovery = (IDiscoveryContainerAdapter) container.getAdapter(IDiscoveryContainerAdapter.class); | |||||||||||||||||||||||||
Moved classes to *.internal* names and fixed other naming conventions |
In accord with the Eclipse Platform naming conventions, a number of classes and interfaces previously exposed are now in internal packages with names of the form org.eclipse.ecf.internal.*. These packages are further marked as x-internal:=true in the Export-Packages section within MANIFEST.MF. | |||||||||||||||||||||||||
org.eclipse.ecf.core.util.ECFException now inherits from CoreException |
org.eclipse.ecf.core.util.ECFException formerly inherited from java.lang.Exception. It now inherits from org.eclipse.core.runtime.CoreException. This should allow ECFException to run on the CDC 1.0/Foundation 1.0 execution environment, as that execution environment does not support java.lang.Exception constructors: Exception(Throwable) and Exception(String,Throwable) | |||||||||||||||||||||||||
Add 'removeListener' methods |
Added 'removeListener' methods to org.eclipse.ecf.presence.chat.IChatRoomContainer and org.eclipse.ecf.presence.IPresenceContainer. See bug #160968. | |||||||||||||||||||||||||
Moved org.eclipse.ecf.presence.IInvitationListener |
Moved (in org.eclipse.ecf.presence API) access to IInvitationListener to IChatRoomManager rather than IPresenceContainer. See bug #160137. | |||||||||||||||||||||||||
Allowed extending org.eclipse.ecf.provider.generic.ClientSOContainer for authentication |
Streamlined handling of creating/passing in connect data for new kind of authentication. See bug #150398. | |||||||||||||||||||||||||
Added query methods to org.eclipse.ecf.core.ContainerTypeDescription |
Two methods were added to org.eclipse.ecf.core.ContainerTypeDescription. These two methods are ContainerTypeDescription.getSupportedAdapterTypes(), and ContainerTypeDescription.getSupportedParameterTypes(). These two methods are available so that client code can inspect the adapter types and parameter types appropriate for a given IContainer instance before it is actually created. See bug #164154. | |||||||||||||||||||||||||
Removed URI references from discovery API |
Removed references to java.net.URI class from org.eclipse.ecf.discovery plugin. | |||||||||||||||||||||||||
Changed method names in org.eclipse.ecf.presence API |
Changed a number of method names in org.eclipse.ecf.presence API for clarity and consistency. For example, IPresenceContainerAdapter.removeSubscripionListener -> IPresenceContainerAdapter.removeRosterSubscriptionListener | |||||||||||||||||||||||||
Changed exception names |
Exception class names from *InstantiationException to *CreateException. For example, IDInstantiation exception is now IDCreateException. ContainerInstantiationException is now ContainerCreateException. | |||||||||||||||||||||||||
Changed method signature for IContainer.addListener |
The method signature for IContainer.addListener(IContainerListener listener, String filter) has changed to IContainer.addListener(IContainerListener listener) |