Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/.settings/org.eclipse.jdt.core.prefs144
-rw-r--r--compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.classpath14
-rw-r--r--compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.settings/org.eclipse.jdt.core.prefs186
-rw-r--r--compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/BasicTopologyManager.java316
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/book.css2
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/gettingstarted/default_style.css36
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/intro/css/tutorials.css8
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/tocapi.xml224
-rw-r--r--examples/bundles/org.eclipse.ecf.example.pubsub/.settings/org.eclipse.jdt.core.prefs144
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/.settings/org.eclipse.jdt.core.prefs148
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/.settings/org.eclipse.jdt.core.prefs148
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.classpath14
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.project56
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.jdt.core.prefs16
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.pde.core.prefs8
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/build.properties12
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.properties22
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.xml40
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.trivial/bundle.properties22
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.classpath6
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.project56
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.jdt.core.prefs16
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.pde.core.prefs8
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/build.properties12
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml68
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product102
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product120
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product112
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product122
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product122
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product126
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product142
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product140
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product114
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product124
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product122
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product116
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product138
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product126
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/.settings/org.eclipse.jdt.core.prefs136
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.webinar/.settings/org.eclipse.jdt.core.prefs134
-rw-r--r--framework/bundles/org.eclipse.ecf.discovery.ui.edit/src/org/eclipse/ecf/discovery/ui/model/ItemProviderWithStatusLineAdapter.java66
-rw-r--r--framework/bundles/org.eclipse.ecf.filetransfer/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--framework/bundles/org.eclipse.ecf.identity/.settings/.api_filters22
-rw-r--r--framework/bundles/org.eclipse.ecf.identity/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--framework/bundles/org.eclipse.ecf.presence/.settings/org.eclipse.jdt.core.prefs716
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/.settings/org.eclipse.jdt.core.prefs708
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.core.prefs738
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs120
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/RpcClientService.java262
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/TrivialParameterServializer.java68
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice.ui/launch/ECF Discovery and Remote Service UI.launch66
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice/.settings/.api_filters62
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice/.settings/org.eclipse.jdt.core.prefs702
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/IRemoteServiceCallPolicy.java74
-rw-r--r--framework/bundles/org.eclipse.ecf.sharedobject/.classpath14
-rw-r--r--framework/bundles/org.eclipse.ecf.sharedobject/.settings/org.eclipse.jdt.core.prefs706
-rw-r--r--framework/bundles/org.eclipse.ecf.ssl/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--framework/bundles/org.eclipse.ecf.ui.capabilities/.classpath12
-rw-r--r--framework/bundles/org.eclipse.ecf.ui.capabilities/.settings/org.eclipse.jdt.core.prefs14
-rw-r--r--framework/bundles/org.eclipse.ecf/.settings/org.eclipse.jdt.core.prefs714
-rw-r--r--framework/bundles/org.eclipse.ecf/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--framework/bundles/org.eclipse.ecf/javadoc.xml96
-rw-r--r--framework/bundles/org.eclipse.ecf/schema/containerFactory.exsd624
-rw-r--r--incubation/bundles/org.eclipse.ecf.bulletinboard/.classpath14
-rw-r--r--incubation/bundles/org.eclipse.ecf.bulletinboard/.settings/org.eclipse.jdt.core.prefs126
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.classpath14
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.project56
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.jdt.core.prefs156
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.core.prefs8
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.prefs66
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/build.properties10
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/endpointdescription1.xml98
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/plugin.properties20
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/Activator.java192
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionDiscoveryContainerAdapter.java390
-rw-r--r--incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionParser.java1584
-rw-r--r--incubation/bundles/org.eclipse.ecf.remoteservice.apt.java6/.settings/org.eclipse.jdt.core.prefs154
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/.classpath14
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/.options32
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.jdt.core.prefs14
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.pde.core.prefs8
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/META-INF/MANIFEST.MF46
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/about.html54
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/build.properties16
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.properties24
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.xml20
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FileChangeMessage.java254
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FolderChangeMessage.java162
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/Message.java94
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourceChangeMessage.java244
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesShare.java514
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesSynchronizationStrategy.java148
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StartMessage.java90
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StopMessage.java58
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/SyncResourcesCore.java656
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/sync/resources/core/IResourceChange.java110
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.ui/.classpath14
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.ui/.settings/org.eclipse.jdt.core.prefs14
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.ui/build.properties12
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.ui/plugin.xml258
-rw-r--r--incubation/bundles/org.eclipse.ecf.sync.resources.ui/src/org/eclipse/ecf/internal/sync/ui/resources/SyncResourcesUI.java696
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.classpath12
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.project56
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.jdt.core.prefs16
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.pde.core.prefs8
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/build.properties8
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.options62
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs162
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs8
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs66
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/Activator.java648
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/DebugOptions.java96
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/EndpointDescriptionParser.java1516
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/IDUtil.java160
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/LogUtility.java214
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java812
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractConsumerContainerSelector.java452
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractContainerSelector.java510
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractHostContainerSelector.java772
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java822
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractTopologyManager.java870
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ConsumerContainerSelector.java142
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescription.java140
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescriptionFactory.java280
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionAdvertiser.java282
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java1886
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionParseException.java74
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java112
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionWriter.java664
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/HostContainerSelector.java184
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IConsumerContainerSelector.java104
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionAdvertiser.java160
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionReader.java106
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IHostContainerSelector.java158
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IServiceInfoFactory.java176
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteConstants.java372
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteReferenceNotFoundException.java136
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java4358
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdminEvent.java92
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/SelectContainerException.java64
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ServiceInfoFactory.java452
-rw-r--r--osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.classpath14
-rw-r--r--osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs166
-rw-r--r--protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.core.prefs200
-rw-r--r--protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.launching.prefs6
-rw-r--r--protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.pde.prefs66
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/.checkstyle12
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/.settings/org.eclipse.wst.validation.prefs12
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/maven-site-jslp.vm704
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/runtimeTests/META-INF/MANIFEST.MF40
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/SelfDiscoveryTest.java320
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/TestActivator.java324
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/impl/package.html4
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/package.html4
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/main/resources/LICENSE.txt52
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/index.xml60
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/userguide.xml194
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/index.xml114
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/modularity.xml98
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/userguide.xml290
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/properties.xml258
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/security.xml86
-rw-r--r--protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/using.xml112
-rw-r--r--protocols/bundles/org.eclipse.ecf.protocol.bittorrent/.settings/org.eclipse.jdt.ui.prefs6
-rw-r--r--protocols/bundles/org.eclipse.ecf.protocol.bittorrent/about.html58
-rw-r--r--protocols/bundles/org.eclipse.ecf.protocol.msn/.classpath14
-rw-r--r--protocols/bundles/org.eclipse.ecf.protocol.msn/.settings/org.eclipse.jdt.core.prefs698
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs708
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties20
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath14
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java344
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java254
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath14
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project56
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs14
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs6
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties8
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath14
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore2
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options32
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project68
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs700
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs6
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs122
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs54
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF72
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html528
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt404
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties22
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties22
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml64
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java260
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java136
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java92
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java46
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java264
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java352
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java154
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java60
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java48
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java92
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties30
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java144
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java158
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java754
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java94
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java2240
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java48
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java114
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java128
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs714
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs194
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs708
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java84
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java48
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.msn/.classpath14
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs130
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath14
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs692
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs188
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java170
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties110
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java648
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java234
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java288
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java1044
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java116
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs154
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java330
-rw-r--r--releng/features/org.eclipse.ecf.core.featurepatch/feature.xml166
-rw-r--r--releng/features/org.eclipse.ecf.core/feature.xml586
-rw-r--r--releng/features/org.eclipse.ecf.datashare.feature/feature.xml82
-rw-r--r--releng/features/org.eclipse.ecf.discovery.dnssd.feature/feature.xml76
-rw-r--r--releng/features/org.eclipse.ecf.discovery.dnssd.feature/org.eclipse.ecf.dnssd.mspec28
-rw-r--r--releng/features/org.eclipse.ecf.discovery.feature/feature.xml82
-rw-r--r--releng/features/org.eclipse.ecf.discovery.feature/org.eclipse.ecf.discovery.mspec32
-rw-r--r--releng/features/org.eclipse.ecf.discovery.jmdns.feature/feature.xml62
-rw-r--r--releng/features/org.eclipse.ecf.discovery.jmdns.feature/org.eclipse.ecf.jmdns.mspec28
-rw-r--r--releng/features/org.eclipse.ecf.discovery.slp.feature/feature.xml76
-rw-r--r--releng/features/org.eclipse.ecf.discovery.slp.feature/org.eclipse.ecf.slp.mspec30
-rw-r--r--releng/features/org.eclipse.ecf.discovery.zookeeper.feature/feature.xml108
-rw-r--r--releng/features/org.eclipse.ecf.discovery.zookeeper.feature/org.eclipse.ecf.zookeeper.mspec28
-rw-r--r--releng/features/org.eclipse.ecf.eventadmin.examples.feature/feature.xml62
-rw-r--r--releng/features/org.eclipse.ecf.eventadmin.feature/feature.xml82
-rw-r--r--releng/features/org.eclipse.ecf.examples/feature.xml198
-rw-r--r--releng/features/org.eclipse.ecf.filetransfer.feature/feature.xml128
-rw-r--r--releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/.project34
-rw-r--r--releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/build.properties28
-rw-r--r--releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/feature.xml126
-rw-r--r--releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/.project34
-rw-r--r--releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/build.properties28
-rw-r--r--releng/features/org.eclipse.ecf.osgi.services.feature/feature.xml104
-rw-r--r--releng/features/org.eclipse.ecf.osgi.services.feature/org.eclipse.ecf.osgi.services.mspec26
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.examples.feature/feature.xml146
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.feature/feature.xml118
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.feature/org.eclipse.ecf.remoteservice.mspec32
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.rest.feature/feature.xml118
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.rest.feature/org.eclipse.ecf.remoteservice.rest.mspec30
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/feature.xml90
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/org.eclipse.ecf.remoteservice.rosgi.mspec34
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.rpc.feature/.project34
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.rpc.feature/build.properties26
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.rpc.feature/feature.xml118
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.rpc.feature/org.eclipse.ecf.remoteservice.rpc.mspec28
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.sdk.feature/feature.xml168
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.sdk.feature/sourceTemplateFeature/feature.xml168
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.soa.feature/feature.xml126
-rw-r--r--releng/features/org.eclipse.ecf.remoteservice.soap.feature/feature.xml62
-rw-r--r--releng/features/org.eclipse.ecf.sdk/feature.xml80
-rw-r--r--releng/features/org.eclipse.ecf.tests.feature/feature.xml332
-rw-r--r--releng/features/org.eclipse.ecf.tests.filetransfer.feature/feature.xml136
-rw-r--r--releng/features/org.eclipse.ecf.xmpp.feature/feature.xml100
-rw-r--r--releng/features/org.eclipse.ecf.xmpp.feature/org.eclipse.ecf.xmpp.mspec30
-rw-r--r--releng/org.eclipse.ecf.releng.bm/ECF3-6Baseline.target34
-rw-r--r--releng/org.eclipse.ecf.releng.bm/ecf.rmap234
-rw-r--r--server-side/bundles/org.eclipse.ecf.remoteservice.eventadmin/.settings/.api_filters22
-rw-r--r--server-side/bundles/org.eclipse.ecf.server.generic/launchconfigs/Generic Client Java App.launch24
-rw-r--r--server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractSSLGenericServer.java133
-rw-r--r--server-side/examples/bundles/org.eclipse.ecf.examples.remoteservices.server/readme.txt2
-rw-r--r--server-side/examples/bundles/org.eclipse.ecf.examples.updatesite.server/launch/Remote Updatesite Server.launch48
-rw-r--r--server-side/features/org.eclipse.ecf.server.feature/feature.xml62
-rw-r--r--server-side/features/org.eclipse.ecf.server.generic.feature/feature.xml76
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.datashare/.classpath14
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.datashare/.settings/org.eclipse.jdt.core.prefs116
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.classpath14
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.project56
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.jdt.core.prefs14
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.pde.core.prefs6
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/build.properties8
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/src/org/eclipse/ecf/tests/filetransfer/httpclient/HttpClientGetPortFromURLTest.java154
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.classpath14
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.project56
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs14
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.pde.core.prefs6
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/build.properties8
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/src/org/eclipse/ecf/tests/filetransfer/httpclient4/HttpClientGetPortFromURLTest.java154
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/.settings/.api_filters58
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient.launch1030
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4 - No Proxy API.launch1030
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4.launch1030
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection - No Proxy API.launch1030
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection.launch1030
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.httpclient.launch1182
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.launch1182
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.httpservice/.settings/org.eclipse.jdt.core.prefs148
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.classpath14
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.project56
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs146
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs8
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs66
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/build.properties16
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/bundle.properties20
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-extra.xml52
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-minimal.xml22
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-extra.xml50
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-minimal.xml20
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionEDEFBundleGeneratorTest.java168
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionWriterTest.java180
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractMetadataFactoryTest.java398
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/Activator.java96
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EDEFBundleGenerator.java134
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointDescriptionFactoryTest.java86
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointListenerTest.java76
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/ServiceInfoFactoryTest.java88
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.protocol.msn/about.html58
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.host.launch62
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.launch84
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rest/src/org/eclipse/ecf/tests/remoteservice/rest/RestPutServiceTest.java164
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs20
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/org.eclipse.ecf.tests.remoteservice.rpc.launch84
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/apache/xmlrpc/webserver/XmlRpcServlet.properties18
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/HttpServiceConnector.java116
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/CalcHandler.java42
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/EchoHandler.java40
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/AbstractRpcTestCase.java94
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcConstants.java74
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcContainerTest.java106
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcNamespaceTest.java86
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceAdapterTest.java198
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceTest.java286
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/common/IEcho.java30
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.server.generic/.settings/org.eclipse.jdt.core.prefs148
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.sync/.project68
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.jdt.core.prefs14
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.pde.core.prefs8
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.sync/about.html54
351 files changed, 35073 insertions, 34940 deletions
diff --git a/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/.settings/org.eclipse.jdt.core.prefs b/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/.settings/org.eclipse.jdt.core.prefs
index f7364e535..fc805756a 100644
--- a/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/.settings/org.eclipse.jdt.core.prefs
+++ b/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/.settings/org.eclipse.jdt.core.prefs
@@ -1,72 +1,72 @@
-#Fri Oct 15 17:06:25 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Fri Oct 15 17:06:25 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.classpath b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.classpath
index d62b365d0..6f3b481ac 100644
--- a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.classpath
+++ b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.settings/org.eclipse.jdt.core.prefs b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.settings/org.eclipse.jdt.core.prefs
index 4a864fa86..9055fd6d0 100644
--- a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.settings/org.eclipse.jdt.core.prefs
+++ b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/.settings/org.eclipse.jdt.core.prefs
@@ -1,93 +1,93 @@
-#Sun Feb 20 22:34:10 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Sun Feb 20 22:34:10 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/BasicTopologyManager.java b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/BasicTopologyManager.java
index 741fc230d..11df40734 100644
--- a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/BasicTopologyManager.java
+++ b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/BasicTopologyManager.java
@@ -1,158 +1,158 @@
-package org.eclipse.ecf.internal.osgi.services.distribution;
-
-import java.util.Collection;
-import java.util.Dictionary;
-import java.util.Properties;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceEvent;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.framework.hooks.service.EventHook;
-import org.osgi.service.remoteserviceadmin.EndpointListener;
-
-public class BasicTopologyManager extends AbstractTopologyManager implements
- EventHook, EndpointListener {
-
- private static final boolean allowLoopbackReference = new Boolean(
- System.getProperty(
- "org.eclipse.ecf.osgi.services.discovery.allowLoopbackReference", //$NON-NLS-1$
- "false")).booleanValue(); //$NON-NLS-1$
-
- private static final String endpointListenerScope = System
- .getProperty("org.eclipse.ecf.osgi.services.discovery.endpointListenerScope"); //$NON-NLS-1$
-
- private boolean exportRegisteredSvcs = new Boolean(
- System.getProperty(
- "org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcs", "true")).booleanValue(); //$NON-NLS-1$ //$NON-NLS-2$
-
- private String exportRegisteredSvcsClassname = System
- .getProperty("org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcsClassname"); //$NON-NLS-1$
-
- private String exportRegisteredSvcsFilter = System
- .getProperty(
- "org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcsFilter", "(service.exported.interfaces=*)"); //$NON-NLS-1$ //$NON-NLS-2$
-
- private ServiceRegistration endpointListenerRegistration;
-
- private ServiceRegistration eventHookRegistration;
-
- public BasicTopologyManager(BundleContext context) {
- super(context);
- }
-
- public void setExportRegisteredSvcs(boolean val) {
- this.exportRegisteredSvcs = val;
- }
-
- public void setExportRegisteredSvcsClassname(String classname) {
- this.exportRegisteredSvcsClassname = classname;
- }
-
- public void setExportRegisteredSvcsFilter(String filter) {
- this.exportRegisteredSvcsFilter = filter;
- }
-
- private String getEndpointListenerScope() {
- // If it's set via system property, then simply use it
- if (endpointListenerScope != null)
- return endpointListenerScope;
- // Otherwise create it
- // if allowLoopbackReference is true, then return a filter to match all
- // endpoint description ids
- StringBuffer elScope = new StringBuffer("("); //$NON-NLS-1$
- if (allowLoopbackReference) {
- elScope.append(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID);
- elScope.append("=*"); //$NON-NLS-1$
- } else {
- // filter so that local framework uuid is not the same as local
- // value
- elScope.append("!("); //$NON-NLS-1$
- elScope.append(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID);
- elScope.append("="); //$NON-NLS-1$
- elScope.append(getFrameworkUUID());
- elScope.append(")"); //$NON-NLS-1$
- }
- elScope.append(")"); //$NON-NLS-1$
- String result = elScope.toString();
- trace("getEndpointListenerScope", "endpointListenerScope=" + result); //$NON-NLS-1$ //$NON-NLS-2$
- return result;
- }
-
- public void exportRegisteredServices(String exportRegisteredSvcsClassname,
- String exportRegisteredSvcsFilter) {
- ServiceReference[] existingServiceRefs = null;
- try {
- existingServiceRefs = getContext().getAllServiceReferences(
- exportRegisteredSvcsClassname, exportRegisteredSvcsFilter);
- } catch (InvalidSyntaxException e) {
- logError(
- "exportRegisteredServices", //$NON-NLS-1$
- "Could not retrieve existing service references for exportRegisteredSvcsClassname=" //$NON-NLS-1$
- + exportRegisteredSvcsClassname
- + " and exportRegisteredSvcsFilter=" //$NON-NLS-1$
- + exportRegisteredSvcsFilter, e);
- }
- // Now export as if the service was registering right now...i.e. perform
- // export
- if (existingServiceRefs != null)
- for (int i = 0; i < existingServiceRefs.length; i++)
- // This method will check the service properties for
- // remote service props. If previously registered as a
- // remote service, it will export the remote
- // service if not it will simply return/skip
- handleServiceRegistering(existingServiceRefs[i]);
- }
-
- public void start() throws Exception {
-
- // Register as EndpointListener, so that it gets notified when Endpoints
- // are discovered
- Properties props = new Properties();
- props.put(
- org.osgi.service.remoteserviceadmin.EndpointListener.ENDPOINT_LISTENER_SCOPE,
- getEndpointListenerScope());
- endpointListenerRegistration = getContext().registerService(
- EndpointListener.class.getName(), this, (Dictionary) props);
-
- // Register as EventHook, so that we get notified when remote services
- // are registered
- eventHookRegistration = getContext().registerService(
- EventHook.class.getName(), this, null);
-
- // Lastly, export any previously registered remote services
- if (exportRegisteredSvcs)
- exportRegisteredServices(exportRegisteredSvcsClassname,
- exportRegisteredSvcsFilter);
- }
-
- public void endpointAdded(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpoint,
- String matchedFilter) {
- handleEndpointAdded(endpoint, matchedFilter);
- }
-
- public void endpointRemoved(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpoint,
- String matchedFilter) {
- handleEndpointRemoved(endpoint, matchedFilter);
- }
-
- public void event(ServiceEvent event, Collection contexts) {
- handleEvent(event, contexts);
- }
-
- public void close() {
- if (eventHookRegistration != null) {
- eventHookRegistration.unregister();
- eventHookRegistration = null;
- }
- if (endpointListenerRegistration != null) {
- endpointListenerRegistration.unregister();
- endpointListenerRegistration = null;
- }
- super.close();
- }
-
-}
+package org.eclipse.ecf.internal.osgi.services.distribution;
+
+import java.util.Collection;
+import java.util.Dictionary;
+import java.util.Properties;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.framework.hooks.service.EventHook;
+import org.osgi.service.remoteserviceadmin.EndpointListener;
+
+public class BasicTopologyManager extends AbstractTopologyManager implements
+ EventHook, EndpointListener {
+
+ private static final boolean allowLoopbackReference = new Boolean(
+ System.getProperty(
+ "org.eclipse.ecf.osgi.services.discovery.allowLoopbackReference", //$NON-NLS-1$
+ "false")).booleanValue(); //$NON-NLS-1$
+
+ private static final String endpointListenerScope = System
+ .getProperty("org.eclipse.ecf.osgi.services.discovery.endpointListenerScope"); //$NON-NLS-1$
+
+ private boolean exportRegisteredSvcs = new Boolean(
+ System.getProperty(
+ "org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcs", "true")).booleanValue(); //$NON-NLS-1$ //$NON-NLS-2$
+
+ private String exportRegisteredSvcsClassname = System
+ .getProperty("org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcsClassname"); //$NON-NLS-1$
+
+ private String exportRegisteredSvcsFilter = System
+ .getProperty(
+ "org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcsFilter", "(service.exported.interfaces=*)"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ private ServiceRegistration endpointListenerRegistration;
+
+ private ServiceRegistration eventHookRegistration;
+
+ public BasicTopologyManager(BundleContext context) {
+ super(context);
+ }
+
+ public void setExportRegisteredSvcs(boolean val) {
+ this.exportRegisteredSvcs = val;
+ }
+
+ public void setExportRegisteredSvcsClassname(String classname) {
+ this.exportRegisteredSvcsClassname = classname;
+ }
+
+ public void setExportRegisteredSvcsFilter(String filter) {
+ this.exportRegisteredSvcsFilter = filter;
+ }
+
+ private String getEndpointListenerScope() {
+ // If it's set via system property, then simply use it
+ if (endpointListenerScope != null)
+ return endpointListenerScope;
+ // Otherwise create it
+ // if allowLoopbackReference is true, then return a filter to match all
+ // endpoint description ids
+ StringBuffer elScope = new StringBuffer("("); //$NON-NLS-1$
+ if (allowLoopbackReference) {
+ elScope.append(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID);
+ elScope.append("=*"); //$NON-NLS-1$
+ } else {
+ // filter so that local framework uuid is not the same as local
+ // value
+ elScope.append("!("); //$NON-NLS-1$
+ elScope.append(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID);
+ elScope.append("="); //$NON-NLS-1$
+ elScope.append(getFrameworkUUID());
+ elScope.append(")"); //$NON-NLS-1$
+ }
+ elScope.append(")"); //$NON-NLS-1$
+ String result = elScope.toString();
+ trace("getEndpointListenerScope", "endpointListenerScope=" + result); //$NON-NLS-1$ //$NON-NLS-2$
+ return result;
+ }
+
+ public void exportRegisteredServices(String exportRegisteredSvcsClassname,
+ String exportRegisteredSvcsFilter) {
+ ServiceReference[] existingServiceRefs = null;
+ try {
+ existingServiceRefs = getContext().getAllServiceReferences(
+ exportRegisteredSvcsClassname, exportRegisteredSvcsFilter);
+ } catch (InvalidSyntaxException e) {
+ logError(
+ "exportRegisteredServices", //$NON-NLS-1$
+ "Could not retrieve existing service references for exportRegisteredSvcsClassname=" //$NON-NLS-1$
+ + exportRegisteredSvcsClassname
+ + " and exportRegisteredSvcsFilter=" //$NON-NLS-1$
+ + exportRegisteredSvcsFilter, e);
+ }
+ // Now export as if the service was registering right now...i.e. perform
+ // export
+ if (existingServiceRefs != null)
+ for (int i = 0; i < existingServiceRefs.length; i++)
+ // This method will check the service properties for
+ // remote service props. If previously registered as a
+ // remote service, it will export the remote
+ // service if not it will simply return/skip
+ handleServiceRegistering(existingServiceRefs[i]);
+ }
+
+ public void start() throws Exception {
+
+ // Register as EndpointListener, so that it gets notified when Endpoints
+ // are discovered
+ Properties props = new Properties();
+ props.put(
+ org.osgi.service.remoteserviceadmin.EndpointListener.ENDPOINT_LISTENER_SCOPE,
+ getEndpointListenerScope());
+ endpointListenerRegistration = getContext().registerService(
+ EndpointListener.class.getName(), this, (Dictionary) props);
+
+ // Register as EventHook, so that we get notified when remote services
+ // are registered
+ eventHookRegistration = getContext().registerService(
+ EventHook.class.getName(), this, null);
+
+ // Lastly, export any previously registered remote services
+ if (exportRegisteredSvcs)
+ exportRegisteredServices(exportRegisteredSvcsClassname,
+ exportRegisteredSvcsFilter);
+ }
+
+ public void endpointAdded(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpoint,
+ String matchedFilter) {
+ handleEndpointAdded(endpoint, matchedFilter);
+ }
+
+ public void endpointRemoved(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpoint,
+ String matchedFilter) {
+ handleEndpointRemoved(endpoint, matchedFilter);
+ }
+
+ public void event(ServiceEvent event, Collection contexts) {
+ handleEvent(event, contexts);
+ }
+
+ public void close() {
+ if (eventHookRegistration != null) {
+ eventHookRegistration.unregister();
+ eventHookRegistration = null;
+ }
+ if (endpointListenerRegistration != null) {
+ endpointListenerRegistration.unregister();
+ endpointListenerRegistration = null;
+ }
+ super.close();
+ }
+
+}
diff --git a/doc/bundles/org.eclipse.ecf.doc/book.css b/doc/bundles/org.eclipse.ecf.doc/book.css
index 59dfb5576..ad27301d7 100644
--- a/doc/bundles/org.eclipse.ecf.doc/book.css
+++ b/doc/bundles/org.eclipse.ecf.doc/book.css
@@ -1,4 +1,4 @@
-/******************************************************************************* * Copyright (c) 2001, 2005 IBM Corporation 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: * IBM Corporation - initial API and implementation *******************************************************************************/ @import "../PRODUCT_PLUGIN/book.css";
+/******************************************************************************* * Copyright (c) 2001, 2005 IBM Corporation 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: * IBM Corporation - initial API and implementation *******************************************************************************/ @import "../PRODUCT_PLUGIN/book.css";
span.control {
font-weight: bold;
}
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/gettingstarted/default_style.css b/doc/bundles/org.eclipse.ecf.doc/html/gettingstarted/default_style.css
index af2b27a89..e26fec758 100644
--- a/doc/bundles/org.eclipse.ecf.doc/html/gettingstarted/default_style.css
+++ b/doc/bundles/org.eclipse.ecf.doc/html/gettingstarted/default_style.css
@@ -1,18 +1,18 @@
-p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt}
-pre { font-family: "Courier New", Courier, mono; font-size: 10pt}
-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}
-code { font-family: "Courier New", Courier, mono; font-size: 10pt}
-sup { font-family: arial,helvetica,geneva; font-size: 10px}
-h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}
-li { font-family: arial, helvetica, geneva; font-size: 10pt}
-h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}
-body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect( ); margin-top: 5mm; margin-left: 3mm}
-.indextop { font-size: x-large;; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold}
-.indexsub { font-size: xx-small;; font-family: Arial, Helvetica, sans-serif; color: #8080FF}
-a.bar:link { text-decoration: none; color: #FFFFFF}
-a.bar:visited { color: #FFFFFF; text-decoration: none}
-a.bar:hover { color: #FFFFFF; text-decoration: underline}
-a.bar { color: #FFFFFF}
-.jump { font-size: smaller;; font-family: Arial, Helvetica, sans-serif; color: #8080FF ; font-style: normal; text-decoration: none}
-.jump:link { font-size: smaller;; font-family: Arial, Helvetica, sans-serif; color: #8080FF; text-decoration: none}
-.jump:hover { font-size: smaller;; font-family: Arial, Helvetica, sans-serif; color: #0000FF; text-decoration: underline; font-style: normal}
+p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt}
+pre { font-family: "Courier New", Courier, mono; font-size: 10pt}
+h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}
+code { font-family: "Courier New", Courier, mono; font-size: 10pt}
+sup { font-family: arial,helvetica,geneva; font-size: 10px}
+h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}
+li { font-family: arial, helvetica, geneva; font-size: 10pt}
+h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}
+body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect( ); margin-top: 5mm; margin-left: 3mm}
+.indextop { font-size: x-large;; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold}
+.indexsub { font-size: xx-small;; font-family: Arial, Helvetica, sans-serif; color: #8080FF}
+a.bar:link { text-decoration: none; color: #FFFFFF}
+a.bar:visited { color: #FFFFFF; text-decoration: none}
+a.bar:hover { color: #FFFFFF; text-decoration: underline}
+a.bar { color: #FFFFFF}
+.jump { font-size: smaller;; font-family: Arial, Helvetica, sans-serif; color: #8080FF ; font-style: normal; text-decoration: none}
+.jump:link { font-size: smaller;; font-family: Arial, Helvetica, sans-serif; color: #8080FF; text-decoration: none}
+.jump:hover { font-size: smaller;; font-family: Arial, Helvetica, sans-serif; color: #0000FF; text-decoration: underline; font-style: normal}
diff --git a/doc/bundles/org.eclipse.ecf.doc/intro/css/tutorials.css b/doc/bundles/org.eclipse.ecf.doc/intro/css/tutorials.css
index ee81f4439..58ab782eb 100644
--- a/doc/bundles/org.eclipse.ecf.doc/intro/css/tutorials.css
+++ b/doc/bundles/org.eclipse.ecf.doc/intro/css/tutorials.css
@@ -1,4 +1,4 @@
-a#orgeclipseecfdoc-scribbleshare img { background-image : url(images/ecf_intro.gif); }
-a#orgeclipseecfdoc-scribbleshare:hover img { background-image : url(images/ecf_intro_hov.gif);}
-a#orgeclipseecfdoc-ircbot img { background-image : url(images/ecf_intro.gif); }
-a#orgeclipseecfdoc-ircbot:hover img {background-image : url(images/ecf_intro_hov.gif);}
+a#orgeclipseecfdoc-scribbleshare img { background-image : url(images/ecf_intro.gif); }
+a#orgeclipseecfdoc-scribbleshare:hover img { background-image : url(images/ecf_intro_hov.gif);}
+a#orgeclipseecfdoc-ircbot img { background-image : url(images/ecf_intro.gif); }
+a#orgeclipseecfdoc-ircbot:hover img {background-image : url(images/ecf_intro_hov.gif);}
diff --git a/doc/bundles/org.eclipse.ecf.doc/tocapi.xml b/doc/bundles/org.eclipse.ecf.doc/tocapi.xml
index bc37666a1..d4efd5619 100644
--- a/doc/bundles/org.eclipse.ecf.doc/tocapi.xml
+++ b/doc/bundles/org.eclipse.ecf.doc/tocapi.xml
@@ -1,116 +1,116 @@
<toc label="API JavaDoc">
-args[0] is http://download.eclipse.org/rt/ecf/3.5Test/javadoc/package-list
-<topic label="org.eclipse.ecf.core" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/events/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.jobs" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/jobs/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.provider" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/provider/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.security" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/security/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.sharedobject" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.sharedobject.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/events/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.sharedobject.provider" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/provider/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.sharedobject.security" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/security/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.sharedobject.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/util/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.start" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/start/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.status" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/status/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.user" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/user/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/util/package-summary.html"/>
-<topic label="org.eclipse.ecf.core.util.reflection" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/util/reflection/package-summary.html"/>
-<topic label="org.eclipse.ecf.datashare" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/package-summary.html"/>
-<topic label="org.eclipse.ecf.datashare.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/events/package-summary.html"/>
-<topic label="org.eclipse.ecf.datashare.mergeable" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/mergeable/package-summary.html"/>
-<topic label="org.eclipse.ecf.datashare.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/service/package-summary.html"/>
-<topic label="org.eclipse.ecf.discovery" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/discovery/package-summary.html"/>
-<topic label="org.eclipse.ecf.discovery.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/discovery/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.discovery.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/discovery/service/package-summary.html"/>
-<topic label="org.eclipse.ecf.docshare" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/docshare/package-summary.html"/>
-<topic label="org.eclipse.ecf.docshare.menu" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/docshare/menu/package-summary.html"/>
-<topic label="org.eclipse.ecf.docshare.messages" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/docshare/messages/package-summary.html"/>
-<topic label="org.eclipse.ecf.example.clients" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/example/clients/package-summary.html"/>
-<topic label="org.eclipse.ecf.example.clients.applications" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/example/clients/applications/package-summary.html"/>
-<topic label="org.eclipse.ecf.examples.loadbalancing" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/loadbalancing/package-summary.html"/>
-<topic label="org.eclipse.ecf.examples.provider.trivial" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/provider/trivial/package-summary.html"/>
-<topic label="org.eclipse.ecf.examples.remoteservices.common" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/remoteservices/common/package-summary.html"/>
-<topic label="org.eclipse.ecf.examples.remoteservices.hello" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/remoteservices/hello/package-summary.html"/>
-<topic label="org.eclipse.ecf.examples.remoteservices.hello.impl" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/remoteservices/hello/impl/package-summary.html"/>
-<topic label="org.eclipse.ecf.filetransfer" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/package-summary.html"/>
-<topic label="org.eclipse.ecf.filetransfer.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/events/package-summary.html"/>
-<topic label="org.eclipse.ecf.filetransfer.events.socket" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/events/socket/package-summary.html"/>
-<topic label="org.eclipse.ecf.filetransfer.events.socketfactory" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/events/socketfactory/package-summary.html"/>
-<topic label="org.eclipse.ecf.filetransfer.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.filetransfer.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/service/package-summary.html"/>
-<topic label="org.eclipse.ecf.osgi.services.distribution" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/osgi/services/distribution/package-summary.html"/>
-<topic label="org.eclipse.ecf.osgi.services.remoteserviceadmin" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/osgi/services/remoteserviceadmin/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.bot" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/bot/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.bot.application" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/bot/application/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.bot.impl" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/bot/impl/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.chatroom" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/chatroom/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.history" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/history/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.im" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/im/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.roster" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/roster/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.search" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/search/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.search.message" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/search/message/package-summary.html"/>
-<topic label="org.eclipse.ecf.presence.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/service/package-summary.html"/>
-<topic label="org.eclipse.ecf.protocol.bittorrent" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/protocol/bittorrent/package-summary.html"/>
-<topic label="org.eclipse.ecf.protocol.msn" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/protocol/msn/package-summary.html"/>
-<topic label="org.eclipse.ecf.protocol.msn.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/protocol/msn/events/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.comm" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/comm/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.comm.tcp" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/comm/tcp/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.datashare" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/datashare/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.datashare.nio" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/datashare/nio/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.discovery" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/discovery/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.dnssd" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/dnssd/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.filetransfer" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.filetransfer.browse" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/browse/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.filetransfer.events.socket" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/events/socket/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.filetransfer.httpclient" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/httpclient/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.filetransfer.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.filetransfer.outgoing" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/outgoing/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.filetransfer.retrieve" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/retrieve/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.filetransfer.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/util/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.generic" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/generic/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.generic.gmm" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/generic/gmm/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.irc.bot" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/irc/bot/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.irc.bot.handler" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/irc/bot/handler/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.jslp.container" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/jslp/container/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.jslp.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/jslp/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.local.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/local/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.r_osgi.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/r_osgi/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.remoteservice.generic" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/remoteservice/generic/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/util/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.xmpp" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/xmpp/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.xmpp.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/xmpp/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.zookeeper" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/zookeeper/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.zookeeper.core" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/zookeeper/core/package-summary.html"/>
-<topic label="org.eclipse.ecf.provider.zookeeper.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/zookeeper/util/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.client" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/client/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.eventadmin" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/eventadmin/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/events/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.rest" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.rest.client" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/client/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.rest.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.rest.synd" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/synd/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.rest.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/util/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.rpc" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rpc/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.rpc.client" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rpc/client/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.rpc.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rpc/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.soap.client" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/soap/client/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.soap.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/soap/identity/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/util/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservice.util.tracker" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/util/tracker/package-summary.html"/>
-<topic label="org.eclipse.ecf.remoteservices.rest.rss" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservices/rest/rss/package-summary.html"/>
-<topic label="org.eclipse.ecf.server" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/server/package-summary.html"/>
-<topic label="org.eclipse.ecf.server.generic" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/server/generic/package-summary.html"/>
-<topic label="org.eclipse.ecf.server.generic.app" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/server/generic/app/package-summary.html"/>
-<topic label="org.eclipse.ecf.storage" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/storage/package-summary.html"/>
-<topic label="org.eclipse.ecf.sync" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/sync/package-summary.html"/>
-<topic label="org.eclipse.ecf.sync.doc" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/sync/doc/package-summary.html"/>
-<topic label="org.eclipse.ecf.telephony.call" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/telephony/call/package-summary.html"/>
-<topic label="org.eclipse.ecf.telephony.call.dtmf" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/telephony/call/dtmf/package-summary.html"/>
-<topic label="org.eclipse.ecf.telephony.call.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/telephony/call/events/package-summary.html"/>
-<topic label="org.eclipse.ecf.telephony.call.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/telephony/call/service/package-summary.html"/>
+args[0] is http://download.eclipse.org/rt/ecf/3.5Test/javadoc/package-list
+<topic label="org.eclipse.ecf.core" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/events/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.jobs" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/jobs/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.provider" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/provider/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.security" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/security/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.sharedobject" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.sharedobject.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/events/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.sharedobject.provider" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/provider/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.sharedobject.security" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/security/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.sharedobject.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/sharedobject/util/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.start" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/start/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.status" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/status/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.user" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/user/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/util/package-summary.html"/>
+<topic label="org.eclipse.ecf.core.util.reflection" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/util/reflection/package-summary.html"/>
+<topic label="org.eclipse.ecf.datashare" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/package-summary.html"/>
+<topic label="org.eclipse.ecf.datashare.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/events/package-summary.html"/>
+<topic label="org.eclipse.ecf.datashare.mergeable" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/mergeable/package-summary.html"/>
+<topic label="org.eclipse.ecf.datashare.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/service/package-summary.html"/>
+<topic label="org.eclipse.ecf.discovery" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/discovery/package-summary.html"/>
+<topic label="org.eclipse.ecf.discovery.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/discovery/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.discovery.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/discovery/service/package-summary.html"/>
+<topic label="org.eclipse.ecf.docshare" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/docshare/package-summary.html"/>
+<topic label="org.eclipse.ecf.docshare.menu" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/docshare/menu/package-summary.html"/>
+<topic label="org.eclipse.ecf.docshare.messages" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/docshare/messages/package-summary.html"/>
+<topic label="org.eclipse.ecf.example.clients" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/example/clients/package-summary.html"/>
+<topic label="org.eclipse.ecf.example.clients.applications" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/example/clients/applications/package-summary.html"/>
+<topic label="org.eclipse.ecf.examples.loadbalancing" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/loadbalancing/package-summary.html"/>
+<topic label="org.eclipse.ecf.examples.provider.trivial" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/provider/trivial/package-summary.html"/>
+<topic label="org.eclipse.ecf.examples.remoteservices.common" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/remoteservices/common/package-summary.html"/>
+<topic label="org.eclipse.ecf.examples.remoteservices.hello" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/remoteservices/hello/package-summary.html"/>
+<topic label="org.eclipse.ecf.examples.remoteservices.hello.impl" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/examples/remoteservices/hello/impl/package-summary.html"/>
+<topic label="org.eclipse.ecf.filetransfer" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/package-summary.html"/>
+<topic label="org.eclipse.ecf.filetransfer.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/events/package-summary.html"/>
+<topic label="org.eclipse.ecf.filetransfer.events.socket" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/events/socket/package-summary.html"/>
+<topic label="org.eclipse.ecf.filetransfer.events.socketfactory" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/events/socketfactory/package-summary.html"/>
+<topic label="org.eclipse.ecf.filetransfer.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.filetransfer.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/service/package-summary.html"/>
+<topic label="org.eclipse.ecf.osgi.services.distribution" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/osgi/services/distribution/package-summary.html"/>
+<topic label="org.eclipse.ecf.osgi.services.remoteserviceadmin" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/osgi/services/remoteserviceadmin/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.bot" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/bot/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.bot.application" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/bot/application/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.bot.impl" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/bot/impl/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.chatroom" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/chatroom/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.history" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/history/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.im" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/im/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.roster" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/roster/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.search" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/search/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.search.message" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/search/message/package-summary.html"/>
+<topic label="org.eclipse.ecf.presence.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/presence/service/package-summary.html"/>
+<topic label="org.eclipse.ecf.protocol.bittorrent" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/protocol/bittorrent/package-summary.html"/>
+<topic label="org.eclipse.ecf.protocol.msn" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/protocol/msn/package-summary.html"/>
+<topic label="org.eclipse.ecf.protocol.msn.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/protocol/msn/events/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.comm" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/comm/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.comm.tcp" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/comm/tcp/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.datashare" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/datashare/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.datashare.nio" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/datashare/nio/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.discovery" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/discovery/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.dnssd" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/dnssd/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.filetransfer" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.filetransfer.browse" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/browse/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.filetransfer.events.socket" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/events/socket/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.filetransfer.httpclient" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/httpclient/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.filetransfer.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.filetransfer.outgoing" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/outgoing/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.filetransfer.retrieve" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/retrieve/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.filetransfer.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/filetransfer/util/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.generic" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/generic/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.generic.gmm" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/generic/gmm/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.irc.bot" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/irc/bot/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.irc.bot.handler" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/irc/bot/handler/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.jslp.container" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/jslp/container/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.jslp.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/jslp/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.local.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/local/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.r_osgi.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/r_osgi/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.remoteservice.generic" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/remoteservice/generic/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/util/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.xmpp" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/xmpp/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.xmpp.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/xmpp/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.zookeeper" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/zookeeper/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.zookeeper.core" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/zookeeper/core/package-summary.html"/>
+<topic label="org.eclipse.ecf.provider.zookeeper.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/provider/zookeeper/util/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.client" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/client/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.eventadmin" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/eventadmin/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/events/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.rest" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.rest.client" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/client/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.rest.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.rest.synd" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/synd/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.rest.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rest/util/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.rpc" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rpc/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.rpc.client" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rpc/client/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.rpc.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/rpc/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.soap.client" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/soap/client/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.soap.identity" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/soap/identity/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.util" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/util/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservice.util.tracker" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservice/util/tracker/package-summary.html"/>
+<topic label="org.eclipse.ecf.remoteservices.rest.rss" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/remoteservices/rest/rss/package-summary.html"/>
+<topic label="org.eclipse.ecf.server" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/server/package-summary.html"/>
+<topic label="org.eclipse.ecf.server.generic" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/server/generic/package-summary.html"/>
+<topic label="org.eclipse.ecf.server.generic.app" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/server/generic/app/package-summary.html"/>
+<topic label="org.eclipse.ecf.storage" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/storage/package-summary.html"/>
+<topic label="org.eclipse.ecf.sync" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/sync/package-summary.html"/>
+<topic label="org.eclipse.ecf.sync.doc" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/sync/doc/package-summary.html"/>
+<topic label="org.eclipse.ecf.telephony.call" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/telephony/call/package-summary.html"/>
+<topic label="org.eclipse.ecf.telephony.call.dtmf" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/telephony/call/dtmf/package-summary.html"/>
+<topic label="org.eclipse.ecf.telephony.call.events" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/telephony/call/events/package-summary.html"/>
+<topic label="org.eclipse.ecf.telephony.call.service" href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/telephony/call/service/package-summary.html"/>
</toc>
diff --git a/examples/bundles/org.eclipse.ecf.example.pubsub/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.example.pubsub/.settings/org.eclipse.jdt.core.prefs
index e1409b6be..2dcef4a30 100644
--- a/examples/bundles/org.eclipse.ecf.example.pubsub/.settings/org.eclipse.jdt.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.example.pubsub/.settings/org.eclipse.jdt.core.prefs
@@ -1,72 +1,72 @@
-#Fri Oct 15 17:00:47 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Fri Oct 15 17:00:47 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/.settings/org.eclipse.jdt.core.prefs
index abb12a498..6b3b59eaa 100644
--- a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/.settings/org.eclipse.jdt.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/.settings/org.eclipse.jdt.core.prefs
@@ -1,74 +1,74 @@
-#Tue Jan 11 20:02:54 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+#Tue Jan 11 20:02:54 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/.settings/org.eclipse.jdt.core.prefs
index d65376ca8..e5376b6f7 100644
--- a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/.settings/org.eclipse.jdt.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/.settings/org.eclipse.jdt.core.prefs
@@ -1,74 +1,74 @@
-#Tue Jan 11 20:02:06 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+#Tue Jan 11 20:02:06 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.classpath b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.classpath
index 2d1a4302f..64c5e31b7 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.classpath
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.project b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.project
index ef31131e2..079817b4d 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.project
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.examples.provider.remoteservice</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.examples.provider.remoteservice</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.jdt.core.prefs
index a97b222d4..dfa45ff51 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.jdt.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
-#Mon Jul 04 13:23:29 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+#Mon Jul 04 13:23:29 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.pde.core.prefs b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.pde.core.prefs
index d16699cb3..b8fa8514b 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.pde.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/.settings/org.eclipse.pde.core.prefs
@@ -1,4 +1,4 @@
-#Mon Jul 04 13:28:20 PDT 2011
-eclipse.preferences.version=1
-pluginProject.extensions=true
-resolve.requirebundle=false
+#Mon Jul 04 13:28:20 PDT 2011
+eclipse.preferences.version=1
+pluginProject.extensions=true
+resolve.requirebundle=false
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/build.properties b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/build.properties
index 8665ac2ff..0dc34f783 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/build.properties
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/build.properties
@@ -1,6 +1,6 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- plugin.properties
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.properties b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.properties
index 26decd979..431eb2bc6 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.properties
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.properties
@@ -1,12 +1,12 @@
-################################################################################
-# Copyright (c) 2011 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
-################################################################################
-bundle.name=ECF Example Remoteservice Provider
+################################################################################
+# Copyright (c) 2011 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
+################################################################################
+bundle.name=ECF Example Remoteservice Provider
bundle.provider=Eclipse.org - ECF \ No newline at end of file
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.xml b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.xml
index 8605ad5e4..9b51c29d3 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.xml
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/plugin.xml
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension
- point="org.eclipse.ecf.identity.namespace">
- <namespace
- class="org.eclipse.ecf.examples.provider.remoteservice.identity.RSExampleNamespace"
- description="RS Example Namespace"
- name="ecf.namespace.example.rs">
- </namespace>
- </extension>
- <extension
- point="org.eclipse.ecf.containerFactory">
- <containerFactory
- class="org.eclipse.ecf.internal.examples.provider.remoteservice.container.RSExampleContainerInstantiator"
- name="ecf.container.example.rs">
- </containerFactory>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ecf.identity.namespace">
+ <namespace
+ class="org.eclipse.ecf.examples.provider.remoteservice.identity.RSExampleNamespace"
+ description="RS Example Namespace"
+ name="ecf.namespace.example.rs">
+ </namespace>
+ </extension>
+ <extension
+ point="org.eclipse.ecf.containerFactory">
+ <containerFactory
+ class="org.eclipse.ecf.internal.examples.provider.remoteservice.container.RSExampleContainerInstantiator"
+ name="ecf.container.example.rs">
+ </containerFactory>
+ </extension>
+
+</plugin>
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/bundle.properties b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/bundle.properties
index 3071af402..aef8549f1 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/bundle.properties
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/bundle.properties
@@ -1,12 +1,12 @@
-################################################################################
-# Copyright (c) 2011 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
-################################################################################
-bundle.name=ECF Trivial Provider
+################################################################################
+# Copyright (c) 2011 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
+################################################################################
+bundle.name=ECF Trivial Provider
bundle.provider=Eclipse.org - ECF \ No newline at end of file
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.classpath b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.classpath
index 07a958e4a..4a878a4bd 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.classpath
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.classpath
@@ -1,3 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+</classpath>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.project b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.project
index c30739008..ae2260e76 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.project
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.examples.remoteservices.hello.consumer.edef</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.examples.remoteservices.hello.consumer.edef</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.jdt.core.prefs
index 4d7f143be..f6a59882c 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.jdt.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
-#Thu Feb 03 17:54:54 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+#Thu Feb 03 17:54:54 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.pde.core.prefs b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.pde.core.prefs
index 9f2f23b8f..2904a2947 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.pde.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/.settings/org.eclipse.pde.core.prefs
@@ -1,4 +1,4 @@
-#Thu Feb 03 17:54:54 PST 2011
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+#Thu Feb 03 17:54:54 PST 2011
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/build.properties b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/build.properties
index 815f6b98d..34dfb21dd 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/build.properties
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/build.properties
@@ -1,6 +1,6 @@
-bin.includes = META-INF/,\
- .,\
- generic_hello.xml,\
- about.html
-src.includes = generic_hello.xml,\
- about.html
+bin.includes = META-INF/,\
+ .,\
+ generic_hello.xml,\
+ about.html
+src.includes = generic_hello.xml,\
+ about.html
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml
index 6fe7d653f..79573e466 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
- <endpoint-description>
- <property name="ecf.endpoint.id.ns" value-type="String" value="org.eclipse.ecf.core.identity.StringID"/>
- <property name="endpoint.framework.uuid" value-type="String" value="70cd3d4b-4931-0010-1b63-d64101cefd5e"/>
- <property name="endpoint.id" value-type="String" value="ecftcp://localhost:3787/server"/>
- <property name="endpoint.service.id" value-type="Long" value="0"/>
- <property name="endpoint.package.version.org.eclipse.ecf.examples.remoteservices.hello" value-type="String" value="3.0.0"/>
- <property name="objectClass" value-type="String">
- <array>
- <value>org.eclipse.ecf.examples.remoteservices.hello.IHello</value>
- </array>
- </property>
- <property name="remote.configs.supported" value-type="String">
- <array>
- <value>ecf.generic.server</value>
- </array>
- </property>
- <property name="remote.intents.supported" value-type="String">
- <array>
- <value>passByValue</value>
- <value>exactlyOnce</value>
- <value>ordered</value>
- </array>
- </property>
- <property name="service.id" value-type="Long" value="64"/>
- <property name="service.imported" value-type="String" value="true"/>
- <property name="service.imported.configs" value-type="String">
- <array>
- <value>ecf.generic.server</value>
- </array>
- </property>
- </endpoint-description>
-</endpoint-descriptions>
+<?xml version="1.0" encoding="UTF-8"?>
+<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
+ <endpoint-description>
+ <property name="ecf.endpoint.id.ns" value-type="String" value="org.eclipse.ecf.core.identity.StringID"/>
+ <property name="endpoint.framework.uuid" value-type="String" value="70cd3d4b-4931-0010-1b63-d64101cefd5e"/>
+ <property name="endpoint.id" value-type="String" value="ecftcp://localhost:3787/server"/>
+ <property name="endpoint.service.id" value-type="Long" value="0"/>
+ <property name="endpoint.package.version.org.eclipse.ecf.examples.remoteservices.hello" value-type="String" value="3.0.0"/>
+ <property name="objectClass" value-type="String">
+ <array>
+ <value>org.eclipse.ecf.examples.remoteservices.hello.IHello</value>
+ </array>
+ </property>
+ <property name="remote.configs.supported" value-type="String">
+ <array>
+ <value>ecf.generic.server</value>
+ </array>
+ </property>
+ <property name="remote.intents.supported" value-type="String">
+ <array>
+ <value>passByValue</value>
+ <value>exactlyOnce</value>
+ <value>ordered</value>
+ </array>
+ </property>
+ <property name="service.id" value-type="Long" value="64"/>
+ <property name="service.imported" value-type="String" value="true"/>
+ <property name="service.imported.configs" value-type="String">
+ <array>
+ <value>ecf.generic.server</value>
+ </array>
+ </property>
+ </endpoint-description>
+</endpoint-descriptions>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product
index b93b27776..c553973e6 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product
@@ -1,51 +1,51 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console</programArgs>
- <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true</vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <plugins>
- <plugin id="ch.ethz.iks.r_osgi.remote"/>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer.rs"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.objectweb.asm"/>
- </plugins>
-
- <configurations>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer.rs" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
- </configurations>
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console</programArgs>
+ <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer.rs"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.objectweb.asm"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer.rs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product
index 0faf6c5bb..6fa56c3ed 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product
@@ -1,60 +1,60 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="Generic Hello Consumer EDEF Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.edef.generic" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console -consoleLog -containerType ecf.generic.client</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer.edef"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- </plugins>
-
- <configurations>
- <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
- </configurations>
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Generic Hello Consumer EDEF Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.edef.generic" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console -consoleLog -containerType ecf.generic.client</programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer.edef"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product
index 054f17269..35229a676 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product
@@ -1,56 +1,56 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="Generic Hello Consumer Zeroconf Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.zeroconf.generic" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console -consoleLog -containerType ecf.generic.client</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.jmdns"/>
- <plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- </plugins>
-
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Generic Hello Consumer Zeroconf Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.zeroconf.generic" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console -consoleLog -containerType ecf.generic.client</programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product
index d6624a3a2..64a0976b6 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product
@@ -1,61 +1,61 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="R-OSGi Hello Consumer Zeroconf Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.zeroconf.rosgi" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console -consoleLog</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <windowImages/>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="ch.ethz.iks.r_osgi.remote"/>
- <plugin id="ch.ethz.iks.slp"/>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.jmdns"/>
- <plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- <plugin id="org.objectweb.asm"/>
- </plugins>
-
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="R-OSGi Hello Consumer Zeroconf Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.zeroconf.rosgi" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console -consoleLog</programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="ch.ethz.iks.slp"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm"/>
+ </plugins>
+
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product
index 87763939a..5759b3e4d 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product
@@ -1,66 +1,66 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="Generic Hello Consumer Zookeeper Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.zookeeper.generic" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Generic Hello Consumer Zookeeper Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.zookeeper.generic" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
<programArgs>-console
-consoleLog
--containerType ecf.generic.client</programArgs>
+-containerType ecf.generic.client</programArgs>
<vmArgs>-Dzoodiscovery.autoStart=true;
-Dzoodiscovery.flavor=zoodiscovery.flavor.standalone=localhost:2001;clientPort=2002
-Xms40m
--Xmx512m</vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <windowImages/>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.apache.hadoop.zookeeper"/>
- <plugin id="org.apache.log4j"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.provider.zookeeper"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- </plugins>
-
-
-</product>
+-Xmx512m</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.hadoop.zookeeper"/>
+ <plugin id="org.apache.log4j"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.provider.zookeeper"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product
index 388c526cb..a18c8fc64 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product
@@ -1,66 +1,66 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="R-OSGi Hello Consumer Zookeeper Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.zookeeper.rosgi" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console -consoleLog</programArgs>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="R-OSGi Hello Consumer Zookeeper Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.consumer.zookeeper.rosgi" application="org.eclipse.ecf.examples.remoteservices.hello.consumer.HelloConsumer" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console -consoleLog</programArgs>
<vmArgs>-Dzoodiscovery.autoStart=true;
-Dzoodiscovery.flavor=zoodiscovery.flavor.standalone=localhost:2001;clientPort=2002
-Xms40m
--Xmx512m</vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <windowImages/>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="ch.ethz.iks.r_osgi.remote"/>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.apache.hadoop.zookeeper"/>
- <plugin id="org.apache.log4j"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.provider.zookeeper"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- <plugin id="org.objectweb.asm"/>
- </plugins>
-
-
-</product>
+-Xmx512m</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.hadoop.zookeeper"/>
+ <plugin id="org.apache.log4j"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.provider.zookeeper"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm"/>
+ </plugins>
+
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product
index e29cc2e90..04f57ca56 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product
@@ -1,71 +1,71 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="ECF Remote Services Example Hello DS" uid="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer.product" application="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer.HelloConsumerDS" version="3.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console -consoleLog</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.jmdns"/>
- <plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.ds"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.equinox.util"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- </plugins>
-
- <configurations>
- <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.equinox.app" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
- </configurations>
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="ECF Remote Services Example Hello DS" uid="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer.product" application="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer.HelloConsumerDS" version="3.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console -consoleLog</programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.app" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product
index 03e662c7b..5183f5464 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product
@@ -1,70 +1,70 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="ECF Remote Service Example DS Host" uid="org.eclipse.ecf.examples.remoteservices.hello.ds.host.product" application="org.eclipse.ecf.examples.remoteservices.hello.ds.host.HelloHostDS" version="2.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console -consoleLog</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <windowImages/>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.ds.host"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.jmdns"/>
- <plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.ds"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.equinox.util"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- </plugins>
-
- <configurations>
- <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.ecf" autoStart="true" startLevel="1" />
- <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="1" />
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="1" />
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="1" />
- <plugin id="org.eclipse.equinox.app" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
- </configurations>
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="ECF Remote Service Example DS Host" uid="org.eclipse.ecf.examples.remoteservices.hello.ds.host.product" application="org.eclipse.ecf.examples.remoteservices.hello.ds.host.HelloHostDS" version="2.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console -consoleLog</programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.ds.host"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.app" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product
index fddddc111..ab199fb43 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product application="org.eclipse.ui.ide.workbench" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console</programArgs>
- <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true</vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="ch.ethz.iks.r_osgi.remote"/>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host.rs"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.objectweb.asm"/>
- </plugins>
-
- <configurations>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host.rs" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
- </configurations>
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product application="org.eclipse.ui.ide.workbench" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console</programArgs>
+ <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host.rs"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.objectweb.asm"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host.rs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product
index 5177cc55c..182c824f4 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product
@@ -1,62 +1,62 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="Generic Hello Host EDEF Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.edef.generic" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-containerType ecf.generic.server
--containerId ecftcp://localhost:3787/server
--consoleLog</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- </plugins>
-
- <configurations>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
- </configurations>
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Generic Hello Host EDEF Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.edef.generic" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-containerType ecf.generic.server
+-containerId ecftcp://localhost:3787/server
+-consoleLog</programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product
index e91cfa4e1..5376fe1ff 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product
@@ -1,64 +1,64 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="Generic Hello Host Zeroconf Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.zeroconf.generic" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Generic Hello Host Zeroconf Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.zeroconf.generic" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
<programArgs>-containerType ecf.generic.server
-containerId ecftcp://localhost:3787/server
-console
--consoleLog</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.jmdns"/>
- <plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- </plugins>
-
- <configurations>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
- </configurations>
-
-</product>
+-consoleLog</programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product
index f06b94e7a..6b7bff3d3 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="R-OSGI Hello Host Zeroconf Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.zeroconf.rosgi" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="R-OSGI Hello Host Zeroconf Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.zeroconf.rosgi" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
<programArgs>-console
--consoleLog</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="ch.ethz.iks.r_osgi.remote"/>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.jmdns"/>
- <plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- <plugin id="org.objectweb.asm"/>
- </plugins>
-
-
-</product>
+-consoleLog</programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm"/>
+ </plugins>
+
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product
index 4723536bc..993683f9e 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product
@@ -1,72 +1,72 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="Generic Hello Host Zookeeper Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.zookeeper.generic" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console
--consoleLog
--containerType ecf.generic.server
--containerId ecftcp://localhost:3787/server</programArgs>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Generic Hello Host Zookeeper Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.zookeeper.generic" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console
+-consoleLog
+-containerType ecf.generic.server
+-containerId ecftcp://localhost:3787/server</programArgs>
<vmArgs>-Dzoodiscovery.dataDir=zookeeperdata2
-Dzoodiscovery.flavor=zoodiscovery.flavor.standalone=localhost:2002;clientPort=2001
-Xms40m
--Xmx512m</vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <windowImages/>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.apache.hadoop.zookeeper"/>
- <plugin id="org.apache.log4j"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.provider.zookeeper"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- </plugins>
-
- <configurations>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
- </configurations>
-
-</product>
+-Xmx512m</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.hadoop.zookeeper"/>
+ <plugin id="org.apache.log4j"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.provider.zookeeper"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product
index efd7ec890..5aef240fa 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product
@@ -1,66 +1,66 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="R-OSGI Hello Host Zookeeper Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.zookeeper.rosgi" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console -consoleLog</programArgs>
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="R-OSGI Hello Host Zookeeper Discovery" uid="org.eclipse.ecf.examples.remoteservices.hello.host.zookeeper.rosgi" application="org.eclipse.ecf.examples.remoteservices.hello.host.HelloHost" version="1.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console -consoleLog</programArgs>
<vmArgs>-Dzoodiscovery.dataDir=zookeeperdata2
-Dzoodiscovery.flavor=zoodiscovery.flavor.standalone=localhost:2002;clientPort=2001
-Xms40m
--Xmx512m</vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <windowImages/>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="ch.ethz.iks.r_osgi.remote"/>
- <plugin id="org.apache.felix.gogo.command"/>
- <plugin id="org.apache.felix.gogo.runtime"/>
- <plugin id="org.apache.felix.gogo.shell"/>
- <plugin id="org.apache.hadoop.zookeeper"/>
- <plugin id="org.apache.log4j"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.ecf"/>
- <plugin id="org.eclipse.ecf.discovery"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
- <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
- <plugin id="org.eclipse.ecf.identity"/>
- <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
- <plugin id="org.eclipse.ecf.provider"/>
- <plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.provider.zookeeper"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
- <plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.concurrent"/>
- <plugin id="org.eclipse.equinox.console"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
- <plugin id="org.objectweb.asm"/>
- </plugins>
-
-
-</product>
+-Xmx512m</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.hadoop.zookeeper"/>
+ <plugin id="org.apache.log4j"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.hello.host"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.provider.zookeeper"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm"/>
+ </plugins>
+
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/.settings/org.eclipse.jdt.core.prefs
index 027f76872..8729fde53 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/.settings/org.eclipse.jdt.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/.settings/org.eclipse.jdt.core.prefs
@@ -1,68 +1,68 @@
-#Tue Jan 11 19:59:24 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+#Tue Jan 11 19:59:24 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/examples/bundles/org.eclipse.ecf.examples.webinar/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.webinar/.settings/org.eclipse.jdt.core.prefs
index 1d90f5043..133e726ac 100644
--- a/examples/bundles/org.eclipse.ecf.examples.webinar/.settings/org.eclipse.jdt.core.prefs
+++ b/examples/bundles/org.eclipse.ecf.examples.webinar/.settings/org.eclipse.jdt.core.prefs
@@ -1,67 +1,67 @@
-#Fri Oct 15 17:03:42 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+#Fri Oct 15 17:03:42 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/framework/bundles/org.eclipse.ecf.discovery.ui.edit/src/org/eclipse/ecf/discovery/ui/model/ItemProviderWithStatusLineAdapter.java b/framework/bundles/org.eclipse.ecf.discovery.ui.edit/src/org/eclipse/ecf/discovery/ui/model/ItemProviderWithStatusLineAdapter.java
index 8dded083f..f3cedc305 100644
--- a/framework/bundles/org.eclipse.ecf.discovery.ui.edit/src/org/eclipse/ecf/discovery/ui/model/ItemProviderWithStatusLineAdapter.java
+++ b/framework/bundles/org.eclipse.ecf.discovery.ui.edit/src/org/eclipse/ecf/discovery/ui/model/ItemProviderWithStatusLineAdapter.java
@@ -1,33 +1,33 @@
-/****************************************************************************
- * Copyright (c) 2008 Versant Corp. 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:
- * Versant Corp. - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.discovery.ui.model;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-
-/**
- * This class is the superclass for all ItemProviderAdapter It provides
- * additional support for status line by implementing IItemStatusLineProvider
- */
-public class ItemProviderWithStatusLineAdapter extends ItemProviderAdapter implements IItemStatusLineProvider {
-
- public ItemProviderWithStatusLineAdapter(AdapterFactory adapterFactory) {
- super(adapterFactory);
- }
-
- /**
- * default implementation just delegates to getText(..)
- */
- public String getStatusLineText(Object object) {
- return getText(object);
- }
-
-}
+/****************************************************************************
+ * Copyright (c) 2008 Versant Corp. 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:
+ * Versant Corp. - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.discovery.ui.model;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This class is the superclass for all ItemProviderAdapter It provides
+ * additional support for status line by implementing IItemStatusLineProvider
+ */
+public class ItemProviderWithStatusLineAdapter extends ItemProviderAdapter implements IItemStatusLineProvider {
+
+ public ItemProviderWithStatusLineAdapter(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * default implementation just delegates to getText(..)
+ */
+ public String getStatusLineText(Object object) {
+ return getText(object);
+ }
+
+}
diff --git a/framework/bundles/org.eclipse.ecf.filetransfer/.settings/org.eclipse.pde.api.tools.prefs b/framework/bundles/org.eclipse.ecf.filetransfer/.settings/org.eclipse.pde.api.tools.prefs
index ab935311a..9917f9f36 100644
--- a/framework/bundles/org.eclipse.ecf.filetransfer/.settings/org.eclipse.pde.api.tools.prefs
+++ b/framework/bundles/org.eclipse.ecf.filetransfer/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/framework/bundles/org.eclipse.ecf.identity/.settings/.api_filters b/framework/bundles/org.eclipse.ecf.identity/.settings/.api_filters
index dfeb7bea6..3a63a0c37 100644
--- a/framework/bundles/org.eclipse.ecf.identity/.settings/.api_filters
+++ b/framework/bundles/org.eclipse.ecf.identity/.settings/.api_filters
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.ecf.identity" version="2">
- <resource path="src/org/eclipse/ecf/core/util/SystemLogService.java" type="org.eclipse.ecf.core.util.SystemLogService">
- <filter id="574619656">
- <message_arguments>
- <message_argument value="LogService"/>
- <message_argument value="SystemLogService"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.ecf.identity" version="2">
+ <resource path="src/org/eclipse/ecf/core/util/SystemLogService.java" type="org.eclipse.ecf.core.util.SystemLogService">
+ <filter id="574619656">
+ <message_arguments>
+ <message_argument value="LogService"/>
+ <message_argument value="SystemLogService"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/framework/bundles/org.eclipse.ecf.identity/.settings/org.eclipse.pde.api.tools.prefs b/framework/bundles/org.eclipse.ecf.identity/.settings/org.eclipse.pde.api.tools.prefs
index ab935311a..9917f9f36 100644
--- a/framework/bundles/org.eclipse.ecf.identity/.settings/org.eclipse.pde.api.tools.prefs
+++ b/framework/bundles/org.eclipse.ecf.identity/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/framework/bundles/org.eclipse.ecf.presence/.settings/org.eclipse.jdt.core.prefs b/framework/bundles/org.eclipse.ecf.presence/.settings/org.eclipse.jdt.core.prefs
index b686d157f..182a56666 100644
--- a/framework/bundles/org.eclipse.ecf.presence/.settings/org.eclipse.jdt.core.prefs
+++ b/framework/bundles/org.eclipse.ecf.presence/.settings/org.eclipse.jdt.core.prefs
@@ -1,358 +1,358 @@
-#Mon May 09 12:23:05 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Mon May 09 12:23:05 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.3
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/framework/bundles/org.eclipse.ecf.provider/.settings/org.eclipse.jdt.core.prefs b/framework/bundles/org.eclipse.ecf.provider/.settings/org.eclipse.jdt.core.prefs
index 36fe1ba5c..1a87f9fa4 100644
--- a/framework/bundles/org.eclipse.ecf.provider/.settings/org.eclipse.jdt.core.prefs
+++ b/framework/bundles/org.eclipse.ecf.provider/.settings/org.eclipse.jdt.core.prefs
@@ -1,354 +1,354 @@
-#Mon May 09 12:25:22 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Mon May 09 12:25:22 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.core.prefs b/framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.core.prefs
index eaa6f70bd..68de25269 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.core.prefs
+++ b/framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.core.prefs
@@ -1,369 +1,369 @@
-#Tue Jan 25 11:25:01 MSK 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=20
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=20
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Tue Jan 25 11:25:01 MSK 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=20
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=20
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs b/framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs
index a041cb072..d6c22a4fd 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs
+++ b/framework/bundles/org.eclipse.ecf.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs
@@ -1,60 +1,60 @@
-#Tue Jan 25 17:13:15 MSK 2011
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Equinox
-formatter_settings_version=12
-internal.default.compliance=user
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2010-2011 Naumen. All rights reserved. This\r\n * program and the accompanying materials are made available under the terms of\r\n * the Eclipse Public License v1.0 which accompanies this distribution, and is\r\n * available at http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\: Pavel Samolisov - initial API and implementation\r\n ******************************************************************************/\r\n${package_declaration}\r\n\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+#Tue Jan 25 17:13:15 MSK 2011
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Equinox
+formatter_settings_version=12
+internal.default.compliance=user
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=;
+org.eclipse.jdt.ui.javadoc=false
+org.eclipse.jdt.ui.ondemandthreshold=3
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2010-2011 Naumen. All rights reserved. This\r\n * program and the accompanying materials are made available under the terms of\r\n * the Eclipse Public License v1.0 which accompanies this distribution, and is\r\n * available at http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\: Pavel Samolisov - initial API and implementation\r\n ******************************************************************************/\r\n${package_declaration}\r\n\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=false
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/RpcClientService.java b/framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/RpcClientService.java
index b8b41a0b1..308056ea2 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/RpcClientService.java
+++ b/framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/RpcClientService.java
@@ -1,131 +1,131 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.remoteservice.rpc.client;
-
-import java.io.NotSerializableException;
-import java.net.MalformedURLException;
-import org.apache.xmlrpc.client.*;
-import org.apache.xmlrpc.client.util.ClientFactory;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.internal.remoteservice.rpc.Activator;
-import org.eclipse.ecf.remoteservice.IRemoteCall;
-import org.eclipse.ecf.remoteservice.client.*;
-import org.eclipse.ecf.remoteservice.rpc.RpcException;
-import org.eclipse.ecf.remoteservice.rpc.identity.RpcId;
-
-public class RpcClientService extends AbstractClientService {
-
- private XmlRpcClient client;
-
- public RpcClientService(RpcClientContainer container, RemoteServiceClientRegistration registration)
- throws RpcException {
- super(container, registration);
- client = getXmlRpcClient();
- }
-
- protected XmlRpcClientConfig getXmlRpcClientConfig() throws RpcException {
- try {
- RpcId id = (RpcId) container.getID();
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(id.toURI().toURL());
- config.setEnabledForExtensions(true);
- // Set default timeouts
- config.setConnectionTimeout(60 * 1000);
- config.setReplyTimeout(60 * 1000);
-
- return config;
- } catch (MalformedURLException e) {
- handleException(e.getMessage(), e);
- return null;
- }
- }
-
- protected XmlRpcClient getXmlRpcClient() throws RpcException {
- XmlRpcClient xmlRpcClient = new XmlRpcClient();
- xmlRpcClient.setConfig(getXmlRpcClientConfig());
- xmlRpcClient.setTransportFactory(new XmlRpcCommonsTransportFactory(xmlRpcClient));
-
- return xmlRpcClient;
- }
-
- /**
- * Create a Dynamic Proxy for using XML-RPC servers, which builded on Apache XML-RPC.
- */
- public Object createProxy(ClassLoader cl, Class[] classes) {
- if (classes == null || classes.length < 1)
- return null;
-
- ClientFactory factory = new ClientFactory(client);
- return factory.newInstance(classes[0]);
- }
-
- /**
- * Create a Dynamic Proxy for using XML-RPC servers, which builded on Apache XML-RPC.
- * See the <a href="http://ws.apache.org/xmlrpc/advanced.html">Dynamic proxies</a> section.
- */
- protected Object createProxy(Class[] classes) {
- if (classes == null || classes.length < 1)
- return null;
-
- ClientFactory factory = new ClientFactory(client);
- return factory.newInstance(classes[0]);
- }
-
- /**
- * Calls the XML-RPC Service with given operation of IRemoteCall. The returned value is
- * the returned value from server
- *
- * @param call The remote call to make. Must not be <code>null</code>.
- * @param callable The callable with default parameters to use to make the call.
- * @return The XML-RPC Service's return value
- */
- protected Object invokeRemoteCall(final IRemoteCall call, final IRemoteCallable callable) throws ECFException {
- String operation = prepareEndpointAddress(call, callable);
- Object result = null;
- try {
- result = client.execute(operation, toObjectsArray(operation, call, callable));
- } catch (Exception e) {
- handleException("Exception while executing method:" + operation, e); //$NON-NLS-1$
- }
-
- return result;
- }
-
- protected void handleException(String message, Throwable e) throws RpcException {
- logException(message, e);
- throw new RpcException(message, e);
- }
-
- protected Object[] toObjectsArray(String uri, IRemoteCall call, IRemoteCallable callable)
- throws NotSerializableException {
- IRemoteCallParameter[] rpcParameters = prepareParameters(uri, call, callable);
- Object[] result = new Object[rpcParameters.length];
- for (int i = 0; i < rpcParameters.length; i++) {
- result[i] = rpcParameters[i].getValue();
- }
-
- return result;
- }
-
- protected void logException(String string, Throwable e) {
- Activator a = Activator.getDefault();
- if (a != null)
- a.log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, string, e));
- }
-
- protected void logWarning(String string, Throwable e) {
- Activator a = Activator.getDefault();
- if (a != null)
- a.log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, string));
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.remoteservice.rpc.client;
+
+import java.io.NotSerializableException;
+import java.net.MalformedURLException;
+import org.apache.xmlrpc.client.*;
+import org.apache.xmlrpc.client.util.ClientFactory;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.core.util.ECFException;
+import org.eclipse.ecf.internal.remoteservice.rpc.Activator;
+import org.eclipse.ecf.remoteservice.IRemoteCall;
+import org.eclipse.ecf.remoteservice.client.*;
+import org.eclipse.ecf.remoteservice.rpc.RpcException;
+import org.eclipse.ecf.remoteservice.rpc.identity.RpcId;
+
+public class RpcClientService extends AbstractClientService {
+
+ private XmlRpcClient client;
+
+ public RpcClientService(RpcClientContainer container, RemoteServiceClientRegistration registration)
+ throws RpcException {
+ super(container, registration);
+ client = getXmlRpcClient();
+ }
+
+ protected XmlRpcClientConfig getXmlRpcClientConfig() throws RpcException {
+ try {
+ RpcId id = (RpcId) container.getID();
+
+ XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
+ config.setServerURL(id.toURI().toURL());
+ config.setEnabledForExtensions(true);
+ // Set default timeouts
+ config.setConnectionTimeout(60 * 1000);
+ config.setReplyTimeout(60 * 1000);
+
+ return config;
+ } catch (MalformedURLException e) {
+ handleException(e.getMessage(), e);
+ return null;
+ }
+ }
+
+ protected XmlRpcClient getXmlRpcClient() throws RpcException {
+ XmlRpcClient xmlRpcClient = new XmlRpcClient();
+ xmlRpcClient.setConfig(getXmlRpcClientConfig());
+ xmlRpcClient.setTransportFactory(new XmlRpcCommonsTransportFactory(xmlRpcClient));
+
+ return xmlRpcClient;
+ }
+
+ /**
+ * Create a Dynamic Proxy for using XML-RPC servers, which builded on Apache XML-RPC.
+ */
+ public Object createProxy(ClassLoader cl, Class[] classes) {
+ if (classes == null || classes.length < 1)
+ return null;
+
+ ClientFactory factory = new ClientFactory(client);
+ return factory.newInstance(classes[0]);
+ }
+
+ /**
+ * Create a Dynamic Proxy for using XML-RPC servers, which builded on Apache XML-RPC.
+ * See the <a href="http://ws.apache.org/xmlrpc/advanced.html">Dynamic proxies</a> section.
+ */
+ protected Object createProxy(Class[] classes) {
+ if (classes == null || classes.length < 1)
+ return null;
+
+ ClientFactory factory = new ClientFactory(client);
+ return factory.newInstance(classes[0]);
+ }
+
+ /**
+ * Calls the XML-RPC Service with given operation of IRemoteCall. The returned value is
+ * the returned value from server
+ *
+ * @param call The remote call to make. Must not be <code>null</code>.
+ * @param callable The callable with default parameters to use to make the call.
+ * @return The XML-RPC Service's return value
+ */
+ protected Object invokeRemoteCall(final IRemoteCall call, final IRemoteCallable callable) throws ECFException {
+ String operation = prepareEndpointAddress(call, callable);
+ Object result = null;
+ try {
+ result = client.execute(operation, toObjectsArray(operation, call, callable));
+ } catch (Exception e) {
+ handleException("Exception while executing method:" + operation, e); //$NON-NLS-1$
+ }
+
+ return result;
+ }
+
+ protected void handleException(String message, Throwable e) throws RpcException {
+ logException(message, e);
+ throw new RpcException(message, e);
+ }
+
+ protected Object[] toObjectsArray(String uri, IRemoteCall call, IRemoteCallable callable)
+ throws NotSerializableException {
+ IRemoteCallParameter[] rpcParameters = prepareParameters(uri, call, callable);
+ Object[] result = new Object[rpcParameters.length];
+ for (int i = 0; i < rpcParameters.length; i++) {
+ result[i] = rpcParameters[i].getValue();
+ }
+
+ return result;
+ }
+
+ protected void logException(String string, Throwable e) {
+ Activator a = Activator.getDefault();
+ if (a != null)
+ a.log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, string, e));
+ }
+
+ protected void logWarning(String string, Throwable e) {
+ Activator a = Activator.getDefault();
+ if (a != null)
+ a.log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, string));
+ }
+}
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/TrivialParameterServializer.java b/framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/TrivialParameterServializer.java
index 7f353a3f0..401b04911 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/TrivialParameterServializer.java
+++ b/framework/bundles/org.eclipse.ecf.remoteservice.rpc/src/org/eclipse/ecf/remoteservice/rpc/client/TrivialParameterServializer.java
@@ -1,34 +1,34 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.remoteservice.rpc.client;
-
-import org.eclipse.ecf.remoteservice.IRemoteCall;
-import org.eclipse.ecf.remoteservice.client.*;
-
-/**
- * Trivial parameter serializer - just copy a parameter value
- *
- * @author psamolisov
- */
-public class TrivialParameterServializer implements IRemoteCallParameterSerializer {
-
- /**
- * All parameters will be serialized in the Apache XML-RPC library. We shouldn't serialize any parameters
- * by default.
- *
- * @return the parameter value
- */
- public IRemoteCallParameter serializeParameter(String endpoint, IRemoteCall call, IRemoteCallable callable,
- IRemoteCallParameter paramDefault, Object paramToSerialize) {
- // Just return a parameter
- return new RemoteCallParameter(paramDefault.getName(), paramToSerialize == null ? paramDefault.getValue()
- : paramToSerialize);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.remoteservice.rpc.client;
+
+import org.eclipse.ecf.remoteservice.IRemoteCall;
+import org.eclipse.ecf.remoteservice.client.*;
+
+/**
+ * Trivial parameter serializer - just copy a parameter value
+ *
+ * @author psamolisov
+ */
+public class TrivialParameterServializer implements IRemoteCallParameterSerializer {
+
+ /**
+ * All parameters will be serialized in the Apache XML-RPC library. We shouldn't serialize any parameters
+ * by default.
+ *
+ * @return the parameter value
+ */
+ public IRemoteCallParameter serializeParameter(String endpoint, IRemoteCall call, IRemoteCallable callable,
+ IRemoteCallParameter paramDefault, Object paramToSerialize) {
+ // Just return a parameter
+ return new RemoteCallParameter(paramDefault.getName(), paramToSerialize == null ? paramDefault.getValue()
+ : paramToSerialize);
+ }
+}
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice.ui/launch/ECF Discovery and Remote Service UI.launch b/framework/bundles/org.eclipse.ecf.remoteservice.ui/launch/ECF Discovery and Remote Service UI.launch
index 029def89c..c6f38974c 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice.ui/launch/ECF Discovery and Remote Service UI.launch
+++ b/framework/bundles/org.eclipse.ecf.remoteservice.ui/launch/ECF Discovery and Remote Service UI.launch
@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="askclear" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<booleanAttribute key="clearws" value="false"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Discovery and Remote Service UI"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-New_configuration"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consolelog -console -clean"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dnet.slp.port=65427&#13;&#10;-Dnet.mdns.port=65353&#13;&#10;&#13;&#10;-Dnet.slp.failercount=3&#13;&#13;&#10;-Dnet.slp.multicastTimeouts=10,25,50,100,250,500,1000&#13;&#13;&#10;-Dnet.slp.multicastMaximumWait=2000"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<booleanAttribute key="restart" value="false"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security@default:default,org.eclipse.help.base@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi,org.eclipse.osgi.services@default:default,org.eclipse.platform@default:default,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.objectweb.asm@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="ch.ethz.iks.r_osgi.remote@default:default,ch.ethz.iks.slp@default:default,org.eclipse.ecf.discovery.ui.browser@default:default,org.eclipse.ecf.discovery.ui.edit@default:default,org.eclipse.ecf.discovery.ui.model@default:default,org.eclipse.ecf.discovery.ui.properties.tabbed@default:false,org.eclipse.ecf.discovery.ui.properties@default:false,org.eclipse.ecf.discovery.ui@default:default,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.examples.remoteservices.client@default:false,org.eclipse.ecf.examples.remoteservices.common@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.provider.discovery@default:default,org.eclipse.ecf.provider.jmdns@default:default,org.eclipse.ecf.provider.jslp@default:default,org.eclipse.ecf.provider.r_osgi@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.remoteservice.ui@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.server.generic@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useProduct" value="true"/>
-<booleanAttribute key="usefeatures" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Discovery and Remote Service UI"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-New_configuration"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consolelog -console -clean"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dnet.slp.port=65427&#13;&#10;-Dnet.mdns.port=65353&#13;&#10;&#13;&#10;-Dnet.slp.failercount=3&#13;&#13;&#10;-Dnet.slp.multicastTimeouts=10,25,50,100,250,500,1000&#13;&#13;&#10;-Dnet.slp.multicastMaximumWait=2000"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="restart" value="false"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security@default:default,org.eclipse.help.base@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi,org.eclipse.osgi.services@default:default,org.eclipse.platform@default:default,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.objectweb.asm@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="ch.ethz.iks.r_osgi.remote@default:default,ch.ethz.iks.slp@default:default,org.eclipse.ecf.discovery.ui.browser@default:default,org.eclipse.ecf.discovery.ui.edit@default:default,org.eclipse.ecf.discovery.ui.model@default:default,org.eclipse.ecf.discovery.ui.properties.tabbed@default:false,org.eclipse.ecf.discovery.ui.properties@default:false,org.eclipse.ecf.discovery.ui@default:default,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.examples.remoteservices.client@default:false,org.eclipse.ecf.examples.remoteservices.common@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.provider.discovery@default:default,org.eclipse.ecf.provider.jmdns@default:default,org.eclipse.ecf.provider.jslp@default:default,org.eclipse.ecf.provider.r_osgi@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.remoteservice.ui@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.server.generic@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice/.settings/.api_filters b/framework/bundles/org.eclipse.ecf.remoteservice/.settings/.api_filters
index 7b6ead6fa..03642f13e 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice/.settings/.api_filters
+++ b/framework/bundles/org.eclipse.ecf.remoteservice/.settings/.api_filters
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.ecf.remoteservice" version="2">
- <resource path="src/org/eclipse/ecf/remoteservice/Constants.java" type="org.eclipse.ecf.remoteservice.Constants">
- <filter comment="Added SERVICE_ASYNC_RSPROXY_CLASS constant" id="403767336">
- <message_arguments>
- <message_argument value="org.eclipse.ecf.remoteservice.Constants"/>
- <message_argument value="SERVICE_ASYNC_RSPROXY_CLASS_"/>
- </message_arguments>
- </filter>
- <filter id="405864542">
- <message_arguments>
- <message_argument value="org.eclipse.ecf.remoteservice.Constants"/>
- <message_argument value="SERVICE_ASYNC_PROXY"/>
- </message_arguments>
- </filter>
- <filter id="1211105284">
- <message_arguments>
- <message_argument value="SERVICE_ASYNC_RSPROXY_CLASS_"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/ecf/remoteservice/util/RemoteFilterImpl.java" type="org.eclipse.ecf.remoteservice.util.RemoteFilterImpl">
- <filter comment="remote service filter can implement osgi Filter" id="574660632">
- <message_arguments>
- <message_argument value="IRemoteFilter"/>
- <message_argument value="Filter"/>
- <message_argument value="RemoteFilterImpl"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.ecf.remoteservice" version="2">
+ <resource path="src/org/eclipse/ecf/remoteservice/Constants.java" type="org.eclipse.ecf.remoteservice.Constants">
+ <filter comment="Added SERVICE_ASYNC_RSPROXY_CLASS constant" id="403767336">
+ <message_arguments>
+ <message_argument value="org.eclipse.ecf.remoteservice.Constants"/>
+ <message_argument value="SERVICE_ASYNC_RSPROXY_CLASS_"/>
+ </message_arguments>
+ </filter>
+ <filter id="405864542">
+ <message_arguments>
+ <message_argument value="org.eclipse.ecf.remoteservice.Constants"/>
+ <message_argument value="SERVICE_ASYNC_PROXY"/>
+ </message_arguments>
+ </filter>
+ <filter id="1211105284">
+ <message_arguments>
+ <message_argument value="SERVICE_ASYNC_RSPROXY_CLASS_"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/ecf/remoteservice/util/RemoteFilterImpl.java" type="org.eclipse.ecf.remoteservice.util.RemoteFilterImpl">
+ <filter comment="remote service filter can implement osgi Filter" id="574660632">
+ <message_arguments>
+ <message_argument value="IRemoteFilter"/>
+ <message_argument value="Filter"/>
+ <message_argument value="RemoteFilterImpl"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice/.settings/org.eclipse.jdt.core.prefs b/framework/bundles/org.eclipse.ecf.remoteservice/.settings/org.eclipse.jdt.core.prefs
index 8e985d7a9..64a2d3d25 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice/.settings/org.eclipse.jdt.core.prefs
+++ b/framework/bundles/org.eclipse.ecf.remoteservice/.settings/org.eclipse.jdt.core.prefs
@@ -1,351 +1,351 @@
-#Tue Jan 11 19:53:19 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Tue Jan 11 19:53:19 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/IRemoteServiceCallPolicy.java b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/IRemoteServiceCallPolicy.java
index 5342008a7..7f1c1cada 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/IRemoteServiceCallPolicy.java
+++ b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/IRemoteServiceCallPolicy.java
@@ -1,37 +1,37 @@
-/****************************************************************************
- * Copyright (c) 2004, 2010 Composent, Inc., Franky Brandelance 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. and Franky Brandelance - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.remoteservice;
-
-import org.eclipse.ecf.core.identity.ID;
-
-/**
- * Interface providing the ability to add authorization on a remote service method call.
- * @since 6.0
- */
-public interface IRemoteServiceCallPolicy {
-
- /**
- * The following method is to be called before the remote service method call to check
- * if the remote service method call is authorized. Providers supporting this API
- * should call any available implementing instance prior to actually
- * invoking the given IRemoteCall.
- *
- * @param fromID container ID of the remote caller.
- * May be <code>null</code>.
- * @param registration Remote service registration associated
- * with the given remoteCall. Will not be <code>null</code>.
- * @param remoteCall Remote method call to invoke locally (assuming this
- * check passes). Will not be <code>null</code>.
- * @throws SecurityException if remoteCall is not authorized for the
- * given caller fromID
- */
- public void checkRemoteCall(ID fromID, IRemoteServiceRegistration registration, IRemoteCall remoteCall) throws SecurityException;
-}
+/****************************************************************************
+ * Copyright (c) 2004, 2010 Composent, Inc., Franky Brandelance 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. and Franky Brandelance - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.remoteservice;
+
+import org.eclipse.ecf.core.identity.ID;
+
+/**
+ * Interface providing the ability to add authorization on a remote service method call.
+ * @since 6.0
+ */
+public interface IRemoteServiceCallPolicy {
+
+ /**
+ * The following method is to be called before the remote service method call to check
+ * if the remote service method call is authorized. Providers supporting this API
+ * should call any available implementing instance prior to actually
+ * invoking the given IRemoteCall.
+ *
+ * @param fromID container ID of the remote caller.
+ * May be <code>null</code>.
+ * @param registration Remote service registration associated
+ * with the given remoteCall. Will not be <code>null</code>.
+ * @param remoteCall Remote method call to invoke locally (assuming this
+ * check passes). Will not be <code>null</code>.
+ * @throws SecurityException if remoteCall is not authorized for the
+ * given caller fromID
+ */
+ public void checkRemoteCall(ID fromID, IRemoteServiceRegistration registration, IRemoteCall remoteCall) throws SecurityException;
+}
diff --git a/framework/bundles/org.eclipse.ecf.sharedobject/.classpath b/framework/bundles/org.eclipse.ecf.sharedobject/.classpath
index d62b365d0..6f3b481ac 100644
--- a/framework/bundles/org.eclipse.ecf.sharedobject/.classpath
+++ b/framework/bundles/org.eclipse.ecf.sharedobject/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/framework/bundles/org.eclipse.ecf.sharedobject/.settings/org.eclipse.jdt.core.prefs b/framework/bundles/org.eclipse.ecf.sharedobject/.settings/org.eclipse.jdt.core.prefs
index 8a3230124..ae8c9eacf 100644
--- a/framework/bundles/org.eclipse.ecf.sharedobject/.settings/org.eclipse.jdt.core.prefs
+++ b/framework/bundles/org.eclipse.ecf.sharedobject/.settings/org.eclipse.jdt.core.prefs
@@ -1,353 +1,353 @@
-#Mon May 09 12:40:51 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Mon May 09 12:40:51 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/framework/bundles/org.eclipse.ecf.ssl/.settings/org.eclipse.pde.api.tools.prefs b/framework/bundles/org.eclipse.ecf.ssl/.settings/org.eclipse.pde.api.tools.prefs
index ab935311a..9917f9f36 100644
--- a/framework/bundles/org.eclipse.ecf.ssl/.settings/org.eclipse.pde.api.tools.prefs
+++ b/framework/bundles/org.eclipse.ecf.ssl/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/framework/bundles/org.eclipse.ecf.ui.capabilities/.classpath b/framework/bundles/org.eclipse.ecf.ui.capabilities/.classpath
index e3b4c8ea9..9f636f699 100644
--- a/framework/bundles/org.eclipse.ecf.ui.capabilities/.classpath
+++ b/framework/bundles/org.eclipse.ecf.ui.capabilities/.classpath
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/framework/bundles/org.eclipse.ecf.ui.capabilities/.settings/org.eclipse.jdt.core.prefs b/framework/bundles/org.eclipse.ecf.ui.capabilities/.settings/org.eclipse.jdt.core.prefs
index ebbdfdfac..812b38f3f 100644
--- a/framework/bundles/org.eclipse.ecf.ui.capabilities/.settings/org.eclipse.jdt.core.prefs
+++ b/framework/bundles/org.eclipse.ecf.ui.capabilities/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-#Fri Oct 15 17:29:00 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Fri Oct 15 17:29:00 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/framework/bundles/org.eclipse.ecf/.settings/org.eclipse.jdt.core.prefs b/framework/bundles/org.eclipse.ecf/.settings/org.eclipse.jdt.core.prefs
index 2512a4caf..0762dd51c 100644
--- a/framework/bundles/org.eclipse.ecf/.settings/org.eclipse.jdt.core.prefs
+++ b/framework/bundles/org.eclipse.ecf/.settings/org.eclipse.jdt.core.prefs
@@ -1,357 +1,357 @@
-#Mon May 09 12:21:42 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Mon May 09 12:21:42 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/framework/bundles/org.eclipse.ecf/.settings/org.eclipse.pde.api.tools.prefs b/framework/bundles/org.eclipse.ecf/.settings/org.eclipse.pde.api.tools.prefs
index ab935311a..9917f9f36 100644
--- a/framework/bundles/org.eclipse.ecf/.settings/org.eclipse.pde.api.tools.prefs
+++ b/framework/bundles/org.eclipse.ecf/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/framework/bundles/org.eclipse.ecf/javadoc.xml b/framework/bundles/org.eclipse.ecf/javadoc.xml
index f2f18b62b..39bfab941 100644
--- a/framework/bundles/org.eclipse.ecf/javadoc.xml
+++ b/framework/bundles/org.eclipse.ecf/javadoc.xml
@@ -1,48 +1,48 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project default="javadoc">
-
- <path id="files.classpath">
- <fileset dir="${target}/">
- <filename name="**/*.jar" />
- </fileset>
- </path>
-
- <target name="javadoc">
- <echo message="${target}"/>
- <echo message="${source}"/>
- <echo message="${output}"/>
- <javadoc access="protected" additionalparam="-J-Xmx512m -tag model:a:Model -tag generated:a:Generated -tag noreference:tcmf:DoNotReference -tag ordered:a:Ordered -tag noimplement:a:NoImplement -tag noextend:a:NoExtend -tag ThreadSafe -tag Immutable "
- author="false"
- classpathref="files.classpath"
- destdir="${output}"
- doctitle="Eclipse Communication Framework (ECF) 3.5.6"
- nodeprecated="false"
- nodeprecatedlist="false"
- noindex="false"
- nonavbar="false"
- notree="false"
- source="1.5"
- splitindex="true"
- use="true"
- version="true">
-
- <fileset dir="${source}" defaultexcludes="true">
- <include name="**/*.java"/>
- <exclude name="**/ui/**"/>
- <exclude name="**/smack/**"/>
- <exclude name="**/incubation/**"/>
- <exclude name="**/internal/**"/>
- <exclude name="**/ch/**"/>
- <exclude name="**/jmdns/**"/>
- <exclude name="**/tests/**"/>
- <exclude name="**/sdo/**"/>
- <exclude name="**/tutorial/**"/>
- <exclude name="**/twitter/**"/>
- <exclude name="**/jivesoftware/**"/>
- <exclude name="**/pubsub/**"/>
- <exclude name="**/collab/**"/>
- <exclude name="**/osgi/services/discovery/**"/>
- </fileset>
- </javadoc>
- </target>
-</project>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project default="javadoc">
+
+ <path id="files.classpath">
+ <fileset dir="${target}/">
+ <filename name="**/*.jar" />
+ </fileset>
+ </path>
+
+ <target name="javadoc">
+ <echo message="${target}"/>
+ <echo message="${source}"/>
+ <echo message="${output}"/>
+ <javadoc access="protected" additionalparam="-J-Xmx512m -tag model:a:Model -tag generated:a:Generated -tag noreference:tcmf:DoNotReference -tag ordered:a:Ordered -tag noimplement:a:NoImplement -tag noextend:a:NoExtend -tag ThreadSafe -tag Immutable "
+ author="false"
+ classpathref="files.classpath"
+ destdir="${output}"
+ doctitle="Eclipse Communication Framework (ECF) 3.5.6"
+ nodeprecated="false"
+ nodeprecatedlist="false"
+ noindex="false"
+ nonavbar="false"
+ notree="false"
+ source="1.5"
+ splitindex="true"
+ use="true"
+ version="true">
+
+ <fileset dir="${source}" defaultexcludes="true">
+ <include name="**/*.java"/>
+ <exclude name="**/ui/**"/>
+ <exclude name="**/smack/**"/>
+ <exclude name="**/incubation/**"/>
+ <exclude name="**/internal/**"/>
+ <exclude name="**/ch/**"/>
+ <exclude name="**/jmdns/**"/>
+ <exclude name="**/tests/**"/>
+ <exclude name="**/sdo/**"/>
+ <exclude name="**/tutorial/**"/>
+ <exclude name="**/twitter/**"/>
+ <exclude name="**/jivesoftware/**"/>
+ <exclude name="**/pubsub/**"/>
+ <exclude name="**/collab/**"/>
+ <exclude name="**/osgi/services/discovery/**"/>
+ </fileset>
+ </javadoc>
+ </target>
+</project>
diff --git a/framework/bundles/org.eclipse.ecf/schema/containerFactory.exsd b/framework/bundles/org.eclipse.ecf/schema/containerFactory.exsd
index 95a10912c..16dc504b4 100644
--- a/framework/bundles/org.eclipse.ecf/schema/containerFactory.exsd
+++ b/framework/bundles/org.eclipse.ecf/schema/containerFactory.exsd
@@ -1,312 +1,312 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ecf" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.ecf" id="containerFactory" name="ECF Container Factory"/>
- </appInfo>
- <documentation>
- This extension allows plugins to register themselves as &apos;providers&apos; of ECF containers. Once registered via this extension point, plugins can then provide there own implementations of IContainer in response to client request of the ECF container factory (&lt;b&gt;org.eclipse.ecf.core.ContainerFactory&lt;/b&gt;).
-&lt;p&gt;Plugins using this extension point can define a new implementation of any desired communications protocol, and expose that protocol as an instance of an &lt;b&gt;IContainer&lt;/b&gt;. When client requests are made to ECF ContainerFactory to create &lt;b&gt;IContainer&lt;/b&gt; instances, those requests will be re-directed to the given IContainer implementer.
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appInfo>
- <meta.element />
- </appInfo>
- </annotation>
- <complexType>
- <sequence>
- <element ref="containerFactory" minOccurs="1" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="containerFactory">
- <annotation>
- <documentation>
- The container factory extension point. Can optionally contain a list of &apos;defaultargument&apos; elements that describe the arguments to be passed to provider implementation
- </documentation>
- </annotation>
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- The fully qualified name of the class implementing the &lt;b&gt;org.eclipse.ecf.core.provider.IContainerInstantiator&lt;/b&gt; interface.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.ecf.core.provider.IContainerInstantiator"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
- An optional name for the extension. If no name is explicitly provided by the extension, the containerFactory class name is used as the name. Note that this name must &lt;b&gt;not&lt;/b&gt; conflict with any other name in the ECF SharedFactory in order to be successfully registered in the container factory. Care should therefore be taken in selection of a name such that it does not conflict with other pre-existing names for this factory implementations
- </documentation>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
- A description of the container factory suitable for presentation in a user interface.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="server" type="boolean">
- <annotation>
- <documentation>
- Flag to indicate whether the factory is for creating servers. Default is false.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="hidden" type="boolean">
- <annotation>
- <documentation>
- Flag for whether the given container factory should be hidden in the user interface. Default is false.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 0.0.1
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- Here&apos;s an extension that associates a class org.eclipse.ecf.test.FooContainerFactory with name &apos;foo&apos; in the ECF &lt;b&gt;ContainerFactory&lt;/b&gt;:
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.ecf.containerFactory&quot;&gt;
- &lt;containerFactory name=&quot;foo&quot; class=&quot;org.eclipse.ecf.test.FooInstantiator&quot; description=&quot;My container factory&quot;/&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-
-Here is some example code to implement this class:
-
-&lt;pre&gt;
-package org.eclipse.ecf.test;
-
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.ContainerInstantiationException;
-import org.eclipse.ecf.core.provider.IContainerInstantiator;
-
-public class FooInstantiator implements IContainerInstantiator {
-
- public FooInstantiator() {
- super();
- }
- public IContainer createInstance(ContainerTypeDescription description, Class[] argTypes, Object[] args)
- throws ContainerInstantiationException {
- // Create/return instance of FooContainer
- // Note that FooContainer class must
- // implement IContainer
- return new FooContainer();
- }
-}
-&lt;/pre&gt;
-
-In this example, the given class implements the &lt;b&gt;IContainerInstantiator&lt;/b&gt;.createInstance method by creating and returning a new instance of FooInstantiator, a class also defined in the extension plugin. As noted in the code, this class must implement &lt;b&gt;IContainer&lt;/b&gt;, so that it can successfully be returned from createInstance.
-
-&lt;h3&gt;Example Usage of Container by Clients&lt;/h3&gt;
-
-Clients that wish to use the &apos;foo&apos; container implementation can do so simply by making the following call to create an &lt;b&gt;IContainer&lt;/b&gt;:
-
-&lt;pre&gt;
-IContainer newContainer = ContainerFactory.getDefault().createContainer(&apos;foo&apos;);
-// Further use of newContainer instance here
-
-&lt;/pre&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- The API for this extension point is provided by the &lt;b&gt;org.eclipse.ecf.core.ContainerFactory.getDefault()&lt;/b&gt; methods. Specifically, the &apos;createContainer&apos; methods are to be used by clients. The functionality provided by the extension point mechanism can be used at runtime via the &lt;b&gt;ContainerFactory.getDefault().addDescription(ContainerTypeDescription)&lt;/b&gt; method. Here is the IContainerFactory interface
-contract:
-
-&lt;pre&gt;
-/**
- * Container factory contract {@link ContainerFactory} for default
- * implementation.
- */
-public interface IContainerFactory {
- /**
- * Add a ContainerTypeDescription to the set of known ContainerDescriptions.
- *
- * @param description
- * the ContainerTypeDescription to add to this factory. Must not
- * be null.
- * @return ContainerTypeDescription the old description of the same name,
- * null if none found
- */
- public ContainerTypeDescription addDescription(ContainerTypeDescription description);
-
- /**
- * Get a collection of the ContainerDescriptions currently known to this
- * factory. This allows clients to query the factory to determine what if
- * any other ContainerDescriptions are currently registered with the
- * factory, and if so, what they are.
- *
- * @return List of ContainerTypeDescription instances
- */
- public List /* ContainerTypeDescription */ getDescriptions();
-
- /**
- * Check to see if a given named description is already contained by this
- * factory
- *
- * @param description
- * the ContainerTypeDescription to look for
- * @return true if description is already known to factory, false otherwise
- */
- public boolean containsDescription(ContainerTypeDescription description);
-
- /**
- * Get the known ContainerTypeDescription given it&apos;s name.
- *
- * @param name
- * the name to use as key to find ContainerTypeDescription
- * @return ContainerTypeDescription found. Null if not found.
- */
- public ContainerTypeDescription getDescriptionByName(String name);
-
- /**
- * Make IContainer instance. Given a ContainerTypeDescription object, a
- * String [] of argument types, and an Object [] of parameters, this method
- * will
- * &lt;p&gt;
- * &lt;ul&gt;
- * &lt;li&gt;lookup the known ContainerDescriptions to find one of matching name&lt;/li&gt;
- * &lt;li&gt;if found, will retrieve or create an IContainerInstantiator for that
- * description&lt;/li&gt;
- * &lt;li&gt;Call the IContainerInstantiator.createInstance method to return an
- * instance of IContainer&lt;/li&gt;
- * &lt;/ul&gt;
- *
- * @param description
- * the ContainerTypeDescription to use to create the instance
- * @param parameters
- * an Object [] of parameters passed to the createInstance method
- * of the IContainerInstantiator
- * @return a valid instance of IContainer
- * @throws ContainerCreateException
- */
- public IContainer createContainer(ContainerTypeDescription description,
- Object[] parameters) throws ContainerCreateException;
-
- /**
- * Make IContainer instance. Given a ContainerTypeDescription name, this
- * method will
- * &lt;p&gt;
- * &lt;ul&gt;
- * &lt;li&gt;lookup the known ContainerDescriptions to find one of matching name&lt;/li&gt;
- * &lt;li&gt;if found, will retrieve or create an IContainerInstantiator for that
- * description&lt;/li&gt;
- * &lt;li&gt;Call the IContainerInstantiator.createInstance method to return an
- * instance of IContainer&lt;/li&gt;
- * &lt;/ul&gt;
- *
- * @param descriptionName
- * the ContainerTypeDescription name to lookup
- * @return a valid instance of IContainer
- * @throws ContainerCreateException
- */
- public IContainer createContainer(String descriptionName)
- throws ContainerCreateException;
-
- /**
- * Make IContainer instance. Given a ContainerTypeDescription name, this
- * method will
- * &lt;p&gt;
- * &lt;ul&gt;
- * &lt;li&gt;lookup the known ContainerDescriptions to find one of matching name&lt;/li&gt;
- * &lt;li&gt;if found, will retrieve or create an IContainerInstantiator for that
- * description&lt;/li&gt;
- * &lt;li&gt;Call the IContainerInstantiator.createInstance method to return an
- * instance of IContainer&lt;/li&gt;
- * &lt;/ul&gt;
- *
- * @param descriptionName
- * the ContainerTypeDescription name to lookup
- * @param parameters
- * the Object [] of parameters passed to the
- * IContainerInstantiator.createInstance method
- * @return a valid instance of IContainer
- * @throws ContainerCreateException
- */
- public IContainer createContainer(String descriptionName, Object[] parameters)
- throws ContainerCreateException;
-
- /**
- * Remove given description from set known to this factory.
- *
- * @param description
- * the ContainerTypeDescription to remove
- * @return the removed ContainerTypeDescription, null if nothing removed
- */
- public ContainerTypeDescription removeDescription(
- ContainerTypeDescription description);
-}
-&lt;/pre&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- The supplied implementations of this extension point are:
-
-org.eclipse.ecf.provider.generic.GenericContainerInstantiator
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2004 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.
- </documentation>
- </annotation>
-
-</schema>
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ecf" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ecf" id="containerFactory" name="ECF Container Factory"/>
+ </appInfo>
+ <documentation>
+ This extension allows plugins to register themselves as &apos;providers&apos; of ECF containers. Once registered via this extension point, plugins can then provide there own implementations of IContainer in response to client request of the ECF container factory (&lt;b&gt;org.eclipse.ecf.core.ContainerFactory&lt;/b&gt;).
+&lt;p&gt;Plugins using this extension point can define a new implementation of any desired communications protocol, and expose that protocol as an instance of an &lt;b&gt;IContainer&lt;/b&gt;. When client requests are made to ECF ContainerFactory to create &lt;b&gt;IContainer&lt;/b&gt; instances, those requests will be re-directed to the given IContainer implementer.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="containerFactory" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="containerFactory">
+ <annotation>
+ <documentation>
+ The container factory extension point. Can optionally contain a list of &apos;defaultargument&apos; elements that describe the arguments to be passed to provider implementation
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The fully qualified name of the class implementing the &lt;b&gt;org.eclipse.ecf.core.provider.IContainerInstantiator&lt;/b&gt; interface.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ecf.core.provider.IContainerInstantiator"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ An optional name for the extension. If no name is explicitly provided by the extension, the containerFactory class name is used as the name. Note that this name must &lt;b&gt;not&lt;/b&gt; conflict with any other name in the ECF SharedFactory in order to be successfully registered in the container factory. Care should therefore be taken in selection of a name such that it does not conflict with other pre-existing names for this factory implementations
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ A description of the container factory suitable for presentation in a user interface.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="server" type="boolean">
+ <annotation>
+ <documentation>
+ Flag to indicate whether the factory is for creating servers. Default is false.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="hidden" type="boolean">
+ <annotation>
+ <documentation>
+ Flag for whether the given container factory should be hidden in the user interface. Default is false.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 0.0.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Here&apos;s an extension that associates a class org.eclipse.ecf.test.FooContainerFactory with name &apos;foo&apos; in the ECF &lt;b&gt;ContainerFactory&lt;/b&gt;:
+
+&lt;pre&gt;
+&lt;extension point=&quot;org.eclipse.ecf.containerFactory&quot;&gt;
+ &lt;containerFactory name=&quot;foo&quot; class=&quot;org.eclipse.ecf.test.FooInstantiator&quot; description=&quot;My container factory&quot;/&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+
+Here is some example code to implement this class:
+
+&lt;pre&gt;
+package org.eclipse.ecf.test;
+
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.ContainerInstantiationException;
+import org.eclipse.ecf.core.provider.IContainerInstantiator;
+
+public class FooInstantiator implements IContainerInstantiator {
+
+ public FooInstantiator() {
+ super();
+ }
+ public IContainer createInstance(ContainerTypeDescription description, Class[] argTypes, Object[] args)
+ throws ContainerInstantiationException {
+ // Create/return instance of FooContainer
+ // Note that FooContainer class must
+ // implement IContainer
+ return new FooContainer();
+ }
+}
+&lt;/pre&gt;
+
+In this example, the given class implements the &lt;b&gt;IContainerInstantiator&lt;/b&gt;.createInstance method by creating and returning a new instance of FooInstantiator, a class also defined in the extension plugin. As noted in the code, this class must implement &lt;b&gt;IContainer&lt;/b&gt;, so that it can successfully be returned from createInstance.
+
+&lt;h3&gt;Example Usage of Container by Clients&lt;/h3&gt;
+
+Clients that wish to use the &apos;foo&apos; container implementation can do so simply by making the following call to create an &lt;b&gt;IContainer&lt;/b&gt;:
+
+&lt;pre&gt;
+IContainer newContainer = ContainerFactory.getDefault().createContainer(&apos;foo&apos;);
+// Further use of newContainer instance here
+
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The API for this extension point is provided by the &lt;b&gt;org.eclipse.ecf.core.ContainerFactory.getDefault()&lt;/b&gt; methods. Specifically, the &apos;createContainer&apos; methods are to be used by clients. The functionality provided by the extension point mechanism can be used at runtime via the &lt;b&gt;ContainerFactory.getDefault().addDescription(ContainerTypeDescription)&lt;/b&gt; method. Here is the IContainerFactory interface
+contract:
+
+&lt;pre&gt;
+/**
+ * Container factory contract {@link ContainerFactory} for default
+ * implementation.
+ */
+public interface IContainerFactory {
+ /**
+ * Add a ContainerTypeDescription to the set of known ContainerDescriptions.
+ *
+ * @param description
+ * the ContainerTypeDescription to add to this factory. Must not
+ * be null.
+ * @return ContainerTypeDescription the old description of the same name,
+ * null if none found
+ */
+ public ContainerTypeDescription addDescription(ContainerTypeDescription description);
+
+ /**
+ * Get a collection of the ContainerDescriptions currently known to this
+ * factory. This allows clients to query the factory to determine what if
+ * any other ContainerDescriptions are currently registered with the
+ * factory, and if so, what they are.
+ *
+ * @return List of ContainerTypeDescription instances
+ */
+ public List /* ContainerTypeDescription */ getDescriptions();
+
+ /**
+ * Check to see if a given named description is already contained by this
+ * factory
+ *
+ * @param description
+ * the ContainerTypeDescription to look for
+ * @return true if description is already known to factory, false otherwise
+ */
+ public boolean containsDescription(ContainerTypeDescription description);
+
+ /**
+ * Get the known ContainerTypeDescription given it&apos;s name.
+ *
+ * @param name
+ * the name to use as key to find ContainerTypeDescription
+ * @return ContainerTypeDescription found. Null if not found.
+ */
+ public ContainerTypeDescription getDescriptionByName(String name);
+
+ /**
+ * Make IContainer instance. Given a ContainerTypeDescription object, a
+ * String [] of argument types, and an Object [] of parameters, this method
+ * will
+ * &lt;p&gt;
+ * &lt;ul&gt;
+ * &lt;li&gt;lookup the known ContainerDescriptions to find one of matching name&lt;/li&gt;
+ * &lt;li&gt;if found, will retrieve or create an IContainerInstantiator for that
+ * description&lt;/li&gt;
+ * &lt;li&gt;Call the IContainerInstantiator.createInstance method to return an
+ * instance of IContainer&lt;/li&gt;
+ * &lt;/ul&gt;
+ *
+ * @param description
+ * the ContainerTypeDescription to use to create the instance
+ * @param parameters
+ * an Object [] of parameters passed to the createInstance method
+ * of the IContainerInstantiator
+ * @return a valid instance of IContainer
+ * @throws ContainerCreateException
+ */
+ public IContainer createContainer(ContainerTypeDescription description,
+ Object[] parameters) throws ContainerCreateException;
+
+ /**
+ * Make IContainer instance. Given a ContainerTypeDescription name, this
+ * method will
+ * &lt;p&gt;
+ * &lt;ul&gt;
+ * &lt;li&gt;lookup the known ContainerDescriptions to find one of matching name&lt;/li&gt;
+ * &lt;li&gt;if found, will retrieve or create an IContainerInstantiator for that
+ * description&lt;/li&gt;
+ * &lt;li&gt;Call the IContainerInstantiator.createInstance method to return an
+ * instance of IContainer&lt;/li&gt;
+ * &lt;/ul&gt;
+ *
+ * @param descriptionName
+ * the ContainerTypeDescription name to lookup
+ * @return a valid instance of IContainer
+ * @throws ContainerCreateException
+ */
+ public IContainer createContainer(String descriptionName)
+ throws ContainerCreateException;
+
+ /**
+ * Make IContainer instance. Given a ContainerTypeDescription name, this
+ * method will
+ * &lt;p&gt;
+ * &lt;ul&gt;
+ * &lt;li&gt;lookup the known ContainerDescriptions to find one of matching name&lt;/li&gt;
+ * &lt;li&gt;if found, will retrieve or create an IContainerInstantiator for that
+ * description&lt;/li&gt;
+ * &lt;li&gt;Call the IContainerInstantiator.createInstance method to return an
+ * instance of IContainer&lt;/li&gt;
+ * &lt;/ul&gt;
+ *
+ * @param descriptionName
+ * the ContainerTypeDescription name to lookup
+ * @param parameters
+ * the Object [] of parameters passed to the
+ * IContainerInstantiator.createInstance method
+ * @return a valid instance of IContainer
+ * @throws ContainerCreateException
+ */
+ public IContainer createContainer(String descriptionName, Object[] parameters)
+ throws ContainerCreateException;
+
+ /**
+ * Remove given description from set known to this factory.
+ *
+ * @param description
+ * the ContainerTypeDescription to remove
+ * @return the removed ContainerTypeDescription, null if nothing removed
+ */
+ public ContainerTypeDescription removeDescription(
+ ContainerTypeDescription description);
+}
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The supplied implementations of this extension point are:
+
+org.eclipse.ecf.provider.generic.GenericContainerInstantiator
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2004 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.
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/incubation/bundles/org.eclipse.ecf.bulletinboard/.classpath b/incubation/bundles/org.eclipse.ecf.bulletinboard/.classpath
index 6e14aced3..c4a3549d9 100644
--- a/incubation/bundles/org.eclipse.ecf.bulletinboard/.classpath
+++ b/incubation/bundles/org.eclipse.ecf.bulletinboard/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/incubation/bundles/org.eclipse.ecf.bulletinboard/.settings/org.eclipse.jdt.core.prefs b/incubation/bundles/org.eclipse.ecf.bulletinboard/.settings/org.eclipse.jdt.core.prefs
index 2b9cfe3f9..b53cfe275 100644
--- a/incubation/bundles/org.eclipse.ecf.bulletinboard/.settings/org.eclipse.jdt.core.prefs
+++ b/incubation/bundles/org.eclipse.ecf.bulletinboard/.settings/org.eclipse.jdt.core.prefs
@@ -1,63 +1,63 @@
-#Fri Oct 15 16:56:28 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Fri Oct 15 16:56:28 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.classpath b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.classpath
index 2d1a4302f..64c5e31b7 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.classpath
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.project b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.project
index 9678ab6a8..7772136c2 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.project
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.provider.endpointdescription.localdiscovery</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.provider.endpointdescription.localdiscovery</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.jdt.core.prefs b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.jdt.core.prefs
index c851a1697..a124dea54 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.jdt.core.prefs
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.jdt.core.prefs
@@ -1,78 +1,78 @@
-#Tue Jan 11 19:56:36 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+#Tue Jan 11 19:56:36 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.core.prefs b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.core.prefs
index 610d2769c..9f3a72a9f 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.core.prefs
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.core.prefs
@@ -1,4 +1,4 @@
-#Thu Oct 14 13:55:37 PDT 2010
-eclipse.preferences.version=1
-pluginProject.extensions=true
-resolve.requirebundle=false
+#Thu Oct 14 13:55:37 PDT 2010
+eclipse.preferences.version=1
+pluginProject.extensions=true
+resolve.requirebundle=false
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.prefs b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.prefs
index 5778019ff..8e9c9ee4c 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.prefs
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/.settings/org.eclipse.pde.prefs
@@ -1,33 +1,33 @@
-#Thu Oct 14 13:10:02 PDT 2010
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
+#Thu Oct 14 13:10:02 PDT 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/build.properties b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/build.properties
index f4ae97015..aa1a00826 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/build.properties
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/build.properties
@@ -1,5 +1,5 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/endpointdescription1.xml b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/endpointdescription1.xml
index 6e661a7cf..417554f5b 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/endpointdescription1.xml
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/endpointdescription1.xml
@@ -1,49 +1,49 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
- <endpoint-description>
- <!-- osgi required endpoint description properties -->
- <property name="objectClass" value="com.acme.Foo"/>
- <property name="endpoint.service.id" value="100"/>
- <property name="endpoint.framework.uuid" value="frameworkid.1000"/>
- <property name="endpoint.id" value="http://ws.acme.com:9000/hello"/>
- <property name="service.imported.configs" value="com.acme"/>
-
- <!-- ecf required endpoint description properties -->
- <property name="ecf.endpoint.containerid" value="ecftcp://localhost:3283/server" />
- <property name="ecf.endpoint.containerid.namespace" value="org.eclipse.ecf.core.identity.StringID" />
- <property name="ecf.endpoint.remoteserviceid" value="1000" />
-
- <!-- osgi optional endpoint description properties -->
- <property name="endpoint.package.version.com.acme" value="4.2"/>
- <property name="service.imported.configs" value="com.acme"/>
- <property name="service.intents">
- <list>
- <value>SOAP</value>
- <value>HTTP</value>
- </list>
- </property>
- <property name="integers" value-type="int">
- <array>
- <value> 1 </value>
- <value>2</value>
- <value> 3 </value>
- </array>
- </property>
- <property name="floats" value-type="Float">
- <set>
- <value> 1.45 </value>
- <value>2.0</value>
- <value> 3 </value>
- </set>
- </property>
-
- <property name="com.acme.ws.xml">
- <xml>
- <config xmlns:cfg="http://acme.com/defs" foo="bar">
- <cfg:port>1029</cfg:port>
- <host>www.acme.com</host>
- </config>
- </xml>
- </property>
- </endpoint-description>
-</endpoint-descriptions>
+<?xml version="1.0" encoding="UTF-8"?>
+<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
+ <endpoint-description>
+ <!-- osgi required endpoint description properties -->
+ <property name="objectClass" value="com.acme.Foo"/>
+ <property name="endpoint.service.id" value="100"/>
+ <property name="endpoint.framework.uuid" value="frameworkid.1000"/>
+ <property name="endpoint.id" value="http://ws.acme.com:9000/hello"/>
+ <property name="service.imported.configs" value="com.acme"/>
+
+ <!-- ecf required endpoint description properties -->
+ <property name="ecf.endpoint.containerid" value="ecftcp://localhost:3283/server" />
+ <property name="ecf.endpoint.containerid.namespace" value="org.eclipse.ecf.core.identity.StringID" />
+ <property name="ecf.endpoint.remoteserviceid" value="1000" />
+
+ <!-- osgi optional endpoint description properties -->
+ <property name="endpoint.package.version.com.acme" value="4.2"/>
+ <property name="service.imported.configs" value="com.acme"/>
+ <property name="service.intents">
+ <list>
+ <value>SOAP</value>
+ <value>HTTP</value>
+ </list>
+ </property>
+ <property name="integers" value-type="int">
+ <array>
+ <value> 1 </value>
+ <value>2</value>
+ <value> 3 </value>
+ </array>
+ </property>
+ <property name="floats" value-type="Float">
+ <set>
+ <value> 1.45 </value>
+ <value>2.0</value>
+ <value> 3 </value>
+ </set>
+ </property>
+
+ <property name="com.acme.ws.xml">
+ <xml>
+ <config xmlns:cfg="http://acme.com/defs" foo="bar">
+ <cfg:port>1029</cfg:port>
+ <host>www.acme.com</host>
+ </config>
+ </xml>
+ </property>
+ </endpoint-description>
+</endpoint-descriptions>
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/plugin.properties b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/plugin.properties
index 47bb5474b..e94b42352 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/plugin.properties
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/plugin.properties
@@ -1,10 +1,10 @@
-############################################################################
-# Copyright (c) 2010 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
-#
-############################################################################
-plugin.provider=Eclipse.org - ECF
-plugin.name=ECF EndpointDescription File Discovery Provider
+############################################################################
+# Copyright (c) 2010 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
+#
+############################################################################
+plugin.provider=Eclipse.org - ECF
+plugin.name=ECF EndpointDescription File Discovery Provider
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/Activator.java b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/Activator.java
index b4d796537..13e5b5fe6 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/Activator.java
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/Activator.java
@@ -1,96 +1,96 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.endpointdescription.localdiscovery;
-
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.IServiceInfoFactory;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class Activator implements BundleActivator {
-
- private static BundleContext context;
- private static Activator instance;
-
- private ServiceTracker parserTracker;
-
- private ServiceTracker serviceInfoFactoryTracker;
-
- static BundleContext getContext() {
- return context;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
- * )
- */
- public void start(BundleContext bundleContext) throws Exception {
- Activator.context = bundleContext;
- instance = this;
- }
-
- public synchronized IServiceInfoFactory getServiceInfoFactory() {
- if (instance == null)
- return null;
- if (serviceInfoFactoryTracker == null) {
- serviceInfoFactoryTracker = new ServiceTracker(context,
- IServiceInfoFactory.class.getName(), null);
- serviceInfoFactoryTracker.open();
- }
- return (IServiceInfoFactory) serviceInfoFactoryTracker.getService();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext bundleContext) throws Exception {
- closeServiceInfoFactoryTracker();
- closeSAXParserTracker();
- Activator.context = null;
- instance = null;
- }
-
- public static Activator getDefault() {
- return instance;
- }
-
- public synchronized SAXParserFactory getSAXParserFactory() {
- if (instance == null)
- return null;
- if (parserTracker == null) {
- parserTracker = new ServiceTracker(context,
- SAXParserFactory.class.getName(), null);
- parserTracker.open();
- }
- return (SAXParserFactory) parserTracker.getService();
- }
-
- private synchronized void closeSAXParserTracker() {
- if (parserTracker != null) {
- parserTracker.close();
- parserTracker = null;
- }
- }
-
- private synchronized void closeServiceInfoFactoryTracker() {
- if (serviceInfoFactoryTracker != null) {
- serviceInfoFactoryTracker.close();
- serviceInfoFactoryTracker = null;
- }
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010 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.endpointdescription.localdiscovery;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.IServiceInfoFactory;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+ private static Activator instance;
+
+ private ServiceTracker parserTracker;
+
+ private ServiceTracker serviceInfoFactoryTracker;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
+ * )
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ instance = this;
+ }
+
+ public synchronized IServiceInfoFactory getServiceInfoFactory() {
+ if (instance == null)
+ return null;
+ if (serviceInfoFactoryTracker == null) {
+ serviceInfoFactoryTracker = new ServiceTracker(context,
+ IServiceInfoFactory.class.getName(), null);
+ serviceInfoFactoryTracker.open();
+ }
+ return (IServiceInfoFactory) serviceInfoFactoryTracker.getService();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ closeServiceInfoFactoryTracker();
+ closeSAXParserTracker();
+ Activator.context = null;
+ instance = null;
+ }
+
+ public static Activator getDefault() {
+ return instance;
+ }
+
+ public synchronized SAXParserFactory getSAXParserFactory() {
+ if (instance == null)
+ return null;
+ if (parserTracker == null) {
+ parserTracker = new ServiceTracker(context,
+ SAXParserFactory.class.getName(), null);
+ parserTracker.open();
+ }
+ return (SAXParserFactory) parserTracker.getService();
+ }
+
+ private synchronized void closeSAXParserTracker() {
+ if (parserTracker != null) {
+ parserTracker.close();
+ parserTracker = null;
+ }
+ }
+
+ private synchronized void closeServiceInfoFactoryTracker() {
+ if (serviceInfoFactoryTracker != null) {
+ serviceInfoFactoryTracker.close();
+ serviceInfoFactoryTracker = null;
+ }
+ }
+}
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionDiscoveryContainerAdapter.java b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionDiscoveryContainerAdapter.java
index 718b74feb..8be5a2643 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionDiscoveryContainerAdapter.java
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionDiscoveryContainerAdapter.java
@@ -1,195 +1,195 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.endpointdescription.localdiscovery;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ecf.core.ContainerConnectException;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.discovery.AbstractDiscoveryContainerAdapter;
-import org.eclipse.ecf.discovery.DiscoveryContainerConfig;
-import org.eclipse.ecf.discovery.IServiceEvent;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.discovery.IServiceTypeEvent;
-import org.eclipse.ecf.discovery.identity.IServiceID;
-import org.eclipse.ecf.discovery.identity.IServiceTypeID;
-
-public class EndpointDescriptionDiscoveryContainerAdapter extends
- AbstractDiscoveryContainerAdapter {
-
- private Map<IServiceID, IServiceInfo> remoteServiceInfos;
-
- public EndpointDescriptionDiscoveryContainerAdapter(String aNamespaceName,
- DiscoveryContainerConfig aConfig) {
- super(aNamespaceName, aConfig);
- remoteServiceInfos = new HashMap<IServiceID, IServiceInfo>();
- }
-
- public IServiceInfo getServiceInfo(IServiceID aServiceID) {
- if (aServiceID == null)
- return null;
- synchronized (remoteServiceInfos) {
- return remoteServiceInfos.get(aServiceID);
- }
- }
-
- public IServiceInfo[] getServices() {
- Collection<IServiceInfo> results = new ArrayList<IServiceInfo>();
- synchronized (remoteServiceInfos) {
- for (IServiceInfo i : remoteServiceInfos.values())
- results.add(i);
- }
- return (IServiceInfo[]) results.toArray(new IServiceInfo[] {});
- }
-
- public IServiceInfo[] getServices(IServiceTypeID aServiceTypeID) {
- Collection<IServiceInfo> results = new ArrayList<IServiceInfo>();
- if (aServiceTypeID == null)
- return (IServiceInfo[]) results.toArray(new IServiceInfo[] {});
- synchronized (remoteServiceInfos) {
- for (IServiceInfo i : remoteServiceInfos.values()) {
- if (i.getServiceID().getServiceTypeID().equals(aServiceTypeID))
- results.add(i);
- }
- }
- return (IServiceInfo[]) results.toArray(new IServiceInfo[] {});
- }
-
- private Collection<IServiceTypeID> getServiceTypesAsCollection() {
- Collection<IServiceTypeID> results = new ArrayList<IServiceTypeID>();
- synchronized (remoteServiceInfos) {
- for (IServiceInfo i : remoteServiceInfos.values())
- results.add(i.getServiceID().getServiceTypeID());
- }
- return results;
- }
-
- public IServiceTypeID[] getServiceTypes() {
- return (IServiceTypeID[]) getServiceTypesAsCollection().toArray(
- new IServiceTypeID[] {});
- }
-
- public void registerService(IServiceInfo serviceInfo) {
- if (serviceInfo == null)
- throw new NullPointerException("serviceInfo cannot be null"); //$NON-NLS-1$
- addServiceInfo(serviceInfo);
- }
-
- private void addServiceInfo(IServiceInfo serviceInfo) {
- IServiceID serviceID = serviceInfo.getServiceID();
- IServiceInfo addResult = null;
- IServiceTypeID serviceTypeAdded = null;
- synchronized (remoteServiceInfos) {
- // First add..
- addResult = remoteServiceInfos.put(serviceID, serviceInfo);
- if (addResult == null) {
- Collection<IServiceTypeID> serviceTypes = getServiceTypesAsCollection();
- IServiceTypeID stID = serviceID.getServiceTypeID();
- if (serviceTypes.contains(stID))
- serviceTypeAdded = stID;
- }
- }
- if (serviceTypeAdded != null)
- fireServiceTypeDiscovered(createDiscoveredServiceTypeEvent(serviceTypeAdded));
- if (addResult == null)
- fireServiceDiscovered(createDiscoveredServiceEvent(serviceInfo));
- }
-
- private IServiceTypeEvent createDiscoveredServiceTypeEvent(
- final IServiceTypeID serviceTypeID) {
- return new IServiceTypeEvent() {
-
- public ID getLocalContainerID() {
- return getID();
- }
-
- public IServiceTypeID getServiceTypeID() {
- return serviceTypeID;
- }
- };
- }
-
- private IServiceEvent createDiscoveredServiceEvent(
- final IServiceInfo serviceInfo) {
- return new IServiceEvent() {
-
- public ID getLocalContainerID() {
- return getID();
- }
-
- public IServiceInfo getServiceInfo() {
- return serviceInfo;
- }
- };
- }
-
- public void unregisterService(IServiceInfo serviceInfo) {
- if (serviceInfo == null)
- throw new NullPointerException("serviceInfo cannot be null"); //$NON-NLS-1$
- removeServiceInfo(serviceInfo);
- }
-
- private void removeServiceInfo(IServiceInfo serviceInfo) {
- IServiceID serviceID = serviceInfo.getServiceID();
- IServiceInfo addResult = null;
- synchronized (remoteServiceInfos) {
- addResult = remoteServiceInfos.remove(serviceID);
- }
- if (addResult == null)
- fireServiceUndiscovered(createUndiscoveredServiceEvent(serviceInfo));
- }
-
- private IServiceEvent createUndiscoveredServiceEvent(
- final IServiceInfo serviceInfo) {
- return new IServiceEvent() {
-
- public ID getLocalContainerID() {
- return getID();
- }
-
- public IServiceInfo getServiceInfo() {
- return serviceInfo;
- }
- };
- }
-
- public void connect(ID targetID, IConnectContext connectContext)
- throws ContainerConnectException {
- // Do nothing...no connection
- }
-
- public ID getConnectedID() {
- return getID();
- }
-
- public void disconnect() {
- // No disconnection
- }
-
- @SuppressWarnings("rawtypes")
- public Object getAdapter(Class adapter) {
- // No adapters supported
- return null;
- }
-
- @Override
- public String getContainerName() {
- return "ecf.discovery.local"; //$NON-NLS-1$
- }
-
- public void dispose() {
- remoteServiceInfos.clear();
- super.dispose();
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010 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.endpointdescription.localdiscovery;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.ecf.core.ContainerConnectException;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.discovery.AbstractDiscoveryContainerAdapter;
+import org.eclipse.ecf.discovery.DiscoveryContainerConfig;
+import org.eclipse.ecf.discovery.IServiceEvent;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.discovery.IServiceTypeEvent;
+import org.eclipse.ecf.discovery.identity.IServiceID;
+import org.eclipse.ecf.discovery.identity.IServiceTypeID;
+
+public class EndpointDescriptionDiscoveryContainerAdapter extends
+ AbstractDiscoveryContainerAdapter {
+
+ private Map<IServiceID, IServiceInfo> remoteServiceInfos;
+
+ public EndpointDescriptionDiscoveryContainerAdapter(String aNamespaceName,
+ DiscoveryContainerConfig aConfig) {
+ super(aNamespaceName, aConfig);
+ remoteServiceInfos = new HashMap<IServiceID, IServiceInfo>();
+ }
+
+ public IServiceInfo getServiceInfo(IServiceID aServiceID) {
+ if (aServiceID == null)
+ return null;
+ synchronized (remoteServiceInfos) {
+ return remoteServiceInfos.get(aServiceID);
+ }
+ }
+
+ public IServiceInfo[] getServices() {
+ Collection<IServiceInfo> results = new ArrayList<IServiceInfo>();
+ synchronized (remoteServiceInfos) {
+ for (IServiceInfo i : remoteServiceInfos.values())
+ results.add(i);
+ }
+ return (IServiceInfo[]) results.toArray(new IServiceInfo[] {});
+ }
+
+ public IServiceInfo[] getServices(IServiceTypeID aServiceTypeID) {
+ Collection<IServiceInfo> results = new ArrayList<IServiceInfo>();
+ if (aServiceTypeID == null)
+ return (IServiceInfo[]) results.toArray(new IServiceInfo[] {});
+ synchronized (remoteServiceInfos) {
+ for (IServiceInfo i : remoteServiceInfos.values()) {
+ if (i.getServiceID().getServiceTypeID().equals(aServiceTypeID))
+ results.add(i);
+ }
+ }
+ return (IServiceInfo[]) results.toArray(new IServiceInfo[] {});
+ }
+
+ private Collection<IServiceTypeID> getServiceTypesAsCollection() {
+ Collection<IServiceTypeID> results = new ArrayList<IServiceTypeID>();
+ synchronized (remoteServiceInfos) {
+ for (IServiceInfo i : remoteServiceInfos.values())
+ results.add(i.getServiceID().getServiceTypeID());
+ }
+ return results;
+ }
+
+ public IServiceTypeID[] getServiceTypes() {
+ return (IServiceTypeID[]) getServiceTypesAsCollection().toArray(
+ new IServiceTypeID[] {});
+ }
+
+ public void registerService(IServiceInfo serviceInfo) {
+ if (serviceInfo == null)
+ throw new NullPointerException("serviceInfo cannot be null"); //$NON-NLS-1$
+ addServiceInfo(serviceInfo);
+ }
+
+ private void addServiceInfo(IServiceInfo serviceInfo) {
+ IServiceID serviceID = serviceInfo.getServiceID();
+ IServiceInfo addResult = null;
+ IServiceTypeID serviceTypeAdded = null;
+ synchronized (remoteServiceInfos) {
+ // First add..
+ addResult = remoteServiceInfos.put(serviceID, serviceInfo);
+ if (addResult == null) {
+ Collection<IServiceTypeID> serviceTypes = getServiceTypesAsCollection();
+ IServiceTypeID stID = serviceID.getServiceTypeID();
+ if (serviceTypes.contains(stID))
+ serviceTypeAdded = stID;
+ }
+ }
+ if (serviceTypeAdded != null)
+ fireServiceTypeDiscovered(createDiscoveredServiceTypeEvent(serviceTypeAdded));
+ if (addResult == null)
+ fireServiceDiscovered(createDiscoveredServiceEvent(serviceInfo));
+ }
+
+ private IServiceTypeEvent createDiscoveredServiceTypeEvent(
+ final IServiceTypeID serviceTypeID) {
+ return new IServiceTypeEvent() {
+
+ public ID getLocalContainerID() {
+ return getID();
+ }
+
+ public IServiceTypeID getServiceTypeID() {
+ return serviceTypeID;
+ }
+ };
+ }
+
+ private IServiceEvent createDiscoveredServiceEvent(
+ final IServiceInfo serviceInfo) {
+ return new IServiceEvent() {
+
+ public ID getLocalContainerID() {
+ return getID();
+ }
+
+ public IServiceInfo getServiceInfo() {
+ return serviceInfo;
+ }
+ };
+ }
+
+ public void unregisterService(IServiceInfo serviceInfo) {
+ if (serviceInfo == null)
+ throw new NullPointerException("serviceInfo cannot be null"); //$NON-NLS-1$
+ removeServiceInfo(serviceInfo);
+ }
+
+ private void removeServiceInfo(IServiceInfo serviceInfo) {
+ IServiceID serviceID = serviceInfo.getServiceID();
+ IServiceInfo addResult = null;
+ synchronized (remoteServiceInfos) {
+ addResult = remoteServiceInfos.remove(serviceID);
+ }
+ if (addResult == null)
+ fireServiceUndiscovered(createUndiscoveredServiceEvent(serviceInfo));
+ }
+
+ private IServiceEvent createUndiscoveredServiceEvent(
+ final IServiceInfo serviceInfo) {
+ return new IServiceEvent() {
+
+ public ID getLocalContainerID() {
+ return getID();
+ }
+
+ public IServiceInfo getServiceInfo() {
+ return serviceInfo;
+ }
+ };
+ }
+
+ public void connect(ID targetID, IConnectContext connectContext)
+ throws ContainerConnectException {
+ // Do nothing...no connection
+ }
+
+ public ID getConnectedID() {
+ return getID();
+ }
+
+ public void disconnect() {
+ // No disconnection
+ }
+
+ @SuppressWarnings("rawtypes")
+ public Object getAdapter(Class adapter) {
+ // No adapters supported
+ return null;
+ }
+
+ @Override
+ public String getContainerName() {
+ return "ecf.discovery.local"; //$NON-NLS-1$
+ }
+
+ public void dispose() {
+ remoteServiceInfos.clear();
+ super.dispose();
+ }
+}
diff --git a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionParser.java b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionParser.java
index d42cd83f1..0094835f2 100644
--- a/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionParser.java
+++ b/incubation/bundles/org.eclipse.ecf.provider.endpointdescription.localdiscovery/src/org/eclipse/ecf/provider/internal/endpointdescription/localdiscovery/EndpointDescriptionParser.java
@@ -1,792 +1,792 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.endpointdescription.localdiscovery;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-
-public class EndpointDescriptionParser {
-
- private static List<String> multiValueTypes;
-
- static {
- multiValueTypes = Arrays.asList(new String[] { "String", "Long", //$NON-NLS-1$ //$NON-NLS-2$
- "long", "Double", "double", "float", "Float", "int", "Integer", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
- "byte", "Byte", "char", "Character", "boolean", "Boolean", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- "short", "Short" }); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- private static final String ENDPOINT_DESCRIPTIONS = "endpoint-descriptions"; //$NON-NLS-1$
- private static final String ENDPOINT_DESCRIPTION = "endpoint-description"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY = "property"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_NAME = "name"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_VALUE = "value"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_VALUETYPE = "value-type"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_ARRAY = "array"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_LIST = "list"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_SET = "set"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_XML = "xml"; //$NON-NLS-1$
-
- public static String[] noAttributes = new String[0];
-
- private XMLReader xmlReader;
- protected Locator locator = null; // document locator, if supported by the
- // parser
-
- class IgnoringHandler extends AbstractHandler {
-
- public IgnoringHandler(AbstractHandler parent) {
- super(parent);
- this.elementHandled = "IgnoringAll"; //$NON-NLS-1$
- }
-
- public void startElement(String name, Attributes attributes) {
- noSubElements(name, attributes);
- }
-
- }
-
- /**
- * Abstract base class for content handlers
- */
- abstract class AbstractHandler extends DefaultHandler {
-
- protected ContentHandler parentHandler = null;
- protected String elementHandled = null;
-
- protected StringBuffer characters = null; // character data inside an
- // element
-
- public AbstractHandler() {
- // Empty constructor for a root handler
- }
-
- public AbstractHandler(ContentHandler parentHandler) {
- this.parentHandler = parentHandler;
- xmlReader.setContentHandler(this);
- }
-
- public AbstractHandler(ContentHandler parentHandler,
- String elementHandled) {
- this.parentHandler = parentHandler;
- xmlReader.setContentHandler(this);
- this.elementHandled = elementHandled;
- }
-
- /**
- * Set the document locator for the parser
- *
- * @see org.xml.sax.ContentHandler#setDocumentLocator
- */
- public void setDocumentLocator(Locator docLocator) {
- locator = docLocator;
- }
-
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- finishCharacters();
- String name = makeSimpleName(localName, qName);
- startElement(name, attributes);
- }
-
- public abstract void startElement(String name, Attributes attributes)
- throws SAXException;
-
- public void invalidElement(String name, Attributes attributes) {
- unexpectedElement(this, name, attributes);
- new IgnoringHandler(this);
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- finishCharacters();
- finished();
- // Restore the parent content handler
- xmlReader.setContentHandler(parentHandler);
- }
-
- /**
- * An implementation for startElement when there are no sub-elements
- */
- protected void noSubElements(String name, Attributes attributes) {
- unexpectedElement(this, name, attributes);
- // Create a new handler to ignore subsequent nested elements
- new IgnoringHandler(this);
- }
-
- /*
- * Save up character data until endElement or nested startElement
- *
- * @see org.xml.sax.ContentHandler#characters
- */
- public void characters(char[] chars, int start, int length) {
- if (this.characters == null) {
- this.characters = new StringBuffer();
- }
- this.characters.append(chars, start, length);
- }
-
- // Consume the characters accumulated in this.characters.
- // Called before startElement or endElement
- private String finishCharacters() {
- // common case -- no characters or only whitespace
- if (this.characters == null || this.characters.length() == 0) {
- return null;
- }
- if (allWhiteSpace(this.characters)) {
- this.characters.setLength(0);
- return null;
- }
-
- // process the characters
- try {
- String trimmedChars = this.characters.toString().trim();
- if (trimmedChars.length() == 0) {
- // this shouldn't happen due to the test for allWhiteSpace
- // above
- System.err.println("Unexpected non-whitespace characters: " //$NON-NLS-1$
- + trimmedChars);
- return null;
- }
- processCharacters(trimmedChars);
- return trimmedChars;
- } finally {
- this.characters.setLength(0);
- }
- }
-
- // Method to override in the handler of an element with CDATA.
- protected void processCharacters(String data) {
- if (data.length() > 0) {
- unexpectedCharacterData(this, data);
- }
- }
-
- private boolean allWhiteSpace(StringBuffer sb) {
- int length = sb.length();
- for (int i = 0; i < length; i += 1) {
- if (!Character.isWhitespace(sb.charAt(i))) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Called when this element and all elements nested into it have been
- * handled.
- */
- protected void finished() {
- // Do nothing by default
- }
-
- /*
- * A name used to identify the handler.
- */
- public String getName() {
- return (elementHandled != null ? elementHandled : "NoName"); //$NON-NLS-1$
- }
-
- /**
- * Parse the attributes of an element with only required attributes.
- */
- protected String[] parseRequiredAttributes(Attributes attributes,
- String[] required) {
- return parseAttributes(attributes, required, noAttributes);
- }
-
- /**
- * Parse the attributes of an element with a single optional attribute.
- */
- protected String parseOptionalAttribute(Attributes attributes,
- String name) {
- return parseAttributes(attributes, noAttributes,
- new String[] { name })[0];
- }
-
- /**
- * Parse the attributes of an element, given the list of required and
- * optional ones. Return values in same order, null for those not
- * present. Log warnings for extra attributes or missing required
- * attributes.
- */
- protected String[] parseAttributes(Attributes attributes,
- String[] required, String[] optional) {
- String[] result = new String[required.length + optional.length];
- for (int i = 0; i < attributes.getLength(); i += 1) {
- String name = attributes.getLocalName(i);
- String value = attributes.getValue(i).trim();
- int j;
- if ((j = indexOf(required, name)) >= 0) {
- result[j] = value;
- } else if ((j = indexOf(optional, name)) >= 0) {
- result[required.length + j] = value;
- } else {
- unexpectedAttribute(elementHandled, name, value);
- }
- }
- for (int i = 0; i < required.length; i += 1) {
- checkRequiredAttribute(elementHandled, required[i], result[i]);
- }
- return result;
- }
-
- }
-
- SAXParser getParser() throws ParserConfigurationException,
- SAXException {
- Activator a = Activator.getDefault();
- if (a == null)
- return null;
-
- SAXParserFactory factory = a.getSAXParserFactory();
- if (factory == null) {
- throw new SAXException("Unable to acquire sax parser"); //$NON-NLS-1$
- }
- factory.setNamespaceAware(true);
- factory.setValidating(false);
- try {
- factory.setFeature(
- "http://xml.org/sax/features/string-interning", true); //$NON-NLS-1$
- } catch (SAXException se) {
- // some parsers may not support string interning
- }
- SAXParser theParser = factory.newSAXParser();
- if (theParser == null) {
- throw new SAXException("Unable to create sax parser"); //$NON-NLS-1$
- }
- xmlReader = theParser.getXMLReader();
- return theParser;
- }
-
- abstract class RootHandler extends AbstractHandler {
-
- public RootHandler() {
- super();
- }
-
- public void initialize(DocHandler document, String rootName,
- Attributes attributes) {
- this.parentHandler = document;
- this.elementHandled = rootName;
- handleRootAttributes(attributes);
- }
-
- protected abstract void handleRootAttributes(Attributes attributes);
-
- }
-
- class DocHandler extends AbstractHandler {
-
- RootHandler rootHandler;
-
- public DocHandler(String rootName, RootHandler rootHandler) {
- super(null, rootName);
- this.rootHandler = rootHandler;
- }
-
- public void startElement(String name, Attributes attributes) {
- if (name.equals(elementHandled)) {
- rootHandler.initialize(this, name, attributes);
- xmlReader.setContentHandler(rootHandler);
- } else {
- this.noSubElements(name, attributes);
- }
- }
-
- }
-
- class EndpointDescriptionDocHandler extends DocHandler {
-
- public EndpointDescriptionDocHandler(String rootName,
- RootHandler rootHandler) {
- super(rootName, rootHandler);
- }
-
- public void processingInstruction(String target, String data)
- throws SAXException {
- // do nothing
- }
- }
-
- class EndpointDescriptionsHandler extends RootHandler {
-
- private List<EndpointDescription> endpointDescriptions = new ArrayList<EndpointDescription>();
- private EndpointDescriptionHandler endpointDescriptionHandler;
-
- protected void handleRootAttributes(Attributes attributes) {
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- if (ENDPOINT_DESCRIPTION.equals(name)) {
- if (endpointDescriptionHandler == null) {
- endpointDescriptionHandler = new EndpointDescriptionHandler(
- this, attributes, endpointDescriptions);
- } else {
- duplicateElement(this, name, attributes);
- }
- } else {
- invalidElement(name, attributes);
- }
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (elementHandled.equals(localName)) {
- endpointDescriptionHandler = null;
- super.endElement(namespaceURI, localName, qName);
- }
- }
-
- public List<EndpointDescription> getEndpointDescriptions() {
- return endpointDescriptions;
- }
- }
-
- class EndpointDescriptionHandler extends AbstractHandler {
-
- private Map<String,Object> properties;
- private List<EndpointDescription> descriptions;
-
- public EndpointDescriptionHandler(ContentHandler parentHandler,
- Attributes attributes, List<EndpointDescription> descriptions) {
- super(parentHandler, ENDPOINT_DESCRIPTION);
- this.properties = new HashMap<String, Object>();
- this.descriptions = descriptions;
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- if (ENDPOINT_PROPERTY.equals(name)) {
- new EndpointPropertyHandler(this, attributes, properties);
- }
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (elementHandled.equals(localName)) {
- this.descriptions.add(new EndpointDescription(properties));
- super.endElement(namespaceURI, localName, qName);
- }
- }
-
- }
-
- abstract class MultiValueHandler extends AbstractHandler {
-
- protected String valueType;
-
- public MultiValueHandler(ContentHandler parentHandler,
- String elementHandled, String valueType) {
- super(parentHandler, elementHandled);
- this.valueType = valueType;
- }
-
- protected Object createValue(String value) {
- if (value == null)
- return null;
- if (valueType.equals("String")) { //$NON-NLS-1$
- return value;
- } else if (valueType.equals("long") || valueType.equals("Long")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Long.valueOf(value);
- } else if (valueType.equals("double") || valueType.equals("Double")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Double.valueOf(value);
- } else if (valueType.equals("float") || valueType.equals("Float")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Float.valueOf(value);
- } else if (valueType.equals("int") || valueType.equals("Integer")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Integer.valueOf(value);
- } else if (valueType.equals("byte") || valueType.equals("Byte")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Byte.valueOf(value);
- } else if (valueType.equals("char") //$NON-NLS-1$
- || valueType.equals("Character")) { //$NON-NLS-1$
- char[] chars = new char[1];
- value.getChars(0, 1, chars, 0);
- return Character.valueOf(chars[0]);
- } else if (valueType.equals("boolean") //$NON-NLS-1$
- || valueType.equals("Boolean")) { //$NON-NLS-1$
- return Boolean.valueOf(value);
- } else if (valueType.equals("short") || valueType.equals("Short")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Short.valueOf(value);
- }
- return null;
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- if (ENDPOINT_PROPERTY_VALUE.equals(name)) {
- characters = new StringBuffer();
- }
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (ENDPOINT_PROPERTY_VALUE.equals(localName)) {
- Object value = createValue(processValue((characters == null) ? null
- : characters.toString()));
- if (value != null)
- addValue(value);
- characters = null;
- } else if (elementHandled.equals(localName)) {
- super.endElement(namespaceURI, localName, qName);
- }
- }
-
- private String processValue(String characters) {
- if (characters == null || characters.length() == 0)
- return null;
- if (valueType.equals("String")) //$NON-NLS-1$
- return characters;
- int startIndex = 0;
- while (Character.isWhitespace(characters.charAt(startIndex)))
- startIndex++;
- int endIndex = characters.length() - 1;
- while (Character.isWhitespace(characters.charAt(endIndex)))
- endIndex--;
- return characters.substring(startIndex, endIndex + 1);
- }
-
- protected abstract void addValue(Object value);
-
- public abstract Object getValues();
- }
-
- class ArrayMultiValueHandler extends MultiValueHandler {
-
- private List<Object> values = new ArrayList<Object>();
-
- public ArrayMultiValueHandler(ContentHandler parentHandler,
- String elementHandled, String valueType) {
- super(parentHandler, elementHandled, valueType);
- }
-
- protected Object[] createEmptyArrayOfType() {
- if (valueType.equals("String")) { //$NON-NLS-1$
- return new String[] {};
- } else if (valueType.equals("long") || valueType.equals("Long")) { //$NON-NLS-1$ //$NON-NLS-2$
- return new Long[] {};
- } else if (valueType.equals("double") || valueType.equals("Double")) { //$NON-NLS-1$ //$NON-NLS-2$
- return new Double[] {};
- } else if (valueType.equals("float") || valueType.equals("Float")) { //$NON-NLS-1$ //$NON-NLS-2$
- return new Double[] {};
- } else if (valueType.equals("int") || valueType.equals("Integer")) { //$NON-NLS-1$ //$NON-NLS-2$
- return new Integer[] {};
- } else if (valueType.equals("byte") || valueType.equals("Byte")) { //$NON-NLS-1$ //$NON-NLS-2$
- return new Byte[] {};
- } else if (valueType.equals("char") //$NON-NLS-1$
- || valueType.equals("Character")) { //$NON-NLS-1$
- return new Character[] {};
- } else if (valueType.equals("boolean") //$NON-NLS-1$
- || valueType.equals("Boolean")) { //$NON-NLS-1$
- return new Boolean[] {};
- } else if (valueType.equals("short") || valueType.equals("Short")) { //$NON-NLS-1$ //$NON-NLS-2$
- return new Short[] {};
- } else
- return null;
- }
-
- public Object getValues() {
- return values.toArray(createEmptyArrayOfType());
- }
-
- protected void addValue(Object value) {
- values.add(value);
- }
- }
-
- class ListMultiValueHandler extends MultiValueHandler {
-
- private List<Object> values = new ArrayList<Object>();
-
- public ListMultiValueHandler(ContentHandler parentHandler,
- String elementHandled, String valueType) {
- super(parentHandler, elementHandled, valueType);
- }
-
- public Object getValues() {
- return values;
- }
-
- protected void addValue(Object value) {
- values.add(value);
- }
- }
-
- class SetMultiValueHandler extends MultiValueHandler {
-
- private Set<Object> values = new HashSet<Object>();
-
- public SetMultiValueHandler(ContentHandler parentHandler,
- String elementHandled, String valueType) {
- super(parentHandler, elementHandled, valueType);
- }
-
- public Object getValues() {
- return values;
- }
-
- protected void addValue(Object value) {
- values.add(value);
- }
- }
-
- class XMLValueHandler extends AbstractHandler {
-
- private Map<String,String> nsPrefixMap = new HashMap<String,String>();
- private StringBuffer buf;
-
- public XMLValueHandler(ContentHandler parentHandler) {
- super(parentHandler, ENDPOINT_PROPERTY_XML);
- buf = new StringBuffer();
- }
-
- public void startPrefixMapping(String prefix, String uri)
- throws SAXException {
- nsPrefixMap.put(uri, prefix);
- }
-
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- buf.append("<").append(qName); //$NON-NLS-1$
- for(Iterator<String> i=nsPrefixMap.keySet().iterator(); i.hasNext(); ) {
- String nsURI = (String) i.next();
- String prefix = (String) nsPrefixMap.get(nsURI);
- i.remove();
- if (nsURI != null) {
- buf.append(" xmlns"); //$NON-NLS-1$
- if (prefix != null) buf.append(":").append(prefix); //$NON-NLS-1$
- buf.append("=\"").append(nsURI).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- for (int i = 0; i < attributes.getLength(); i++) {
- buf.append(" "); //$NON-NLS-1$
- buf.append(attributes.getQName(i)).append("=\"").append(attributes.getValue(i)).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
- }
- buf.append(">"); //$NON-NLS-1$
- characters = new StringBuffer();
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- // not used
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (elementHandled.equals(localName)) {
- super.endElement(namespaceURI, localName, qName);
- } else {
- if (characters != null) buf.append(characters);
- buf.append("</").append(qName).append(">"); //$NON-NLS-1$ //$NON-NLS-2$
- characters = null;
- }
- }
-
- public String getXML() {
- return buf.toString();
- }
- }
-
- class EndpointPropertyHandler extends AbstractHandler {
-
- private Map<String,Object> properties;
- private String name;
- private String valueType = "String"; //$NON-NLS-1$
- private String value;
- private MultiValueHandler multiValueHandler;
- private XMLValueHandler xmlValueHandler;
-
- public EndpointPropertyHandler(ContentHandler parentHandler,
- Attributes attributes, Map<String,Object> properties) throws SAXException {
- super(parentHandler, ENDPOINT_PROPERTY);
- name = parseRequiredAttributes(attributes,
- new String[] { ENDPOINT_PROPERTY_NAME })[0];
- value = parseOptionalAttribute(attributes, ENDPOINT_PROPERTY_VALUE);
- String vt = parseOptionalAttribute(attributes,
- ENDPOINT_PROPERTY_VALUETYPE);
- if (vt != null) {
- if (!multiValueTypes.contains(vt))
- throw new SAXException("property element valueType=" + vt //$NON-NLS-1$
- + " not allowed"); //$NON-NLS-1$
- this.valueType = vt;
- }
- this.properties = properties;
- if (value != null) {
- String[] property = new String[] { name, value };
- if (isValidProperty(property)) {
- this.properties.put(property[0], property[1]);
- }
- }
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- // Should not happen if value is non-null
- if (value != null)
- throw new SAXException(
- "property element has both value attribute and sub-element"); //$NON-NLS-1$
- if (ENDPOINT_PROPERTY_ARRAY.equals(name)) {
- if (multiValueHandler == null) {
- multiValueHandler = new ArrayMultiValueHandler(this,
- ENDPOINT_PROPERTY_ARRAY, valueType);
- } else {
- duplicateElement(this, name, attributes);
- }
- } else if (ENDPOINT_PROPERTY_LIST.equals(name)) {
- if (multiValueHandler == null) {
- multiValueHandler = new ListMultiValueHandler(this,
- ENDPOINT_PROPERTY_LIST, valueType);
- } else {
- duplicateElement(this, name, attributes);
- }
- } else if (ENDPOINT_PROPERTY_SET.equals(name)) {
- if (multiValueHandler == null) {
- multiValueHandler = new SetMultiValueHandler(this,
- ENDPOINT_PROPERTY_SET, valueType);
- } else {
- duplicateElement(this, name, attributes);
- }
- } else if (ENDPOINT_PROPERTY_XML.equals(name)) {
- // xml
- if (xmlValueHandler == null) {
- xmlValueHandler = new XMLValueHandler(this);
- } else {
- duplicateElement(this, name, attributes);
- }
- } else {
- invalidElement(name, attributes);
- }
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (elementHandled.equals(localName)) {
- if (multiValueHandler != null) {
- properties.put(name, multiValueHandler.getValues());
- multiValueHandler = null;
- } else if (xmlValueHandler != null) {
- properties.put(name, xmlValueHandler.getXML());
- xmlValueHandler = null;
- }
- super.endElement(namespaceURI, localName, qName);
- }
- }
-
- private boolean isValidProperty(String[] property) {
- return (property.length == 2 && property[0] != null && property[1] != null);
- }
- }
-
- public class EndpointDescription {
- private Map<String,Object> properties;
-
- public EndpointDescription(Map<String,Object> properties) {
- this.properties = properties;
- }
-
- public Map<String,Object> getProperties() {
- return properties;
- }
-
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("EndpointDescription [properties="); //$NON-NLS-1$
- builder.append(properties);
- builder.append("]"); //$NON-NLS-1$
- return builder.toString();
- }
-
- }
-
- public synchronized void parse(InputStream input) throws IOException {
- try {
- getParser();
- EndpointDescriptionsHandler endpointDescriptionsHandler = new EndpointDescriptionsHandler();
- xmlReader.setContentHandler(new EndpointDescriptionDocHandler(
- ENDPOINT_DESCRIPTIONS, endpointDescriptionsHandler));
- xmlReader.parse(new InputSource(input));
- endpointDescriptions = endpointDescriptionsHandler
- .getEndpointDescriptions();
- } catch (SAXException e) {
- throw new IOException(e.getMessage());
- } catch (ParserConfigurationException e) {
- throw new IOException(e.getMessage());
- } finally {
- input.close();
- }
-
- }
-
- public static String makeSimpleName(String localName, String qualifiedName) {
- if (localName != null && localName.length() > 0) {
- return localName;
- }
- int nameSpaceIndex = qualifiedName.indexOf(":"); //$NON-NLS-1$
- return (nameSpaceIndex == -1 ? qualifiedName : qualifiedName
- .substring(nameSpaceIndex + 1));
- }
-
- public void unexpectedElement(AbstractHandler handler, String element,
- Attributes attributes) {
- }
-
- public void unexpectedCharacterData(AbstractHandler handler, String cdata) {
- }
-
- public void unexpectedAttribute(String element, String attribute,
- String value) {
- }
-
- static int indexOf(String[] array, String value) {
- for (int i = 0; i < array.length; i += 1) {
- if (value == null ? array[i] == null : value.equals(array[i])) {
- return i;
- }
- }
- return -1;
- }
-
- public void checkRequiredAttribute(String element, String name, Object value) {
- }
-
- public void duplicateElement(AbstractHandler handler, String element,
- Attributes attributes) {
- // ignore the duplicate element entirely because we have already logged
- // it
- new IgnoringHandler(handler);
- }
-
- private List<EndpointDescription> endpointDescriptions;
-
- public List<EndpointDescription> getEndpointDescriptions() {
- return endpointDescriptions;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010 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.endpointdescription.localdiscovery;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class EndpointDescriptionParser {
+
+ private static List<String> multiValueTypes;
+
+ static {
+ multiValueTypes = Arrays.asList(new String[] { "String", "Long", //$NON-NLS-1$ //$NON-NLS-2$
+ "long", "Double", "double", "float", "Float", "int", "Integer", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+ "byte", "Byte", "char", "Character", "boolean", "Boolean", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ "short", "Short" }); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ private static final String ENDPOINT_DESCRIPTIONS = "endpoint-descriptions"; //$NON-NLS-1$
+ private static final String ENDPOINT_DESCRIPTION = "endpoint-description"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY = "property"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_NAME = "name"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_VALUE = "value"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_VALUETYPE = "value-type"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_ARRAY = "array"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_LIST = "list"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_SET = "set"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_XML = "xml"; //$NON-NLS-1$
+
+ public static String[] noAttributes = new String[0];
+
+ private XMLReader xmlReader;
+ protected Locator locator = null; // document locator, if supported by the
+ // parser
+
+ class IgnoringHandler extends AbstractHandler {
+
+ public IgnoringHandler(AbstractHandler parent) {
+ super(parent);
+ this.elementHandled = "IgnoringAll"; //$NON-NLS-1$
+ }
+
+ public void startElement(String name, Attributes attributes) {
+ noSubElements(name, attributes);
+ }
+
+ }
+
+ /**
+ * Abstract base class for content handlers
+ */
+ abstract class AbstractHandler extends DefaultHandler {
+
+ protected ContentHandler parentHandler = null;
+ protected String elementHandled = null;
+
+ protected StringBuffer characters = null; // character data inside an
+ // element
+
+ public AbstractHandler() {
+ // Empty constructor for a root handler
+ }
+
+ public AbstractHandler(ContentHandler parentHandler) {
+ this.parentHandler = parentHandler;
+ xmlReader.setContentHandler(this);
+ }
+
+ public AbstractHandler(ContentHandler parentHandler,
+ String elementHandled) {
+ this.parentHandler = parentHandler;
+ xmlReader.setContentHandler(this);
+ this.elementHandled = elementHandled;
+ }
+
+ /**
+ * Set the document locator for the parser
+ *
+ * @see org.xml.sax.ContentHandler#setDocumentLocator
+ */
+ public void setDocumentLocator(Locator docLocator) {
+ locator = docLocator;
+ }
+
+ public void startElement(String uri, String localName, String qName,
+ Attributes attributes) throws SAXException {
+ finishCharacters();
+ String name = makeSimpleName(localName, qName);
+ startElement(name, attributes);
+ }
+
+ public abstract void startElement(String name, Attributes attributes)
+ throws SAXException;
+
+ public void invalidElement(String name, Attributes attributes) {
+ unexpectedElement(this, name, attributes);
+ new IgnoringHandler(this);
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ finishCharacters();
+ finished();
+ // Restore the parent content handler
+ xmlReader.setContentHandler(parentHandler);
+ }
+
+ /**
+ * An implementation for startElement when there are no sub-elements
+ */
+ protected void noSubElements(String name, Attributes attributes) {
+ unexpectedElement(this, name, attributes);
+ // Create a new handler to ignore subsequent nested elements
+ new IgnoringHandler(this);
+ }
+
+ /*
+ * Save up character data until endElement or nested startElement
+ *
+ * @see org.xml.sax.ContentHandler#characters
+ */
+ public void characters(char[] chars, int start, int length) {
+ if (this.characters == null) {
+ this.characters = new StringBuffer();
+ }
+ this.characters.append(chars, start, length);
+ }
+
+ // Consume the characters accumulated in this.characters.
+ // Called before startElement or endElement
+ private String finishCharacters() {
+ // common case -- no characters or only whitespace
+ if (this.characters == null || this.characters.length() == 0) {
+ return null;
+ }
+ if (allWhiteSpace(this.characters)) {
+ this.characters.setLength(0);
+ return null;
+ }
+
+ // process the characters
+ try {
+ String trimmedChars = this.characters.toString().trim();
+ if (trimmedChars.length() == 0) {
+ // this shouldn't happen due to the test for allWhiteSpace
+ // above
+ System.err.println("Unexpected non-whitespace characters: " //$NON-NLS-1$
+ + trimmedChars);
+ return null;
+ }
+ processCharacters(trimmedChars);
+ return trimmedChars;
+ } finally {
+ this.characters.setLength(0);
+ }
+ }
+
+ // Method to override in the handler of an element with CDATA.
+ protected void processCharacters(String data) {
+ if (data.length() > 0) {
+ unexpectedCharacterData(this, data);
+ }
+ }
+
+ private boolean allWhiteSpace(StringBuffer sb) {
+ int length = sb.length();
+ for (int i = 0; i < length; i += 1) {
+ if (!Character.isWhitespace(sb.charAt(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Called when this element and all elements nested into it have been
+ * handled.
+ */
+ protected void finished() {
+ // Do nothing by default
+ }
+
+ /*
+ * A name used to identify the handler.
+ */
+ public String getName() {
+ return (elementHandled != null ? elementHandled : "NoName"); //$NON-NLS-1$
+ }
+
+ /**
+ * Parse the attributes of an element with only required attributes.
+ */
+ protected String[] parseRequiredAttributes(Attributes attributes,
+ String[] required) {
+ return parseAttributes(attributes, required, noAttributes);
+ }
+
+ /**
+ * Parse the attributes of an element with a single optional attribute.
+ */
+ protected String parseOptionalAttribute(Attributes attributes,
+ String name) {
+ return parseAttributes(attributes, noAttributes,
+ new String[] { name })[0];
+ }
+
+ /**
+ * Parse the attributes of an element, given the list of required and
+ * optional ones. Return values in same order, null for those not
+ * present. Log warnings for extra attributes or missing required
+ * attributes.
+ */
+ protected String[] parseAttributes(Attributes attributes,
+ String[] required, String[] optional) {
+ String[] result = new String[required.length + optional.length];
+ for (int i = 0; i < attributes.getLength(); i += 1) {
+ String name = attributes.getLocalName(i);
+ String value = attributes.getValue(i).trim();
+ int j;
+ if ((j = indexOf(required, name)) >= 0) {
+ result[j] = value;
+ } else if ((j = indexOf(optional, name)) >= 0) {
+ result[required.length + j] = value;
+ } else {
+ unexpectedAttribute(elementHandled, name, value);
+ }
+ }
+ for (int i = 0; i < required.length; i += 1) {
+ checkRequiredAttribute(elementHandled, required[i], result[i]);
+ }
+ return result;
+ }
+
+ }
+
+ SAXParser getParser() throws ParserConfigurationException,
+ SAXException {
+ Activator a = Activator.getDefault();
+ if (a == null)
+ return null;
+
+ SAXParserFactory factory = a.getSAXParserFactory();
+ if (factory == null) {
+ throw new SAXException("Unable to acquire sax parser"); //$NON-NLS-1$
+ }
+ factory.setNamespaceAware(true);
+ factory.setValidating(false);
+ try {
+ factory.setFeature(
+ "http://xml.org/sax/features/string-interning", true); //$NON-NLS-1$
+ } catch (SAXException se) {
+ // some parsers may not support string interning
+ }
+ SAXParser theParser = factory.newSAXParser();
+ if (theParser == null) {
+ throw new SAXException("Unable to create sax parser"); //$NON-NLS-1$
+ }
+ xmlReader = theParser.getXMLReader();
+ return theParser;
+ }
+
+ abstract class RootHandler extends AbstractHandler {
+
+ public RootHandler() {
+ super();
+ }
+
+ public void initialize(DocHandler document, String rootName,
+ Attributes attributes) {
+ this.parentHandler = document;
+ this.elementHandled = rootName;
+ handleRootAttributes(attributes);
+ }
+
+ protected abstract void handleRootAttributes(Attributes attributes);
+
+ }
+
+ class DocHandler extends AbstractHandler {
+
+ RootHandler rootHandler;
+
+ public DocHandler(String rootName, RootHandler rootHandler) {
+ super(null, rootName);
+ this.rootHandler = rootHandler;
+ }
+
+ public void startElement(String name, Attributes attributes) {
+ if (name.equals(elementHandled)) {
+ rootHandler.initialize(this, name, attributes);
+ xmlReader.setContentHandler(rootHandler);
+ } else {
+ this.noSubElements(name, attributes);
+ }
+ }
+
+ }
+
+ class EndpointDescriptionDocHandler extends DocHandler {
+
+ public EndpointDescriptionDocHandler(String rootName,
+ RootHandler rootHandler) {
+ super(rootName, rootHandler);
+ }
+
+ public void processingInstruction(String target, String data)
+ throws SAXException {
+ // do nothing
+ }
+ }
+
+ class EndpointDescriptionsHandler extends RootHandler {
+
+ private List<EndpointDescription> endpointDescriptions = new ArrayList<EndpointDescription>();
+ private EndpointDescriptionHandler endpointDescriptionHandler;
+
+ protected void handleRootAttributes(Attributes attributes) {
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ if (ENDPOINT_DESCRIPTION.equals(name)) {
+ if (endpointDescriptionHandler == null) {
+ endpointDescriptionHandler = new EndpointDescriptionHandler(
+ this, attributes, endpointDescriptions);
+ } else {
+ duplicateElement(this, name, attributes);
+ }
+ } else {
+ invalidElement(name, attributes);
+ }
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (elementHandled.equals(localName)) {
+ endpointDescriptionHandler = null;
+ super.endElement(namespaceURI, localName, qName);
+ }
+ }
+
+ public List<EndpointDescription> getEndpointDescriptions() {
+ return endpointDescriptions;
+ }
+ }
+
+ class EndpointDescriptionHandler extends AbstractHandler {
+
+ private Map<String,Object> properties;
+ private List<EndpointDescription> descriptions;
+
+ public EndpointDescriptionHandler(ContentHandler parentHandler,
+ Attributes attributes, List<EndpointDescription> descriptions) {
+ super(parentHandler, ENDPOINT_DESCRIPTION);
+ this.properties = new HashMap<String, Object>();
+ this.descriptions = descriptions;
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ if (ENDPOINT_PROPERTY.equals(name)) {
+ new EndpointPropertyHandler(this, attributes, properties);
+ }
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (elementHandled.equals(localName)) {
+ this.descriptions.add(new EndpointDescription(properties));
+ super.endElement(namespaceURI, localName, qName);
+ }
+ }
+
+ }
+
+ abstract class MultiValueHandler extends AbstractHandler {
+
+ protected String valueType;
+
+ public MultiValueHandler(ContentHandler parentHandler,
+ String elementHandled, String valueType) {
+ super(parentHandler, elementHandled);
+ this.valueType = valueType;
+ }
+
+ protected Object createValue(String value) {
+ if (value == null)
+ return null;
+ if (valueType.equals("String")) { //$NON-NLS-1$
+ return value;
+ } else if (valueType.equals("long") || valueType.equals("Long")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Long.valueOf(value);
+ } else if (valueType.equals("double") || valueType.equals("Double")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Double.valueOf(value);
+ } else if (valueType.equals("float") || valueType.equals("Float")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Float.valueOf(value);
+ } else if (valueType.equals("int") || valueType.equals("Integer")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Integer.valueOf(value);
+ } else if (valueType.equals("byte") || valueType.equals("Byte")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Byte.valueOf(value);
+ } else if (valueType.equals("char") //$NON-NLS-1$
+ || valueType.equals("Character")) { //$NON-NLS-1$
+ char[] chars = new char[1];
+ value.getChars(0, 1, chars, 0);
+ return Character.valueOf(chars[0]);
+ } else if (valueType.equals("boolean") //$NON-NLS-1$
+ || valueType.equals("Boolean")) { //$NON-NLS-1$
+ return Boolean.valueOf(value);
+ } else if (valueType.equals("short") || valueType.equals("Short")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Short.valueOf(value);
+ }
+ return null;
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ if (ENDPOINT_PROPERTY_VALUE.equals(name)) {
+ characters = new StringBuffer();
+ }
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (ENDPOINT_PROPERTY_VALUE.equals(localName)) {
+ Object value = createValue(processValue((characters == null) ? null
+ : characters.toString()));
+ if (value != null)
+ addValue(value);
+ characters = null;
+ } else if (elementHandled.equals(localName)) {
+ super.endElement(namespaceURI, localName, qName);
+ }
+ }
+
+ private String processValue(String characters) {
+ if (characters == null || characters.length() == 0)
+ return null;
+ if (valueType.equals("String")) //$NON-NLS-1$
+ return characters;
+ int startIndex = 0;
+ while (Character.isWhitespace(characters.charAt(startIndex)))
+ startIndex++;
+ int endIndex = characters.length() - 1;
+ while (Character.isWhitespace(characters.charAt(endIndex)))
+ endIndex--;
+ return characters.substring(startIndex, endIndex + 1);
+ }
+
+ protected abstract void addValue(Object value);
+
+ public abstract Object getValues();
+ }
+
+ class ArrayMultiValueHandler extends MultiValueHandler {
+
+ private List<Object> values = new ArrayList<Object>();
+
+ public ArrayMultiValueHandler(ContentHandler parentHandler,
+ String elementHandled, String valueType) {
+ super(parentHandler, elementHandled, valueType);
+ }
+
+ protected Object[] createEmptyArrayOfType() {
+ if (valueType.equals("String")) { //$NON-NLS-1$
+ return new String[] {};
+ } else if (valueType.equals("long") || valueType.equals("Long")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return new Long[] {};
+ } else if (valueType.equals("double") || valueType.equals("Double")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return new Double[] {};
+ } else if (valueType.equals("float") || valueType.equals("Float")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return new Double[] {};
+ } else if (valueType.equals("int") || valueType.equals("Integer")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return new Integer[] {};
+ } else if (valueType.equals("byte") || valueType.equals("Byte")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return new Byte[] {};
+ } else if (valueType.equals("char") //$NON-NLS-1$
+ || valueType.equals("Character")) { //$NON-NLS-1$
+ return new Character[] {};
+ } else if (valueType.equals("boolean") //$NON-NLS-1$
+ || valueType.equals("Boolean")) { //$NON-NLS-1$
+ return new Boolean[] {};
+ } else if (valueType.equals("short") || valueType.equals("Short")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return new Short[] {};
+ } else
+ return null;
+ }
+
+ public Object getValues() {
+ return values.toArray(createEmptyArrayOfType());
+ }
+
+ protected void addValue(Object value) {
+ values.add(value);
+ }
+ }
+
+ class ListMultiValueHandler extends MultiValueHandler {
+
+ private List<Object> values = new ArrayList<Object>();
+
+ public ListMultiValueHandler(ContentHandler parentHandler,
+ String elementHandled, String valueType) {
+ super(parentHandler, elementHandled, valueType);
+ }
+
+ public Object getValues() {
+ return values;
+ }
+
+ protected void addValue(Object value) {
+ values.add(value);
+ }
+ }
+
+ class SetMultiValueHandler extends MultiValueHandler {
+
+ private Set<Object> values = new HashSet<Object>();
+
+ public SetMultiValueHandler(ContentHandler parentHandler,
+ String elementHandled, String valueType) {
+ super(parentHandler, elementHandled, valueType);
+ }
+
+ public Object getValues() {
+ return values;
+ }
+
+ protected void addValue(Object value) {
+ values.add(value);
+ }
+ }
+
+ class XMLValueHandler extends AbstractHandler {
+
+ private Map<String,String> nsPrefixMap = new HashMap<String,String>();
+ private StringBuffer buf;
+
+ public XMLValueHandler(ContentHandler parentHandler) {
+ super(parentHandler, ENDPOINT_PROPERTY_XML);
+ buf = new StringBuffer();
+ }
+
+ public void startPrefixMapping(String prefix, String uri)
+ throws SAXException {
+ nsPrefixMap.put(uri, prefix);
+ }
+
+ public void startElement(String uri, String localName, String qName,
+ Attributes attributes) throws SAXException {
+ buf.append("<").append(qName); //$NON-NLS-1$
+ for(Iterator<String> i=nsPrefixMap.keySet().iterator(); i.hasNext(); ) {
+ String nsURI = (String) i.next();
+ String prefix = (String) nsPrefixMap.get(nsURI);
+ i.remove();
+ if (nsURI != null) {
+ buf.append(" xmlns"); //$NON-NLS-1$
+ if (prefix != null) buf.append(":").append(prefix); //$NON-NLS-1$
+ buf.append("=\"").append(nsURI).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ for (int i = 0; i < attributes.getLength(); i++) {
+ buf.append(" "); //$NON-NLS-1$
+ buf.append(attributes.getQName(i)).append("=\"").append(attributes.getValue(i)).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ buf.append(">"); //$NON-NLS-1$
+ characters = new StringBuffer();
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ // not used
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (elementHandled.equals(localName)) {
+ super.endElement(namespaceURI, localName, qName);
+ } else {
+ if (characters != null) buf.append(characters);
+ buf.append("</").append(qName).append(">"); //$NON-NLS-1$ //$NON-NLS-2$
+ characters = null;
+ }
+ }
+
+ public String getXML() {
+ return buf.toString();
+ }
+ }
+
+ class EndpointPropertyHandler extends AbstractHandler {
+
+ private Map<String,Object> properties;
+ private String name;
+ private String valueType = "String"; //$NON-NLS-1$
+ private String value;
+ private MultiValueHandler multiValueHandler;
+ private XMLValueHandler xmlValueHandler;
+
+ public EndpointPropertyHandler(ContentHandler parentHandler,
+ Attributes attributes, Map<String,Object> properties) throws SAXException {
+ super(parentHandler, ENDPOINT_PROPERTY);
+ name = parseRequiredAttributes(attributes,
+ new String[] { ENDPOINT_PROPERTY_NAME })[0];
+ value = parseOptionalAttribute(attributes, ENDPOINT_PROPERTY_VALUE);
+ String vt = parseOptionalAttribute(attributes,
+ ENDPOINT_PROPERTY_VALUETYPE);
+ if (vt != null) {
+ if (!multiValueTypes.contains(vt))
+ throw new SAXException("property element valueType=" + vt //$NON-NLS-1$
+ + " not allowed"); //$NON-NLS-1$
+ this.valueType = vt;
+ }
+ this.properties = properties;
+ if (value != null) {
+ String[] property = new String[] { name, value };
+ if (isValidProperty(property)) {
+ this.properties.put(property[0], property[1]);
+ }
+ }
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ // Should not happen if value is non-null
+ if (value != null)
+ throw new SAXException(
+ "property element has both value attribute and sub-element"); //$NON-NLS-1$
+ if (ENDPOINT_PROPERTY_ARRAY.equals(name)) {
+ if (multiValueHandler == null) {
+ multiValueHandler = new ArrayMultiValueHandler(this,
+ ENDPOINT_PROPERTY_ARRAY, valueType);
+ } else {
+ duplicateElement(this, name, attributes);
+ }
+ } else if (ENDPOINT_PROPERTY_LIST.equals(name)) {
+ if (multiValueHandler == null) {
+ multiValueHandler = new ListMultiValueHandler(this,
+ ENDPOINT_PROPERTY_LIST, valueType);
+ } else {
+ duplicateElement(this, name, attributes);
+ }
+ } else if (ENDPOINT_PROPERTY_SET.equals(name)) {
+ if (multiValueHandler == null) {
+ multiValueHandler = new SetMultiValueHandler(this,
+ ENDPOINT_PROPERTY_SET, valueType);
+ } else {
+ duplicateElement(this, name, attributes);
+ }
+ } else if (ENDPOINT_PROPERTY_XML.equals(name)) {
+ // xml
+ if (xmlValueHandler == null) {
+ xmlValueHandler = new XMLValueHandler(this);
+ } else {
+ duplicateElement(this, name, attributes);
+ }
+ } else {
+ invalidElement(name, attributes);
+ }
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (elementHandled.equals(localName)) {
+ if (multiValueHandler != null) {
+ properties.put(name, multiValueHandler.getValues());
+ multiValueHandler = null;
+ } else if (xmlValueHandler != null) {
+ properties.put(name, xmlValueHandler.getXML());
+ xmlValueHandler = null;
+ }
+ super.endElement(namespaceURI, localName, qName);
+ }
+ }
+
+ private boolean isValidProperty(String[] property) {
+ return (property.length == 2 && property[0] != null && property[1] != null);
+ }
+ }
+
+ public class EndpointDescription {
+ private Map<String,Object> properties;
+
+ public EndpointDescription(Map<String,Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String,Object> getProperties() {
+ return properties;
+ }
+
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("EndpointDescription [properties="); //$NON-NLS-1$
+ builder.append(properties);
+ builder.append("]"); //$NON-NLS-1$
+ return builder.toString();
+ }
+
+ }
+
+ public synchronized void parse(InputStream input) throws IOException {
+ try {
+ getParser();
+ EndpointDescriptionsHandler endpointDescriptionsHandler = new EndpointDescriptionsHandler();
+ xmlReader.setContentHandler(new EndpointDescriptionDocHandler(
+ ENDPOINT_DESCRIPTIONS, endpointDescriptionsHandler));
+ xmlReader.parse(new InputSource(input));
+ endpointDescriptions = endpointDescriptionsHandler
+ .getEndpointDescriptions();
+ } catch (SAXException e) {
+ throw new IOException(e.getMessage());
+ } catch (ParserConfigurationException e) {
+ throw new IOException(e.getMessage());
+ } finally {
+ input.close();
+ }
+
+ }
+
+ public static String makeSimpleName(String localName, String qualifiedName) {
+ if (localName != null && localName.length() > 0) {
+ return localName;
+ }
+ int nameSpaceIndex = qualifiedName.indexOf(":"); //$NON-NLS-1$
+ return (nameSpaceIndex == -1 ? qualifiedName : qualifiedName
+ .substring(nameSpaceIndex + 1));
+ }
+
+ public void unexpectedElement(AbstractHandler handler, String element,
+ Attributes attributes) {
+ }
+
+ public void unexpectedCharacterData(AbstractHandler handler, String cdata) {
+ }
+
+ public void unexpectedAttribute(String element, String attribute,
+ String value) {
+ }
+
+ static int indexOf(String[] array, String value) {
+ for (int i = 0; i < array.length; i += 1) {
+ if (value == null ? array[i] == null : value.equals(array[i])) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ public void checkRequiredAttribute(String element, String name, Object value) {
+ }
+
+ public void duplicateElement(AbstractHandler handler, String element,
+ Attributes attributes) {
+ // ignore the duplicate element entirely because we have already logged
+ // it
+ new IgnoringHandler(handler);
+ }
+
+ private List<EndpointDescription> endpointDescriptions;
+
+ public List<EndpointDescription> getEndpointDescriptions() {
+ return endpointDescriptions;
+ }
+
+}
diff --git a/incubation/bundles/org.eclipse.ecf.remoteservice.apt.java6/.settings/org.eclipse.jdt.core.prefs b/incubation/bundles/org.eclipse.ecf.remoteservice.apt.java6/.settings/org.eclipse.jdt.core.prefs
index 0dd35fd56..2162b01af 100644
--- a/incubation/bundles/org.eclipse.ecf.remoteservice.apt.java6/.settings/org.eclipse.jdt.core.prefs
+++ b/incubation/bundles/org.eclipse.ecf.remoteservice.apt.java6/.settings/org.eclipse.jdt.core.prefs
@@ -1,77 +1,77 @@
-#Fri Oct 15 20:04:12 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
+#Fri Oct 15 20:04:12 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/.classpath b/incubation/bundles/org.eclipse.ecf.sync.resources.core/.classpath
index 731ea5fad..2fbb7a23e 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/.classpath
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/.options b/incubation/bundles/org.eclipse.ecf.sync.resources.core/.options
index 699829556..2937ca723 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/.options
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/.options
@@ -1,16 +1,16 @@
-# Debugging options for the org.eclipse.ecf.sync plug-in
-
-# Turn on general debugging for the org.eclipse.ecf.internal.provisional.docshare plug-in
-org.eclipse.ecf.sync/debug=true
-org.eclipse.ecf.sync/debug/filter = *
-org.eclipse.ecf.sync/debug/flag = true
-
-# Trace when exceptions are caught
-org.eclipse.ecf.sync/debug/exceptions/catching=false
-# Trace when exceptions are thrown
-org.eclipse.ecf.sync/debug/exceptions/throwing=false
-
-# Trace when methods are entered
-org.eclipse.ecf.sync/debug/methods/entering=false
-# Trace when methods are exited
-org.eclipse.ecf.sync/debug/methods/exiting=false
+# Debugging options for the org.eclipse.ecf.sync plug-in
+
+# Turn on general debugging for the org.eclipse.ecf.internal.provisional.docshare plug-in
+org.eclipse.ecf.sync/debug=true
+org.eclipse.ecf.sync/debug/filter = *
+org.eclipse.ecf.sync/debug/flag = true
+
+# Trace when exceptions are caught
+org.eclipse.ecf.sync/debug/exceptions/catching=false
+# Trace when exceptions are thrown
+org.eclipse.ecf.sync/debug/exceptions/throwing=false
+
+# Trace when methods are entered
+org.eclipse.ecf.sync/debug/methods/entering=false
+# Trace when methods are exited
+org.eclipse.ecf.sync/debug/methods/exiting=false
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.jdt.core.prefs b/incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.jdt.core.prefs
index 6a4bc0e78..4b7e2cfc4 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.jdt.core.prefs
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-#Tue Sep 23 21:41:24 PDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Tue Sep 23 21:41:24 PDT 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.pde.core.prefs b/incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.pde.core.prefs
index 8abb8ca6a..ae44e6131 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.pde.core.prefs
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/.settings/org.eclipse.pde.core.prefs
@@ -1,4 +1,4 @@
-#Tue Sep 23 21:41:25 PDT 2008
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+#Tue Sep 23 21:41:25 PDT 2008
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/META-INF/MANIFEST.MF b/incubation/bundles/org.eclipse.ecf.sync.resources.core/META-INF/MANIFEST.MF
index 19edd35c4..f3d2bd8a3 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/META-INF/MANIFEST.MF
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/META-INF/MANIFEST.MF
@@ -1,23 +1,23 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin.name
-Bundle-SymbolicName: org.eclipse.ecf.sync.resources.core;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.ecf.internal.sync.resources.core.SyncResourcesCore
-Bundle-Vendor: %plugin.provider
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Import-Package: org.eclipse.core.runtime,
- org.eclipse.ecf.core.identity,
- org.eclipse.ecf.core.util,
- org.eclipse.ecf.sync,
- org.osgi.framework
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ecf.internal.sync.resources.core;x-friends:="org.eclipse.ecf.sync.resources.ui",
- org.eclipse.ecf.sync.resources.core,
- org.eclipse.ecf.sync.resources.core.preferences
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.jobs,
- org.eclipse.ecf.datashare,
- org.eclipse.ecf,
- org.eclipse.core.runtime
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %plugin.name
+Bundle-SymbolicName: org.eclipse.ecf.sync.resources.core;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.ecf.internal.sync.resources.core.SyncResourcesCore
+Bundle-Vendor: %plugin.provider
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Import-Package: org.eclipse.core.runtime,
+ org.eclipse.ecf.core.identity,
+ org.eclipse.ecf.core.util,
+ org.eclipse.ecf.sync,
+ org.osgi.framework
+Bundle-ActivationPolicy: lazy
+Bundle-Localization: plugin
+Export-Package: org.eclipse.ecf.internal.sync.resources.core;x-friends:="org.eclipse.ecf.sync.resources.ui",
+ org.eclipse.ecf.sync.resources.core,
+ org.eclipse.ecf.sync.resources.core.preferences
+Require-Bundle: org.eclipse.core.resources,
+ org.eclipse.core.jobs,
+ org.eclipse.ecf.datashare,
+ org.eclipse.ecf,
+ org.eclipse.core.runtime
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/about.html b/incubation/bundles/org.eclipse.ecf.sync.resources.core/about.html
index 75743c5b1..6a60a262f 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/about.html
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/about.html
@@ -1,28 +1,28 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 29, 2007</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 29, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
</html> \ No newline at end of file
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/build.properties b/incubation/bundles/org.eclipse.ecf.sync.resources.core/build.properties
index baa36b183..f70828ba5 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/build.properties
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/build.properties
@@ -1,8 +1,8 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- about.html,\
- plugin.properties,\
- plugin.xml
-src.includes = about.html
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ plugin.xml
+src.includes = about.html
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.properties b/incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.properties
index bc4ebe92f..74b3aa8f4 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.properties
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.properties
@@ -1,12 +1,12 @@
-################################################################################
-# Copyright (c) 2009 Remy Chi Jian Suen 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:
-# Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
-################################################################################
-plugin.provider = Eclipse.org - ECF
-plugin.name = ECF Resources Synchronization API
+################################################################################
+# Copyright (c) 2009 Remy Chi Jian Suen 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:
+# Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+################################################################################
+plugin.provider = Eclipse.org - ECF
+plugin.name = ECF Resources Synchronization API
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.xml b/incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.xml
index 0fd56b452..a90704741 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.xml
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/plugin.xml
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
- <extension
- point="org.eclipse.core.runtime.preferences">
- <initializer
- class="org.eclipse.ecf.sync.resources.core.preferences.PreferenceInitializer">
- </initializer>
- </extension>
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.ecf.sync.resources.core.preferences.PreferenceInitializer">
+ </initializer>
+ </extension>
+</plugin>
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FileChangeMessage.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FileChangeMessage.java
index 92cb136ab..5f7dd30b1 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FileChangeMessage.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FileChangeMessage.java
@@ -1,127 +1,127 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.sync.resources.core;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ecf.sync.ModelUpdateException;
-import org.eclipse.ecf.sync.resources.core.preferences.PreferenceConstants;
-
-public final class FileChangeMessage extends ResourceChangeMessage {
-
- private static final long serialVersionUID = 1482601202361201103L;
-
- FileChangeMessage(String path, int kind, byte[] contents) {
- super(path, IResource.FILE, kind, contents);
- }
-
- public void applyToModel(Object model) throws ModelUpdateException {
- try {
- apply();
- } catch (CoreException e) {
- throw new ModelUpdateException(e, this, model);
- }
- }
-
- private void apply() throws CoreException {
- IPath resourcePath = new Path(path);
- final IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(
- resourcePath);
-
- switch (kind) {
- case IResourceDelta.ADDED:
- switch (SyncResourcesCore
- .getInt(PreferenceConstants.REMOTE_RESOURCE_ADDITION)) {
- case PreferenceConstants.COMMIT_VALUE:
- if (file.exists()) {
- // file was added by a remote peer when it exists locally,
- // this is a conflict, flag it as such
- setConflicted(true);
- // change the contents
- file.setContents(new ByteArrayInputStream(contents), true,
- true, null);
- } else {
- // file doesn't exist, create it
- file.create(new ByteArrayInputStream(contents), true, null);
- }
- break;
- case PreferenceConstants.IGNORE_CONFLICTS_VALUE:
- if (file.exists()) {
- // the file exists, this is a conflict, flag it
- setConflicted(true);
- // the user has set the system to ignore conflicts, flag it
- setIgnored(true);
- } else {
- // file doesn't exist, create it
- file.create(new ByteArrayInputStream(contents), true,
- new NullProgressMonitor());
- }
- break;
- case PreferenceConstants.IGNORE_VALUE:
- setIgnored(true);
- break;
- }
- break;
- case IResourceDelta.CHANGED:
- switch (SyncResourcesCore
- .getInt(PreferenceConstants.REMOTE_RESOURCE_ADDITION)) {
- case PreferenceConstants.COMMIT_VALUE:
- if (file.exists()) {
- file.setContents(new ByteArrayInputStream(contents), true,
- true, null);
- } else {
- setConflicted(true);
- file.create(new ByteArrayInputStream(contents), true, null);
- }
- break;
- case PreferenceConstants.IGNORE_CONFLICTS_VALUE:
- if (file.exists()) {
- file.setContents(new ByteArrayInputStream(contents), true,
- true, null);
- } else {
- setConflicted(true);
- setIgnored(true);
- }
- break;
- case PreferenceConstants.IGNORE_VALUE:
- setIgnored(true);
- break;
- }
- break;
- case IResourceDelta.REMOVED:
- switch (SyncResourcesCore
- .getInt(PreferenceConstants.REMOTE_RESOURCE_DELETION)) {
- case PreferenceConstants.COMMIT_VALUE:
- if (file.exists()) {
- // the file exists, commit the change by deleting it
- file.delete(false, true, new NullProgressMonitor());
- } else {
- // if it doesn't exist, then there's nothing to delete, so
- // we flag this change as having been ignored
- setIgnored(true);
- }
- break;
- case PreferenceConstants.IGNORE_VALUE:
- setIgnored(true);
- break;
- }
- }
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.sync.resources.core;
+
+import java.io.ByteArrayInputStream;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.ecf.sync.ModelUpdateException;
+import org.eclipse.ecf.sync.resources.core.preferences.PreferenceConstants;
+
+public final class FileChangeMessage extends ResourceChangeMessage {
+
+ private static final long serialVersionUID = 1482601202361201103L;
+
+ FileChangeMessage(String path, int kind, byte[] contents) {
+ super(path, IResource.FILE, kind, contents);
+ }
+
+ public void applyToModel(Object model) throws ModelUpdateException {
+ try {
+ apply();
+ } catch (CoreException e) {
+ throw new ModelUpdateException(e, this, model);
+ }
+ }
+
+ private void apply() throws CoreException {
+ IPath resourcePath = new Path(path);
+ final IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(
+ resourcePath);
+
+ switch (kind) {
+ case IResourceDelta.ADDED:
+ switch (SyncResourcesCore
+ .getInt(PreferenceConstants.REMOTE_RESOURCE_ADDITION)) {
+ case PreferenceConstants.COMMIT_VALUE:
+ if (file.exists()) {
+ // file was added by a remote peer when it exists locally,
+ // this is a conflict, flag it as such
+ setConflicted(true);
+ // change the contents
+ file.setContents(new ByteArrayInputStream(contents), true,
+ true, null);
+ } else {
+ // file doesn't exist, create it
+ file.create(new ByteArrayInputStream(contents), true, null);
+ }
+ break;
+ case PreferenceConstants.IGNORE_CONFLICTS_VALUE:
+ if (file.exists()) {
+ // the file exists, this is a conflict, flag it
+ setConflicted(true);
+ // the user has set the system to ignore conflicts, flag it
+ setIgnored(true);
+ } else {
+ // file doesn't exist, create it
+ file.create(new ByteArrayInputStream(contents), true,
+ new NullProgressMonitor());
+ }
+ break;
+ case PreferenceConstants.IGNORE_VALUE:
+ setIgnored(true);
+ break;
+ }
+ break;
+ case IResourceDelta.CHANGED:
+ switch (SyncResourcesCore
+ .getInt(PreferenceConstants.REMOTE_RESOURCE_ADDITION)) {
+ case PreferenceConstants.COMMIT_VALUE:
+ if (file.exists()) {
+ file.setContents(new ByteArrayInputStream(contents), true,
+ true, null);
+ } else {
+ setConflicted(true);
+ file.create(new ByteArrayInputStream(contents), true, null);
+ }
+ break;
+ case PreferenceConstants.IGNORE_CONFLICTS_VALUE:
+ if (file.exists()) {
+ file.setContents(new ByteArrayInputStream(contents), true,
+ true, null);
+ } else {
+ setConflicted(true);
+ setIgnored(true);
+ }
+ break;
+ case PreferenceConstants.IGNORE_VALUE:
+ setIgnored(true);
+ break;
+ }
+ break;
+ case IResourceDelta.REMOVED:
+ switch (SyncResourcesCore
+ .getInt(PreferenceConstants.REMOTE_RESOURCE_DELETION)) {
+ case PreferenceConstants.COMMIT_VALUE:
+ if (file.exists()) {
+ // the file exists, commit the change by deleting it
+ file.delete(false, true, new NullProgressMonitor());
+ } else {
+ // if it doesn't exist, then there's nothing to delete, so
+ // we flag this change as having been ignored
+ setIgnored(true);
+ }
+ break;
+ case PreferenceConstants.IGNORE_VALUE:
+ setIgnored(true);
+ break;
+ }
+ }
+ }
+
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FolderChangeMessage.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FolderChangeMessage.java
index 06e2d5665..0665e5d62 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FolderChangeMessage.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/FolderChangeMessage.java
@@ -1,81 +1,81 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.sync.resources.core;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ecf.sync.ModelUpdateException;
-import org.eclipse.ecf.sync.resources.core.preferences.PreferenceConstants;
-
-final class FolderChangeMessage extends ResourceChangeMessage {
-
- private static final long serialVersionUID = -9163249277826579621L;
-
- FolderChangeMessage(String path, int kind) {
- super(path, IResource.FOLDER, kind, null);
- }
-
- public void applyToModel(Object model) throws ModelUpdateException {
- try {
- apply();
- } catch (CoreException e) {
- throw new ModelUpdateException(e, this, model);
- }
- }
-
- private void apply() throws CoreException {
- IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(
- new Path(path));
- switch (kind) {
- case IResourceDelta.ADDED:
- switch (SyncResourcesCore
- .getInt(PreferenceConstants.REMOTE_RESOURCE_ADDITION)) {
- case PreferenceConstants.COMMIT_VALUE:
- if (folder.exists()) {
- // the folder already exists, no need to create it, mark it
- // as conflicting and ignored
- setConflicted(true);
- setIgnored(true);
- } else {
- folder.create(false, true, new NullProgressMonitor());
- }
- break;
- case PreferenceConstants.IGNORE_VALUE:
- setIgnored(true);
- break;
- }
- break;
- case IResourceDelta.REMOVED:
- switch (SyncResourcesCore
- .getInt(PreferenceConstants.REMOTE_RESOURCE_DELETION)) {
- case PreferenceConstants.COMMIT_VALUE:
- if (folder.exists()) {
- folder.delete(false, true, new NullProgressMonitor());
- } else {
- // if it doesn't exist, then there's nothing to delete, so
- // we flag this change as having been ignored
- setIgnored(true);
- }
- break;
- case PreferenceConstants.IGNORE_VALUE:
- setIgnored(true);
- break;
- }
- break;
- }
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.sync.resources.core;
+
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.ecf.sync.ModelUpdateException;
+import org.eclipse.ecf.sync.resources.core.preferences.PreferenceConstants;
+
+final class FolderChangeMessage extends ResourceChangeMessage {
+
+ private static final long serialVersionUID = -9163249277826579621L;
+
+ FolderChangeMessage(String path, int kind) {
+ super(path, IResource.FOLDER, kind, null);
+ }
+
+ public void applyToModel(Object model) throws ModelUpdateException {
+ try {
+ apply();
+ } catch (CoreException e) {
+ throw new ModelUpdateException(e, this, model);
+ }
+ }
+
+ private void apply() throws CoreException {
+ IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(
+ new Path(path));
+ switch (kind) {
+ case IResourceDelta.ADDED:
+ switch (SyncResourcesCore
+ .getInt(PreferenceConstants.REMOTE_RESOURCE_ADDITION)) {
+ case PreferenceConstants.COMMIT_VALUE:
+ if (folder.exists()) {
+ // the folder already exists, no need to create it, mark it
+ // as conflicting and ignored
+ setConflicted(true);
+ setIgnored(true);
+ } else {
+ folder.create(false, true, new NullProgressMonitor());
+ }
+ break;
+ case PreferenceConstants.IGNORE_VALUE:
+ setIgnored(true);
+ break;
+ }
+ break;
+ case IResourceDelta.REMOVED:
+ switch (SyncResourcesCore
+ .getInt(PreferenceConstants.REMOTE_RESOURCE_DELETION)) {
+ case PreferenceConstants.COMMIT_VALUE:
+ if (folder.exists()) {
+ folder.delete(false, true, new NullProgressMonitor());
+ } else {
+ // if it doesn't exist, then there's nothing to delete, so
+ // we flag this change as having been ignored
+ setIgnored(true);
+ }
+ break;
+ case PreferenceConstants.IGNORE_VALUE:
+ setIgnored(true);
+ break;
+ }
+ break;
+ }
+ }
+
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/Message.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/Message.java
index e1d68c231..d1b54f08b 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/Message.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/Message.java
@@ -1,47 +1,47 @@
-/****************************************************************************
- * Copyright (c) 2007, 2009 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.internal.sync.resources.core;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-
-import org.eclipse.ecf.sync.SerializationException;
-
-public class Message implements Serializable {
-
- private static final long serialVersionUID = 4858801311305630711L;
-
- static byte[] serialize(Object object) throws SerializationException {
- try {
- final ByteArrayOutputStream bos = new ByteArrayOutputStream();
- final ObjectOutputStream oos = new ObjectOutputStream(bos);
- oos.writeObject(object);
- return bos.toByteArray();
- } catch (IOException e) {
- throw new SerializationException(e);
- }
- }
-
- byte[] serialize() throws SerializationException {
- return serialize(this);
- }
-
- static Object deserialize(byte[] bytes) throws Exception {
- final ByteArrayInputStream bins = new ByteArrayInputStream(bytes);
- final ObjectInputStream oins = new ObjectInputStream(bins);
- return oins.readObject();
- }
-}
+/****************************************************************************
+ * Copyright (c) 2007, 2009 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.internal.sync.resources.core;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+
+import org.eclipse.ecf.sync.SerializationException;
+
+public class Message implements Serializable {
+
+ private static final long serialVersionUID = 4858801311305630711L;
+
+ static byte[] serialize(Object object) throws SerializationException {
+ try {
+ final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ final ObjectOutputStream oos = new ObjectOutputStream(bos);
+ oos.writeObject(object);
+ return bos.toByteArray();
+ } catch (IOException e) {
+ throw new SerializationException(e);
+ }
+ }
+
+ byte[] serialize() throws SerializationException {
+ return serialize(this);
+ }
+
+ static Object deserialize(byte[] bytes) throws Exception {
+ final ByteArrayInputStream bins = new ByteArrayInputStream(bytes);
+ final ObjectInputStream oins = new ObjectInputStream(bins);
+ return oins.readObject();
+ }
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourceChangeMessage.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourceChangeMessage.java
index d07837e80..2596bac7e 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourceChangeMessage.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourceChangeMessage.java
@@ -1,122 +1,122 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.sync.resources.core;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ecf.sync.IModelChange;
-import org.eclipse.ecf.sync.IModelChangeMessage;
-import org.eclipse.ecf.sync.resources.core.IResourceChange;
-
-public abstract class ResourceChangeMessage implements IResourceChange,
- IModelChangeMessage, Serializable {
-
- private static final long serialVersionUID = 1460461590232423466L;
-
- static IModelChange createResourceChange(IResource resource, int kind) {
- switch (resource.getType()) {
- case IResource.FILE:
- IFile file = (IFile) resource;
- try {
- if (file.exists()) {
- InputStream contents = file.getContents();
- byte[] bytes = new byte[contents.available()];
- contents.read(bytes);
- return new FileChangeMessage(resource.getFullPath()
- .toString(), kind, bytes);
- }
- return new FileChangeMessage(resource.getFullPath().toString(),
- kind, null);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- case IResource.FOLDER:
- // we're not interested in folder changes
- if (kind != IResourceDelta.CHANGED) {
- return new FolderChangeMessage(resource.getFullPath()
- .toString(), kind);
- }
- default:
- return null;
- }
- }
-
- final byte[] contents;
- final int kind;
- final String path;
- private final int type;
-
- private boolean conflicted = false;
- private boolean ignored = false;
-
- ResourceChangeMessage(String path, int type, int kind, byte[] contents) {
- this.contents = contents;
- this.kind = kind;
- this.type = type;
- this.path = path;
- }
-
- public final String getPath() {
- return path;
- }
-
- public final int getType() {
- return type;
- }
-
- public final int getKind() {
- return kind;
- }
-
- public final byte[] getContents() {
- return contents;
- }
-
- void setConflicted(boolean conflicted) {
- this.conflicted = conflicted;
- }
-
- public boolean isConflicted() {
- return conflicted;
- }
-
- void setIgnored(boolean ignored) {
- this.ignored = ignored;
- }
-
- public boolean isIgnored() {
- return ignored;
- }
-
- public final byte[] serialize() {
- try {
- final ByteArrayOutputStream bos = new ByteArrayOutputStream();
- final ObjectOutputStream oos = new ObjectOutputStream(bos);
- oos.writeObject(this);
- return bos.toByteArray();
- } catch (IOException e) {
- return new byte[0];
- }
- }
-
- public Object getAdapter(Class adapter) {
- return Platform.getAdapterManager().getAdapter(this, adapter);
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.sync.resources.core;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ecf.sync.IModelChange;
+import org.eclipse.ecf.sync.IModelChangeMessage;
+import org.eclipse.ecf.sync.resources.core.IResourceChange;
+
+public abstract class ResourceChangeMessage implements IResourceChange,
+ IModelChangeMessage, Serializable {
+
+ private static final long serialVersionUID = 1460461590232423466L;
+
+ static IModelChange createResourceChange(IResource resource, int kind) {
+ switch (resource.getType()) {
+ case IResource.FILE:
+ IFile file = (IFile) resource;
+ try {
+ if (file.exists()) {
+ InputStream contents = file.getContents();
+ byte[] bytes = new byte[contents.available()];
+ contents.read(bytes);
+ return new FileChangeMessage(resource.getFullPath()
+ .toString(), kind, bytes);
+ }
+ return new FileChangeMessage(resource.getFullPath().toString(),
+ kind, null);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ case IResource.FOLDER:
+ // we're not interested in folder changes
+ if (kind != IResourceDelta.CHANGED) {
+ return new FolderChangeMessage(resource.getFullPath()
+ .toString(), kind);
+ }
+ default:
+ return null;
+ }
+ }
+
+ final byte[] contents;
+ final int kind;
+ final String path;
+ private final int type;
+
+ private boolean conflicted = false;
+ private boolean ignored = false;
+
+ ResourceChangeMessage(String path, int type, int kind, byte[] contents) {
+ this.contents = contents;
+ this.kind = kind;
+ this.type = type;
+ this.path = path;
+ }
+
+ public final String getPath() {
+ return path;
+ }
+
+ public final int getType() {
+ return type;
+ }
+
+ public final int getKind() {
+ return kind;
+ }
+
+ public final byte[] getContents() {
+ return contents;
+ }
+
+ void setConflicted(boolean conflicted) {
+ this.conflicted = conflicted;
+ }
+
+ public boolean isConflicted() {
+ return conflicted;
+ }
+
+ void setIgnored(boolean ignored) {
+ this.ignored = ignored;
+ }
+
+ public boolean isIgnored() {
+ return ignored;
+ }
+
+ public final byte[] serialize() {
+ try {
+ final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ final ObjectOutputStream oos = new ObjectOutputStream(bos);
+ oos.writeObject(this);
+ return bos.toByteArray();
+ } catch (IOException e) {
+ return new byte[0];
+ }
+ }
+
+ public Object getAdapter(Class adapter) {
+ return Platform.getAdapterManager().getAdapter(this, adapter);
+ }
+
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesShare.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesShare.java
index 7ae8be58e..0d068c9bd 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesShare.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesShare.java
@@ -1,257 +1,257 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.sync.resources.core;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.datashare.AbstractShare;
-import org.eclipse.ecf.datashare.IChannelContainerAdapter;
-import org.eclipse.ecf.sync.IModelChange;
-import org.eclipse.ecf.sync.IModelChangeMessage;
-
-public class ResourcesShare extends AbstractShare {
-
- private Boolean response;
-
- private Set sharedProjects = new HashSet();
-
- private ID receiverID;
-
- private ID containerID;
-
- private ID localID;
-
- public ResourcesShare(ID containerID, IChannelContainerAdapter adapter)
- throws ECFException {
- super(adapter);
- this.containerID = containerID;
- }
-
- private void attachListener() {
- if (sharedProjects.size() == 1) {
- SyncResourcesCore.getDefault().attachListener();
- }
- }
-
- private void detachListener() {
- if (sharedProjects.isEmpty()) {
- SyncResourcesCore.getDefault().detachListener();
- }
- }
-
- public void sendResponse(boolean accept, String projectName) {
- try {
- if (accept) {
- send(receiverID, new AcceptMessage(projectName));
- } else {
- send(receiverID, new DenyMessage(projectName));
- }
- } catch (ECFException e) {
- // TODO handle this
- e.printStackTrace();
- }
- }
-
- public Boolean getResponse() {
- if (response == null) {
- return null;
- }
- Boolean temp = response;
- response = null;
- return temp;
- }
-
- public ID getContainerID() {
- return containerID;
- }
-
- public ID getReceiverID() {
- return receiverID;
- }
-
- public ID getLocalID() {
- return localID;
- }
-
- public boolean isSharing(String projectName) {
- synchronized (sharedProjects) {
- return sharedProjects.contains(projectName);
- }
- }
-
- public void startShare(ID fromId, ID toID, String projectName)
- throws ECFException {
- if (sharedProjects.add(projectName)) {
- // reset in case we have a stale one
- response = null;
-
- try {
- send(toID, new StartMessage(projectName, fromId, toID));
- localID = fromId;
- receiverID = toID;
- attachListener();
- } catch (ECFException e) {
- receiverID = null;
- sharedProjects.remove(projectName);
- detachListener();
- throw e;
- }
- }
- }
-
- public void stopSharing(String projectName) {
- if (sharedProjects.remove(projectName)) {
- try {
- send(receiverID, new StopMessage(projectName));
- } catch (ECFException e) {
- // TODO handle this
- e.printStackTrace();
- } finally {
- receiverID = null;
- }
-
- detachListener();
- }
- }
-
- private void send(ID toID, Message message) throws ECFException {
- sendMessage(toID, message.serialize());
- }
-
- void send(byte[] bytes) throws ECFException {
- sendMessage(receiverID, bytes);
- }
-
- void sendResourceChangeMessage(IResource resource, int kind) {
- try {
- IModelChange change = ResourceChangeMessage.createResourceChange(
- resource, kind);
- IModelChangeMessage[] messages = ResourcesSynchronizationStrategy
- .getInstance().registerLocalChange(change);
- for (int i = 0; i < messages.length; i++) {
- send(messages[i].serialize());
- }
- } catch (ECFException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- protected void handleStartMessage(StartMessage msg) {
- receiverID = msg.getFromId();
- localID = msg.getLocalId();
- sharedProjects.add(msg.getProjectName());
- attachListener();
- }
-
- private void handleStopMessage(StopMessage msg) {
- sharedProjects.remove(msg.getProjectName());
- detachListener();
- }
-
- private void handleResourceChangeMessage(byte[] data) throws Exception {
- IModelChange remoteChange = ResourcesSynchronizationStrategy
- .getInstance().deserializeRemoteChange(data);
- final IModelChange[] remoteChanges = ResourcesSynchronizationStrategy
- .getInstance().transformRemoteChange(remoteChange);
-
- // create a scheduling rule to lock the projects
- ISchedulingRule[] rules = new ISchedulingRule[sharedProjects.size()];
- int index = 0;
- for (Iterator it = sharedProjects.iterator(); it.hasNext();) {
- String projectName = (String) it.next();
-
- rules[index] = ResourcesPlugin.getWorkspace().getRoot().getProject(
- projectName);
- index++;
- }
-
- try {
- // lock to prevent resource changes from being propagated
- lock(remoteChanges);
- applyRemoteChanges(remoteChanges, new MultiRule(rules));
- } finally {
- // unlock now that we've applied the remote changes to our
- // own workspace
- unlock(remoteChanges);
- }
-
- if (remoteChange instanceof BatchModelChange) {
- BatchModelChange batchChange = (BatchModelChange) remoteChange;
- batchChange.setOutgoing(false);
- batchChange.setTime(System.currentTimeMillis());
-
- SyncResourcesCore.add(batchChange);
- }
- }
-
- protected void lock(IModelChange[] remoteChanges) {
- SyncResourcesCore.lock();
- }
-
- protected void unlock(IModelChange[] remoteChanges) {
- SyncResourcesCore.unlock();
- }
-
- private void applyRemoteChanges(final IModelChange[] remoteChanges,
- ISchedulingRule rule) throws CoreException {
- ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- monitor.beginTask("Processing remote changes...",
- remoteChanges.length);
- for (int i = 0; i < remoteChanges.length; i++) {
- if (monitor.isCanceled()) {
- return;
- }
- // applies the resource changes
- remoteChanges[i].applyToModel(containerID);
- monitor.worked(1);
- }
- monitor.done();
- }
- }, rule, IWorkspace.AVOID_UPDATE, null);
-
- }
-
- protected void handleMessage(ID fromContainerID, byte[] data) {
- try {
- Object message = Message.deserialize(data);
- if (message instanceof StartMessage) {
- handleStartMessage((StartMessage) message);
- } else if (message instanceof StopMessage) {
- handleStopMessage((StopMessage) message);
- } else if (message instanceof AcceptMessage) {
- response = Boolean.TRUE;
- } else if (message instanceof DenyMessage) {
- sharedProjects.remove(((DenyMessage) message).getProjectName());
- receiverID = null;
- detachListener();
- response = Boolean.FALSE;
- } else {
- handleResourceChangeMessage(data);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.sync.resources.core;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.core.runtime.jobs.MultiRule;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.util.ECFException;
+import org.eclipse.ecf.datashare.AbstractShare;
+import org.eclipse.ecf.datashare.IChannelContainerAdapter;
+import org.eclipse.ecf.sync.IModelChange;
+import org.eclipse.ecf.sync.IModelChangeMessage;
+
+public class ResourcesShare extends AbstractShare {
+
+ private Boolean response;
+
+ private Set sharedProjects = new HashSet();
+
+ private ID receiverID;
+
+ private ID containerID;
+
+ private ID localID;
+
+ public ResourcesShare(ID containerID, IChannelContainerAdapter adapter)
+ throws ECFException {
+ super(adapter);
+ this.containerID = containerID;
+ }
+
+ private void attachListener() {
+ if (sharedProjects.size() == 1) {
+ SyncResourcesCore.getDefault().attachListener();
+ }
+ }
+
+ private void detachListener() {
+ if (sharedProjects.isEmpty()) {
+ SyncResourcesCore.getDefault().detachListener();
+ }
+ }
+
+ public void sendResponse(boolean accept, String projectName) {
+ try {
+ if (accept) {
+ send(receiverID, new AcceptMessage(projectName));
+ } else {
+ send(receiverID, new DenyMessage(projectName));
+ }
+ } catch (ECFException e) {
+ // TODO handle this
+ e.printStackTrace();
+ }
+ }
+
+ public Boolean getResponse() {
+ if (response == null) {
+ return null;
+ }
+ Boolean temp = response;
+ response = null;
+ return temp;
+ }
+
+ public ID getContainerID() {
+ return containerID;
+ }
+
+ public ID getReceiverID() {
+ return receiverID;
+ }
+
+ public ID getLocalID() {
+ return localID;
+ }
+
+ public boolean isSharing(String projectName) {
+ synchronized (sharedProjects) {
+ return sharedProjects.contains(projectName);
+ }
+ }
+
+ public void startShare(ID fromId, ID toID, String projectName)
+ throws ECFException {
+ if (sharedProjects.add(projectName)) {
+ // reset in case we have a stale one
+ response = null;
+
+ try {
+ send(toID, new StartMessage(projectName, fromId, toID));
+ localID = fromId;
+ receiverID = toID;
+ attachListener();
+ } catch (ECFException e) {
+ receiverID = null;
+ sharedProjects.remove(projectName);
+ detachListener();
+ throw e;
+ }
+ }
+ }
+
+ public void stopSharing(String projectName) {
+ if (sharedProjects.remove(projectName)) {
+ try {
+ send(receiverID, new StopMessage(projectName));
+ } catch (ECFException e) {
+ // TODO handle this
+ e.printStackTrace();
+ } finally {
+ receiverID = null;
+ }
+
+ detachListener();
+ }
+ }
+
+ private void send(ID toID, Message message) throws ECFException {
+ sendMessage(toID, message.serialize());
+ }
+
+ void send(byte[] bytes) throws ECFException {
+ sendMessage(receiverID, bytes);
+ }
+
+ void sendResourceChangeMessage(IResource resource, int kind) {
+ try {
+ IModelChange change = ResourceChangeMessage.createResourceChange(
+ resource, kind);
+ IModelChangeMessage[] messages = ResourcesSynchronizationStrategy
+ .getInstance().registerLocalChange(change);
+ for (int i = 0; i < messages.length; i++) {
+ send(messages[i].serialize());
+ }
+ } catch (ECFException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ protected void handleStartMessage(StartMessage msg) {
+ receiverID = msg.getFromId();
+ localID = msg.getLocalId();
+ sharedProjects.add(msg.getProjectName());
+ attachListener();
+ }
+
+ private void handleStopMessage(StopMessage msg) {
+ sharedProjects.remove(msg.getProjectName());
+ detachListener();
+ }
+
+ private void handleResourceChangeMessage(byte[] data) throws Exception {
+ IModelChange remoteChange = ResourcesSynchronizationStrategy
+ .getInstance().deserializeRemoteChange(data);
+ final IModelChange[] remoteChanges = ResourcesSynchronizationStrategy
+ .getInstance().transformRemoteChange(remoteChange);
+
+ // create a scheduling rule to lock the projects
+ ISchedulingRule[] rules = new ISchedulingRule[sharedProjects.size()];
+ int index = 0;
+ for (Iterator it = sharedProjects.iterator(); it.hasNext();) {
+ String projectName = (String) it.next();
+
+ rules[index] = ResourcesPlugin.getWorkspace().getRoot().getProject(
+ projectName);
+ index++;
+ }
+
+ try {
+ // lock to prevent resource changes from being propagated
+ lock(remoteChanges);
+ applyRemoteChanges(remoteChanges, new MultiRule(rules));
+ } finally {
+ // unlock now that we've applied the remote changes to our
+ // own workspace
+ unlock(remoteChanges);
+ }
+
+ if (remoteChange instanceof BatchModelChange) {
+ BatchModelChange batchChange = (BatchModelChange) remoteChange;
+ batchChange.setOutgoing(false);
+ batchChange.setTime(System.currentTimeMillis());
+
+ SyncResourcesCore.add(batchChange);
+ }
+ }
+
+ protected void lock(IModelChange[] remoteChanges) {
+ SyncResourcesCore.lock();
+ }
+
+ protected void unlock(IModelChange[] remoteChanges) {
+ SyncResourcesCore.unlock();
+ }
+
+ private void applyRemoteChanges(final IModelChange[] remoteChanges,
+ ISchedulingRule rule) throws CoreException {
+ ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
+ public void run(IProgressMonitor monitor) throws CoreException {
+ monitor.beginTask("Processing remote changes...",
+ remoteChanges.length);
+ for (int i = 0; i < remoteChanges.length; i++) {
+ if (monitor.isCanceled()) {
+ return;
+ }
+ // applies the resource changes
+ remoteChanges[i].applyToModel(containerID);
+ monitor.worked(1);
+ }
+ monitor.done();
+ }
+ }, rule, IWorkspace.AVOID_UPDATE, null);
+
+ }
+
+ protected void handleMessage(ID fromContainerID, byte[] data) {
+ try {
+ Object message = Message.deserialize(data);
+ if (message instanceof StartMessage) {
+ handleStartMessage((StartMessage) message);
+ } else if (message instanceof StopMessage) {
+ handleStopMessage((StopMessage) message);
+ } else if (message instanceof AcceptMessage) {
+ response = Boolean.TRUE;
+ } else if (message instanceof DenyMessage) {
+ sharedProjects.remove(((DenyMessage) message).getProjectName());
+ receiverID = null;
+ detachListener();
+ response = Boolean.FALSE;
+ } else {
+ handleResourceChangeMessage(data);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesSynchronizationStrategy.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesSynchronizationStrategy.java
index 4a91976c0..15f6cf50b 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesSynchronizationStrategy.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/ResourcesSynchronizationStrategy.java
@@ -1,74 +1,74 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.sync.resources.core;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ecf.sync.IModelChange;
-import org.eclipse.ecf.sync.IModelChangeMessage;
-import org.eclipse.ecf.sync.IModelSynchronizationStrategy;
-import org.eclipse.ecf.sync.SerializationException;
-import org.eclipse.ecf.sync.resources.core.IResourceChange;
-
-public class ResourcesSynchronizationStrategy implements
- IModelSynchronizationStrategy {
-
- private static final IModelSynchronizationStrategy strategy = new ResourcesSynchronizationStrategy();
-
- public static IModelSynchronizationStrategy getInstance() {
- return strategy;
- }
-
- public IModelChange deserializeRemoteChange(byte[] bytes)
- throws SerializationException {
- try {
- Object object = new ObjectInputStream(new ByteArrayInputStream(
- bytes)).readObject();
- if (object instanceof BatchModelChange
- || object instanceof IResourceChange) {
- return (IModelChange) object;
- } else {
- throw new SerializationException(
- "Resources synchronization does not support deserializing "
- + object.getClass() + " instances");
- }
- } catch (IOException e) {
- throw new SerializationException("Failed to read object");
- } catch (ClassNotFoundException e) {
- throw new SerializationException("Failed to load object class");
- }
- }
-
- public IModelChangeMessage[] registerLocalChange(IModelChange localChange) {
- if (localChange instanceof ResourceChangeMessage) {
- return new IModelChangeMessage[] { (IModelChangeMessage) localChange };
- }
- return new IModelChangeMessage[0];
- }
-
- public IModelChange[] transformRemoteChange(IModelChange remoteChange) {
- if (remoteChange instanceof BatchModelChange) {
- IModelChangeMessage[] messages = ((BatchModelChange) remoteChange).getMessages();
- IModelChange[] changes = new IModelChange[messages.length];
- System.arraycopy(messages, 0, changes, 0, messages.length);
- return changes;
- }
- return new IModelChange[] { remoteChange };
- }
-
- public Object getAdapter(Class adapter) {
- return Platform.getAdapterManager().getAdapter(this, adapter);
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.sync.resources.core;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ecf.sync.IModelChange;
+import org.eclipse.ecf.sync.IModelChangeMessage;
+import org.eclipse.ecf.sync.IModelSynchronizationStrategy;
+import org.eclipse.ecf.sync.SerializationException;
+import org.eclipse.ecf.sync.resources.core.IResourceChange;
+
+public class ResourcesSynchronizationStrategy implements
+ IModelSynchronizationStrategy {
+
+ private static final IModelSynchronizationStrategy strategy = new ResourcesSynchronizationStrategy();
+
+ public static IModelSynchronizationStrategy getInstance() {
+ return strategy;
+ }
+
+ public IModelChange deserializeRemoteChange(byte[] bytes)
+ throws SerializationException {
+ try {
+ Object object = new ObjectInputStream(new ByteArrayInputStream(
+ bytes)).readObject();
+ if (object instanceof BatchModelChange
+ || object instanceof IResourceChange) {
+ return (IModelChange) object;
+ } else {
+ throw new SerializationException(
+ "Resources synchronization does not support deserializing "
+ + object.getClass() + " instances");
+ }
+ } catch (IOException e) {
+ throw new SerializationException("Failed to read object");
+ } catch (ClassNotFoundException e) {
+ throw new SerializationException("Failed to load object class");
+ }
+ }
+
+ public IModelChangeMessage[] registerLocalChange(IModelChange localChange) {
+ if (localChange instanceof ResourceChangeMessage) {
+ return new IModelChangeMessage[] { (IModelChangeMessage) localChange };
+ }
+ return new IModelChangeMessage[0];
+ }
+
+ public IModelChange[] transformRemoteChange(IModelChange remoteChange) {
+ if (remoteChange instanceof BatchModelChange) {
+ IModelChangeMessage[] messages = ((BatchModelChange) remoteChange).getMessages();
+ IModelChange[] changes = new IModelChange[messages.length];
+ System.arraycopy(messages, 0, changes, 0, messages.length);
+ return changes;
+ }
+ return new IModelChange[] { remoteChange };
+ }
+
+ public Object getAdapter(Class adapter) {
+ return Platform.getAdapterManager().getAdapter(this, adapter);
+ }
+
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StartMessage.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StartMessage.java
index 5e781c97d..70131cbce 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StartMessage.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StartMessage.java
@@ -1,45 +1,45 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.sync.resources.core;
-
-import java.io.Serializable;
-
-import org.eclipse.ecf.core.identity.ID;
-
-public final class StartMessage extends Message implements Serializable {
-
- private static final long serialVersionUID = -5609339410051661940L;
-
- private String projectName;
-
- private ID fromId;
-
- private ID localId;
-
- StartMessage(String projectName, ID fromId, ID localId) {
- this.projectName = projectName;
- this.fromId = fromId;
- this.localId = localId;
- }
-
- public String getProjectName() {
- return projectName;
- }
-
- public ID getFromId() {
- return fromId;
- }
-
- ID getLocalId() {
- return localId;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.sync.resources.core;
+
+import java.io.Serializable;
+
+import org.eclipse.ecf.core.identity.ID;
+
+public final class StartMessage extends Message implements Serializable {
+
+ private static final long serialVersionUID = -5609339410051661940L;
+
+ private String projectName;
+
+ private ID fromId;
+
+ private ID localId;
+
+ StartMessage(String projectName, ID fromId, ID localId) {
+ this.projectName = projectName;
+ this.fromId = fromId;
+ this.localId = localId;
+ }
+
+ public String getProjectName() {
+ return projectName;
+ }
+
+ public ID getFromId() {
+ return fromId;
+ }
+
+ ID getLocalId() {
+ return localId;
+ }
+
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StopMessage.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StopMessage.java
index c73c6eb87..e60e3656c 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StopMessage.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/StopMessage.java
@@ -1,29 +1,29 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.sync.resources.core;
-
-import java.io.Serializable;
-
-final class StopMessage extends Message implements Serializable {
-
- private static final long serialVersionUID = -7843915658263321577L;
-
- private String projectName;
-
- StopMessage(String projectName) {
- this.projectName = projectName;
- }
-
- String getProjectName() {
- return projectName;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.sync.resources.core;
+
+import java.io.Serializable;
+
+final class StopMessage extends Message implements Serializable {
+
+ private static final long serialVersionUID = -7843915658263321577L;
+
+ private String projectName;
+
+ StopMessage(String projectName) {
+ this.projectName = projectName;
+ }
+
+ String getProjectName() {
+ return projectName;
+ }
+
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/SyncResourcesCore.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/SyncResourcesCore.java
index b3eaf3b4f..67532ac95 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/SyncResourcesCore.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/internal/sync/resources/core/SyncResourcesCore.java
@@ -1,328 +1,328 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 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.internal.sync.resources.core;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.sync.IModelChange;
-import org.eclipse.ecf.sync.IModelChangeMessage;
-import org.eclipse.ecf.sync.resources.core.preferences.PreferenceConstants;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.prefs.Preferences;
-
-public class SyncResourcesCore extends Plugin implements
- IResourceChangeListener, IResourceDeltaVisitor {
-
- public static final String PLUGIN_ID = "org.eclipse.ecf.sync.resources.core"; //$NON-NLS-1$
-
- private static final int LIMIT = 25;
-
- private static final Hashtable channels = new Hashtable();
-
- private static LinkedList enqueuedChanges = new LinkedList();
-
- private static SyncResourcesCore instance;
-
- private Map resourceChanges = new HashMap();
-
- public static ResourcesShare getResourcesShare(ID containerID) {
- return (ResourcesShare) channels.get(containerID);
- }
-
- public static void addResourcesShare(ID containerID, ResourcesShare share) {
- channels.put(containerID, share);
- }
-
- public static ResourcesShare removeResourcesShare(ID containerID) {
- return (ResourcesShare) channels.remove(containerID);
- }
-
- public static Collection getResourceShares() {
- return Collections.unmodifiableCollection(channels.values());
- }
-
- /**
- * Checks and returns whether the specified project is currently being
- * shared.
- */
- public static boolean isSharing(String projectName) {
- for (Iterator it = channels.values().iterator(); it.hasNext();) {
- ResourcesShare share = (ResourcesShare) it.next();
- if (share.isSharing(projectName)) {
- return true;
- }
- }
- return false;
- }
-
- private static boolean locked = false;
-
- /**
- * Requests that all resource changes be ignored. That is, they should not
- * be monitored for distribution to remote peers.
- */
- public static void lock() {
- locked = true;
- }
-
- /**
- * Unlocks by requesting that that all resource changes be monitored for
- * distribution to remote peers.
- */
- public static void unlock() {
- locked = false;
- }
-
- public boolean visit(IResourceDelta delta) throws CoreException {
- if (locked) {
- return false;
- }
-
- IResource resource = delta.getResource();
- int type = resource.getType();
- if (type == IResource.ROOT) {
- return true;
- }
-
- String projectName = resource.getProject().getName();
- boolean isSharing = isSharing(projectName);
- if (isSharing) {
- if (type == IResource.PROJECT) {
- return true;
- }
- } else {
- // this project is not being shared so we don't care about its
- // changes, return false
- return false;
- }
-
- // we are only interested in non-derived resources
- if (!resource.isDerived() && checkDelta(delta)) {
- for (Iterator it = channels.values().iterator(); it.hasNext();) {
- ResourcesShare share = (ResourcesShare) it.next();
- if (share.isSharing(projectName)) {
- IModelChange change = ResourceChangeMessage
- .createResourceChange(resource, delta.getKind());
- if (change != null) {
- List changes = (List) resourceChanges.get(share);
- if (changes == null) {
- changes = new ArrayList();
- resourceChanges.put(share, changes);
- }
-
- changes.add(change);
- }
- }
- }
- }
- return type == IResource.FOLDER;
- }
-
- private static boolean checkDelta(IResourceDelta delta) {
- return checkFlags(delta.getFlags()) || checkKind(delta.getKind());
- }
-
- private static boolean checkKind(int kind) {
- return kind == IResourceDelta.ADDED || kind == IResourceDelta.REMOVED;
- }
-
- /**
- * Checks the flags of a how a resource has been modified and returns
- * whether this change should be propagated to remote peers.
- *
- * @param flags
- * the detail flags of a resource delta
- * @return <code>true</code> if the delta should be propagated,
- * <code>false</code> otherwise
- */
- private static boolean checkFlags(int flags) {
- // we are only interested in content change, marker changes also fire
- // resource change events but we don't care about those, from
- // preliminary investigations, monitoring marker changes will cause
- // infinite loops
- return (flags & IResourceDelta.CONTENT) != 0;
- }
-
- public void resourceChanged(IResourceChangeEvent event) {
- try {
- event.getDelta().accept(this);
- } catch (CoreException e) {
- // ignored, this isn't possible as we never throw one
- } finally {
- try {
- // we're done, at least, "partially", distribute changes
- distributeChanges();
- } finally {
- // clear the cached changes
- resourceChanges.clear();
- }
- }
- }
-
- private void distributeChanges() {
- for (Iterator it = resourceChanges.entrySet().iterator(); it.hasNext();) {
- Entry entry = (Entry) it.next();
- ResourcesShare share = (ResourcesShare) entry.getKey();
- List changes = (List) entry.getValue();
-
- List messages = new ArrayList();
- for (int i = 0; i < changes.size(); i++) {
- ResourceChangeMessage change = (ResourceChangeMessage) changes
- .get(i);
-
- switch (change.getKind()) {
- case IResourceDelta.ADDED:
- if (getInt(PreferenceConstants.LOCAL_RESOURCE_ADDITION) == PreferenceConstants.IGNORE_VALUE) {
- change.setIgnored(true);
- continue;
- }
- break;
- case IResourceDelta.CHANGED:
- if (getInt(PreferenceConstants.LOCAL_RESOURCE_CHANGE) == PreferenceConstants.IGNORE_VALUE) {
- change.setIgnored(true);
- continue;
- }
- break;
- case IResourceDelta.REMOVED:
- if (getInt(PreferenceConstants.LOCAL_RESOURCE_DELETION) == PreferenceConstants.IGNORE_VALUE) {
- change.setIgnored(true);
- continue;
- }
- break;
- }
-
- IModelChangeMessage[] changeMessages = ResourcesSynchronizationStrategy
- .getInstance().registerLocalChange(change);
- messages.addAll(Arrays.asList(changeMessages));
- }
-
- try {
- if (!messages.isEmpty()) {
- IModelChangeMessage[] messagesArray = (IModelChangeMessage[]) messages
- .toArray(new IModelChangeMessage[messages.size()]);
- BatchModelChange batchChange = new BatchModelChange(
- messagesArray);
- share.send(Message.serialize(batchChange));
-
- add(batchChange);
- }
- } catch (ECFException e) {
- getDefault().getLog().log(
- new Status(IStatus.ERROR, PLUGIN_ID,
- "Could not send resource change message", e)); //$NON-NLS-1$
- }
- }
- }
-
- private static IView viewInstance;
-
- public static synchronized void setView(IView resourcesView) {
- viewInstance = resourcesView;
- if (resourcesView != null) {
- resourcesView.setInput(enqueuedChanges);
- }
- }
-
- public static synchronized void add(Object object) {
- if (enqueuedChanges.size() == LIMIT) {
- remove();
- }
-
- enqueuedChanges.addFirst(object);
- if (viewInstance != null) {
- viewInstance.add(object);
- }
- }
-
- private static synchronized void remove() {
- Object object = enqueuedChanges.removeLast();
- if (viewInstance != null) {
- viewInstance.remove(object);
- }
- }
-
- private static Preferences preferences;
- private static Preferences defaultPreferences;
-
- public SyncResourcesCore() {
- instance = this;
- }
-
- void attachListener() {
- ResourcesPlugin.getWorkspace().addResourceChangeListener(this,
- IResourceChangeEvent.POST_CHANGE);
- }
-
- void detachListener() {
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
- * )
- */
- public void start(BundleContext ctxt) throws Exception {
- super.start(ctxt);
- attachListener();
- preferences = new InstanceScope().getNode(SyncResourcesCore.PLUGIN_ID);
- defaultPreferences = new DefaultScope()
- .getNode(SyncResourcesCore.PLUGIN_ID);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- instance = null;
- detachListener();
- super.stop(context);
- }
-
- public static SyncResourcesCore getDefault() {
- return instance;
- }
-
- public static int getInt(String key) {
- return preferences.getInt(key, defaultPreferences.getInt(key,
- PreferenceConstants.COMMIT_VALUE));
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 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.internal.sync.resources.core;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.util.ECFException;
+import org.eclipse.ecf.sync.IModelChange;
+import org.eclipse.ecf.sync.IModelChangeMessage;
+import org.eclipse.ecf.sync.resources.core.preferences.PreferenceConstants;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.prefs.Preferences;
+
+public class SyncResourcesCore extends Plugin implements
+ IResourceChangeListener, IResourceDeltaVisitor {
+
+ public static final String PLUGIN_ID = "org.eclipse.ecf.sync.resources.core"; //$NON-NLS-1$
+
+ private static final int LIMIT = 25;
+
+ private static final Hashtable channels = new Hashtable();
+
+ private static LinkedList enqueuedChanges = new LinkedList();
+
+ private static SyncResourcesCore instance;
+
+ private Map resourceChanges = new HashMap();
+
+ public static ResourcesShare getResourcesShare(ID containerID) {
+ return (ResourcesShare) channels.get(containerID);
+ }
+
+ public static void addResourcesShare(ID containerID, ResourcesShare share) {
+ channels.put(containerID, share);
+ }
+
+ public static ResourcesShare removeResourcesShare(ID containerID) {
+ return (ResourcesShare) channels.remove(containerID);
+ }
+
+ public static Collection getResourceShares() {
+ return Collections.unmodifiableCollection(channels.values());
+ }
+
+ /**
+ * Checks and returns whether the specified project is currently being
+ * shared.
+ */
+ public static boolean isSharing(String projectName) {
+ for (Iterator it = channels.values().iterator(); it.hasNext();) {
+ ResourcesShare share = (ResourcesShare) it.next();
+ if (share.isSharing(projectName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static boolean locked = false;
+
+ /**
+ * Requests that all resource changes be ignored. That is, they should not
+ * be monitored for distribution to remote peers.
+ */
+ public static void lock() {
+ locked = true;
+ }
+
+ /**
+ * Unlocks by requesting that that all resource changes be monitored for
+ * distribution to remote peers.
+ */
+ public static void unlock() {
+ locked = false;
+ }
+
+ public boolean visit(IResourceDelta delta) throws CoreException {
+ if (locked) {
+ return false;
+ }
+
+ IResource resource = delta.getResource();
+ int type = resource.getType();
+ if (type == IResource.ROOT) {
+ return true;
+ }
+
+ String projectName = resource.getProject().getName();
+ boolean isSharing = isSharing(projectName);
+ if (isSharing) {
+ if (type == IResource.PROJECT) {
+ return true;
+ }
+ } else {
+ // this project is not being shared so we don't care about its
+ // changes, return false
+ return false;
+ }
+
+ // we are only interested in non-derived resources
+ if (!resource.isDerived() && checkDelta(delta)) {
+ for (Iterator it = channels.values().iterator(); it.hasNext();) {
+ ResourcesShare share = (ResourcesShare) it.next();
+ if (share.isSharing(projectName)) {
+ IModelChange change = ResourceChangeMessage
+ .createResourceChange(resource, delta.getKind());
+ if (change != null) {
+ List changes = (List) resourceChanges.get(share);
+ if (changes == null) {
+ changes = new ArrayList();
+ resourceChanges.put(share, changes);
+ }
+
+ changes.add(change);
+ }
+ }
+ }
+ }
+ return type == IResource.FOLDER;
+ }
+
+ private static boolean checkDelta(IResourceDelta delta) {
+ return checkFlags(delta.getFlags()) || checkKind(delta.getKind());
+ }
+
+ private static boolean checkKind(int kind) {
+ return kind == IResourceDelta.ADDED || kind == IResourceDelta.REMOVED;
+ }
+
+ /**
+ * Checks the flags of a how a resource has been modified and returns
+ * whether this change should be propagated to remote peers.
+ *
+ * @param flags
+ * the detail flags of a resource delta
+ * @return <code>true</code> if the delta should be propagated,
+ * <code>false</code> otherwise
+ */
+ private static boolean checkFlags(int flags) {
+ // we are only interested in content change, marker changes also fire
+ // resource change events but we don't care about those, from
+ // preliminary investigations, monitoring marker changes will cause
+ // infinite loops
+ return (flags & IResourceDelta.CONTENT) != 0;
+ }
+
+ public void resourceChanged(IResourceChangeEvent event) {
+ try {
+ event.getDelta().accept(this);
+ } catch (CoreException e) {
+ // ignored, this isn't possible as we never throw one
+ } finally {
+ try {
+ // we're done, at least, "partially", distribute changes
+ distributeChanges();
+ } finally {
+ // clear the cached changes
+ resourceChanges.clear();
+ }
+ }
+ }
+
+ private void distributeChanges() {
+ for (Iterator it = resourceChanges.entrySet().iterator(); it.hasNext();) {
+ Entry entry = (Entry) it.next();
+ ResourcesShare share = (ResourcesShare) entry.getKey();
+ List changes = (List) entry.getValue();
+
+ List messages = new ArrayList();
+ for (int i = 0; i < changes.size(); i++) {
+ ResourceChangeMessage change = (ResourceChangeMessage) changes
+ .get(i);
+
+ switch (change.getKind()) {
+ case IResourceDelta.ADDED:
+ if (getInt(PreferenceConstants.LOCAL_RESOURCE_ADDITION) == PreferenceConstants.IGNORE_VALUE) {
+ change.setIgnored(true);
+ continue;
+ }
+ break;
+ case IResourceDelta.CHANGED:
+ if (getInt(PreferenceConstants.LOCAL_RESOURCE_CHANGE) == PreferenceConstants.IGNORE_VALUE) {
+ change.setIgnored(true);
+ continue;
+ }
+ break;
+ case IResourceDelta.REMOVED:
+ if (getInt(PreferenceConstants.LOCAL_RESOURCE_DELETION) == PreferenceConstants.IGNORE_VALUE) {
+ change.setIgnored(true);
+ continue;
+ }
+ break;
+ }
+
+ IModelChangeMessage[] changeMessages = ResourcesSynchronizationStrategy
+ .getInstance().registerLocalChange(change);
+ messages.addAll(Arrays.asList(changeMessages));
+ }
+
+ try {
+ if (!messages.isEmpty()) {
+ IModelChangeMessage[] messagesArray = (IModelChangeMessage[]) messages
+ .toArray(new IModelChangeMessage[messages.size()]);
+ BatchModelChange batchChange = new BatchModelChange(
+ messagesArray);
+ share.send(Message.serialize(batchChange));
+
+ add(batchChange);
+ }
+ } catch (ECFException e) {
+ getDefault().getLog().log(
+ new Status(IStatus.ERROR, PLUGIN_ID,
+ "Could not send resource change message", e)); //$NON-NLS-1$
+ }
+ }
+ }
+
+ private static IView viewInstance;
+
+ public static synchronized void setView(IView resourcesView) {
+ viewInstance = resourcesView;
+ if (resourcesView != null) {
+ resourcesView.setInput(enqueuedChanges);
+ }
+ }
+
+ public static synchronized void add(Object object) {
+ if (enqueuedChanges.size() == LIMIT) {
+ remove();
+ }
+
+ enqueuedChanges.addFirst(object);
+ if (viewInstance != null) {
+ viewInstance.add(object);
+ }
+ }
+
+ private static synchronized void remove() {
+ Object object = enqueuedChanges.removeLast();
+ if (viewInstance != null) {
+ viewInstance.remove(object);
+ }
+ }
+
+ private static Preferences preferences;
+ private static Preferences defaultPreferences;
+
+ public SyncResourcesCore() {
+ instance = this;
+ }
+
+ void attachListener() {
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(this,
+ IResourceChangeEvent.POST_CHANGE);
+ }
+
+ void detachListener() {
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
+ * )
+ */
+ public void start(BundleContext ctxt) throws Exception {
+ super.start(ctxt);
+ attachListener();
+ preferences = new InstanceScope().getNode(SyncResourcesCore.PLUGIN_ID);
+ defaultPreferences = new DefaultScope()
+ .getNode(SyncResourcesCore.PLUGIN_ID);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ instance = null;
+ detachListener();
+ super.stop(context);
+ }
+
+ public static SyncResourcesCore getDefault() {
+ return instance;
+ }
+
+ public static int getInt(String key) {
+ return preferences.getInt(key, defaultPreferences.getInt(key,
+ PreferenceConstants.COMMIT_VALUE));
+ }
+
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/sync/resources/core/IResourceChange.java b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/sync/resources/core/IResourceChange.java
index 35accde32..12cc7b503 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/sync/resources/core/IResourceChange.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.core/src/org/eclipse/ecf/sync/resources/core/IResourceChange.java
@@ -1,55 +1,55 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.sync.resources.core;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.ecf.sync.IModelChange;
-
-/**
- * Interface representing a change to a resource within the Eclipse workspace.
- */
-public interface IResourceChange extends IModelChange {
-
- /**
- * Returns the path of the modified resource, relative to the workspace.
- *
- * @return the workspace relative path of the modified resource
- */
- public String getPath();
-
- /**
- * Returns the type of resource that has been modified.
- *
- * @return the modified resource's type
- * @see IResource#getType()
- */
- public int getType();
-
- /**
- * Retrieves the kind of modification that has occurred.
- *
- * @return the kind of modification on the resource
- * @see IResourceDelta#getKind()
- */
- public int getKind();
-
- /**
- * Retrieves the contents of the resource that has been modified. May be
- * <code>null</code> if the resource itself represents no content such as
- * the case for folders. While the folder itself holds files with contains
- * contents, the folder itself has no content representation.
- *
- * @return the contents of the resource that has been changed, or
- * <code>null</code> if not applicable
- */
- public byte[] getContents();
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.sync.resources.core;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.ecf.sync.IModelChange;
+
+/**
+ * Interface representing a change to a resource within the Eclipse workspace.
+ */
+public interface IResourceChange extends IModelChange {
+
+ /**
+ * Returns the path of the modified resource, relative to the workspace.
+ *
+ * @return the workspace relative path of the modified resource
+ */
+ public String getPath();
+
+ /**
+ * Returns the type of resource that has been modified.
+ *
+ * @return the modified resource's type
+ * @see IResource#getType()
+ */
+ public int getType();
+
+ /**
+ * Retrieves the kind of modification that has occurred.
+ *
+ * @return the kind of modification on the resource
+ * @see IResourceDelta#getKind()
+ */
+ public int getKind();
+
+ /**
+ * Retrieves the contents of the resource that has been modified. May be
+ * <code>null</code> if the resource itself represents no content such as
+ * the case for folders. While the folder itself holds files with contains
+ * contents, the folder itself has no content representation.
+ *
+ * @return the contents of the resource that has been changed, or
+ * <code>null</code> if not applicable
+ */
+ public byte[] getContents();
+}
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/.classpath b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/.classpath
index 731ea5fad..2fbb7a23e 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/.classpath
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/.settings/org.eclipse.jdt.core.prefs b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/.settings/org.eclipse.jdt.core.prefs
index 4678d459a..fa79c456d 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-#Sat Nov 22 10:35:29 CET 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Sat Nov 22 10:35:29 CET 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/build.properties b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/build.properties
index 285b8bf47..6c480f39f 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/build.properties
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/build.properties
@@ -1,6 +1,6 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- icons/
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/plugin.xml b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/plugin.xml
index 52f444c73..51fba3d9e 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/plugin.xml
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/plugin.xml
@@ -1,129 +1,129 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.1"?>
-<plugin>
- <extension point="org.eclipse.core.expressions.definitions">
- <definition id="org.eclipse.ecf.ui.resourcesDefinition">
- <iterate ifEmpty="false">
- <adapt type="org.eclipse.core.resources.IResource"/>
- </iterate>
- </definition>
- </extension>
-
- <extension
- point="org.eclipse.ui.menus">
- <menuContribution
- locationURI="popup:org.eclipse.ui.popup.any?after=additions">
- <dynamic
- class="org.eclipse.ecf.sync.ui.resources.ResourcesShareMenuContributionItem"
- id="org.eclipse.ecf.sync.ui.resources.resourcesShareMenuContributionItem">
- <visibleWhen checkEnabled="true">
- <with variable="activeMenuSelection">
- <reference definitionId="org.eclipse.ecf.ui.resourcesDefinition"/>
- </with>
- </visibleWhen>
- </dynamic>
- </menuContribution>
- </extension>
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- category="org.eclipse.ecf.example.collab.ui.preferences"
- class="org.eclipse.ecf.sync.ui.resources.preferences.ResourcesSynchronizationPreferencePage"
- id="org.eclipse.ecf.sync.ui.resources.preferences.ResourcesSynchronizationPreferencePage"
- name="Resources">
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.views">
- <category
- id="org.eclipse.ecf.sync.resources.core"
- name="Sample Category">
- </category>
- <view
- category="org.eclipse.ecf.sync.resources.core"
- class="org.eclipse.ecf.sync.resources.views.RemoteResourcesView"
- icon="icons/sample.gif"
- id="org.eclipse.ecf.sync.resources.core.views.RemoteResourcesView"
- name="Shared Resources">
- </view>
- </extension>
- <extension
- point="org.eclipse.ecf.start">
- <run
- class="org.eclipse.ecf.internal.sync.ui.resources.ECFStart">
- </run>
- </extension>
- <extension
- point="org.eclipse.ui.decorators">
- <decorator
- adaptable="true"
- class="org.eclipse.ecf.sync.ui.resources.decorators.RemotelyOpenedEditorsDecorator"
- id="org.eclipse.ecf.sync.ui.resources.decorators.RemotelyOpenedEditorsDecorator"
- label="Read-only Decorator"
- lightweight="true"
- state="true">
- <enablement>
- <and>
- <objectClass
- name="org.eclipse.core.resources.IResource">
- </objectClass>
- <or>
- <objectClass
- name="org.eclipse.core.resources.IFolder">
- </objectClass>
- <objectClass
- name="org.eclipse.core.resources.IFile">
- </objectClass>
- </or>
- </and>
- </enablement>
- </decorator>
- </extension>
- <extension
- point="org.eclipse.ui.editors.annotationTypes">
- <type
- name="org.eclipse.ecf.docshare2.annotations.RemoteSelection">
- </type>
- <type
- name="org.eclipse.ecf.docshare2.annotations.RemoteCursor"
- super="org.eclipse.ecf.docshare2.annotations.RemoteSelection">
- </type>
- </extension>
- <extension
- point="org.eclipse.ui.editors.markerAnnotationSpecification">
- <specification
- annotationType="org.eclipse.ecf.docshare2.annotations.RemoteSelection"
- colorPreferenceKey="remoteSelectionColor"
- colorPreferenceValue="231,223,143"
- contributesToHeader="false"
- highlightPreferenceKey="remoteSelectionHighlighting"
- highlightPreferenceValue="true"
- includeOnPreferencePage="true"
- label="%label.annotation.remote.selection"
- overviewRulerPreferenceKey="remoteSelectionIndicationInOverviewRuler"
- overviewRulerPreferenceValue="true"
- presentationLayer="5"
- textPreferenceKey="remoteSelectionTextIndication"
- textPreferenceValue="false"
- textStylePreferenceKey="remoteSelectionTextIndicationStyle"
- textStylePreferenceValue="NONE">
- </specification>
- <specification
- annotationType="org.eclipse.ecf.docshare2.annotations.RemoteCursor"
- colorPreferenceKey="remoteCursorColor"
- colorPreferenceValue="166,138,60"
- contributesToHeader="false"
- highlightPreferenceKey="remoteCursorHighlighting"
- highlightPreferenceValue="false"
- includeOnPreferencePage="true"
- label="%label.annotation.remote.cursor"
- overviewRulerPreferenceKey="remoteCursorIndicationInOverviewRuler"
- overviewRulerPreferenceValue="true"
- presentationLayer="5"
- textPreferenceKey="remoteCursorTextIndication"
- textPreferenceValue="true"
- textStylePreferenceKey="remoteCursorTextIndicationStyle"
- textStylePreferenceValue="IBEAM">
- </specification>
- </extension>
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.1"?>
+<plugin>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.ecf.ui.resourcesDefinition">
+ <iterate ifEmpty="false">
+ <adapt type="org.eclipse.core.resources.IResource"/>
+ </iterate>
+ </definition>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:org.eclipse.ui.popup.any?after=additions">
+ <dynamic
+ class="org.eclipse.ecf.sync.ui.resources.ResourcesShareMenuContributionItem"
+ id="org.eclipse.ecf.sync.ui.resources.resourcesShareMenuContributionItem">
+ <visibleWhen checkEnabled="true">
+ <with variable="activeMenuSelection">
+ <reference definitionId="org.eclipse.ecf.ui.resourcesDefinition"/>
+ </with>
+ </visibleWhen>
+ </dynamic>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.ecf.example.collab.ui.preferences"
+ class="org.eclipse.ecf.sync.ui.resources.preferences.ResourcesSynchronizationPreferencePage"
+ id="org.eclipse.ecf.sync.ui.resources.preferences.ResourcesSynchronizationPreferencePage"
+ name="Resources">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ id="org.eclipse.ecf.sync.resources.core"
+ name="Sample Category">
+ </category>
+ <view
+ category="org.eclipse.ecf.sync.resources.core"
+ class="org.eclipse.ecf.sync.resources.views.RemoteResourcesView"
+ icon="icons/sample.gif"
+ id="org.eclipse.ecf.sync.resources.core.views.RemoteResourcesView"
+ name="Shared Resources">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ecf.start">
+ <run
+ class="org.eclipse.ecf.internal.sync.ui.resources.ECFStart">
+ </run>
+ </extension>
+ <extension
+ point="org.eclipse.ui.decorators">
+ <decorator
+ adaptable="true"
+ class="org.eclipse.ecf.sync.ui.resources.decorators.RemotelyOpenedEditorsDecorator"
+ id="org.eclipse.ecf.sync.ui.resources.decorators.RemotelyOpenedEditorsDecorator"
+ label="Read-only Decorator"
+ lightweight="true"
+ state="true">
+ <enablement>
+ <and>
+ <objectClass
+ name="org.eclipse.core.resources.IResource">
+ </objectClass>
+ <or>
+ <objectClass
+ name="org.eclipse.core.resources.IFolder">
+ </objectClass>
+ <objectClass
+ name="org.eclipse.core.resources.IFile">
+ </objectClass>
+ </or>
+ </and>
+ </enablement>
+ </decorator>
+ </extension>
+ <extension
+ point="org.eclipse.ui.editors.annotationTypes">
+ <type
+ name="org.eclipse.ecf.docshare2.annotations.RemoteSelection">
+ </type>
+ <type
+ name="org.eclipse.ecf.docshare2.annotations.RemoteCursor"
+ super="org.eclipse.ecf.docshare2.annotations.RemoteSelection">
+ </type>
+ </extension>
+ <extension
+ point="org.eclipse.ui.editors.markerAnnotationSpecification">
+ <specification
+ annotationType="org.eclipse.ecf.docshare2.annotations.RemoteSelection"
+ colorPreferenceKey="remoteSelectionColor"
+ colorPreferenceValue="231,223,143"
+ contributesToHeader="false"
+ highlightPreferenceKey="remoteSelectionHighlighting"
+ highlightPreferenceValue="true"
+ includeOnPreferencePage="true"
+ label="%label.annotation.remote.selection"
+ overviewRulerPreferenceKey="remoteSelectionIndicationInOverviewRuler"
+ overviewRulerPreferenceValue="true"
+ presentationLayer="5"
+ textPreferenceKey="remoteSelectionTextIndication"
+ textPreferenceValue="false"
+ textStylePreferenceKey="remoteSelectionTextIndicationStyle"
+ textStylePreferenceValue="NONE">
+ </specification>
+ <specification
+ annotationType="org.eclipse.ecf.docshare2.annotations.RemoteCursor"
+ colorPreferenceKey="remoteCursorColor"
+ colorPreferenceValue="166,138,60"
+ contributesToHeader="false"
+ highlightPreferenceKey="remoteCursorHighlighting"
+ highlightPreferenceValue="false"
+ includeOnPreferencePage="true"
+ label="%label.annotation.remote.cursor"
+ overviewRulerPreferenceKey="remoteCursorIndicationInOverviewRuler"
+ overviewRulerPreferenceValue="true"
+ presentationLayer="5"
+ textPreferenceKey="remoteCursorTextIndication"
+ textPreferenceValue="true"
+ textStylePreferenceKey="remoteCursorTextIndicationStyle"
+ textStylePreferenceValue="IBEAM">
+ </specification>
+ </extension>
+</plugin>
diff --git a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/src/org/eclipse/ecf/internal/sync/ui/resources/SyncResourcesUI.java b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/src/org/eclipse/ecf/internal/sync/ui/resources/SyncResourcesUI.java
index eb0f00dcc..4cc055898 100644
--- a/incubation/bundles/org.eclipse.ecf.sync.resources.ui/src/org/eclipse/ecf/internal/sync/ui/resources/SyncResourcesUI.java
+++ b/incubation/bundles/org.eclipse.ecf.sync.resources.ui/src/org/eclipse/ecf/internal/sync/ui/resources/SyncResourcesUI.java
@@ -1,348 +1,348 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen 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:
- * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.sync.ui.resources;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.datashare.IChannelContainerAdapter;
-import org.eclipse.ecf.docshare2.DocShare;
-import org.eclipse.ecf.internal.sync.resources.core.ResourcesShare;
-import org.eclipse.ecf.internal.sync.resources.core.SyncResourcesCore;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IPageListener;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.statushandlers.StatusManager;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.osgi.framework.BundleContext;
-
-public class SyncResourcesUI extends AbstractUIPlugin {
-
- public static final String PLUGIN_ID = "org.eclipse.ecf.sync.ui.resources"; //$NON-NLS-1$
-
- private static SyncResourcesUI instance;
-
- private IWindowListener windowListener = new IWindowListener() {
-
- public void windowOpened(IWorkbenchWindow window) {
- window.addPageListener(pageListener);
- }
-
- public void windowDeactivated(IWorkbenchWindow window) {
- // nothing to do
- }
-
- public void windowClosed(IWorkbenchWindow window) {
- window.removePageListener(pageListener);
- }
-
- public void windowActivated(IWorkbenchWindow window) {
- // nothing to do
- }
- };
-
- private IPageListener pageListener = new IPageListener() {
-
- public void pageOpened(IWorkbenchPage page) {
- page.addPartListener(partListener);
- }
-
- public void pageClosed(IWorkbenchPage page) {
- page.removePartListener(partListener);
- }
-
- public void pageActivated(IWorkbenchPage page) {
- // nothing to do
- }
- };
-
- private IPartListener partListener = new IPartListener() {
-
- public void partOpened(IWorkbenchPart part) {
- ITextEditor editor = (ITextEditor) part
- .getAdapter(ITextEditor.class);
- if (editor != null) {
- IFile file = (IFile) editor.getEditorInput().getAdapter(
- IFile.class);
- if (file != null) {
- startSharing(editor, file);
- }
- }
- }
-
- public void partDeactivated(IWorkbenchPart part) {
- // nothing to do
- }
-
- public void partClosed(IWorkbenchPart part) {
- ITextEditor editor = (ITextEditor) part
- .getAdapter(ITextEditor.class);
- if (editor != null) {
- IFile file = (IFile) editor.getEditorInput().getAdapter(
- IFile.class);
- if (file != null) {
- stopSharing(editor, file);
- }
- }
- }
-
- public void partBroughtToTop(IWorkbenchPart part) {
- // nothing to do
- }
-
- public void partActivated(IWorkbenchPart part) {
- // nothing to do
- }
- };
-
- private Map sharedFiles = new HashMap();
-
- private Map sharedEditors = new HashMap();
-
- private boolean share(IFile file) {
- IPath path = file.getFullPath();
- Integer integer = (Integer) sharedFiles.get(path);
- if (integer == null) {
- sharedFiles.put(path, new Integer(1));
- return true;
- }
- sharedFiles.put(path, new Integer(integer.intValue() + 1));
- return false;
- }
-
- private boolean unshare(IFile file) {
- IPath path = file.getFullPath();
- Integer integer = (Integer) sharedFiles.remove(path);
- if (integer == null) {
- // if this file isn't being shared, will be null, return false
- return false;
- }
-
- if (integer.intValue() == 1) {
- return true;
- }
-
- sharedFiles.put(path, new Integer(integer.intValue() - 1));
- return false;
- }
-
- private void startSharing(ITextEditor editor, IFile file) {
- String projectName = file.getProject().getName();
- for (Iterator it = SyncResourcesCore.getResourceShares().iterator(); it
- .hasNext();) {
- ResourcesShare share = (ResourcesShare) it.next();
- if (share.isSharing(projectName) && share(file)) {
- DocShare docShare = getDocShare(share.getContainerID());
- try {
- IAnnotationModel annotationModel = editor
- .getDocumentProvider().getAnnotationModel(
- editor.getEditorInput());
- docShare.startSharing(share.getLocalID(), share
- .getReceiverID(), file.getFullPath().toString(),
- annotationModel);
- ISelectionProvider provider = editor.getSelectionProvider();
- if (provider instanceof IPostSelectionProvider) {
- ISelectionChangedListener listener = new SelectionChangedListener(
- share.getReceiverID(), file.getFullPath()
- .toString(), docShare);
- ((IPostSelectionProvider) provider)
- .addPostSelectionChangedListener(listener);
- sharedEditors.put(editor, listener);
- }
- } catch (ECFException e) {
- IStatus status = new Status(IStatus.ERROR, PLUGIN_ID,
- "Could not send initiation request to " //$NON-NLS-1$
- + share.getReceiverID(), e);
- log(status);
- StatusManager.getManager().handle(status,
- StatusManager.SHOW);
- } catch (CoreException e) {
- IStatus status = new Status(IStatus.ERROR, PLUGIN_ID,
- "Could not connect to the file buffer of " //$NON-NLS-1$
- + file.getFullPath(), e);
- log(status);
- StatusManager.getManager().handle(status,
- StatusManager.SHOW);
- }
- }
- }
- }
-
- private void stopSharing(ITextEditor editor, IFile file) {
- String projectName = file.getProject().getName();
- for (Iterator it = SyncResourcesCore.getResourceShares().iterator(); it
- .hasNext();) {
- ResourcesShare share = (ResourcesShare) it.next();
- if (share.isSharing(projectName) && unshare(file)) {
- DocShare docShare = getDocShare(share.getContainerID());
- stopSharing(docShare, share.getReceiverID(), editor, file);
- }
- }
- }
-
- private void stopSharing(DocShare share, ID id, ITextEditor editor,
- IFile file) {
- try {
- share.stopSharing(id, file.getFullPath().toString());
- } catch (ECFException e) {
- log(new Status(IStatus.ERROR, PLUGIN_ID,
- "Could not send stop message to " + id, e)); //$NON-NLS-1$
- }
-
- ISelectionChangedListener listener = (ISelectionChangedListener) sharedEditors
- .remove(editor);
- if (listener != null) {
- ISelectionProvider provider = editor.getSelectionProvider();
- if (provider instanceof IPostSelectionProvider) {
- ((IPostSelectionProvider) provider)
- .removePostSelectionChangedListener(listener);
- }
- }
- }
-
- public SyncResourcesUI() {
- instance = this;
- }
-
- public void start(BundleContext context) throws Exception {
- super.start(context);
-
- getWorkbench().addWindowListener(windowListener);
-
- IWorkbenchWindow[] workbenchWindows = getWorkbench()
- .getWorkbenchWindows();
- for (int i = 0; i < workbenchWindows.length; i++) {
- workbenchWindows[i].addPageListener(pageListener);
- IWorkbenchPage[] pages = workbenchWindows[i].getPages();
- for (int j = 0; j < pages.length; j++) {
- pages[j].addPartListener(partListener);
- }
- }
- }
-
- public static SyncResourcesUI getDefault() {
- return instance;
- }
-
- public Display getDisplay() {
- return getWorkbench().getDisplay();
- }
-
- public static void log(IStatus status) {
- instance.getLog().log(status);
- }
-
- public void stop(BundleContext context) throws Exception {
- getWorkbench().removeWindowListener(windowListener);
-
- IWorkbenchWindow[] workbenchWindows = getWorkbench()
- .getWorkbenchWindows();
- for (int i = 0; i < workbenchWindows.length; i++) {
- workbenchWindows[i].removePageListener(pageListener);
- IWorkbenchPage[] pages = workbenchWindows[i].getPages();
- for (int j = 0; j < pages.length; j++) {
- pages[j].removePartListener(partListener);
- }
- }
-
- super.stop(context);
- }
-
- private static Map docshareChannels = new HashMap();
-
- public static DocShare getDocShare(ID containerID) {
- return (DocShare) docshareChannels.get(containerID);
- }
-
- public static DocShare addDocShare(ID containerID,
- IChannelContainerAdapter channelAdapter) throws ECFException {
- DocShare docShare = (DocShare) docshareChannels.get(containerID);
- if (docShare == null) {
- return (DocShare) docshareChannels.put(containerID,
- new WorkbenchAwareDocShare(channelAdapter));
- }
- return docShare;
- }
-
- public static DocShare removeDocShare(ID containerID) {
- return (DocShare) docshareChannels.remove(containerID);
- }
-
- public static ResourcesShare getResourceShare(ID containerID) {
- return SyncResourcesCore.getResourcesShare(containerID);
- }
-
- public static ResourcesShare addResourceShare(ID containerID,
- IChannelContainerAdapter channelAdapter) throws ECFException {
- ResourcesShare resourcesShare = SyncResourcesCore
- .getResourcesShare(containerID);
- if (resourcesShare == null) {
- resourcesShare = new WorkbenchAwareResourcesShare(containerID,
- channelAdapter);
- SyncResourcesCore.addResourcesShare(containerID, resourcesShare);
- }
- return resourcesShare;
- }
-
- public static ResourcesShare removeResourceShare(ID containerID) {
- return SyncResourcesCore.removeResourcesShare(containerID);
- }
-
- private class SelectionChangedListener implements ISelectionChangedListener {
-
- private ID targetID;
- private String path;
- private DocShare share;
-
- public SelectionChangedListener(ID targetID, String path, DocShare share) {
- this.targetID = targetID;
- this.path = path;
- this.share = share;
- }
-
- public void selectionChanged(SelectionChangedEvent e) {
- ISelection selection = e.getSelection();
- if (selection instanceof ITextSelection) {
- ITextSelection textSelection = (ITextSelection) selection;
- try {
- share.sendSelection(targetID, path, textSelection
- .getOffset(), textSelection.getLength());
- } catch (ECFException exception) {
- log(new Status(IStatus.ERROR, PLUGIN_ID,
- "Could not send selection message to " + targetID, //$NON-NLS-1$
- exception));
- }
- }
- }
-
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2009 Remy Chi Jian Suen 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:
+ * Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.sync.ui.resources;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.util.ECFException;
+import org.eclipse.ecf.datashare.IChannelContainerAdapter;
+import org.eclipse.ecf.docshare2.DocShare;
+import org.eclipse.ecf.internal.sync.resources.core.ResourcesShare;
+import org.eclipse.ecf.internal.sync.resources.core.SyncResourcesCore;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.source.IAnnotationModel;
+import org.eclipse.jface.viewers.IPostSelectionProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IPageListener;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWindowListener;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.ui.statushandlers.StatusManager;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.osgi.framework.BundleContext;
+
+public class SyncResourcesUI extends AbstractUIPlugin {
+
+ public static final String PLUGIN_ID = "org.eclipse.ecf.sync.ui.resources"; //$NON-NLS-1$
+
+ private static SyncResourcesUI instance;
+
+ private IWindowListener windowListener = new IWindowListener() {
+
+ public void windowOpened(IWorkbenchWindow window) {
+ window.addPageListener(pageListener);
+ }
+
+ public void windowDeactivated(IWorkbenchWindow window) {
+ // nothing to do
+ }
+
+ public void windowClosed(IWorkbenchWindow window) {
+ window.removePageListener(pageListener);
+ }
+
+ public void windowActivated(IWorkbenchWindow window) {
+ // nothing to do
+ }
+ };
+
+ private IPageListener pageListener = new IPageListener() {
+
+ public void pageOpened(IWorkbenchPage page) {
+ page.addPartListener(partListener);
+ }
+
+ public void pageClosed(IWorkbenchPage page) {
+ page.removePartListener(partListener);
+ }
+
+ public void pageActivated(IWorkbenchPage page) {
+ // nothing to do
+ }
+ };
+
+ private IPartListener partListener = new IPartListener() {
+
+ public void partOpened(IWorkbenchPart part) {
+ ITextEditor editor = (ITextEditor) part
+ .getAdapter(ITextEditor.class);
+ if (editor != null) {
+ IFile file = (IFile) editor.getEditorInput().getAdapter(
+ IFile.class);
+ if (file != null) {
+ startSharing(editor, file);
+ }
+ }
+ }
+
+ public void partDeactivated(IWorkbenchPart part) {
+ // nothing to do
+ }
+
+ public void partClosed(IWorkbenchPart part) {
+ ITextEditor editor = (ITextEditor) part
+ .getAdapter(ITextEditor.class);
+ if (editor != null) {
+ IFile file = (IFile) editor.getEditorInput().getAdapter(
+ IFile.class);
+ if (file != null) {
+ stopSharing(editor, file);
+ }
+ }
+ }
+
+ public void partBroughtToTop(IWorkbenchPart part) {
+ // nothing to do
+ }
+
+ public void partActivated(IWorkbenchPart part) {
+ // nothing to do
+ }
+ };
+
+ private Map sharedFiles = new HashMap();
+
+ private Map sharedEditors = new HashMap();
+
+ private boolean share(IFile file) {
+ IPath path = file.getFullPath();
+ Integer integer = (Integer) sharedFiles.get(path);
+ if (integer == null) {
+ sharedFiles.put(path, new Integer(1));
+ return true;
+ }
+ sharedFiles.put(path, new Integer(integer.intValue() + 1));
+ return false;
+ }
+
+ private boolean unshare(IFile file) {
+ IPath path = file.getFullPath();
+ Integer integer = (Integer) sharedFiles.remove(path);
+ if (integer == null) {
+ // if this file isn't being shared, will be null, return false
+ return false;
+ }
+
+ if (integer.intValue() == 1) {
+ return true;
+ }
+
+ sharedFiles.put(path, new Integer(integer.intValue() - 1));
+ return false;
+ }
+
+ private void startSharing(ITextEditor editor, IFile file) {
+ String projectName = file.getProject().getName();
+ for (Iterator it = SyncResourcesCore.getResourceShares().iterator(); it
+ .hasNext();) {
+ ResourcesShare share = (ResourcesShare) it.next();
+ if (share.isSharing(projectName) && share(file)) {
+ DocShare docShare = getDocShare(share.getContainerID());
+ try {
+ IAnnotationModel annotationModel = editor
+ .getDocumentProvider().getAnnotationModel(
+ editor.getEditorInput());
+ docShare.startSharing(share.getLocalID(), share
+ .getReceiverID(), file.getFullPath().toString(),
+ annotationModel);
+ ISelectionProvider provider = editor.getSelectionProvider();
+ if (provider instanceof IPostSelectionProvider) {
+ ISelectionChangedListener listener = new SelectionChangedListener(
+ share.getReceiverID(), file.getFullPath()
+ .toString(), docShare);
+ ((IPostSelectionProvider) provider)
+ .addPostSelectionChangedListener(listener);
+ sharedEditors.put(editor, listener);
+ }
+ } catch (ECFException e) {
+ IStatus status = new Status(IStatus.ERROR, PLUGIN_ID,
+ "Could not send initiation request to " //$NON-NLS-1$
+ + share.getReceiverID(), e);
+ log(status);
+ StatusManager.getManager().handle(status,
+ StatusManager.SHOW);
+ } catch (CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, PLUGIN_ID,
+ "Could not connect to the file buffer of " //$NON-NLS-1$
+ + file.getFullPath(), e);
+ log(status);
+ StatusManager.getManager().handle(status,
+ StatusManager.SHOW);
+ }
+ }
+ }
+ }
+
+ private void stopSharing(ITextEditor editor, IFile file) {
+ String projectName = file.getProject().getName();
+ for (Iterator it = SyncResourcesCore.getResourceShares().iterator(); it
+ .hasNext();) {
+ ResourcesShare share = (ResourcesShare) it.next();
+ if (share.isSharing(projectName) && unshare(file)) {
+ DocShare docShare = getDocShare(share.getContainerID());
+ stopSharing(docShare, share.getReceiverID(), editor, file);
+ }
+ }
+ }
+
+ private void stopSharing(DocShare share, ID id, ITextEditor editor,
+ IFile file) {
+ try {
+ share.stopSharing(id, file.getFullPath().toString());
+ } catch (ECFException e) {
+ log(new Status(IStatus.ERROR, PLUGIN_ID,
+ "Could not send stop message to " + id, e)); //$NON-NLS-1$
+ }
+
+ ISelectionChangedListener listener = (ISelectionChangedListener) sharedEditors
+ .remove(editor);
+ if (listener != null) {
+ ISelectionProvider provider = editor.getSelectionProvider();
+ if (provider instanceof IPostSelectionProvider) {
+ ((IPostSelectionProvider) provider)
+ .removePostSelectionChangedListener(listener);
+ }
+ }
+ }
+
+ public SyncResourcesUI() {
+ instance = this;
+ }
+
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+
+ getWorkbench().addWindowListener(windowListener);
+
+ IWorkbenchWindow[] workbenchWindows = getWorkbench()
+ .getWorkbenchWindows();
+ for (int i = 0; i < workbenchWindows.length; i++) {
+ workbenchWindows[i].addPageListener(pageListener);
+ IWorkbenchPage[] pages = workbenchWindows[i].getPages();
+ for (int j = 0; j < pages.length; j++) {
+ pages[j].addPartListener(partListener);
+ }
+ }
+ }
+
+ public static SyncResourcesUI getDefault() {
+ return instance;
+ }
+
+ public Display getDisplay() {
+ return getWorkbench().getDisplay();
+ }
+
+ public static void log(IStatus status) {
+ instance.getLog().log(status);
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ getWorkbench().removeWindowListener(windowListener);
+
+ IWorkbenchWindow[] workbenchWindows = getWorkbench()
+ .getWorkbenchWindows();
+ for (int i = 0; i < workbenchWindows.length; i++) {
+ workbenchWindows[i].removePageListener(pageListener);
+ IWorkbenchPage[] pages = workbenchWindows[i].getPages();
+ for (int j = 0; j < pages.length; j++) {
+ pages[j].removePartListener(partListener);
+ }
+ }
+
+ super.stop(context);
+ }
+
+ private static Map docshareChannels = new HashMap();
+
+ public static DocShare getDocShare(ID containerID) {
+ return (DocShare) docshareChannels.get(containerID);
+ }
+
+ public static DocShare addDocShare(ID containerID,
+ IChannelContainerAdapter channelAdapter) throws ECFException {
+ DocShare docShare = (DocShare) docshareChannels.get(containerID);
+ if (docShare == null) {
+ return (DocShare) docshareChannels.put(containerID,
+ new WorkbenchAwareDocShare(channelAdapter));
+ }
+ return docShare;
+ }
+
+ public static DocShare removeDocShare(ID containerID) {
+ return (DocShare) docshareChannels.remove(containerID);
+ }
+
+ public static ResourcesShare getResourceShare(ID containerID) {
+ return SyncResourcesCore.getResourcesShare(containerID);
+ }
+
+ public static ResourcesShare addResourceShare(ID containerID,
+ IChannelContainerAdapter channelAdapter) throws ECFException {
+ ResourcesShare resourcesShare = SyncResourcesCore
+ .getResourcesShare(containerID);
+ if (resourcesShare == null) {
+ resourcesShare = new WorkbenchAwareResourcesShare(containerID,
+ channelAdapter);
+ SyncResourcesCore.addResourcesShare(containerID, resourcesShare);
+ }
+ return resourcesShare;
+ }
+
+ public static ResourcesShare removeResourceShare(ID containerID) {
+ return SyncResourcesCore.removeResourcesShare(containerID);
+ }
+
+ private class SelectionChangedListener implements ISelectionChangedListener {
+
+ private ID targetID;
+ private String path;
+ private DocShare share;
+
+ public SelectionChangedListener(ID targetID, String path, DocShare share) {
+ this.targetID = targetID;
+ this.path = path;
+ this.share = share;
+ }
+
+ public void selectionChanged(SelectionChangedEvent e) {
+ ISelection selection = e.getSelection();
+ if (selection instanceof ITextSelection) {
+ ITextSelection textSelection = (ITextSelection) selection;
+ try {
+ share.sendSelection(targetID, path, textSelection
+ .getOffset(), textSelection.getLength());
+ } catch (ECFException exception) {
+ log(new Status(IStatus.ERROR, PLUGIN_ID,
+ "Could not send selection message to " + targetID, //$NON-NLS-1$
+ exception));
+ }
+ }
+ }
+
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.classpath b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.classpath
index f6e5811e4..c83506765 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.classpath
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.classpath
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.project b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.project
index c508f9ae9..499f1bb7c 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.project
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.jdt.core.prefs b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.jdt.core.prefs
index 0a3730586..b8e194db8 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.jdt.core.prefs
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
-#Tue Feb 22 13:16:41 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+#Tue Feb 22 13:16:41 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.pde.core.prefs b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.pde.core.prefs
index d3f70c84f..d20265bc3 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.pde.core.prefs
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/.settings/org.eclipse.pde.core.prefs
@@ -1,4 +1,4 @@
-#Tue Feb 22 13:16:42 PST 2011
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+#Tue Feb 22 13:16:42 PST 2011
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/build.properties b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/build.properties
index d5066ef40..168c01130 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/build.properties
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy/build.properties
@@ -1,4 +1,4 @@
-bin.includes = META-INF/,\
- .,\
- about.html
-src.includes = about.html
+bin.includes = META-INF/,\
+ .,\
+ about.html
+src.includes = about.html
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.options b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.options
index bdefc29d5..cc9b2e0bc 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.options
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.options
@@ -1,31 +1,31 @@
-# Debugging options for the org.eclipse.ecf.osgi.services.remoteserviceadmin plug-in
-
-# Turn on general debugging for the org.eclipse.ecf.osgi.services.remoteservicesadmin plug-in
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug=true
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/filter = *
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/flag = true
-
-# Trace when exceptions are caught
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/catching=true
-# Trace when exceptions are thrown
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/throwing=true
-
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/remoteserviceadmin=true
-
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/topologymanager=true
-
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/containerselector=true
-
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/metadatafactory=true
-
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionadvertiser=true
-
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionlocator=true
-
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionreader=true
-
-org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/packageversioncomparator=true
-
-
-
-
+# Debugging options for the org.eclipse.ecf.osgi.services.remoteserviceadmin plug-in
+
+# Turn on general debugging for the org.eclipse.ecf.osgi.services.remoteservicesadmin plug-in
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug=true
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/filter = *
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/flag = true
+
+# Trace when exceptions are caught
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/catching=true
+# Trace when exceptions are thrown
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/throwing=true
+
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/remoteserviceadmin=true
+
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/topologymanager=true
+
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/containerselector=true
+
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/metadatafactory=true
+
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionadvertiser=true
+
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionlocator=true
+
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionreader=true
+
+org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/packageversioncomparator=true
+
+
+
+
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
index 77378cc17..e5a63ed17 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
@@ -1,81 +1,81 @@
-#Fri May 13 11:36:47 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+#Fri May 13 11:36:47 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs
index 74f70445a..0ce2bfbcb 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs
@@ -1,4 +1,4 @@
-#Sat Jan 22 17:00:17 PST 2011
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+#Sat Jan 22 17:00:17 PST 2011
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs
index 52e6c3604..f09e41dff 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs
@@ -1,33 +1,33 @@
-#Sat Jan 22 17:43:00 PST 2011
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
+#Sat Jan 22 17:43:00 PST 2011
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=1
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/Activator.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/Activator.java
index 179a771fc..8a6a40e47 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/Activator.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/Activator.java
@@ -1,324 +1,324 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
-
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.UUID;
-
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ecf.core.IContainerManager;
-import org.eclipse.ecf.core.util.LogHelper;
-import org.eclipse.ecf.core.util.SystemLogService;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionAdvertiser;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionLocator;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionAdvertiser;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceFactory;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.framework.Version;
-import org.osgi.service.log.LogService;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class Activator implements BundleActivator {
-
- public static final String PLUGIN_ID = "org.eclipse.ecf.osgi.services.remoteserviceadmin"; //$NON-NLS-1$
-
- private static BundleContext context;
- private static Activator instance;
-
- public static BundleContext getContext() {
- return context;
- }
-
- public static Activator getDefault() {
- return instance;
- }
-
- private ServiceRegistration remoteServiceAdminRegistration;
-
- private EndpointDescriptionLocator endpointDescriptionLocator;
- private EndpointDescriptionAdvertiser endpointDescriptionAdvertiser;
- private ServiceRegistration endpointDescriptionAdvertiserRegistration;
-
- private ServiceTracker containerManagerTracker;
- // Logging
- private ServiceTracker logServiceTracker = null;
- private LogService logService = null;
- private Object logServiceTrackerLock = new Object();
- // Sax parser
- private Object saxParserFactoryTrackerLock = new Object();
- private ServiceTracker saxParserFactoryTracker;
-
- private static final String RSA_PROXY_BUNDLE_SYMBOLIC_ID = "org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"; //$NON-NLS-1$
-
- private BundleContext proxyServiceFactoryBundleContext;
-
- private void initializeProxyServiceFactoryBundle() throws Exception {
- // First, find proxy bundle
- for (Bundle b : context.getBundles()) {
- if (RSA_PROXY_BUNDLE_SYMBOLIC_ID.equals(b.getSymbolicName())) {
- // first start it
- b.start();
- // then get its bundle context
- proxyServiceFactoryBundleContext = b.getBundleContext();
- }
- }
- if (proxyServiceFactoryBundleContext == null)
- throw new IllegalStateException("RSA Proxy bundle (symbolic id=='" //$NON-NLS-1$
- + RSA_PROXY_BUNDLE_SYMBOLIC_ID
- + "') cannot be found, so RSA cannot be started"); //$NON-NLS-1$
- }
-
- private void stopProxyServiceFactoryBundle() {
- if (proxyServiceFactoryBundleContext != null) {
- // stop it
- try {
- proxyServiceFactoryBundleContext.getBundle().stop();
- } catch (Exception e) {
- // we don't care
- }
- proxyServiceFactoryBundleContext = null;
- }
- }
-
- public BundleContext getProxyServiceFactoryBundleContext() {
- return proxyServiceFactoryBundleContext;
- }
-
- private Map<Bundle, RemoteServiceAdmin> remoteServiceAdmins = new HashMap<Bundle, RemoteServiceAdmin>(
- 1);
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
- * )
- */
- public void start(BundleContext bundleContext) throws Exception {
- Activator.context = bundleContext;
- Activator.instance = this;
- // initialize the RSA proxy service factory bundle...so that we
- // can get/use *that bundle's BundleContext for registering the
- // proxy ServiceFactory.
- // See osgi-dev thread here for info about this
- // approach/using the ServiceFactory extender approach for this purpose:
- // https://mail.osgi.org/pipermail/osgi-dev/2011-February/003000.html
- initializeProxyServiceFactoryBundle();
-
- // make remote service admin available
- Properties rsaProps = new Properties();
- rsaProps.put(RemoteServiceAdmin.SERVICE_PROP, new Boolean(true));
- remoteServiceAdminRegistration = context.registerService(
- org.osgi.service.remoteserviceadmin.RemoteServiceAdmin.class
- .getName(), new ServiceFactory() {
- public Object getService(Bundle bundle,
- ServiceRegistration registration) {
- RemoteServiceAdmin result = null;
- synchronized (remoteServiceAdmins) {
- RemoteServiceAdmin rsa = remoteServiceAdmins
- .get(bundle);
- if (rsa == null) {
- rsa = new RemoteServiceAdmin(bundle);
- remoteServiceAdmins.put(bundle, rsa);
- }
- result = rsa;
- }
- return result;
- }
-
- public void ungetService(Bundle bundle,
- ServiceRegistration registration, Object service) {
- synchronized (remoteServiceAdmins) {
- RemoteServiceAdmin rsa = remoteServiceAdmins
- .remove(bundle);
- if (rsa != null)
- rsa.close();
- }
- }
- }, (Dictionary) rsaProps);
-
- // create endpoint description locator
- endpointDescriptionLocator = new EndpointDescriptionLocator(context);
- // create and register endpoint description advertiser
- final Properties properties = new Properties();
- properties.put(Constants.SERVICE_RANKING,
- new Integer(Integer.MIN_VALUE));
- endpointDescriptionAdvertiser = new EndpointDescriptionAdvertiser(
- endpointDescriptionLocator);
- endpointDescriptionAdvertiserRegistration = getContext()
- .registerService(
- IEndpointDescriptionAdvertiser.class.getName(),
- endpointDescriptionAdvertiser, (Dictionary) properties);
-
- // start endpointDescriptionLocator
- endpointDescriptionLocator.start();
- }
-
- private void clearRSAs() {
- synchronized (remoteServiceAdmins) {
- for (Iterator<Entry<Bundle, RemoteServiceAdmin>> i = remoteServiceAdmins
- .entrySet().iterator(); i.hasNext();) {
- Entry<Bundle, RemoteServiceAdmin> entry = i.next();
- RemoteServiceAdmin rsa = entry.getValue();
- rsa.close();
- i.remove();
- }
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext bundleContext) throws Exception {
- if (endpointDescriptionLocator != null) {
- endpointDescriptionLocator.close();
- endpointDescriptionLocator = null;
- }
- if (remoteServiceAdminRegistration != null) {
- remoteServiceAdminRegistration.unregister();
- remoteServiceAdminRegistration = null;
- }
- clearRSAs();
- if (endpointDescriptionAdvertiserRegistration != null) {
- endpointDescriptionAdvertiserRegistration.unregister();
- endpointDescriptionAdvertiserRegistration = null;
- }
- if (endpointDescriptionAdvertiser != null) {
- endpointDescriptionAdvertiser.close();
- endpointDescriptionAdvertiser = null;
- }
- synchronized (saxParserFactoryTrackerLock) {
- if (saxParserFactoryTracker != null) {
- saxParserFactoryTracker.close();
- saxParserFactoryTracker = null;
- }
- }
- synchronized (logServiceTrackerLock) {
- if (logServiceTracker != null) {
- logServiceTracker.close();
- logServiceTracker = null;
- logService = null;
- }
- }
- if (containerManagerTracker != null) {
- containerManagerTracker.close();
- containerManagerTracker = null;
- }
- stopProxyServiceFactoryBundle();
- Activator.context = null;
- Activator.instance = null;
- }
-
- public boolean isOldEquinox() {
- if (context == null)
- return false;
- Bundle systemBundle = context.getBundle(0);
- String systemBSN = systemBundle.getSymbolicName();
- if ("org.eclipse.osgi".equals(systemBSN)) { //$NON-NLS-1$
- Version fixedVersion = new Version("3.7.0"); //$NON-NLS-1$
- // running on equinox; check the version
- Version systemVersion = systemBundle.getVersion();
- if (systemVersion.compareTo(fixedVersion) < 0)
- return true;
- }
- return false;
- }
-
- public String getFrameworkUUID() {
- if (context == null)
- return null;
- // code get and set the framework uuid property as specified in
- // r2.enterprise.pdf pg 297
- synchronized ("org.osgi.framework.uuid") { //$NON-NLS-1$
- String result = context.getProperty("org.osgi.framework.uuid"); //$NON-NLS-1$
- if (result == null) {
- UUID newUUID = UUID.randomUUID();
- result = newUUID.toString();
- System.setProperty("org.osgi.framework.uuid", //$NON-NLS-1$
- newUUID.toString());
- }
- return result;
- }
- }
-
- public SAXParserFactory getSAXParserFactory() {
- if (instance == null)
- return null;
- synchronized (saxParserFactoryTrackerLock) {
- if (saxParserFactoryTracker == null) {
- saxParserFactoryTracker = new ServiceTracker(context,
- SAXParserFactory.class.getName(), null);
- saxParserFactoryTracker.open();
- }
- return (SAXParserFactory) saxParserFactoryTracker.getService();
- }
- }
-
- public LogService getLogService() {
- if (context == null)
- return null;
- synchronized (logServiceTrackerLock) {
- if (logServiceTracker == null) {
- logServiceTracker = new ServiceTracker(context,
- LogService.class.getName(), null);
- logServiceTracker.open();
- }
- logService = (LogService) logServiceTracker.getService();
- if (logService == null)
- logService = new SystemLogService(PLUGIN_ID);
- return logService;
- }
- }
-
- public void log(IStatus status) {
- if (logService == null)
- logService = getLogService();
- if (logService != null)
- logService.log(null, LogHelper.getLogCode(status),
- LogHelper.getLogMessage(status), status.getException());
- }
-
- public void log(ServiceReference sr, IStatus status) {
- log(sr, LogHelper.getLogCode(status), LogHelper.getLogMessage(status),
- status.getException());
- }
-
- public void log(ServiceReference sr, int level, String message, Throwable t) {
- if (logService == null)
- logService = getLogService();
- if (logService != null)
- logService.log(sr, level, message, t);
- }
-
- public IContainerManager getContainerManager() {
- if (containerManagerTracker == null) {
- containerManagerTracker = new ServiceTracker(context,
- IContainerManager.class.getName(), null);
- containerManagerTracker.open();
- }
- return (IContainerManager) containerManagerTracker.getService();
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
+
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Properties;
+import java.util.UUID;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.ecf.core.IContainerManager;
+import org.eclipse.ecf.core.util.LogHelper;
+import org.eclipse.ecf.core.util.SystemLogService;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionAdvertiser;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionLocator;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionAdvertiser;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.framework.Version;
+import org.osgi.service.log.LogService;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator implements BundleActivator {
+
+ public static final String PLUGIN_ID = "org.eclipse.ecf.osgi.services.remoteserviceadmin"; //$NON-NLS-1$
+
+ private static BundleContext context;
+ private static Activator instance;
+
+ public static BundleContext getContext() {
+ return context;
+ }
+
+ public static Activator getDefault() {
+ return instance;
+ }
+
+ private ServiceRegistration remoteServiceAdminRegistration;
+
+ private EndpointDescriptionLocator endpointDescriptionLocator;
+ private EndpointDescriptionAdvertiser endpointDescriptionAdvertiser;
+ private ServiceRegistration endpointDescriptionAdvertiserRegistration;
+
+ private ServiceTracker containerManagerTracker;
+ // Logging
+ private ServiceTracker logServiceTracker = null;
+ private LogService logService = null;
+ private Object logServiceTrackerLock = new Object();
+ // Sax parser
+ private Object saxParserFactoryTrackerLock = new Object();
+ private ServiceTracker saxParserFactoryTracker;
+
+ private static final String RSA_PROXY_BUNDLE_SYMBOLIC_ID = "org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"; //$NON-NLS-1$
+
+ private BundleContext proxyServiceFactoryBundleContext;
+
+ private void initializeProxyServiceFactoryBundle() throws Exception {
+ // First, find proxy bundle
+ for (Bundle b : context.getBundles()) {
+ if (RSA_PROXY_BUNDLE_SYMBOLIC_ID.equals(b.getSymbolicName())) {
+ // first start it
+ b.start();
+ // then get its bundle context
+ proxyServiceFactoryBundleContext = b.getBundleContext();
+ }
+ }
+ if (proxyServiceFactoryBundleContext == null)
+ throw new IllegalStateException("RSA Proxy bundle (symbolic id=='" //$NON-NLS-1$
+ + RSA_PROXY_BUNDLE_SYMBOLIC_ID
+ + "') cannot be found, so RSA cannot be started"); //$NON-NLS-1$
+ }
+
+ private void stopProxyServiceFactoryBundle() {
+ if (proxyServiceFactoryBundleContext != null) {
+ // stop it
+ try {
+ proxyServiceFactoryBundleContext.getBundle().stop();
+ } catch (Exception e) {
+ // we don't care
+ }
+ proxyServiceFactoryBundleContext = null;
+ }
+ }
+
+ public BundleContext getProxyServiceFactoryBundleContext() {
+ return proxyServiceFactoryBundleContext;
+ }
+
+ private Map<Bundle, RemoteServiceAdmin> remoteServiceAdmins = new HashMap<Bundle, RemoteServiceAdmin>(
+ 1);
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
+ * )
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ Activator.instance = this;
+ // initialize the RSA proxy service factory bundle...so that we
+ // can get/use *that bundle's BundleContext for registering the
+ // proxy ServiceFactory.
+ // See osgi-dev thread here for info about this
+ // approach/using the ServiceFactory extender approach for this purpose:
+ // https://mail.osgi.org/pipermail/osgi-dev/2011-February/003000.html
+ initializeProxyServiceFactoryBundle();
+
+ // make remote service admin available
+ Properties rsaProps = new Properties();
+ rsaProps.put(RemoteServiceAdmin.SERVICE_PROP, new Boolean(true));
+ remoteServiceAdminRegistration = context.registerService(
+ org.osgi.service.remoteserviceadmin.RemoteServiceAdmin.class
+ .getName(), new ServiceFactory() {
+ public Object getService(Bundle bundle,
+ ServiceRegistration registration) {
+ RemoteServiceAdmin result = null;
+ synchronized (remoteServiceAdmins) {
+ RemoteServiceAdmin rsa = remoteServiceAdmins
+ .get(bundle);
+ if (rsa == null) {
+ rsa = new RemoteServiceAdmin(bundle);
+ remoteServiceAdmins.put(bundle, rsa);
+ }
+ result = rsa;
+ }
+ return result;
+ }
+
+ public void ungetService(Bundle bundle,
+ ServiceRegistration registration, Object service) {
+ synchronized (remoteServiceAdmins) {
+ RemoteServiceAdmin rsa = remoteServiceAdmins
+ .remove(bundle);
+ if (rsa != null)
+ rsa.close();
+ }
+ }
+ }, (Dictionary) rsaProps);
+
+ // create endpoint description locator
+ endpointDescriptionLocator = new EndpointDescriptionLocator(context);
+ // create and register endpoint description advertiser
+ final Properties properties = new Properties();
+ properties.put(Constants.SERVICE_RANKING,
+ new Integer(Integer.MIN_VALUE));
+ endpointDescriptionAdvertiser = new EndpointDescriptionAdvertiser(
+ endpointDescriptionLocator);
+ endpointDescriptionAdvertiserRegistration = getContext()
+ .registerService(
+ IEndpointDescriptionAdvertiser.class.getName(),
+ endpointDescriptionAdvertiser, (Dictionary) properties);
+
+ // start endpointDescriptionLocator
+ endpointDescriptionLocator.start();
+ }
+
+ private void clearRSAs() {
+ synchronized (remoteServiceAdmins) {
+ for (Iterator<Entry<Bundle, RemoteServiceAdmin>> i = remoteServiceAdmins
+ .entrySet().iterator(); i.hasNext();) {
+ Entry<Bundle, RemoteServiceAdmin> entry = i.next();
+ RemoteServiceAdmin rsa = entry.getValue();
+ rsa.close();
+ i.remove();
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ if (endpointDescriptionLocator != null) {
+ endpointDescriptionLocator.close();
+ endpointDescriptionLocator = null;
+ }
+ if (remoteServiceAdminRegistration != null) {
+ remoteServiceAdminRegistration.unregister();
+ remoteServiceAdminRegistration = null;
+ }
+ clearRSAs();
+ if (endpointDescriptionAdvertiserRegistration != null) {
+ endpointDescriptionAdvertiserRegistration.unregister();
+ endpointDescriptionAdvertiserRegistration = null;
+ }
+ if (endpointDescriptionAdvertiser != null) {
+ endpointDescriptionAdvertiser.close();
+ endpointDescriptionAdvertiser = null;
+ }
+ synchronized (saxParserFactoryTrackerLock) {
+ if (saxParserFactoryTracker != null) {
+ saxParserFactoryTracker.close();
+ saxParserFactoryTracker = null;
+ }
+ }
+ synchronized (logServiceTrackerLock) {
+ if (logServiceTracker != null) {
+ logServiceTracker.close();
+ logServiceTracker = null;
+ logService = null;
+ }
+ }
+ if (containerManagerTracker != null) {
+ containerManagerTracker.close();
+ containerManagerTracker = null;
+ }
+ stopProxyServiceFactoryBundle();
+ Activator.context = null;
+ Activator.instance = null;
+ }
+
+ public boolean isOldEquinox() {
+ if (context == null)
+ return false;
+ Bundle systemBundle = context.getBundle(0);
+ String systemBSN = systemBundle.getSymbolicName();
+ if ("org.eclipse.osgi".equals(systemBSN)) { //$NON-NLS-1$
+ Version fixedVersion = new Version("3.7.0"); //$NON-NLS-1$
+ // running on equinox; check the version
+ Version systemVersion = systemBundle.getVersion();
+ if (systemVersion.compareTo(fixedVersion) < 0)
+ return true;
+ }
+ return false;
+ }
+
+ public String getFrameworkUUID() {
+ if (context == null)
+ return null;
+ // code get and set the framework uuid property as specified in
+ // r2.enterprise.pdf pg 297
+ synchronized ("org.osgi.framework.uuid") { //$NON-NLS-1$
+ String result = context.getProperty("org.osgi.framework.uuid"); //$NON-NLS-1$
+ if (result == null) {
+ UUID newUUID = UUID.randomUUID();
+ result = newUUID.toString();
+ System.setProperty("org.osgi.framework.uuid", //$NON-NLS-1$
+ newUUID.toString());
+ }
+ return result;
+ }
+ }
+
+ public SAXParserFactory getSAXParserFactory() {
+ if (instance == null)
+ return null;
+ synchronized (saxParserFactoryTrackerLock) {
+ if (saxParserFactoryTracker == null) {
+ saxParserFactoryTracker = new ServiceTracker(context,
+ SAXParserFactory.class.getName(), null);
+ saxParserFactoryTracker.open();
+ }
+ return (SAXParserFactory) saxParserFactoryTracker.getService();
+ }
+ }
+
+ public LogService getLogService() {
+ if (context == null)
+ return null;
+ synchronized (logServiceTrackerLock) {
+ if (logServiceTracker == null) {
+ logServiceTracker = new ServiceTracker(context,
+ LogService.class.getName(), null);
+ logServiceTracker.open();
+ }
+ logService = (LogService) logServiceTracker.getService();
+ if (logService == null)
+ logService = new SystemLogService(PLUGIN_ID);
+ return logService;
+ }
+ }
+
+ public void log(IStatus status) {
+ if (logService == null)
+ logService = getLogService();
+ if (logService != null)
+ logService.log(null, LogHelper.getLogCode(status),
+ LogHelper.getLogMessage(status), status.getException());
+ }
+
+ public void log(ServiceReference sr, IStatus status) {
+ log(sr, LogHelper.getLogCode(status), LogHelper.getLogMessage(status),
+ status.getException());
+ }
+
+ public void log(ServiceReference sr, int level, String message, Throwable t) {
+ if (logService == null)
+ logService = getLogService();
+ if (logService != null)
+ logService.log(sr, level, message, t);
+ }
+
+ public IContainerManager getContainerManager() {
+ if (containerManagerTracker == null) {
+ containerManagerTracker = new ServiceTracker(context,
+ IContainerManager.class.getName(), null);
+ containerManagerTracker.open();
+ }
+ return (IContainerManager) containerManagerTracker.getService();
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/DebugOptions.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/DebugOptions.java
index c591fde5f..dbd9d461d 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/DebugOptions.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/DebugOptions.java
@@ -1,48 +1,48 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
-
-public interface DebugOptions {
-
- public static final String DEBUG = Activator.PLUGIN_ID + "/debug"; //$NON-NLS-1$
-
- public static final String EXCEPTIONS_CATCHING = DEBUG
- + "/exceptions/catching"; //$NON-NLS-1$
-
- public static final String EXCEPTIONS_THROWING = DEBUG
- + "/exceptions/throwing"; //$NON-NLS-1$
-
- public static final String METHODS_ENTERING = DEBUG + "/methods/entering"; //$NON-NLS-1$
-
- public static final String METHODS_EXITING = DEBUG + "/methods/exiting"; //$NON-NLS-1$
-
- public static final String REMOTE_SERVICE_ADMIN = DEBUG
- + "/remoteserviceadmin"; //$NON-NLS-1$
-
- public static final String TOPOLOGY_MANAGER = DEBUG + "/topologymanager"; //$NON-NLS-1$
-
- public static final String CONTAINER_SELECTOR = DEBUG
- + "/containerselector"; //$NON-NLS-1$
-
- public static final String METADATA_FACTORY = DEBUG + "/metadatafactory"; //$NON-NLS-1$
-
- public static final String ENDPOINT_DESCRIPTION_ADVERTISER = DEBUG
- + "/endpointdescriptionadvertiser"; //$NON-NLS-1$
-
- public static final String ENDPOINT_DESCRIPTION_LOCATOR = DEBUG
- + "/endpointdescriptionlocator"; //$NON-NLS-1$
-
- public static final String ENDPOINT_DESCRIPTION_READER = DEBUG
- + "/endpointdescriptionreader"; //$NON-NLS-1$
-
- public static final String PACKAGE_VERSION_COMPARATOR = DEBUG
- + "/packageversioncomparator"; //$NON-NLS-1$
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
+
+public interface DebugOptions {
+
+ public static final String DEBUG = Activator.PLUGIN_ID + "/debug"; //$NON-NLS-1$
+
+ public static final String EXCEPTIONS_CATCHING = DEBUG
+ + "/exceptions/catching"; //$NON-NLS-1$
+
+ public static final String EXCEPTIONS_THROWING = DEBUG
+ + "/exceptions/throwing"; //$NON-NLS-1$
+
+ public static final String METHODS_ENTERING = DEBUG + "/methods/entering"; //$NON-NLS-1$
+
+ public static final String METHODS_EXITING = DEBUG + "/methods/exiting"; //$NON-NLS-1$
+
+ public static final String REMOTE_SERVICE_ADMIN = DEBUG
+ + "/remoteserviceadmin"; //$NON-NLS-1$
+
+ public static final String TOPOLOGY_MANAGER = DEBUG + "/topologymanager"; //$NON-NLS-1$
+
+ public static final String CONTAINER_SELECTOR = DEBUG
+ + "/containerselector"; //$NON-NLS-1$
+
+ public static final String METADATA_FACTORY = DEBUG + "/metadatafactory"; //$NON-NLS-1$
+
+ public static final String ENDPOINT_DESCRIPTION_ADVERTISER = DEBUG
+ + "/endpointdescriptionadvertiser"; //$NON-NLS-1$
+
+ public static final String ENDPOINT_DESCRIPTION_LOCATOR = DEBUG
+ + "/endpointdescriptionlocator"; //$NON-NLS-1$
+
+ public static final String ENDPOINT_DESCRIPTION_READER = DEBUG
+ + "/endpointdescriptionreader"; //$NON-NLS-1$
+
+ public static final String PACKAGE_VERSION_COMPARATOR = DEBUG
+ + "/packageversioncomparator"; //$NON-NLS-1$
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/EndpointDescriptionParser.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/EndpointDescriptionParser.java
index 2221298c8..ecbdf226d 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/EndpointDescriptionParser.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/EndpointDescriptionParser.java
@@ -1,758 +1,758 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-
-public class EndpointDescriptionParser {
-
- private static List<String> multiValueTypes;
-
- static {
- multiValueTypes = Arrays.asList(new String[] { "String", "Long", //$NON-NLS-1$ //$NON-NLS-2$
- "long", "Double", "double", "float", "Float", "int", "Integer", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
- "byte", "Byte", "char", "Character", "boolean", "Boolean", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- "short", "Short" }); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- private static final String ENDPOINT_DESCRIPTIONS = "endpoint-descriptions"; //$NON-NLS-1$
- private static final String ENDPOINT_DESCRIPTION = "endpoint-description"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY = "property"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_NAME = "name"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_VALUE = "value"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_VALUETYPE = "value-type"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_ARRAY = "array"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_LIST = "list"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_SET = "set"; //$NON-NLS-1$
- private static final String ENDPOINT_PROPERTY_XML = "xml"; //$NON-NLS-1$
-
- public static String[] noAttributes = new String[0];
-
- private XMLReader xmlReader;
-
- class IgnoringHandler extends AbstractHandler {
- public IgnoringHandler(AbstractHandler parent) {
- super(parent);
- this.elementHandled = "IgnoringAll"; //$NON-NLS-1$
- }
-
- public void startElement(String name, Attributes attributes) {
- noSubElements(name, attributes);
- }
- }
-
- /**
- * Abstract base class for content handlers
- */
- abstract class AbstractHandler extends DefaultHandler {
-
- protected ContentHandler parentHandler = null;
- protected String elementHandled = null;
-
- protected StringBuffer characters = null; // character data inside an
- // element
-
- public AbstractHandler() {
- // Empty constructor for a root handler
- }
-
- public AbstractHandler(ContentHandler parentHandler) {
- this.parentHandler = parentHandler;
- xmlReader.setContentHandler(this);
- }
-
- public AbstractHandler(ContentHandler parentHandler,
- String elementHandled) {
- this.parentHandler = parentHandler;
- xmlReader.setContentHandler(this);
- this.elementHandled = elementHandled;
- }
-
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- finishCharacters();
- String name = makeSimpleName(localName, qName);
- startElement(name, attributes);
- }
-
- public abstract void startElement(String name, Attributes attributes)
- throws SAXException;
-
- public void invalidElement(String name, Attributes attributes) {
- unexpectedElement(this, name, attributes);
- new IgnoringHandler(this);
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- finishCharacters();
- finished();
- // Restore the parent content handler
- xmlReader.setContentHandler(parentHandler);
- }
-
- /**
- * An implementation for startElement when there are no sub-elements
- */
- protected void noSubElements(String name, Attributes attributes) {
- unexpectedElement(this, name, attributes);
- // Create a new handler to ignore subsequent nested elements
- new IgnoringHandler(this);
- }
-
- /*
- * Save up character data until endElement or nested startElement
- *
- * @see org.xml.sax.ContentHandler#characters
- */
- public void characters(char[] chars, int start, int length) {
- if (this.characters == null) {
- this.characters = new StringBuffer();
- }
- this.characters.append(chars, start, length);
- }
-
- // Consume the characters accumulated in this.characters.
- // Called before startElement or endElement
- private String finishCharacters() {
- // common case -- no characters or only whitespace
- if (this.characters == null || this.characters.length() == 0) {
- return null;
- }
- if (allWhiteSpace(this.characters)) {
- this.characters.setLength(0);
- return null;
- }
-
- // process the characters
- try {
- String trimmedChars = this.characters.toString().trim();
- if (trimmedChars.length() == 0) {
- // this shouldn't happen due to the test for allWhiteSpace
- // above
- System.err.println("Unexpected non-whitespace characters: " //$NON-NLS-1$
- + trimmedChars);
- return null;
- }
- processCharacters(trimmedChars);
- return trimmedChars;
- } finally {
- this.characters.setLength(0);
- }
- }
-
- // Method to override in the handler of an element with CDATA.
- protected void processCharacters(String data) {
- if (data.length() > 0)
- unexpectedCharacterData(this, data);
- }
-
- private boolean allWhiteSpace(StringBuffer sb) {
- int length = sb.length();
- for (int i = 0; i < length; i += 1)
- if (!Character.isWhitespace(sb.charAt(i)))
- return false;
- return true;
- }
-
- /**
- * Called when this element and all elements nested into it have been
- * handled.
- */
- protected void finished() {
- // Do nothing by default
- }
-
- /*
- * A name used to identify the handler.
- */
- public String getName() {
- return (elementHandled != null ? elementHandled : "NoName"); //$NON-NLS-1$
- }
-
- /**
- * Parse the attributes of an element with only required attributes.
- */
- protected String[] parseRequiredAttributes(Attributes attributes,
- String[] required) {
- return parseAttributes(attributes, required, noAttributes);
- }
-
- /**
- * Parse the attributes of an element with a single optional attribute.
- */
- protected String parseOptionalAttribute(Attributes attributes,
- String name) {
- return parseAttributes(attributes, noAttributes,
- new String[] { name })[0];
- }
-
- /**
- * Parse the attributes of an element, given the list of required and
- * optional ones. Return values in same order, null for those not
- * present. Log warnings for extra attributes or missing required
- * attributes.
- */
- protected String[] parseAttributes(Attributes attributes,
- String[] required, String[] optional) {
- String[] result = new String[required.length + optional.length];
- for (int i = 0; i < attributes.getLength(); i += 1) {
- String name = attributes.getLocalName(i);
- String value = attributes.getValue(i).trim();
- int j;
- if ((j = indexOf(required, name)) >= 0)
- result[j] = value;
- else if ((j = indexOf(optional, name)) >= 0)
- result[required.length + j] = value;
- else
- unexpectedAttribute(elementHandled, name, value);
- }
- for (int i = 0; i < required.length; i += 1)
- checkRequiredAttribute(elementHandled, required[i], result[i]);
- return result;
- }
-
- }
-
- SAXParser getParser() throws ParserConfigurationException, SAXException {
- Activator a = Activator.getDefault();
- if (a == null)
- return null;
-
- SAXParserFactory factory = a.getSAXParserFactory();
- if (factory == null)
- throw new SAXException("Unable to acquire sax parser"); //$NON-NLS-1$
- factory.setNamespaceAware(true);
- factory.setValidating(false);
- try {
- factory.setFeature(
- "http://xml.org/sax/features/string-interning", true); //$NON-NLS-1$
- } catch (SAXException se) {
- // some parsers may not support string interning
- }
- SAXParser theParser = factory.newSAXParser();
- if (theParser == null) {
- throw new SAXException("Unable to create sax parser"); //$NON-NLS-1$
- }
- xmlReader = theParser.getXMLReader();
- return theParser;
- }
-
- abstract class RootHandler extends AbstractHandler {
-
- public RootHandler() {
- super();
- }
-
- public void initialize(DocHandler document, String rootName,
- Attributes attributes) {
- this.parentHandler = document;
- this.elementHandled = rootName;
- handleRootAttributes(attributes);
- }
-
- protected abstract void handleRootAttributes(Attributes attributes);
-
- }
-
- class DocHandler extends AbstractHandler {
-
- RootHandler rootHandler;
-
- public DocHandler(String rootName, RootHandler rootHandler) {
- super(null, rootName);
- this.rootHandler = rootHandler;
- }
-
- public void startElement(String name, Attributes attributes) {
- if (name.equals(elementHandled)) {
- rootHandler.initialize(this, name, attributes);
- xmlReader.setContentHandler(rootHandler);
- } else
- noSubElements(name, attributes);
- }
-
- }
-
- class EndpointDescriptionDocHandler extends DocHandler {
-
- public EndpointDescriptionDocHandler(String rootName,
- RootHandler rootHandler) {
- super(rootName, rootHandler);
- }
-
- public void processingInstruction(String target, String data)
- throws SAXException {
- // do nothing
- }
- }
-
- class EndpointDescriptionsHandler extends RootHandler {
-
- private List<EndpointDescription> endpointDescriptions = new ArrayList<EndpointDescription>();
-
- protected void handleRootAttributes(Attributes attributes) {
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- if (ENDPOINT_DESCRIPTION.equals(name))
- new EndpointDescriptionHandler(this, attributes,
- endpointDescriptions);
- else
- invalidElement(name, attributes);
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (elementHandled.equals(localName))
- super.endElement(namespaceURI, localName, qName);
- }
-
- public List<EndpointDescription> getEndpointDescriptions() {
- return endpointDescriptions;
- }
- }
-
- class EndpointDescriptionHandler extends AbstractHandler {
-
- private Map<String, Object> properties;
- private List<EndpointDescription> descriptions;
-
- public EndpointDescriptionHandler(ContentHandler parentHandler,
- Attributes attributes, List<EndpointDescription> descriptions) {
- super(parentHandler, ENDPOINT_DESCRIPTION);
- this.properties = new TreeMap<String, Object>(
- String.CASE_INSENSITIVE_ORDER);
- this.descriptions = descriptions;
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- if (ENDPOINT_PROPERTY.equals(name))
- new EndpointPropertyHandler(this, attributes, properties);
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (elementHandled.equals(localName)) {
- descriptions.add(new EndpointDescription(properties));
- super.endElement(namespaceURI, localName, qName);
- }
- }
-
- }
-
- private Object createValue(String valueType, String value) {
- if (value == null)
- return null;
- if (valueType.equals("String")) { //$NON-NLS-1$
- return value;
- } else if (valueType.equals("long") || valueType.equals("Long")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Long.valueOf(value);
- } else if (valueType.equals("double") || valueType.equals("Double")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Double.valueOf(value);
- } else if (valueType.equals("float") || valueType.equals("Float")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Float.valueOf(value);
- } else if (valueType.equals("int") || valueType.equals("Integer")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Integer.valueOf(value);
- } else if (valueType.equals("byte") || valueType.equals("Byte")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Byte.valueOf(value);
- } else if (valueType.equals("char") //$NON-NLS-1$
- || valueType.equals("Character")) { //$NON-NLS-1$
- char[] chars = new char[1];
- value.getChars(0, 1, chars, 0);
- return Character.valueOf(chars[0]);
- } else if (valueType.equals("boolean") //$NON-NLS-1$
- || valueType.equals("Boolean")) { //$NON-NLS-1$
- return Boolean.valueOf(value);
- } else if (valueType.equals("short") || valueType.equals("Short")) { //$NON-NLS-1$ //$NON-NLS-2$
- return Short.valueOf(value);
- }
- return null;
- }
-
- abstract class MultiValueHandler extends AbstractHandler {
-
- protected String valueType;
-
- public MultiValueHandler(ContentHandler parentHandler,
- String elementHandled, String valueType) {
- super(parentHandler, elementHandled);
- this.valueType = valueType;
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- if (ENDPOINT_PROPERTY_VALUE.equals(name))
- characters = new StringBuffer();
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (ENDPOINT_PROPERTY_VALUE.equals(localName)) {
- Object value = createValue(
- valueType,
- processValue((characters == null) ? null : characters
- .toString()));
- if (value != null)
- addValue(value);
- characters = null;
- } else if (elementHandled.equals(localName))
- super.endElement(namespaceURI, localName, qName);
- }
-
- private String processValue(String characters) {
- if (characters == null || characters.length() == 0)
- return null;
- if (valueType.equals("String")) //$NON-NLS-1$
- return characters;
- return characters.trim();
- }
-
- protected abstract void addValue(Object value);
-
- public abstract Object getValues();
- }
-
- class ArrayMultiValueHandler extends MultiValueHandler {
-
- private List<Object> values = new ArrayList<Object>();
-
- public ArrayMultiValueHandler(ContentHandler parentHandler,
- String elementHandled, String valueType) {
- super(parentHandler, elementHandled, valueType);
- }
-
- protected Object[] createEmptyArrayOfType() {
- if (valueType.equals("String")) //$NON-NLS-1$
- return new String[] {};
- else if (valueType.equals("long") || valueType.equals("Long")) //$NON-NLS-1$ //$NON-NLS-2$
- return new Long[] {};
- else if (valueType.equals("double") || valueType.equals("Double")) //$NON-NLS-1$ //$NON-NLS-2$
- return new Double[] {};
- else if (valueType.equals("float") || valueType.equals("Float")) //$NON-NLS-1$ //$NON-NLS-2$
- return new Double[] {};
- else if (valueType.equals("int") || valueType.equals("Integer")) //$NON-NLS-1$ //$NON-NLS-2$
- return new Integer[] {};
- else if (valueType.equals("byte") || valueType.equals("Byte")) //$NON-NLS-1$ //$NON-NLS-2$
- return new Byte[] {};
- else if (valueType.equals("char") //$NON-NLS-1$
- || valueType.equals("Character")) //$NON-NLS-1$
- return new Character[] {};
- else if (valueType.equals("boolean") //$NON-NLS-1$
- || valueType.equals("Boolean")) //$NON-NLS-1$
- return new Boolean[] {};
- else if (valueType.equals("short") || valueType.equals("Short")) //$NON-NLS-1$ //$NON-NLS-2$
- return new Short[] {};
- else
- return null;
- }
-
- public Object getValues() {
- return values.toArray(createEmptyArrayOfType());
- }
-
- protected void addValue(Object value) {
- values.add(value);
- }
- }
-
- class ListMultiValueHandler extends MultiValueHandler {
-
- private List<Object> values = new ArrayList<Object>();
-
- public ListMultiValueHandler(ContentHandler parentHandler,
- String elementHandled, String valueType) {
- super(parentHandler, elementHandled, valueType);
- }
-
- public Object getValues() {
- return values;
- }
-
- protected void addValue(Object value) {
- values.add(value);
- }
- }
-
- class SetMultiValueHandler extends MultiValueHandler {
-
- private Set<Object> values = new HashSet<Object>();
-
- public SetMultiValueHandler(ContentHandler parentHandler,
- String elementHandled, String valueType) {
- super(parentHandler, elementHandled, valueType);
- }
-
- public Object getValues() {
- return values;
- }
-
- protected void addValue(Object value) {
- values.add(value);
- }
- }
-
- class XMLValueHandler extends AbstractHandler {
-
- private Map<String, String> nsPrefixMap = new HashMap<String, String>();
- private StringBuffer buf;
-
- public XMLValueHandler(ContentHandler parentHandler) {
- super(parentHandler, ENDPOINT_PROPERTY_XML);
- buf = new StringBuffer();
- }
-
- public void startPrefixMapping(String prefix, String uri)
- throws SAXException {
- nsPrefixMap.put(uri, prefix);
- }
-
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- buf.append("<").append(qName); //$NON-NLS-1$
- for (Iterator<String> i = nsPrefixMap.keySet().iterator(); i
- .hasNext();) {
- String nsURI = (String) i.next();
- String prefix = (String) nsPrefixMap.get(nsURI);
- i.remove();
- if (nsURI != null) {
- buf.append(" xmlns"); //$NON-NLS-1$
- if (prefix != null)
- buf.append(":").append(prefix); //$NON-NLS-1$
- buf.append("=\"").append(nsURI).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- for (int i = 0; i < attributes.getLength(); i++) {
- buf.append(" "); //$NON-NLS-1$
- buf.append(attributes.getQName(i))
- .append("=\"").append(attributes.getValue(i)).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
- }
- buf.append(">"); //$NON-NLS-1$
- characters = new StringBuffer();
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- // not used
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (elementHandled.equals(localName)) {
- super.endElement(namespaceURI, localName, qName);
- } else {
- if (characters != null)
- buf.append(characters);
- buf.append("</").append(qName).append(">"); //$NON-NLS-1$ //$NON-NLS-2$
- characters = null;
- }
- }
-
- public String getXML() {
- return buf.toString();
- }
- }
-
- class EndpointPropertyHandler extends AbstractHandler {
-
- private Map<String, Object> properties;
- private String name;
- private String valueType = "String"; //$NON-NLS-1$
- private Object value;
- private MultiValueHandler multiValueHandler;
- private XMLValueHandler xmlValueHandler;
-
- public EndpointPropertyHandler(ContentHandler parentHandler,
- Attributes attributes, Map<String, Object> properties)
- throws SAXException {
- super(parentHandler, ENDPOINT_PROPERTY);
- name = parseRequiredAttributes(attributes,
- new String[] { ENDPOINT_PROPERTY_NAME })[0];
- String strValue = parseOptionalAttribute(attributes,
- ENDPOINT_PROPERTY_VALUE);
- String vt = parseOptionalAttribute(attributes,
- ENDPOINT_PROPERTY_VALUETYPE);
- if (vt != null) {
- if (!multiValueTypes.contains(vt))
- throw new SAXException("property element valueType=" + vt //$NON-NLS-1$
- + " not allowed"); //$NON-NLS-1$
- this.valueType = vt;
- }
- this.properties = properties;
- if (strValue != null) {
- value = createValue(this.valueType, strValue);
- if (isValidProperty(name, value))
- this.properties.put(name, value);
- }
- }
-
- public void startElement(String name, Attributes attributes)
- throws SAXException {
- // Should not happen if value is non-null
- if (value != null)
- throw new SAXException(
- "property element has both value attribute and sub-element"); //$NON-NLS-1$
- if (ENDPOINT_PROPERTY_ARRAY.equals(name)) {
- if (multiValueHandler == null)
- multiValueHandler = new ArrayMultiValueHandler(this,
- ENDPOINT_PROPERTY_ARRAY, valueType);
- else
- duplicateElement(this, name, attributes);
-
- } else if (ENDPOINT_PROPERTY_LIST.equals(name)) {
- if (multiValueHandler == null)
- multiValueHandler = new ListMultiValueHandler(this,
- ENDPOINT_PROPERTY_LIST, valueType);
- else
- duplicateElement(this, name, attributes);
- } else if (ENDPOINT_PROPERTY_SET.equals(name)) {
- if (multiValueHandler == null)
- multiValueHandler = new SetMultiValueHandler(this,
- ENDPOINT_PROPERTY_SET, valueType);
- else
- duplicateElement(this, name, attributes);
- } else if (ENDPOINT_PROPERTY_XML.equals(name)) {
- // xml
- if (xmlValueHandler == null)
- xmlValueHandler = new XMLValueHandler(this);
- else
- duplicateElement(this, name, attributes);
-
- } else
- invalidElement(name, attributes);
- }
-
- public void endElement(String namespaceURI, String localName,
- String qName) {
- if (elementHandled.equals(localName)) {
- if (multiValueHandler != null) {
- properties.put(name, multiValueHandler.getValues());
- multiValueHandler = null;
- } else if (xmlValueHandler != null) {
- properties.put(name, xmlValueHandler.getXML());
- xmlValueHandler = null;
- }
- super.endElement(namespaceURI, localName, qName);
- }
- }
-
- private boolean isValidProperty(String name, Object value) {
- return (name != null && value != null);
- }
- }
-
- public class EndpointDescription {
- private Map<String, Object> properties;
-
- public EndpointDescription(Map<String, Object> properties) {
- this.properties = properties;
- }
-
- public Map<String, Object> getProperties() {
- return properties;
- }
-
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("EndpointDescription [properties="); //$NON-NLS-1$
- builder.append(properties);
- builder.append("]"); //$NON-NLS-1$
- return builder.toString();
- }
-
- }
-
- public synchronized void parse(InputStream input) throws IOException {
- try {
- getParser();
- EndpointDescriptionsHandler endpointDescriptionsHandler = new EndpointDescriptionsHandler();
- xmlReader.setContentHandler(new EndpointDescriptionDocHandler(
- ENDPOINT_DESCRIPTIONS, endpointDescriptionsHandler));
- xmlReader.parse(new InputSource(input));
- endpointDescriptions = endpointDescriptionsHandler
- .getEndpointDescriptions();
- } catch (SAXException e) {
- throw new IOException(e.getMessage());
- } catch (ParserConfigurationException e) {
- throw new IOException(e.getMessage());
- } finally {
- input.close();
- }
-
- }
-
- public static String makeSimpleName(String localName, String qualifiedName) {
- if (localName != null && localName.length() > 0)
- return localName;
- int nameSpaceIndex = qualifiedName.indexOf(":"); //$NON-NLS-1$
- return (nameSpaceIndex == -1 ? qualifiedName : qualifiedName
- .substring(nameSpaceIndex + 1));
- }
-
- public void unexpectedElement(AbstractHandler handler, String element,
- Attributes attributes) {
- }
-
- public void unexpectedCharacterData(AbstractHandler handler, String cdata) {
- }
-
- public void unexpectedAttribute(String element, String attribute,
- String value) {
- }
-
- static int indexOf(String[] array, String value) {
- for (int i = 0; i < array.length; i += 1) {
- if (value == null ? array[i] == null : value.equals(array[i])) {
- return i;
- }
- }
- return -1;
- }
-
- public void checkRequiredAttribute(String element, String name, Object value) {
- }
-
- public void duplicateElement(AbstractHandler handler, String element,
- Attributes attributes) {
- // ignore the duplicate element entirely because we have already logged
- // it
- new IgnoringHandler(handler);
- }
-
- private List<EndpointDescription> endpointDescriptions;
-
- public List<EndpointDescription> getEndpointDescriptions() {
- return endpointDescriptions;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class EndpointDescriptionParser {
+
+ private static List<String> multiValueTypes;
+
+ static {
+ multiValueTypes = Arrays.asList(new String[] { "String", "Long", //$NON-NLS-1$ //$NON-NLS-2$
+ "long", "Double", "double", "float", "Float", "int", "Integer", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+ "byte", "Byte", "char", "Character", "boolean", "Boolean", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ "short", "Short" }); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ private static final String ENDPOINT_DESCRIPTIONS = "endpoint-descriptions"; //$NON-NLS-1$
+ private static final String ENDPOINT_DESCRIPTION = "endpoint-description"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY = "property"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_NAME = "name"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_VALUE = "value"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_VALUETYPE = "value-type"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_ARRAY = "array"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_LIST = "list"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_SET = "set"; //$NON-NLS-1$
+ private static final String ENDPOINT_PROPERTY_XML = "xml"; //$NON-NLS-1$
+
+ public static String[] noAttributes = new String[0];
+
+ private XMLReader xmlReader;
+
+ class IgnoringHandler extends AbstractHandler {
+ public IgnoringHandler(AbstractHandler parent) {
+ super(parent);
+ this.elementHandled = "IgnoringAll"; //$NON-NLS-1$
+ }
+
+ public void startElement(String name, Attributes attributes) {
+ noSubElements(name, attributes);
+ }
+ }
+
+ /**
+ * Abstract base class for content handlers
+ */
+ abstract class AbstractHandler extends DefaultHandler {
+
+ protected ContentHandler parentHandler = null;
+ protected String elementHandled = null;
+
+ protected StringBuffer characters = null; // character data inside an
+ // element
+
+ public AbstractHandler() {
+ // Empty constructor for a root handler
+ }
+
+ public AbstractHandler(ContentHandler parentHandler) {
+ this.parentHandler = parentHandler;
+ xmlReader.setContentHandler(this);
+ }
+
+ public AbstractHandler(ContentHandler parentHandler,
+ String elementHandled) {
+ this.parentHandler = parentHandler;
+ xmlReader.setContentHandler(this);
+ this.elementHandled = elementHandled;
+ }
+
+ public void startElement(String uri, String localName, String qName,
+ Attributes attributes) throws SAXException {
+ finishCharacters();
+ String name = makeSimpleName(localName, qName);
+ startElement(name, attributes);
+ }
+
+ public abstract void startElement(String name, Attributes attributes)
+ throws SAXException;
+
+ public void invalidElement(String name, Attributes attributes) {
+ unexpectedElement(this, name, attributes);
+ new IgnoringHandler(this);
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ finishCharacters();
+ finished();
+ // Restore the parent content handler
+ xmlReader.setContentHandler(parentHandler);
+ }
+
+ /**
+ * An implementation for startElement when there are no sub-elements
+ */
+ protected void noSubElements(String name, Attributes attributes) {
+ unexpectedElement(this, name, attributes);
+ // Create a new handler to ignore subsequent nested elements
+ new IgnoringHandler(this);
+ }
+
+ /*
+ * Save up character data until endElement or nested startElement
+ *
+ * @see org.xml.sax.ContentHandler#characters
+ */
+ public void characters(char[] chars, int start, int length) {
+ if (this.characters == null) {
+ this.characters = new StringBuffer();
+ }
+ this.characters.append(chars, start, length);
+ }
+
+ // Consume the characters accumulated in this.characters.
+ // Called before startElement or endElement
+ private String finishCharacters() {
+ // common case -- no characters or only whitespace
+ if (this.characters == null || this.characters.length() == 0) {
+ return null;
+ }
+ if (allWhiteSpace(this.characters)) {
+ this.characters.setLength(0);
+ return null;
+ }
+
+ // process the characters
+ try {
+ String trimmedChars = this.characters.toString().trim();
+ if (trimmedChars.length() == 0) {
+ // this shouldn't happen due to the test for allWhiteSpace
+ // above
+ System.err.println("Unexpected non-whitespace characters: " //$NON-NLS-1$
+ + trimmedChars);
+ return null;
+ }
+ processCharacters(trimmedChars);
+ return trimmedChars;
+ } finally {
+ this.characters.setLength(0);
+ }
+ }
+
+ // Method to override in the handler of an element with CDATA.
+ protected void processCharacters(String data) {
+ if (data.length() > 0)
+ unexpectedCharacterData(this, data);
+ }
+
+ private boolean allWhiteSpace(StringBuffer sb) {
+ int length = sb.length();
+ for (int i = 0; i < length; i += 1)
+ if (!Character.isWhitespace(sb.charAt(i)))
+ return false;
+ return true;
+ }
+
+ /**
+ * Called when this element and all elements nested into it have been
+ * handled.
+ */
+ protected void finished() {
+ // Do nothing by default
+ }
+
+ /*
+ * A name used to identify the handler.
+ */
+ public String getName() {
+ return (elementHandled != null ? elementHandled : "NoName"); //$NON-NLS-1$
+ }
+
+ /**
+ * Parse the attributes of an element with only required attributes.
+ */
+ protected String[] parseRequiredAttributes(Attributes attributes,
+ String[] required) {
+ return parseAttributes(attributes, required, noAttributes);
+ }
+
+ /**
+ * Parse the attributes of an element with a single optional attribute.
+ */
+ protected String parseOptionalAttribute(Attributes attributes,
+ String name) {
+ return parseAttributes(attributes, noAttributes,
+ new String[] { name })[0];
+ }
+
+ /**
+ * Parse the attributes of an element, given the list of required and
+ * optional ones. Return values in same order, null for those not
+ * present. Log warnings for extra attributes or missing required
+ * attributes.
+ */
+ protected String[] parseAttributes(Attributes attributes,
+ String[] required, String[] optional) {
+ String[] result = new String[required.length + optional.length];
+ for (int i = 0; i < attributes.getLength(); i += 1) {
+ String name = attributes.getLocalName(i);
+ String value = attributes.getValue(i).trim();
+ int j;
+ if ((j = indexOf(required, name)) >= 0)
+ result[j] = value;
+ else if ((j = indexOf(optional, name)) >= 0)
+ result[required.length + j] = value;
+ else
+ unexpectedAttribute(elementHandled, name, value);
+ }
+ for (int i = 0; i < required.length; i += 1)
+ checkRequiredAttribute(elementHandled, required[i], result[i]);
+ return result;
+ }
+
+ }
+
+ SAXParser getParser() throws ParserConfigurationException, SAXException {
+ Activator a = Activator.getDefault();
+ if (a == null)
+ return null;
+
+ SAXParserFactory factory = a.getSAXParserFactory();
+ if (factory == null)
+ throw new SAXException("Unable to acquire sax parser"); //$NON-NLS-1$
+ factory.setNamespaceAware(true);
+ factory.setValidating(false);
+ try {
+ factory.setFeature(
+ "http://xml.org/sax/features/string-interning", true); //$NON-NLS-1$
+ } catch (SAXException se) {
+ // some parsers may not support string interning
+ }
+ SAXParser theParser = factory.newSAXParser();
+ if (theParser == null) {
+ throw new SAXException("Unable to create sax parser"); //$NON-NLS-1$
+ }
+ xmlReader = theParser.getXMLReader();
+ return theParser;
+ }
+
+ abstract class RootHandler extends AbstractHandler {
+
+ public RootHandler() {
+ super();
+ }
+
+ public void initialize(DocHandler document, String rootName,
+ Attributes attributes) {
+ this.parentHandler = document;
+ this.elementHandled = rootName;
+ handleRootAttributes(attributes);
+ }
+
+ protected abstract void handleRootAttributes(Attributes attributes);
+
+ }
+
+ class DocHandler extends AbstractHandler {
+
+ RootHandler rootHandler;
+
+ public DocHandler(String rootName, RootHandler rootHandler) {
+ super(null, rootName);
+ this.rootHandler = rootHandler;
+ }
+
+ public void startElement(String name, Attributes attributes) {
+ if (name.equals(elementHandled)) {
+ rootHandler.initialize(this, name, attributes);
+ xmlReader.setContentHandler(rootHandler);
+ } else
+ noSubElements(name, attributes);
+ }
+
+ }
+
+ class EndpointDescriptionDocHandler extends DocHandler {
+
+ public EndpointDescriptionDocHandler(String rootName,
+ RootHandler rootHandler) {
+ super(rootName, rootHandler);
+ }
+
+ public void processingInstruction(String target, String data)
+ throws SAXException {
+ // do nothing
+ }
+ }
+
+ class EndpointDescriptionsHandler extends RootHandler {
+
+ private List<EndpointDescription> endpointDescriptions = new ArrayList<EndpointDescription>();
+
+ protected void handleRootAttributes(Attributes attributes) {
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ if (ENDPOINT_DESCRIPTION.equals(name))
+ new EndpointDescriptionHandler(this, attributes,
+ endpointDescriptions);
+ else
+ invalidElement(name, attributes);
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (elementHandled.equals(localName))
+ super.endElement(namespaceURI, localName, qName);
+ }
+
+ public List<EndpointDescription> getEndpointDescriptions() {
+ return endpointDescriptions;
+ }
+ }
+
+ class EndpointDescriptionHandler extends AbstractHandler {
+
+ private Map<String, Object> properties;
+ private List<EndpointDescription> descriptions;
+
+ public EndpointDescriptionHandler(ContentHandler parentHandler,
+ Attributes attributes, List<EndpointDescription> descriptions) {
+ super(parentHandler, ENDPOINT_DESCRIPTION);
+ this.properties = new TreeMap<String, Object>(
+ String.CASE_INSENSITIVE_ORDER);
+ this.descriptions = descriptions;
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ if (ENDPOINT_PROPERTY.equals(name))
+ new EndpointPropertyHandler(this, attributes, properties);
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (elementHandled.equals(localName)) {
+ descriptions.add(new EndpointDescription(properties));
+ super.endElement(namespaceURI, localName, qName);
+ }
+ }
+
+ }
+
+ private Object createValue(String valueType, String value) {
+ if (value == null)
+ return null;
+ if (valueType.equals("String")) { //$NON-NLS-1$
+ return value;
+ } else if (valueType.equals("long") || valueType.equals("Long")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Long.valueOf(value);
+ } else if (valueType.equals("double") || valueType.equals("Double")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Double.valueOf(value);
+ } else if (valueType.equals("float") || valueType.equals("Float")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Float.valueOf(value);
+ } else if (valueType.equals("int") || valueType.equals("Integer")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Integer.valueOf(value);
+ } else if (valueType.equals("byte") || valueType.equals("Byte")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Byte.valueOf(value);
+ } else if (valueType.equals("char") //$NON-NLS-1$
+ || valueType.equals("Character")) { //$NON-NLS-1$
+ char[] chars = new char[1];
+ value.getChars(0, 1, chars, 0);
+ return Character.valueOf(chars[0]);
+ } else if (valueType.equals("boolean") //$NON-NLS-1$
+ || valueType.equals("Boolean")) { //$NON-NLS-1$
+ return Boolean.valueOf(value);
+ } else if (valueType.equals("short") || valueType.equals("Short")) { //$NON-NLS-1$ //$NON-NLS-2$
+ return Short.valueOf(value);
+ }
+ return null;
+ }
+
+ abstract class MultiValueHandler extends AbstractHandler {
+
+ protected String valueType;
+
+ public MultiValueHandler(ContentHandler parentHandler,
+ String elementHandled, String valueType) {
+ super(parentHandler, elementHandled);
+ this.valueType = valueType;
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ if (ENDPOINT_PROPERTY_VALUE.equals(name))
+ characters = new StringBuffer();
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (ENDPOINT_PROPERTY_VALUE.equals(localName)) {
+ Object value = createValue(
+ valueType,
+ processValue((characters == null) ? null : characters
+ .toString()));
+ if (value != null)
+ addValue(value);
+ characters = null;
+ } else if (elementHandled.equals(localName))
+ super.endElement(namespaceURI, localName, qName);
+ }
+
+ private String processValue(String characters) {
+ if (characters == null || characters.length() == 0)
+ return null;
+ if (valueType.equals("String")) //$NON-NLS-1$
+ return characters;
+ return characters.trim();
+ }
+
+ protected abstract void addValue(Object value);
+
+ public abstract Object getValues();
+ }
+
+ class ArrayMultiValueHandler extends MultiValueHandler {
+
+ private List<Object> values = new ArrayList<Object>();
+
+ public ArrayMultiValueHandler(ContentHandler parentHandler,
+ String elementHandled, String valueType) {
+ super(parentHandler, elementHandled, valueType);
+ }
+
+ protected Object[] createEmptyArrayOfType() {
+ if (valueType.equals("String")) //$NON-NLS-1$
+ return new String[] {};
+ else if (valueType.equals("long") || valueType.equals("Long")) //$NON-NLS-1$ //$NON-NLS-2$
+ return new Long[] {};
+ else if (valueType.equals("double") || valueType.equals("Double")) //$NON-NLS-1$ //$NON-NLS-2$
+ return new Double[] {};
+ else if (valueType.equals("float") || valueType.equals("Float")) //$NON-NLS-1$ //$NON-NLS-2$
+ return new Double[] {};
+ else if (valueType.equals("int") || valueType.equals("Integer")) //$NON-NLS-1$ //$NON-NLS-2$
+ return new Integer[] {};
+ else if (valueType.equals("byte") || valueType.equals("Byte")) //$NON-NLS-1$ //$NON-NLS-2$
+ return new Byte[] {};
+ else if (valueType.equals("char") //$NON-NLS-1$
+ || valueType.equals("Character")) //$NON-NLS-1$
+ return new Character[] {};
+ else if (valueType.equals("boolean") //$NON-NLS-1$
+ || valueType.equals("Boolean")) //$NON-NLS-1$
+ return new Boolean[] {};
+ else if (valueType.equals("short") || valueType.equals("Short")) //$NON-NLS-1$ //$NON-NLS-2$
+ return new Short[] {};
+ else
+ return null;
+ }
+
+ public Object getValues() {
+ return values.toArray(createEmptyArrayOfType());
+ }
+
+ protected void addValue(Object value) {
+ values.add(value);
+ }
+ }
+
+ class ListMultiValueHandler extends MultiValueHandler {
+
+ private List<Object> values = new ArrayList<Object>();
+
+ public ListMultiValueHandler(ContentHandler parentHandler,
+ String elementHandled, String valueType) {
+ super(parentHandler, elementHandled, valueType);
+ }
+
+ public Object getValues() {
+ return values;
+ }
+
+ protected void addValue(Object value) {
+ values.add(value);
+ }
+ }
+
+ class SetMultiValueHandler extends MultiValueHandler {
+
+ private Set<Object> values = new HashSet<Object>();
+
+ public SetMultiValueHandler(ContentHandler parentHandler,
+ String elementHandled, String valueType) {
+ super(parentHandler, elementHandled, valueType);
+ }
+
+ public Object getValues() {
+ return values;
+ }
+
+ protected void addValue(Object value) {
+ values.add(value);
+ }
+ }
+
+ class XMLValueHandler extends AbstractHandler {
+
+ private Map<String, String> nsPrefixMap = new HashMap<String, String>();
+ private StringBuffer buf;
+
+ public XMLValueHandler(ContentHandler parentHandler) {
+ super(parentHandler, ENDPOINT_PROPERTY_XML);
+ buf = new StringBuffer();
+ }
+
+ public void startPrefixMapping(String prefix, String uri)
+ throws SAXException {
+ nsPrefixMap.put(uri, prefix);
+ }
+
+ public void startElement(String uri, String localName, String qName,
+ Attributes attributes) throws SAXException {
+ buf.append("<").append(qName); //$NON-NLS-1$
+ for (Iterator<String> i = nsPrefixMap.keySet().iterator(); i
+ .hasNext();) {
+ String nsURI = (String) i.next();
+ String prefix = (String) nsPrefixMap.get(nsURI);
+ i.remove();
+ if (nsURI != null) {
+ buf.append(" xmlns"); //$NON-NLS-1$
+ if (prefix != null)
+ buf.append(":").append(prefix); //$NON-NLS-1$
+ buf.append("=\"").append(nsURI).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ for (int i = 0; i < attributes.getLength(); i++) {
+ buf.append(" "); //$NON-NLS-1$
+ buf.append(attributes.getQName(i))
+ .append("=\"").append(attributes.getValue(i)).append("\""); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ buf.append(">"); //$NON-NLS-1$
+ characters = new StringBuffer();
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ // not used
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (elementHandled.equals(localName)) {
+ super.endElement(namespaceURI, localName, qName);
+ } else {
+ if (characters != null)
+ buf.append(characters);
+ buf.append("</").append(qName).append(">"); //$NON-NLS-1$ //$NON-NLS-2$
+ characters = null;
+ }
+ }
+
+ public String getXML() {
+ return buf.toString();
+ }
+ }
+
+ class EndpointPropertyHandler extends AbstractHandler {
+
+ private Map<String, Object> properties;
+ private String name;
+ private String valueType = "String"; //$NON-NLS-1$
+ private Object value;
+ private MultiValueHandler multiValueHandler;
+ private XMLValueHandler xmlValueHandler;
+
+ public EndpointPropertyHandler(ContentHandler parentHandler,
+ Attributes attributes, Map<String, Object> properties)
+ throws SAXException {
+ super(parentHandler, ENDPOINT_PROPERTY);
+ name = parseRequiredAttributes(attributes,
+ new String[] { ENDPOINT_PROPERTY_NAME })[0];
+ String strValue = parseOptionalAttribute(attributes,
+ ENDPOINT_PROPERTY_VALUE);
+ String vt = parseOptionalAttribute(attributes,
+ ENDPOINT_PROPERTY_VALUETYPE);
+ if (vt != null) {
+ if (!multiValueTypes.contains(vt))
+ throw new SAXException("property element valueType=" + vt //$NON-NLS-1$
+ + " not allowed"); //$NON-NLS-1$
+ this.valueType = vt;
+ }
+ this.properties = properties;
+ if (strValue != null) {
+ value = createValue(this.valueType, strValue);
+ if (isValidProperty(name, value))
+ this.properties.put(name, value);
+ }
+ }
+
+ public void startElement(String name, Attributes attributes)
+ throws SAXException {
+ // Should not happen if value is non-null
+ if (value != null)
+ throw new SAXException(
+ "property element has both value attribute and sub-element"); //$NON-NLS-1$
+ if (ENDPOINT_PROPERTY_ARRAY.equals(name)) {
+ if (multiValueHandler == null)
+ multiValueHandler = new ArrayMultiValueHandler(this,
+ ENDPOINT_PROPERTY_ARRAY, valueType);
+ else
+ duplicateElement(this, name, attributes);
+
+ } else if (ENDPOINT_PROPERTY_LIST.equals(name)) {
+ if (multiValueHandler == null)
+ multiValueHandler = new ListMultiValueHandler(this,
+ ENDPOINT_PROPERTY_LIST, valueType);
+ else
+ duplicateElement(this, name, attributes);
+ } else if (ENDPOINT_PROPERTY_SET.equals(name)) {
+ if (multiValueHandler == null)
+ multiValueHandler = new SetMultiValueHandler(this,
+ ENDPOINT_PROPERTY_SET, valueType);
+ else
+ duplicateElement(this, name, attributes);
+ } else if (ENDPOINT_PROPERTY_XML.equals(name)) {
+ // xml
+ if (xmlValueHandler == null)
+ xmlValueHandler = new XMLValueHandler(this);
+ else
+ duplicateElement(this, name, attributes);
+
+ } else
+ invalidElement(name, attributes);
+ }
+
+ public void endElement(String namespaceURI, String localName,
+ String qName) {
+ if (elementHandled.equals(localName)) {
+ if (multiValueHandler != null) {
+ properties.put(name, multiValueHandler.getValues());
+ multiValueHandler = null;
+ } else if (xmlValueHandler != null) {
+ properties.put(name, xmlValueHandler.getXML());
+ xmlValueHandler = null;
+ }
+ super.endElement(namespaceURI, localName, qName);
+ }
+ }
+
+ private boolean isValidProperty(String name, Object value) {
+ return (name != null && value != null);
+ }
+ }
+
+ public class EndpointDescription {
+ private Map<String, Object> properties;
+
+ public EndpointDescription(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("EndpointDescription [properties="); //$NON-NLS-1$
+ builder.append(properties);
+ builder.append("]"); //$NON-NLS-1$
+ return builder.toString();
+ }
+
+ }
+
+ public synchronized void parse(InputStream input) throws IOException {
+ try {
+ getParser();
+ EndpointDescriptionsHandler endpointDescriptionsHandler = new EndpointDescriptionsHandler();
+ xmlReader.setContentHandler(new EndpointDescriptionDocHandler(
+ ENDPOINT_DESCRIPTIONS, endpointDescriptionsHandler));
+ xmlReader.parse(new InputSource(input));
+ endpointDescriptions = endpointDescriptionsHandler
+ .getEndpointDescriptions();
+ } catch (SAXException e) {
+ throw new IOException(e.getMessage());
+ } catch (ParserConfigurationException e) {
+ throw new IOException(e.getMessage());
+ } finally {
+ input.close();
+ }
+
+ }
+
+ public static String makeSimpleName(String localName, String qualifiedName) {
+ if (localName != null && localName.length() > 0)
+ return localName;
+ int nameSpaceIndex = qualifiedName.indexOf(":"); //$NON-NLS-1$
+ return (nameSpaceIndex == -1 ? qualifiedName : qualifiedName
+ .substring(nameSpaceIndex + 1));
+ }
+
+ public void unexpectedElement(AbstractHandler handler, String element,
+ Attributes attributes) {
+ }
+
+ public void unexpectedCharacterData(AbstractHandler handler, String cdata) {
+ }
+
+ public void unexpectedAttribute(String element, String attribute,
+ String value) {
+ }
+
+ static int indexOf(String[] array, String value) {
+ for (int i = 0; i < array.length; i += 1) {
+ if (value == null ? array[i] == null : value.equals(array[i])) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ public void checkRequiredAttribute(String element, String name, Object value) {
+ }
+
+ public void duplicateElement(AbstractHandler handler, String element,
+ Attributes attributes) {
+ // ignore the duplicate element entirely because we have already logged
+ // it
+ new IgnoringHandler(handler);
+ }
+
+ private List<EndpointDescription> endpointDescriptions;
+
+ public List<EndpointDescription> getEndpointDescriptions() {
+ return endpointDescriptions;
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/IDUtil.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/IDUtil.java
index 45f74ce6a..78bd303b9 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/IDUtil.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/IDUtil.java
@@ -1,80 +1,80 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.IDCreateException;
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.identity.IIDFactory;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.identity.StringID;
-
-public class IDUtil {
-
- public static IIDFactory getIDFactory() {
- return IDFactory.getDefault();
- }
-
- public static Namespace getNamespaceByName(String namespaceName) {
- if (namespaceName == null)
- return null;
- return getIDFactory().getNamespaceByName(namespaceName);
- }
-
- public static Namespace findNamespaceByIdName(String idName) {
- if (idName == null)
- return null;
- int colonIndex = idName.indexOf(Namespace.SCHEME_SEPARATOR);
- if (colonIndex <= 0)
- return null;
- String scheme = idName.substring(0, colonIndex);
- // First try to find the Namespace using the protocol directly
- Namespace ns = getNamespaceByName(scheme);
- return (ns == null) ? findNamespaceByScheme(scheme) : ns;
- }
-
- public static Namespace findNamespaceByScheme(String scheme) {
- if (scheme == null)
- return null;
- if (scheme.equals("ecftcp")) //$NON-NLS-1$
- return getIDFactory().getNamespaceByName(StringID.class.getName());
- List namespaces = getIDFactory().getNamespaces();
- for (Iterator i = namespaces.iterator(); i.hasNext();) {
- Namespace ns = (Namespace) i.next();
- if (scheme.equals(ns.getScheme()))
- return ns;
- }
- return null;
- }
-
- public static ID createID(String namespaceName, String idName)
- throws IDCreateException {
- Namespace ns = (namespaceName != null) ? getNamespaceByName(namespaceName)
- : findNamespaceByIdName(idName);
- if (ns == null)
- throw new IDCreateException(
- "Cannot find Namespace for namespaceName=" + namespaceName //$NON-NLS-1$
- + " and idName=" + idName); //$NON-NLS-1$
- return createID(ns, idName);
- }
-
- public static ID createID(Namespace namespace, String idName)
- throws IDCreateException {
- return getIDFactory().createID(namespace, idName);
- }
-
- public static ID createID(Namespace namespace, Object[] args)
- throws IDCreateException {
- return getIDFactory().createID(namespace, args);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.identity.IDCreateException;
+import org.eclipse.ecf.core.identity.IDFactory;
+import org.eclipse.ecf.core.identity.IIDFactory;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.core.identity.StringID;
+
+public class IDUtil {
+
+ public static IIDFactory getIDFactory() {
+ return IDFactory.getDefault();
+ }
+
+ public static Namespace getNamespaceByName(String namespaceName) {
+ if (namespaceName == null)
+ return null;
+ return getIDFactory().getNamespaceByName(namespaceName);
+ }
+
+ public static Namespace findNamespaceByIdName(String idName) {
+ if (idName == null)
+ return null;
+ int colonIndex = idName.indexOf(Namespace.SCHEME_SEPARATOR);
+ if (colonIndex <= 0)
+ return null;
+ String scheme = idName.substring(0, colonIndex);
+ // First try to find the Namespace using the protocol directly
+ Namespace ns = getNamespaceByName(scheme);
+ return (ns == null) ? findNamespaceByScheme(scheme) : ns;
+ }
+
+ public static Namespace findNamespaceByScheme(String scheme) {
+ if (scheme == null)
+ return null;
+ if (scheme.equals("ecftcp")) //$NON-NLS-1$
+ return getIDFactory().getNamespaceByName(StringID.class.getName());
+ List namespaces = getIDFactory().getNamespaces();
+ for (Iterator i = namespaces.iterator(); i.hasNext();) {
+ Namespace ns = (Namespace) i.next();
+ if (scheme.equals(ns.getScheme()))
+ return ns;
+ }
+ return null;
+ }
+
+ public static ID createID(String namespaceName, String idName)
+ throws IDCreateException {
+ Namespace ns = (namespaceName != null) ? getNamespaceByName(namespaceName)
+ : findNamespaceByIdName(idName);
+ if (ns == null)
+ throw new IDCreateException(
+ "Cannot find Namespace for namespaceName=" + namespaceName //$NON-NLS-1$
+ + " and idName=" + idName); //$NON-NLS-1$
+ return createID(ns, idName);
+ }
+
+ public static ID createID(Namespace namespace, String idName)
+ throws IDCreateException {
+ return getIDFactory().createID(namespace, idName);
+ }
+
+ public static ID createID(Namespace namespace, Object[] args)
+ throws IDCreateException {
+ return getIDFactory().createID(namespace, args);
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/LogUtility.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/LogUtility.java
index 4d6e4f607..067ac0e8d 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/LogUtility.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/LogUtility.java
@@ -1,107 +1,107 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.util.Trace;
-
-public class LogUtility {
-
- public static void logError(String methodName, String debugOption,
- Class clazz, String message) {
- logError(methodName, debugOption, clazz, message, null);
- traceException(methodName, debugOption, clazz, message, null);
- }
-
- public static void logInfo(String methodName, String debugOption,
- Class clazz, String message) {
- trace(methodName, debugOption, clazz, "INFO:" + message); //$NON-NLS-1$
- Activator.getDefault().log(
- new Status(IStatus.INFO, Activator.PLUGIN_ID,
- IStatus.INFO, clazz.getName() + ":" //$NON-NLS-1$
- + ((methodName == null) ? "<unknown>" //$NON-NLS-1$
- : methodName) + ":" //$NON-NLS-1$
- + ((message == null) ? "<empty>" : message), //$NON-NLS-1$
- null));
- }
-
- public static void logWarning(String methodName, String debugOption,
- Class clazz, String message) {
- trace(methodName, debugOption, clazz, "WARNING:" + message); //$NON-NLS-1$
- Activator.getDefault().log(
- new Status(IStatus.WARNING, Activator.PLUGIN_ID,
- IStatus.WARNING, clazz.getName() + ":" //$NON-NLS-1$
- + ((methodName == null) ? "<unknown>" //$NON-NLS-1$
- : methodName) + ":" //$NON-NLS-1$
- + ((message == null) ? "<empty>" : message), //$NON-NLS-1$
- null));
- }
-
- public static void logError(String methodName, String debugOption,
- Class clazz, String message, Throwable t) {
- if (t != null)
- traceException(methodName, debugOption, clazz, message, t);
- else
- trace(methodName, debugOption, clazz, message);
- Activator.getDefault().log(
- new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR,
- clazz.getName() + ":" //$NON-NLS-1$
- + ((methodName == null) ? "<unknown>" //$NON-NLS-1$
- : methodName) + ":" //$NON-NLS-1$
- + ((message == null) ? "<empty>" //$NON-NLS-1$
- : message), t));
- }
-
- public static void logWarning(String methodName, String debugOption,
- Class clazz, String message, Throwable t) {
- if (t != null)
- traceException(methodName, debugOption, clazz, message, t);
- else
- trace(methodName, debugOption, clazz, message);
- Activator.getDefault().log(
- new Status(IStatus.WARNING, Activator.PLUGIN_ID,
- IStatus.WARNING, clazz.getName() + ":" //$NON-NLS-1$
- + ((methodName == null) ? "<unknown>" //$NON-NLS-1$
- : methodName) + ":" //$NON-NLS-1$
- + ((message == null) ? "<empty>" //$NON-NLS-1$
- : message), t));
- }
-
- public static void logError(String methodName, String debugOption,
- Class clazz, IStatus status) {
- Throwable t = status.getException();
- if (t != null)
- traceException(methodName, debugOption, clazz, status.getMessage(),
- t);
- else
- trace(methodName, debugOption, clazz, status.getMessage());
- Activator.getDefault().log(status);
- }
-
- public static void logWarning(String methodName, String debugOption,
- Class clazz, IStatus status) {
- logError(methodName, debugOption, clazz, status);
- }
-
- public static void trace(String methodName, String debugOptions,
- Class clazz, String message) {
- Trace.trace(Activator.PLUGIN_ID, debugOptions, clazz, methodName,
- message);
- }
-
- public static void traceException(String methodName, String debugOption,
- Class clazz, String message, Throwable t) {
- Trace.catching(Activator.PLUGIN_ID, debugOption, clazz,
- ((methodName == null) ? "<unknown>" : methodName) + ":" //$NON-NLS-1$ //$NON-NLS-2$
- + ((message == null) ? "<empty>" : message), t); //$NON-NLS-1$
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.core.util.Trace;
+
+public class LogUtility {
+
+ public static void logError(String methodName, String debugOption,
+ Class clazz, String message) {
+ logError(methodName, debugOption, clazz, message, null);
+ traceException(methodName, debugOption, clazz, message, null);
+ }
+
+ public static void logInfo(String methodName, String debugOption,
+ Class clazz, String message) {
+ trace(methodName, debugOption, clazz, "INFO:" + message); //$NON-NLS-1$
+ Activator.getDefault().log(
+ new Status(IStatus.INFO, Activator.PLUGIN_ID,
+ IStatus.INFO, clazz.getName() + ":" //$NON-NLS-1$
+ + ((methodName == null) ? "<unknown>" //$NON-NLS-1$
+ : methodName) + ":" //$NON-NLS-1$
+ + ((message == null) ? "<empty>" : message), //$NON-NLS-1$
+ null));
+ }
+
+ public static void logWarning(String methodName, String debugOption,
+ Class clazz, String message) {
+ trace(methodName, debugOption, clazz, "WARNING:" + message); //$NON-NLS-1$
+ Activator.getDefault().log(
+ new Status(IStatus.WARNING, Activator.PLUGIN_ID,
+ IStatus.WARNING, clazz.getName() + ":" //$NON-NLS-1$
+ + ((methodName == null) ? "<unknown>" //$NON-NLS-1$
+ : methodName) + ":" //$NON-NLS-1$
+ + ((message == null) ? "<empty>" : message), //$NON-NLS-1$
+ null));
+ }
+
+ public static void logError(String methodName, String debugOption,
+ Class clazz, String message, Throwable t) {
+ if (t != null)
+ traceException(methodName, debugOption, clazz, message, t);
+ else
+ trace(methodName, debugOption, clazz, message);
+ Activator.getDefault().log(
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR,
+ clazz.getName() + ":" //$NON-NLS-1$
+ + ((methodName == null) ? "<unknown>" //$NON-NLS-1$
+ : methodName) + ":" //$NON-NLS-1$
+ + ((message == null) ? "<empty>" //$NON-NLS-1$
+ : message), t));
+ }
+
+ public static void logWarning(String methodName, String debugOption,
+ Class clazz, String message, Throwable t) {
+ if (t != null)
+ traceException(methodName, debugOption, clazz, message, t);
+ else
+ trace(methodName, debugOption, clazz, message);
+ Activator.getDefault().log(
+ new Status(IStatus.WARNING, Activator.PLUGIN_ID,
+ IStatus.WARNING, clazz.getName() + ":" //$NON-NLS-1$
+ + ((methodName == null) ? "<unknown>" //$NON-NLS-1$
+ : methodName) + ":" //$NON-NLS-1$
+ + ((message == null) ? "<empty>" //$NON-NLS-1$
+ : message), t));
+ }
+
+ public static void logError(String methodName, String debugOption,
+ Class clazz, IStatus status) {
+ Throwable t = status.getException();
+ if (t != null)
+ traceException(methodName, debugOption, clazz, status.getMessage(),
+ t);
+ else
+ trace(methodName, debugOption, clazz, status.getMessage());
+ Activator.getDefault().log(status);
+ }
+
+ public static void logWarning(String methodName, String debugOption,
+ Class clazz, IStatus status) {
+ logError(methodName, debugOption, clazz, status);
+ }
+
+ public static void trace(String methodName, String debugOptions,
+ Class clazz, String message) {
+ Trace.trace(Activator.PLUGIN_ID, debugOptions, clazz, methodName,
+ message);
+ }
+
+ public static void traceException(String methodName, String debugOption,
+ Class clazz, String message, Throwable t) {
+ Trace.catching(Activator.PLUGIN_ID, debugOption, clazz,
+ ((methodName == null) ? "<unknown>" : methodName) + ":" //$NON-NLS-1$ //$NON-NLS-2$
+ + ((message == null) ? "<empty>" : message), t); //$NON-NLS-1$
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java
index 2cec56e64..14483171f 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java
@@ -1,406 +1,406 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeMap;
-
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants;
-import org.eclipse.ecf.remoteservice.IRemoteServiceReference;
-import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceReference;
-
-public class PropertiesUtil {
-
- protected static final List osgiProperties = Arrays
- .asList(new String[] {
- // OSGi properties
- org.osgi.framework.Constants.OBJECTCLASS,
- org.osgi.framework.Constants.SERVICE_ID,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
- org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED,
- org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_CONFIGS,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS });
-
- protected static final List ecfProperties = Arrays.asList(new String[] {
- // ECF properties
- org.eclipse.ecf.remoteservice.Constants.OBJECTCLASS,
- org.eclipse.ecf.remoteservice.Constants.SERVICE_ID,
- RemoteConstants.DISCOVERY_DEFAULT_SERVICE_NAME_PREFIX,
- RemoteConstants.DISCOVERY_NAMING_AUTHORITY,
- RemoteConstants.DISCOVERY_PROTOCOLS,
- RemoteConstants.DISCOVERY_SCOPE,
- RemoteConstants.DISCOVERY_SERVICE_NAME,
- RemoteConstants.ENDPOINT_CONNECTTARGET_ID,
- RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE,
- RemoteConstants.ENDPOINT_IDFILTER_IDS,
- RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER,
- RemoteConstants.SERVICE_EXPORTED_CONTAINER_CONNECT_CONTEXT,
- RemoteConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS,
- RemoteConstants.SERVICE_EXPORTED_CONTAINER_ID,
- RemoteConstants.SERVICE_IMPORTED_VALUETYPE,
- RemoteConstants.DISCOVERY_SERVICE_TYPE });
-
- public static String verifyStringProperty(Map properties, String propName) {
- Object r = properties.get(propName);
- try {
- return (String) r;
- } catch (ClassCastException e) {
- IllegalArgumentException iae = new IllegalArgumentException(
- "property value is not a String: " + propName); //$NON-NLS-1$
- iae.initCause(e);
- throw iae;
- }
- }
-
- public static Object convertToStringPlusValue(List<String> values) {
- if (values == null)
- return null;
- int valuesSize = values.size();
- switch (valuesSize) {
- case 0:
- return null;
- case 1:
- return values.get(0);
- default:
- return values.toArray(new String[valuesSize]);
- }
- }
-
- public static String[] getStringArrayFromPropertyValue(Object value) {
- if (value == null)
- return null;
- else if (value instanceof String)
- return new String[] { (String) value };
- else if (value instanceof String[])
- return (String[]) value;
- else if (value instanceof Collection)
- return (String[]) ((Collection) value).toArray(new String[] {});
- else
- return null;
- }
-
- public static String[] getExportedInterfaces(
- ServiceReference serviceReference,
- Map<String, ?> overridingProperties) {
- Object overridingPropValue = overridingProperties
- .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES);
- if (overridingPropValue != null)
- return getExportedInterfaces(serviceReference, overridingPropValue);
- return getExportedInterfaces(serviceReference);
- }
-
- private static String[] getExportedInterfaces(
- ServiceReference serviceReference, Object propValue) {
- if (propValue == null)
- return null;
- String[] objectClass = (String[]) serviceReference
- .getProperty(org.osgi.framework.Constants.OBJECTCLASS);
- boolean wildcard = propValue.equals("*"); //$NON-NLS-1$
- if (wildcard)
- return objectClass;
- else {
- final String[] stringArrayValue = getStringArrayFromPropertyValue(propValue);
- if (stringArrayValue == null)
- return null;
- else if (stringArrayValue.length == 1
- && stringArrayValue[0].equals("*")) { //$NON-NLS-1$
- // this will support the idiom: new String[] { "*" }
- return objectClass;
- } else
- return stringArrayValue;
- }
- }
-
- public static String[] getExportedInterfaces(
- ServiceReference serviceReference) {
- return getExportedInterfaces(
- serviceReference,
- serviceReference
- .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES));
- }
-
- public static String[] getServiceIntents(ServiceReference serviceReference,
- Map overridingProperties) {
- List results = new ArrayList();
-
- String[] intents = getStringArrayFromPropertyValue(overridingProperties
- .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS));
- if (intents == null) {
- intents = getStringArrayFromPropertyValue(serviceReference
- .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS));
- }
- if (intents != null)
- results.addAll(Arrays.asList(intents));
-
- String[] exportedIntents = getStringArrayFromPropertyValue(overridingProperties
- .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS));
- if (exportedIntents == null) {
- exportedIntents = getStringArrayFromPropertyValue(serviceReference
- .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS));
- }
- if (exportedIntents != null)
- results.addAll(Arrays.asList(exportedIntents));
-
- String[] extraIntents = getStringArrayFromPropertyValue(overridingProperties
- .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA));
- if (extraIntents == null) {
- extraIntents = getStringArrayFromPropertyValue(serviceReference
- .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA));
- }
- if (extraIntents != null)
- results.addAll(Arrays.asList(extraIntents));
-
- if (results.size() == 0)
- return null;
- return (String[]) results.toArray(new String[results.size()]);
- }
-
- public static List getStringPlusProperty(Map properties, String key) {
- Object value = properties.get(key);
- if (value == null) {
- return Collections.EMPTY_LIST;
- }
-
- if (value instanceof String) {
- return Collections.singletonList((String) value);
- }
-
- if (value instanceof String[]) {
- String[] values = (String[]) value;
- List result = new ArrayList(values.length);
- for (int i = 0; i < values.length; i++) {
- if (values[i] != null) {
- result.add(values[i]);
- }
- }
- return Collections.unmodifiableList(result);
- }
-
- if (value instanceof Collection) {
- Collection values = (Collection) value;
- List result = new ArrayList(values.size());
- for (Iterator iter = values.iterator(); iter.hasNext();) {
- Object v = iter.next();
- if (v instanceof String) {
- result.add((String) v);
- }
- }
- return Collections.unmodifiableList(result);
- }
-
- return Collections.EMPTY_LIST;
- }
-
- public static Object getPropertyValue(ServiceReference serviceReference,
- String key) {
- return (serviceReference == null) ? null : serviceReference
- .getProperty(key);
- }
-
- public static Object getPropertyValue(ServiceReference serviceReference,
- Map<String, Object> overridingProperties, String key) {
- Object result = null;
- if (overridingProperties != null)
- result = overridingProperties.get(key);
- return (result != null) ? result : getPropertyValue(serviceReference,
- key);
- }
-
- public static boolean isOSGiProperty(String key) {
- return osgiProperties.contains(key)
- || key.startsWith(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_);
- }
-
- public static boolean isECFProperty(String key) {
- return ecfProperties.contains(key);
- }
-
- // skip dotted (private) properties (R4.2 enterprise spec. table 122.1)
- public static boolean isPrivateProperty(String key) {
- return (key.startsWith(".")); //$NON-NLS-1$
- }
-
- public static boolean isReservedProperty(String key) {
- return isOSGiProperty(key) || isECFProperty(key)
- || isPrivateProperty(key);
- }
-
- public static Map createMapFromDictionary(Dictionary input) {
- if (input == null)
- return null;
- Map result = new HashMap();
- for (Enumeration e = input.keys(); e.hasMoreElements();) {
- Object key = e.nextElement();
- Object val = input.get(key);
- result.put(key, val);
- }
- return result;
- }
-
- public static Dictionary createDictionaryFromMap(Map propMap) {
- if (propMap == null)
- return null;
- Dictionary result = new Properties();
- for (Iterator i = propMap.keySet().iterator(); i.hasNext();) {
- Object key = i.next();
- Object val = propMap.get(key);
- result.put(key, val);
- }
- return result;
- }
-
- public static Long getLongWithDefault(Map props, String key, Long def) {
- Object o = props.get(key);
- if (o instanceof Long)
- return (Long) o;
- if (o instanceof String)
- return Long.valueOf((String) o);
- return def;
- }
-
- public static String[] getStringArrayWithDefault(
- Map<String, Object> properties, String key, String[] def) {
- Object o = properties.get(key);
- if (o instanceof String) {
- return new String[] { (String) o };
- } else if (o instanceof String[]) {
- return (String[]) o;
- } else if (o instanceof List) {
- List l = (List) o;
- return (String[]) l.toArray(new String[l.size()]);
- }
- return def;
- }
-
- public static String getStringWithDefault(Map props, String key, String def) {
- Object o = props.get(key);
- if (o == null || (!(o instanceof String)))
- return def;
- return (String) o;
- }
-
- public static Map<String, Object> copyProperties(
- IRemoteServiceRegistration rsRegistration,
- Map<String, Object> target) {
- String[] keys = rsRegistration.getPropertyKeys();
- for (int i = 0; i < keys.length; i++)
- target.put(keys[i], rsRegistration.getProperty(keys[i]));
- return target;
- }
-
- public static Map<String, Object> copyProperties(
- Map<String, Object> source, Map<String, Object> target) {
- for (String key : source.keySet())
- target.put(key, source.get(key));
- return target;
- }
-
- public static Map<String, Object> copyProperties(
- final ServiceReference serviceReference,
- final Map<String, Object> target) {
- final String[] keys = serviceReference.getPropertyKeys();
- for (int i = 0; i < keys.length; i++) {
- target.put(keys[i], serviceReference.getProperty(keys[i]));
- }
- return target;
- }
-
- public static Map<String, Object> copyNonECFProperties(
- Map<String, Object> source, Map<String, Object> target) {
- for (String key : source.keySet())
- if (!isECFProperty(key))
- target.put(key, source.get(key));
- return target;
- }
-
- public static Map<String, Object> copyNonReservedProperties(
- Map<String, Object> source, Map<String, Object> target) {
- for (String key : source.keySet())
- if (!isReservedProperty(key))
- target.put(key, source.get(key));
- return target;
- }
-
- public static Map<String, Object> copyNonECFProperties(
- ServiceReference serviceReference, Map<String, Object> target) {
- String[] keys = serviceReference.getPropertyKeys();
- for (int i = 0; i < keys.length; i++)
- if (!isECFProperty(keys[i]))
- target.put(keys[i], serviceReference.getProperty(keys[i]));
- return target;
- }
-
- public static Map<String, Object> copyNonReservedProperties(
- ServiceReference serviceReference, Map<String, Object> target) {
- String[] keys = serviceReference.getPropertyKeys();
- for (int i = 0; i < keys.length; i++)
- if (!isReservedProperty(keys[i]))
- target.put(keys[i], serviceReference.getProperty(keys[i]));
- return target;
- }
-
- public static Map<String, Object> copyNonReservedProperties(
- IRemoteServiceReference rsReference, Map<String, Object> target) {
- String[] keys = rsReference.getPropertyKeys();
- for (int i = 0; i < keys.length; i++)
- if (!isReservedProperty(keys[i]))
- target.put(keys[i], rsReference.getProperty(keys[i]));
- return target;
- }
-
- public static Map mergeProperties(final ServiceReference serviceReference,
- final Map<String, Object> overrides) {
- return mergeProperties(copyProperties(serviceReference, new HashMap()),
- overrides);
- }
-
- public static Map mergeProperties(final Map<String, Object> source,
- final Map<String, Object> overrides) {
-
- // copy to target from service reference
- final Map target = copyProperties(source, new TreeMap<String, Object>(
- String.CASE_INSENSITIVE_ORDER));
-
- // now do actual merge
- final Set<String> keySet = overrides.keySet();
- for (final String key : keySet) {
- // skip keys not allowed
- if (Constants.SERVICE_ID.equals(key)
- || Constants.OBJECTCLASS.equals(key)) {
- continue;
- }
- target.remove(key.toLowerCase());
- target.put(key.toLowerCase(), overrides.get(key));
- }
-
- return target;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.internal.osgi.services.remoteserviceadmin;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeMap;
+
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants;
+import org.eclipse.ecf.remoteservice.IRemoteServiceReference;
+import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
+
+public class PropertiesUtil {
+
+ protected static final List osgiProperties = Arrays
+ .asList(new String[] {
+ // OSGi properties
+ org.osgi.framework.Constants.OBJECTCLASS,
+ org.osgi.framework.Constants.SERVICE_ID,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_CONFIGS,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS });
+
+ protected static final List ecfProperties = Arrays.asList(new String[] {
+ // ECF properties
+ org.eclipse.ecf.remoteservice.Constants.OBJECTCLASS,
+ org.eclipse.ecf.remoteservice.Constants.SERVICE_ID,
+ RemoteConstants.DISCOVERY_DEFAULT_SERVICE_NAME_PREFIX,
+ RemoteConstants.DISCOVERY_NAMING_AUTHORITY,
+ RemoteConstants.DISCOVERY_PROTOCOLS,
+ RemoteConstants.DISCOVERY_SCOPE,
+ RemoteConstants.DISCOVERY_SERVICE_NAME,
+ RemoteConstants.ENDPOINT_CONNECTTARGET_ID,
+ RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE,
+ RemoteConstants.ENDPOINT_IDFILTER_IDS,
+ RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER,
+ RemoteConstants.SERVICE_EXPORTED_CONTAINER_CONNECT_CONTEXT,
+ RemoteConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS,
+ RemoteConstants.SERVICE_EXPORTED_CONTAINER_ID,
+ RemoteConstants.SERVICE_IMPORTED_VALUETYPE,
+ RemoteConstants.DISCOVERY_SERVICE_TYPE });
+
+ public static String verifyStringProperty(Map properties, String propName) {
+ Object r = properties.get(propName);
+ try {
+ return (String) r;
+ } catch (ClassCastException e) {
+ IllegalArgumentException iae = new IllegalArgumentException(
+ "property value is not a String: " + propName); //$NON-NLS-1$
+ iae.initCause(e);
+ throw iae;
+ }
+ }
+
+ public static Object convertToStringPlusValue(List<String> values) {
+ if (values == null)
+ return null;
+ int valuesSize = values.size();
+ switch (valuesSize) {
+ case 0:
+ return null;
+ case 1:
+ return values.get(0);
+ default:
+ return values.toArray(new String[valuesSize]);
+ }
+ }
+
+ public static String[] getStringArrayFromPropertyValue(Object value) {
+ if (value == null)
+ return null;
+ else if (value instanceof String)
+ return new String[] { (String) value };
+ else if (value instanceof String[])
+ return (String[]) value;
+ else if (value instanceof Collection)
+ return (String[]) ((Collection) value).toArray(new String[] {});
+ else
+ return null;
+ }
+
+ public static String[] getExportedInterfaces(
+ ServiceReference serviceReference,
+ Map<String, ?> overridingProperties) {
+ Object overridingPropValue = overridingProperties
+ .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES);
+ if (overridingPropValue != null)
+ return getExportedInterfaces(serviceReference, overridingPropValue);
+ return getExportedInterfaces(serviceReference);
+ }
+
+ private static String[] getExportedInterfaces(
+ ServiceReference serviceReference, Object propValue) {
+ if (propValue == null)
+ return null;
+ String[] objectClass = (String[]) serviceReference
+ .getProperty(org.osgi.framework.Constants.OBJECTCLASS);
+ boolean wildcard = propValue.equals("*"); //$NON-NLS-1$
+ if (wildcard)
+ return objectClass;
+ else {
+ final String[] stringArrayValue = getStringArrayFromPropertyValue(propValue);
+ if (stringArrayValue == null)
+ return null;
+ else if (stringArrayValue.length == 1
+ && stringArrayValue[0].equals("*")) { //$NON-NLS-1$
+ // this will support the idiom: new String[] { "*" }
+ return objectClass;
+ } else
+ return stringArrayValue;
+ }
+ }
+
+ public static String[] getExportedInterfaces(
+ ServiceReference serviceReference) {
+ return getExportedInterfaces(
+ serviceReference,
+ serviceReference
+ .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES));
+ }
+
+ public static String[] getServiceIntents(ServiceReference serviceReference,
+ Map overridingProperties) {
+ List results = new ArrayList();
+
+ String[] intents = getStringArrayFromPropertyValue(overridingProperties
+ .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS));
+ if (intents == null) {
+ intents = getStringArrayFromPropertyValue(serviceReference
+ .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS));
+ }
+ if (intents != null)
+ results.addAll(Arrays.asList(intents));
+
+ String[] exportedIntents = getStringArrayFromPropertyValue(overridingProperties
+ .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS));
+ if (exportedIntents == null) {
+ exportedIntents = getStringArrayFromPropertyValue(serviceReference
+ .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS));
+ }
+ if (exportedIntents != null)
+ results.addAll(Arrays.asList(exportedIntents));
+
+ String[] extraIntents = getStringArrayFromPropertyValue(overridingProperties
+ .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA));
+ if (extraIntents == null) {
+ extraIntents = getStringArrayFromPropertyValue(serviceReference
+ .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA));
+ }
+ if (extraIntents != null)
+ results.addAll(Arrays.asList(extraIntents));
+
+ if (results.size() == 0)
+ return null;
+ return (String[]) results.toArray(new String[results.size()]);
+ }
+
+ public static List getStringPlusProperty(Map properties, String key) {
+ Object value = properties.get(key);
+ if (value == null) {
+ return Collections.EMPTY_LIST;
+ }
+
+ if (value instanceof String) {
+ return Collections.singletonList((String) value);
+ }
+
+ if (value instanceof String[]) {
+ String[] values = (String[]) value;
+ List result = new ArrayList(values.length);
+ for (int i = 0; i < values.length; i++) {
+ if (values[i] != null) {
+ result.add(values[i]);
+ }
+ }
+ return Collections.unmodifiableList(result);
+ }
+
+ if (value instanceof Collection) {
+ Collection values = (Collection) value;
+ List result = new ArrayList(values.size());
+ for (Iterator iter = values.iterator(); iter.hasNext();) {
+ Object v = iter.next();
+ if (v instanceof String) {
+ result.add((String) v);
+ }
+ }
+ return Collections.unmodifiableList(result);
+ }
+
+ return Collections.EMPTY_LIST;
+ }
+
+ public static Object getPropertyValue(ServiceReference serviceReference,
+ String key) {
+ return (serviceReference == null) ? null : serviceReference
+ .getProperty(key);
+ }
+
+ public static Object getPropertyValue(ServiceReference serviceReference,
+ Map<String, Object> overridingProperties, String key) {
+ Object result = null;
+ if (overridingProperties != null)
+ result = overridingProperties.get(key);
+ return (result != null) ? result : getPropertyValue(serviceReference,
+ key);
+ }
+
+ public static boolean isOSGiProperty(String key) {
+ return osgiProperties.contains(key)
+ || key.startsWith(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_);
+ }
+
+ public static boolean isECFProperty(String key) {
+ return ecfProperties.contains(key);
+ }
+
+ // skip dotted (private) properties (R4.2 enterprise spec. table 122.1)
+ public static boolean isPrivateProperty(String key) {
+ return (key.startsWith(".")); //$NON-NLS-1$
+ }
+
+ public static boolean isReservedProperty(String key) {
+ return isOSGiProperty(key) || isECFProperty(key)
+ || isPrivateProperty(key);
+ }
+
+ public static Map createMapFromDictionary(Dictionary input) {
+ if (input == null)
+ return null;
+ Map result = new HashMap();
+ for (Enumeration e = input.keys(); e.hasMoreElements();) {
+ Object key = e.nextElement();
+ Object val = input.get(key);
+ result.put(key, val);
+ }
+ return result;
+ }
+
+ public static Dictionary createDictionaryFromMap(Map propMap) {
+ if (propMap == null)
+ return null;
+ Dictionary result = new Properties();
+ for (Iterator i = propMap.keySet().iterator(); i.hasNext();) {
+ Object key = i.next();
+ Object val = propMap.get(key);
+ result.put(key, val);
+ }
+ return result;
+ }
+
+ public static Long getLongWithDefault(Map props, String key, Long def) {
+ Object o = props.get(key);
+ if (o instanceof Long)
+ return (Long) o;
+ if (o instanceof String)
+ return Long.valueOf((String) o);
+ return def;
+ }
+
+ public static String[] getStringArrayWithDefault(
+ Map<String, Object> properties, String key, String[] def) {
+ Object o = properties.get(key);
+ if (o instanceof String) {
+ return new String[] { (String) o };
+ } else if (o instanceof String[]) {
+ return (String[]) o;
+ } else if (o instanceof List) {
+ List l = (List) o;
+ return (String[]) l.toArray(new String[l.size()]);
+ }
+ return def;
+ }
+
+ public static String getStringWithDefault(Map props, String key, String def) {
+ Object o = props.get(key);
+ if (o == null || (!(o instanceof String)))
+ return def;
+ return (String) o;
+ }
+
+ public static Map<String, Object> copyProperties(
+ IRemoteServiceRegistration rsRegistration,
+ Map<String, Object> target) {
+ String[] keys = rsRegistration.getPropertyKeys();
+ for (int i = 0; i < keys.length; i++)
+ target.put(keys[i], rsRegistration.getProperty(keys[i]));
+ return target;
+ }
+
+ public static Map<String, Object> copyProperties(
+ Map<String, Object> source, Map<String, Object> target) {
+ for (String key : source.keySet())
+ target.put(key, source.get(key));
+ return target;
+ }
+
+ public static Map<String, Object> copyProperties(
+ final ServiceReference serviceReference,
+ final Map<String, Object> target) {
+ final String[] keys = serviceReference.getPropertyKeys();
+ for (int i = 0; i < keys.length; i++) {
+ target.put(keys[i], serviceReference.getProperty(keys[i]));
+ }
+ return target;
+ }
+
+ public static Map<String, Object> copyNonECFProperties(
+ Map<String, Object> source, Map<String, Object> target) {
+ for (String key : source.keySet())
+ if (!isECFProperty(key))
+ target.put(key, source.get(key));
+ return target;
+ }
+
+ public static Map<String, Object> copyNonReservedProperties(
+ Map<String, Object> source, Map<String, Object> target) {
+ for (String key : source.keySet())
+ if (!isReservedProperty(key))
+ target.put(key, source.get(key));
+ return target;
+ }
+
+ public static Map<String, Object> copyNonECFProperties(
+ ServiceReference serviceReference, Map<String, Object> target) {
+ String[] keys = serviceReference.getPropertyKeys();
+ for (int i = 0; i < keys.length; i++)
+ if (!isECFProperty(keys[i]))
+ target.put(keys[i], serviceReference.getProperty(keys[i]));
+ return target;
+ }
+
+ public static Map<String, Object> copyNonReservedProperties(
+ ServiceReference serviceReference, Map<String, Object> target) {
+ String[] keys = serviceReference.getPropertyKeys();
+ for (int i = 0; i < keys.length; i++)
+ if (!isReservedProperty(keys[i]))
+ target.put(keys[i], serviceReference.getProperty(keys[i]));
+ return target;
+ }
+
+ public static Map<String, Object> copyNonReservedProperties(
+ IRemoteServiceReference rsReference, Map<String, Object> target) {
+ String[] keys = rsReference.getPropertyKeys();
+ for (int i = 0; i < keys.length; i++)
+ if (!isReservedProperty(keys[i]))
+ target.put(keys[i], rsReference.getProperty(keys[i]));
+ return target;
+ }
+
+ public static Map mergeProperties(final ServiceReference serviceReference,
+ final Map<String, Object> overrides) {
+ return mergeProperties(copyProperties(serviceReference, new HashMap()),
+ overrides);
+ }
+
+ public static Map mergeProperties(final Map<String, Object> source,
+ final Map<String, Object> overrides) {
+
+ // copy to target from service reference
+ final Map target = copyProperties(source, new TreeMap<String, Object>(
+ String.CASE_INSENSITIVE_ORDER));
+
+ // now do actual merge
+ final Set<String> keySet = overrides.keySet();
+ for (final String key : keySet) {
+ // skip keys not allowed
+ if (Constants.SERVICE_ID.equals(key)
+ || Constants.OBJECTCLASS.equals(key)) {
+ continue;
+ }
+ target.remove(key.toLowerCase());
+ target.put(key.toLowerCase(), overrides.get(key));
+ }
+
+ return target;
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractConsumerContainerSelector.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractConsumerContainerSelector.java
index 19f8b6f85..ae0b7f29a 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractConsumerContainerSelector.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractConsumerContainerSelector.java
@@ -1,226 +1,226 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.Arrays;
-import java.util.Dictionary;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.ecf.core.ContainerConnectException;
-import org.eclipse.ecf.core.ContainerCreateException;
-import org.eclipse.ecf.core.ContainerTypeDescription;
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.IContainerFactory;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
-import org.eclipse.ecf.remoteservice.RemoteServiceContainer;
-
-/**
- * Abstract superclass for consumer container selectors...i.e. implementers of
- * {@link IConsumerContainerSelector}).
- *
- */
-public class AbstractConsumerContainerSelector extends
- AbstractContainerSelector {
-
- protected IRemoteServiceContainer selectExistingConsumerContainer(
- ID endpointID, String[] remoteSupportedConfigs, ID connectTargetID) {
-
- // Get all containers available
- IContainer[] containers = getContainers();
- // If none then return null
- if (containers == null)
- return null;
-
- for (int i = 0; i < containers.length; i++) {
- // Do *not* include containers with same ID as endpointID
- if (matchContainerID(containers[i], endpointID))
- continue;
-
- IRemoteServiceContainerAdapter adapter = hasRemoteServiceContainerAdapter(containers[i]);
- // Container must have adapter
- if (adapter != null
- // And it must match the connect namespace
- && matchConnectNamespace(containers[i], endpointID,
- connectTargetID)
- // and it must match the configs
- && matchSupportedConfigs(containers[i],
- remoteSupportedConfigs)
- // and the container should either not be connected or
- // already be connected to the desired endpointID
- && matchNotConnected(containers[i], endpointID,
- connectTargetID)) {
- trace("selectExistingConsumerContainer", //$NON-NLS-1$
- "MATCH of existing remote service container id=" //$NON-NLS-1$
- + containers[i].getID()
- + " endpointID=" //$NON-NLS-1$
- + endpointID
- + " remoteSupportedConfigs=" //$NON-NLS-1$
- + ((remoteSupportedConfigs == null) ? "[]" //$NON-NLS-1$
- : Arrays.asList(remoteSupportedConfigs)
- .toString()));
- return new RemoteServiceContainer(containers[i], adapter);
- } else {
- trace("selectExistingConsumerContainer", //$NON-NLS-1$
- "No match of existing remote service container id=" //$NON-NLS-1$
- + containers[i].getID()
- + " endpointID=" //$NON-NLS-1$
- + endpointID
- + " remoteSupportedConfigs=" //$NON-NLS-1$
- + ((remoteSupportedConfigs == null) ? "[]" //$NON-NLS-1$
- : Arrays.asList(remoteSupportedConfigs)
- .toString()));
- }
- }
- return null;
- }
-
- protected boolean matchNotConnected(IContainer container, ID endpointID,
- ID connectTargetID) {
- // if the container is not connected, OR it's connected to the desired
- // endpointID already then we've got a match
- ID connectedID = container.getConnectedID();
- if (connectedID == null || connectedID.equals(endpointID)
- || connectedID.equals(connectTargetID))
- return true;
- return false;
- }
-
- protected boolean matchSupportedConfigs(IContainer container,
- String[] remoteSupportedConfigs) {
- if (remoteSupportedConfigs == null)
- return false;
- ContainerTypeDescription description = getContainerTypeDescription(container);
- if (description == null)
- return false;
- return description.getImportedConfigs(remoteSupportedConfigs) != null;
- }
-
- protected void connectContainerToTarget(
- IRemoteServiceContainer rsContainer, ID connectTargetID) {
- if (connectTargetID == null)
- return;
- IContainer container = rsContainer.getContainer();
- ID connectedID = container.getConnectedID();
- // Only connect the container to the connect target when
- // it's not already connected
- if (connectedID == null) {
- // connect to target
- try {
- connectContainer(container, connectTargetID,
- getConnectContext(container, connectTargetID));
- } catch (ContainerConnectException e) {
- logException("Exception connecting container id=" //$NON-NLS-1$
- + container.getID() + " to connectTargetID=" //$NON-NLS-1$
- + connectTargetID, e);
- }
- }
- }
-
- protected IConnectContext getConnectContext(IContainer container,
- ID connectTargetID) {
- return null;
- }
-
- protected IRemoteServiceContainer createAndConfigureConsumerContainer(
- String[] remoteSupportedConfigs, Map remoteExportedProperties)
- throws SelectContainerException {
- if (remoteSupportedConfigs == null
- || remoteSupportedConfigs.length == 0)
- return null;
- // Get container factory
- IContainerFactory containerFactory = getContainerFactory();
- if (containerFactory == null)
- return null;
- // Get all container type descriptions from factory
- List containerTypeDescriptions = containerFactory.getDescriptions();
- if (containerTypeDescriptions == null)
- return null;
-
- // Go through all containerTypeDescriptions
- for (Iterator i = containerTypeDescriptions.iterator(); i.hasNext();) {
- ContainerTypeDescription desc = (ContainerTypeDescription) i.next();
- // For each one, get the localImportedConfigs for the remote
- // supported configs
- String[] localImportedConfigs = desc
- .getImportedConfigs(remoteSupportedConfigs);
- // If their are some local imported configs for this description
- if (localImportedConfigs != null) {
- // Then get the imported config properties
- Dictionary importedConfigProperties = desc
- .getPropertiesForImportedConfigs(
- localImportedConfigs,
- PropertiesUtil
- .createDictionaryFromMap(remoteExportedProperties));
- // Then select a specific local imported config (typically the
- // first on in the array)
- String selectedConfig = selectLocalImportedConfig(
- localImportedConfigs, importedConfigProperties);
- // If we have one to use, then create the container
- if (selectedConfig != null) {
- IRemoteServiceContainer rsContainer = createContainer(
- desc,
- selectedConfig,
- PropertiesUtil
- .createMapFromDictionary(importedConfigProperties));
- if (rsContainer != null) {
- trace("createAndConfigureProxyContainers", //$NON-NLS-1$
- "created new proxy container with config type=" //$NON-NLS-1$
- + selectedConfig + " and id=" //$NON-NLS-1$
- + rsContainer.getContainer().getID());
- return rsContainer;
- }
- }
- }
- }
- return null;
- }
-
- /**
- * @since 2.0
- */
- protected IRemoteServiceContainer createContainer(
- ContainerTypeDescription containerTypeDescription,
- String containerTypeDescriptionName, Map properties)
- throws SelectContainerException {
- try {
- IContainer container = (properties == null) ? getContainerFactory()
- .createContainer(containerTypeDescriptionName)
- : getContainerFactory().createContainer(
- containerTypeDescriptionName, properties);
- IRemoteServiceContainerAdapter adapter = (IRemoteServiceContainerAdapter) container
- .getAdapter(IRemoteServiceContainerAdapter.class);
- if (adapter == null)
- throw new SelectContainerException(
- "Container does not implement IRemoteServiceContainerAdapter", null, containerTypeDescription); //$NON-NLS-1$
- return new RemoteServiceContainer(container);
- } catch (ContainerCreateException e) {
- String message = "Cannot create container with container type description name=" //$NON-NLS-1$
- + containerTypeDescriptionName;
- logException(message, e);
- throw new SelectContainerException(message, e,
- containerTypeDescription);
- }
- }
-
- protected String selectLocalImportedConfig(String[] localConfigTypes,
- Dictionary importedConfigProperties) {
- if (localConfigTypes == null || localConfigTypes.length == 0)
- return null;
- // By default, we'll select the first config to use...
- return localConfigTypes[0];
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.Arrays;
+import java.util.Dictionary;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.ecf.core.ContainerConnectException;
+import org.eclipse.ecf.core.ContainerCreateException;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.IContainerFactory;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
+import org.eclipse.ecf.remoteservice.RemoteServiceContainer;
+
+/**
+ * Abstract superclass for consumer container selectors...i.e. implementers of
+ * {@link IConsumerContainerSelector}).
+ *
+ */
+public class AbstractConsumerContainerSelector extends
+ AbstractContainerSelector {
+
+ protected IRemoteServiceContainer selectExistingConsumerContainer(
+ ID endpointID, String[] remoteSupportedConfigs, ID connectTargetID) {
+
+ // Get all containers available
+ IContainer[] containers = getContainers();
+ // If none then return null
+ if (containers == null)
+ return null;
+
+ for (int i = 0; i < containers.length; i++) {
+ // Do *not* include containers with same ID as endpointID
+ if (matchContainerID(containers[i], endpointID))
+ continue;
+
+ IRemoteServiceContainerAdapter adapter = hasRemoteServiceContainerAdapter(containers[i]);
+ // Container must have adapter
+ if (adapter != null
+ // And it must match the connect namespace
+ && matchConnectNamespace(containers[i], endpointID,
+ connectTargetID)
+ // and it must match the configs
+ && matchSupportedConfigs(containers[i],
+ remoteSupportedConfigs)
+ // and the container should either not be connected or
+ // already be connected to the desired endpointID
+ && matchNotConnected(containers[i], endpointID,
+ connectTargetID)) {
+ trace("selectExistingConsumerContainer", //$NON-NLS-1$
+ "MATCH of existing remote service container id=" //$NON-NLS-1$
+ + containers[i].getID()
+ + " endpointID=" //$NON-NLS-1$
+ + endpointID
+ + " remoteSupportedConfigs=" //$NON-NLS-1$
+ + ((remoteSupportedConfigs == null) ? "[]" //$NON-NLS-1$
+ : Arrays.asList(remoteSupportedConfigs)
+ .toString()));
+ return new RemoteServiceContainer(containers[i], adapter);
+ } else {
+ trace("selectExistingConsumerContainer", //$NON-NLS-1$
+ "No match of existing remote service container id=" //$NON-NLS-1$
+ + containers[i].getID()
+ + " endpointID=" //$NON-NLS-1$
+ + endpointID
+ + " remoteSupportedConfigs=" //$NON-NLS-1$
+ + ((remoteSupportedConfigs == null) ? "[]" //$NON-NLS-1$
+ : Arrays.asList(remoteSupportedConfigs)
+ .toString()));
+ }
+ }
+ return null;
+ }
+
+ protected boolean matchNotConnected(IContainer container, ID endpointID,
+ ID connectTargetID) {
+ // if the container is not connected, OR it's connected to the desired
+ // endpointID already then we've got a match
+ ID connectedID = container.getConnectedID();
+ if (connectedID == null || connectedID.equals(endpointID)
+ || connectedID.equals(connectTargetID))
+ return true;
+ return false;
+ }
+
+ protected boolean matchSupportedConfigs(IContainer container,
+ String[] remoteSupportedConfigs) {
+ if (remoteSupportedConfigs == null)
+ return false;
+ ContainerTypeDescription description = getContainerTypeDescription(container);
+ if (description == null)
+ return false;
+ return description.getImportedConfigs(remoteSupportedConfigs) != null;
+ }
+
+ protected void connectContainerToTarget(
+ IRemoteServiceContainer rsContainer, ID connectTargetID) {
+ if (connectTargetID == null)
+ return;
+ IContainer container = rsContainer.getContainer();
+ ID connectedID = container.getConnectedID();
+ // Only connect the container to the connect target when
+ // it's not already connected
+ if (connectedID == null) {
+ // connect to target
+ try {
+ connectContainer(container, connectTargetID,
+ getConnectContext(container, connectTargetID));
+ } catch (ContainerConnectException e) {
+ logException("Exception connecting container id=" //$NON-NLS-1$
+ + container.getID() + " to connectTargetID=" //$NON-NLS-1$
+ + connectTargetID, e);
+ }
+ }
+ }
+
+ protected IConnectContext getConnectContext(IContainer container,
+ ID connectTargetID) {
+ return null;
+ }
+
+ protected IRemoteServiceContainer createAndConfigureConsumerContainer(
+ String[] remoteSupportedConfigs, Map remoteExportedProperties)
+ throws SelectContainerException {
+ if (remoteSupportedConfigs == null
+ || remoteSupportedConfigs.length == 0)
+ return null;
+ // Get container factory
+ IContainerFactory containerFactory = getContainerFactory();
+ if (containerFactory == null)
+ return null;
+ // Get all container type descriptions from factory
+ List containerTypeDescriptions = containerFactory.getDescriptions();
+ if (containerTypeDescriptions == null)
+ return null;
+
+ // Go through all containerTypeDescriptions
+ for (Iterator i = containerTypeDescriptions.iterator(); i.hasNext();) {
+ ContainerTypeDescription desc = (ContainerTypeDescription) i.next();
+ // For each one, get the localImportedConfigs for the remote
+ // supported configs
+ String[] localImportedConfigs = desc
+ .getImportedConfigs(remoteSupportedConfigs);
+ // If their are some local imported configs for this description
+ if (localImportedConfigs != null) {
+ // Then get the imported config properties
+ Dictionary importedConfigProperties = desc
+ .getPropertiesForImportedConfigs(
+ localImportedConfigs,
+ PropertiesUtil
+ .createDictionaryFromMap(remoteExportedProperties));
+ // Then select a specific local imported config (typically the
+ // first on in the array)
+ String selectedConfig = selectLocalImportedConfig(
+ localImportedConfigs, importedConfigProperties);
+ // If we have one to use, then create the container
+ if (selectedConfig != null) {
+ IRemoteServiceContainer rsContainer = createContainer(
+ desc,
+ selectedConfig,
+ PropertiesUtil
+ .createMapFromDictionary(importedConfigProperties));
+ if (rsContainer != null) {
+ trace("createAndConfigureProxyContainers", //$NON-NLS-1$
+ "created new proxy container with config type=" //$NON-NLS-1$
+ + selectedConfig + " and id=" //$NON-NLS-1$
+ + rsContainer.getContainer().getID());
+ return rsContainer;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected IRemoteServiceContainer createContainer(
+ ContainerTypeDescription containerTypeDescription,
+ String containerTypeDescriptionName, Map properties)
+ throws SelectContainerException {
+ try {
+ IContainer container = (properties == null) ? getContainerFactory()
+ .createContainer(containerTypeDescriptionName)
+ : getContainerFactory().createContainer(
+ containerTypeDescriptionName, properties);
+ IRemoteServiceContainerAdapter adapter = (IRemoteServiceContainerAdapter) container
+ .getAdapter(IRemoteServiceContainerAdapter.class);
+ if (adapter == null)
+ throw new SelectContainerException(
+ "Container does not implement IRemoteServiceContainerAdapter", null, containerTypeDescription); //$NON-NLS-1$
+ return new RemoteServiceContainer(container);
+ } catch (ContainerCreateException e) {
+ String message = "Cannot create container with container type description name=" //$NON-NLS-1$
+ + containerTypeDescriptionName;
+ logException(message, e);
+ throw new SelectContainerException(message, e,
+ containerTypeDescription);
+ }
+ }
+
+ protected String selectLocalImportedConfig(String[] localConfigTypes,
+ Dictionary importedConfigProperties) {
+ if (localConfigTypes == null || localConfigTypes.length == 0)
+ return null;
+ // By default, we'll select the first config to use...
+ return localConfigTypes[0];
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractContainerSelector.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractContainerSelector.java
index 08381168c..c5df88790 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractContainerSelector.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractContainerSelector.java
@@ -1,255 +1,255 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.ContainerConnectException;
-import org.eclipse.ecf.core.ContainerCreateException;
-import org.eclipse.ecf.core.ContainerTypeDescription;
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.IContainerFactory;
-import org.eclipse.ecf.core.IContainerManager;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.IDUtil;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
-import org.eclipse.ecf.remoteservice.RemoteServiceContainer;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Abstract superclass for both host and consumer container selectors...i.e.
- * implementers of {@link IHostContainerSelector} or
- * {@link IConsumerContainerSelector}.
- *
- */
-public abstract class AbstractContainerSelector {
-
- public static final IRemoteServiceContainer[] EMPTY_REMOTE_SERVICE_CONTAINER_ARRAY = new IRemoteServiceContainer[] {};
-
- protected IContainerManager getContainerManager() {
- return Activator.getDefault().getContainerManager();
- }
-
- protected IContainerFactory getContainerFactory() {
- return getContainerManager().getContainerFactory();
- }
-
- protected ContainerTypeDescription[] getContainerTypeDescriptions() {
- return (ContainerTypeDescription[]) getContainerFactory()
- .getDescriptions().toArray(new ContainerTypeDescription[] {});
- }
-
- protected IContainer[] getContainers() {
- return getContainerManager().getAllContainers();
- }
-
- protected IRemoteServiceContainerAdapter hasRemoteServiceContainerAdapter(
- IContainer container) {
- return (IRemoteServiceContainerAdapter) container
- .getAdapter(IRemoteServiceContainerAdapter.class);
- }
-
- protected ContainerTypeDescription getContainerTypeDescription(
- IContainer container) {
- return getContainerManager().getContainerTypeDescription(
- container.getID());
- }
-
- protected IRemoteServiceContainer[] getRemoteServiceContainers(
- IContainer[] containers) {
- List results = new ArrayList();
- for (int i = 0; i < containers.length; i++) {
- IRemoteServiceContainerAdapter adapter = hasRemoteServiceContainerAdapter(containers[i]);
- if (adapter != null)
- results.add(new RemoteServiceContainer(containers[i], adapter));
- }
- return (IRemoteServiceContainer[]) results
- .toArray(new IRemoteServiceContainer[] {});
- }
-
- protected boolean includeContainerWithConnectNamespace(
- IContainer container, String connectNamespaceName) {
- if (connectNamespaceName != null) {
- Namespace namespace = container.getConnectNamespace();
- if (namespace != null
- && namespace.getName().equals(connectNamespaceName))
- return true;
- }
- return false;
- }
-
- protected void connectContainer(IContainer container, ID connectTargetID,
- IConnectContext connectContext) throws ContainerConnectException {
- trace("connectContainer", "Connecting container=" + container.getID() //$NON-NLS-1$ //$NON-NLS-2$
- + " to connectTargetID=" + connectTargetID); //$NON-NLS-1$
- container.connect(connectTargetID, connectContext);
- }
-
- protected String[] getSupportedConfigTypes(
- ContainerTypeDescription containerTypeDescription) {
- String[] supportedConfigs = containerTypeDescription
- .getSupportedConfigs();
- return (supportedConfigs == null) ? new String[0] : supportedConfigs;
- }
-
- protected String[] getSupportedIntents(
- ContainerTypeDescription containerTypeDescription) {
- String[] supportedIntents = containerTypeDescription
- .getSupportedIntents();
- return (supportedIntents == null) ? new String[0] : supportedIntents;
- }
-
- /**
- * @since 2.0
- */
- protected IContainer createContainer(ServiceReference serviceReference,
- Map<String, Object> properties,
- ContainerTypeDescription containerTypeDescription)
- throws SelectContainerException {
-
- IContainerFactory containerFactory = getContainerFactory();
-
- final Object containerFactoryArguments = getContainerFactoryArguments(
- serviceReference, properties, containerTypeDescription);
-
- try {
- if (containerFactoryArguments instanceof String) {
- return containerFactory.createContainer(
- containerTypeDescription,
- (String) containerFactoryArguments);
- } else if (containerFactoryArguments instanceof ID) {
- return containerFactory.createContainer(
- containerTypeDescription,
- (ID) containerFactoryArguments);
- } else if (containerFactoryArguments instanceof Object[]) {
- return containerFactory.createContainer(
- containerTypeDescription,
- (Object[]) containerFactoryArguments);
- } else if (containerFactoryArguments instanceof Map) {
- return containerFactory.createContainer(
- containerTypeDescription,
- (Map) containerFactoryArguments);
- }
- return containerFactory.createContainer(containerTypeDescription);
- } catch (ContainerCreateException e) {
- throw new SelectContainerException(
- "Exception creating or configuring container", e, //$NON-NLS-1$
- containerTypeDescription);
- }
- }
-
- /**
- * @since 2.0
- */
- protected Object getContainerFactoryArguments(
- ServiceReference serviceReference, Map<String, Object> properties,
- ContainerTypeDescription containerTypeDescription) {
- // If the RemoteConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS is set
- // than use it.
- final Object containerFactoryArguments = properties
- .get(RemoteConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS);
- if (containerFactoryArguments != null)
- return containerFactoryArguments;
-
- String exportedConfig = containerTypeDescription.getName();
- // If not, then we look through the properties that start with
- // <containerTypeDescription.name>.
- Map<String, Object> results = new HashMap<String, Object>();
- for (String origKey : properties.keySet()) {
- if (origKey.startsWith(exportedConfig + ".")) { //$NON-NLS-1$
- String key = origKey.substring(exportedConfig.length() + 1);
- if (key != null)
- results.put(key, properties.get(origKey));
- }
- }
- if (results.size() == 0)
- return null;
- return results;
- }
-
- protected ID createTargetID(IContainer container, String target) {
- return IDUtil.createID(container.getConnectNamespace(), target);
- }
-
- protected void disconnectContainer(IContainer container) {
- container.disconnect();
- }
-
- /**
- * @since 2.0
- */
- protected IConnectContext createConnectContext(
- ServiceReference serviceReference, Map<String, Object> properties,
- IContainer container, Object context) {
- if (context instanceof IConnectContext)
- return (IConnectContext) context;
- return null;
- }
-
- protected void logException(String string, Exception e) {
- Activator.getDefault().log(
- new Status(IStatus.ERROR, Activator.PLUGIN_ID, string, e));
- }
-
- protected void trace(String methodName, String message) {
- LogUtility.trace(methodName, DebugOptions.CONTAINER_SELECTOR,
- this.getClass(), message);
- }
-
- protected void traceException(String methodName, String message, Throwable t) {
- LogUtility.traceException(methodName, DebugOptions.EXCEPTIONS_CATCHING,
- this.getClass(), message, t);
- }
-
- protected void logError(String methodName, String message, Throwable t) {
- LogUtility.logError(methodName, DebugOptions.CONTAINER_SELECTOR,
- this.getClass(), message, t);
- }
-
- protected void logError(String methodName, String message) {
- LogUtility.logError(methodName, DebugOptions.CONTAINER_SELECTOR,
- this.getClass(), message);
- }
-
- protected void logWarning(String methodName, String message) {
- LogUtility.logWarning(methodName, DebugOptions.CONTAINER_SELECTOR,
- this.getClass(), message);
- }
-
- protected boolean matchConnectNamespace(IContainer container,
- ID endpointID, ID connectTargetID) {
- if (connectTargetID != null) {
- return connectTargetID.getNamespace().getName()
- .equals(container.getConnectNamespace().getName());
- }
- if (endpointID == null)
- return false;
- return endpointID.getNamespace().getName()
- .equals(container.getConnectNamespace().getName());
- }
-
- protected boolean matchContainerID(IContainer container, ID endpointID) {
- if (endpointID == null)
- return false;
- return endpointID.equals(container.getID());
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.core.ContainerConnectException;
+import org.eclipse.ecf.core.ContainerCreateException;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.IContainerFactory;
+import org.eclipse.ecf.core.IContainerManager;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.IDUtil;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
+import org.eclipse.ecf.remoteservice.RemoteServiceContainer;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Abstract superclass for both host and consumer container selectors...i.e.
+ * implementers of {@link IHostContainerSelector} or
+ * {@link IConsumerContainerSelector}.
+ *
+ */
+public abstract class AbstractContainerSelector {
+
+ public static final IRemoteServiceContainer[] EMPTY_REMOTE_SERVICE_CONTAINER_ARRAY = new IRemoteServiceContainer[] {};
+
+ protected IContainerManager getContainerManager() {
+ return Activator.getDefault().getContainerManager();
+ }
+
+ protected IContainerFactory getContainerFactory() {
+ return getContainerManager().getContainerFactory();
+ }
+
+ protected ContainerTypeDescription[] getContainerTypeDescriptions() {
+ return (ContainerTypeDescription[]) getContainerFactory()
+ .getDescriptions().toArray(new ContainerTypeDescription[] {});
+ }
+
+ protected IContainer[] getContainers() {
+ return getContainerManager().getAllContainers();
+ }
+
+ protected IRemoteServiceContainerAdapter hasRemoteServiceContainerAdapter(
+ IContainer container) {
+ return (IRemoteServiceContainerAdapter) container
+ .getAdapter(IRemoteServiceContainerAdapter.class);
+ }
+
+ protected ContainerTypeDescription getContainerTypeDescription(
+ IContainer container) {
+ return getContainerManager().getContainerTypeDescription(
+ container.getID());
+ }
+
+ protected IRemoteServiceContainer[] getRemoteServiceContainers(
+ IContainer[] containers) {
+ List results = new ArrayList();
+ for (int i = 0; i < containers.length; i++) {
+ IRemoteServiceContainerAdapter adapter = hasRemoteServiceContainerAdapter(containers[i]);
+ if (adapter != null)
+ results.add(new RemoteServiceContainer(containers[i], adapter));
+ }
+ return (IRemoteServiceContainer[]) results
+ .toArray(new IRemoteServiceContainer[] {});
+ }
+
+ protected boolean includeContainerWithConnectNamespace(
+ IContainer container, String connectNamespaceName) {
+ if (connectNamespaceName != null) {
+ Namespace namespace = container.getConnectNamespace();
+ if (namespace != null
+ && namespace.getName().equals(connectNamespaceName))
+ return true;
+ }
+ return false;
+ }
+
+ protected void connectContainer(IContainer container, ID connectTargetID,
+ IConnectContext connectContext) throws ContainerConnectException {
+ trace("connectContainer", "Connecting container=" + container.getID() //$NON-NLS-1$ //$NON-NLS-2$
+ + " to connectTargetID=" + connectTargetID); //$NON-NLS-1$
+ container.connect(connectTargetID, connectContext);
+ }
+
+ protected String[] getSupportedConfigTypes(
+ ContainerTypeDescription containerTypeDescription) {
+ String[] supportedConfigs = containerTypeDescription
+ .getSupportedConfigs();
+ return (supportedConfigs == null) ? new String[0] : supportedConfigs;
+ }
+
+ protected String[] getSupportedIntents(
+ ContainerTypeDescription containerTypeDescription) {
+ String[] supportedIntents = containerTypeDescription
+ .getSupportedIntents();
+ return (supportedIntents == null) ? new String[0] : supportedIntents;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected IContainer createContainer(ServiceReference serviceReference,
+ Map<String, Object> properties,
+ ContainerTypeDescription containerTypeDescription)
+ throws SelectContainerException {
+
+ IContainerFactory containerFactory = getContainerFactory();
+
+ final Object containerFactoryArguments = getContainerFactoryArguments(
+ serviceReference, properties, containerTypeDescription);
+
+ try {
+ if (containerFactoryArguments instanceof String) {
+ return containerFactory.createContainer(
+ containerTypeDescription,
+ (String) containerFactoryArguments);
+ } else if (containerFactoryArguments instanceof ID) {
+ return containerFactory.createContainer(
+ containerTypeDescription,
+ (ID) containerFactoryArguments);
+ } else if (containerFactoryArguments instanceof Object[]) {
+ return containerFactory.createContainer(
+ containerTypeDescription,
+ (Object[]) containerFactoryArguments);
+ } else if (containerFactoryArguments instanceof Map) {
+ return containerFactory.createContainer(
+ containerTypeDescription,
+ (Map) containerFactoryArguments);
+ }
+ return containerFactory.createContainer(containerTypeDescription);
+ } catch (ContainerCreateException e) {
+ throw new SelectContainerException(
+ "Exception creating or configuring container", e, //$NON-NLS-1$
+ containerTypeDescription);
+ }
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected Object getContainerFactoryArguments(
+ ServiceReference serviceReference, Map<String, Object> properties,
+ ContainerTypeDescription containerTypeDescription) {
+ // If the RemoteConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS is set
+ // than use it.
+ final Object containerFactoryArguments = properties
+ .get(RemoteConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS);
+ if (containerFactoryArguments != null)
+ return containerFactoryArguments;
+
+ String exportedConfig = containerTypeDescription.getName();
+ // If not, then we look through the properties that start with
+ // <containerTypeDescription.name>.
+ Map<String, Object> results = new HashMap<String, Object>();
+ for (String origKey : properties.keySet()) {
+ if (origKey.startsWith(exportedConfig + ".")) { //$NON-NLS-1$
+ String key = origKey.substring(exportedConfig.length() + 1);
+ if (key != null)
+ results.put(key, properties.get(origKey));
+ }
+ }
+ if (results.size() == 0)
+ return null;
+ return results;
+ }
+
+ protected ID createTargetID(IContainer container, String target) {
+ return IDUtil.createID(container.getConnectNamespace(), target);
+ }
+
+ protected void disconnectContainer(IContainer container) {
+ container.disconnect();
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected IConnectContext createConnectContext(
+ ServiceReference serviceReference, Map<String, Object> properties,
+ IContainer container, Object context) {
+ if (context instanceof IConnectContext)
+ return (IConnectContext) context;
+ return null;
+ }
+
+ protected void logException(String string, Exception e) {
+ Activator.getDefault().log(
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, string, e));
+ }
+
+ protected void trace(String methodName, String message) {
+ LogUtility.trace(methodName, DebugOptions.CONTAINER_SELECTOR,
+ this.getClass(), message);
+ }
+
+ protected void traceException(String methodName, String message, Throwable t) {
+ LogUtility.traceException(methodName, DebugOptions.EXCEPTIONS_CATCHING,
+ this.getClass(), message, t);
+ }
+
+ protected void logError(String methodName, String message, Throwable t) {
+ LogUtility.logError(methodName, DebugOptions.CONTAINER_SELECTOR,
+ this.getClass(), message, t);
+ }
+
+ protected void logError(String methodName, String message) {
+ LogUtility.logError(methodName, DebugOptions.CONTAINER_SELECTOR,
+ this.getClass(), message);
+ }
+
+ protected void logWarning(String methodName, String message) {
+ LogUtility.logWarning(methodName, DebugOptions.CONTAINER_SELECTOR,
+ this.getClass(), message);
+ }
+
+ protected boolean matchConnectNamespace(IContainer container,
+ ID endpointID, ID connectTargetID) {
+ if (connectTargetID != null) {
+ return connectTargetID.getNamespace().getName()
+ .equals(container.getConnectNamespace().getName());
+ }
+ if (endpointID == null)
+ return false;
+ return endpointID.getNamespace().getName()
+ .equals(container.getConnectNamespace().getName());
+ }
+
+ protected boolean matchContainerID(IContainer container, ID endpointID) {
+ if (endpointID == null)
+ return false;
+ return endpointID.equals(container.getID());
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractHostContainerSelector.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractHostContainerSelector.java
index 201394d24..a42001549 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractHostContainerSelector.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractHostContainerSelector.java
@@ -1,386 +1,386 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.ecf.core.ContainerConnectException;
-import org.eclipse.ecf.core.ContainerCreateException;
-import org.eclipse.ecf.core.ContainerTypeDescription;
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.IDCreateException;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.IDUtil;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
-import org.eclipse.ecf.remoteservice.RemoteServiceContainer;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Abstract superclass for host container selectors...i.e. implementers of
- * {@link IHostContainerSelector}.
- *
- */
-public abstract class AbstractHostContainerSelector extends
- AbstractContainerSelector {
-
- protected String[] defaultConfigTypes;
-
- public AbstractHostContainerSelector(String[] defaultConfigTypes) {
- this.defaultConfigTypes = defaultConfigTypes;
- }
-
- /**
- * @since 2.0
- */
- protected Collection selectExistingHostContainers(
- ServiceReference serviceReference,
- Map<String, Object> overridingProperties,
- String[] serviceExportedInterfaces,
- String[] serviceExportedConfigs, String[] serviceIntents) {
- List results = new ArrayList();
- // Get all existing containers
- IContainer[] containers = getContainers();
- // If nothing there, then return empty array
- if (containers == null || containers.length == 0)
- return results;
-
- for (int i = 0; i < containers.length; i++) {
- // Check to make sure it's a rs container adapter. If it's not go
- // onto next one
- IRemoteServiceContainerAdapter adapter = hasRemoteServiceContainerAdapter(containers[i]);
- if (adapter == null)
- continue;
- // Get container type description and intents
- ContainerTypeDescription description = getContainerTypeDescription(containers[i]);
- // If it has no description go onto next
- if (description == null)
- continue;
-
- // http://bugs.eclipse.org/331532
- if (!description.isServer()) {
- continue;
- }
-
- if (matchExistingHostContainer(serviceReference,
- overridingProperties, containers[i], adapter, description,
- serviceExportedConfigs, serviceIntents)) {
- trace("selectExistingHostContainers", "INCLUDING containerID=" //$NON-NLS-1$ //$NON-NLS-2$
- + containers[i].getID()
- + " configs=" //$NON-NLS-1$
- + ((serviceExportedConfigs == null) ? "null" : Arrays //$NON-NLS-1$
- .asList(serviceExportedConfigs).toString())
- + " intents=" //$NON-NLS-1$
- + ((serviceIntents == null) ? "null" : Arrays.asList( //$NON-NLS-1$
- serviceIntents).toString()));
- results.add(new RemoteServiceContainer(containers[i], adapter));
- } else {
- trace("selectExistingHostContainers", "EXCLUDING containerID=" //$NON-NLS-1$ //$NON-NLS-2$
- + containers[i].getID()
- + " configs=" //$NON-NLS-1$
- + ((serviceExportedConfigs == null) ? "null" : Arrays //$NON-NLS-1$
- .asList(serviceExportedConfigs).toString())
- + " intents=" //$NON-NLS-1$
- + ((serviceIntents == null) ? "null" : Arrays.asList( //$NON-NLS-1$
- serviceIntents).toString()));
- }
- }
- return results;
- }
-
- /**
- * @since 2.0
- */
- protected boolean matchHostContainerToConnectTarget(
- ServiceReference serviceReference, Map<String, Object> properties,
- IContainer container) {
- String target = (String) properties
- .get(RemoteConstants.ENDPOINT_CONNECTTARGET_ID);
- if (target == null)
- return true;
- // If a targetID is specified, make sure it either matches what the
- // container
- // is already connected to, or that we connect an unconnected container
- ID connectedID = container.getConnectedID();
- // If the container is not already connected to anything
- // then we connect it to the given target
- if (connectedID == null) {
- // connect to the target and we have a match
- try {
- connectHostContainer(serviceReference, properties, container,
- target);
- } catch (Exception e) {
- logException("doConnectContainer containerID=" //$NON-NLS-1$
- + container.getID() + " target=" + target, e); //$NON-NLS-1$
- return false;
- }
- return true;
- } else {
- ID targetID = createTargetID(container, target);
- // We check here if the currently connectedID equals the target.
- // If it does we have a match
- if (connectedID.equals(targetID))
- return true;
- }
- return false;
- }
-
- /**
- * @since 2.0
- */
- protected boolean matchExistingHostContainer(
- ServiceReference serviceReference, Map<String, Object> properties,
- IContainer container, IRemoteServiceContainerAdapter adapter,
- ContainerTypeDescription description, String[] requiredConfigTypes,
- String[] requiredServiceIntents) {
-
- return matchHostSupportedConfigTypes(requiredConfigTypes, description)
- && matchHostSupportedIntents(requiredServiceIntents,
- description)
- && matchHostContainerID(serviceReference, properties, container)
- && matchHostContainerToConnectTarget(serviceReference,
- properties, container);
- }
-
- /**
- * @since 2.0
- */
- protected boolean matchHostContainerID(ServiceReference serviceReference,
- Map<String, Object> properties, IContainer container) {
-
- ID containerID = container.getID();
- // No match if the container has no ID
- if (containerID == null)
- return false;
-
- // Then get containerid if specified directly by user in properties
- ID requiredContainerID = (ID) properties
- .get(RemoteConstants.SERVICE_EXPORTED_CONTAINER_ID);
- // If the CONTAINER_I
- if (requiredContainerID != null) {
- return requiredContainerID.equals(containerID);
- }
- // Else get the container factory arguments, create an ID from the
- // arguments
- // and check if the ID matches that
- Namespace ns = containerID.getNamespace();
- Object cid = properties
- .get(RemoteConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS);
- // If no arguments are present, then any container ID should match
- if (cid == null)
- return true;
- ID cID = null;
- if (cid instanceof ID) {
- cID = (ID) cid;
- } else if (cid instanceof String) {
- cID = IDUtil.createID(ns, (String) cid);
- } else if (cid instanceof Object[]) {
- Object cido = ((Object[]) cid)[0];
- cID = IDUtil.createID(ns, new Object[] { cido });
- }
- if (cID == null)
- return true;
- return containerID.equals(cID);
- }
-
- protected boolean matchHostSupportedConfigTypes(
- String[] requiredConfigTypes,
- ContainerTypeDescription containerTypeDescription) {
- // if no config type is set the spec requires to create a default
- // endpoint (see section 122.5.1)
- if (requiredConfigTypes == null)
- return true;
- // Get supported config types for this description
- String[] supportedConfigTypes = getSupportedConfigTypes(containerTypeDescription);
- // If it doesn't support anything, return false
- if (supportedConfigTypes == null || supportedConfigTypes.length == 0)
- return false;
- // Turn supported config types for this description into list
- List supportedConfigTypesList = Arrays.asList(supportedConfigTypes);
- List requiredConfigTypesList = Arrays.asList(requiredConfigTypes);
- // We check all of the required config types and make sure
- // that they are present in the supportedConfigTypes
- boolean result = true;
- for (Iterator i = requiredConfigTypesList.iterator(); i.hasNext();)
- result &= supportedConfigTypesList.contains(i.next());
- return result;
- }
-
- /**
- * @since 2.0
- */
- protected Collection createAndConfigureHostContainers(
- ServiceReference serviceReference, Map<String, Object> properties,
- String[] serviceExportedInterfaces, String[] requiredConfigs,
- String[] requiredIntents) throws SelectContainerException {
-
- List results = new ArrayList();
- ContainerTypeDescription[] descriptions = getContainerTypeDescriptions();
- if (descriptions == null)
- return Collections.EMPTY_LIST;
- // If there are no required configs specified, then create any defaults
- if (requiredConfigs == null || requiredConfigs.length == 0) {
- createAndAddDefaultContainers(serviceReference, properties,
- serviceExportedInterfaces, requiredIntents, descriptions,
- results);
- } else {
- // See if we have a match
- for (int i = 0; i < descriptions.length; i++) {
- IRemoteServiceContainer matchingContainer = createMatchingContainer(
- descriptions[i], serviceReference, properties,
- serviceExportedInterfaces, requiredConfigs,
- requiredIntents);
- if (matchingContainer != null)
- results.add(matchingContainer);
- }
- }
- return results;
- }
-
- private void createAndAddDefaultContainers(
- ServiceReference serviceReference, Map<String, Object> properties,
- String[] serviceExportedInterfaces, String[] requiredIntents,
- ContainerTypeDescription[] descriptions, Collection results)
- throws SelectContainerException {
- ContainerTypeDescription[] ctds = getContainerTypeDescriptionsForDefaultConfigTypes(descriptions);
- if (ctds != null) {
- for (int i = 0; i < ctds.length; i++) {
- IRemoteServiceContainer matchingContainer = createMatchingContainer(
- ctds[i], serviceReference, properties,
- serviceExportedInterfaces, null, requiredIntents);
- if (matchingContainer != null)
- results.add(matchingContainer);
- }
- }
- }
-
- protected ContainerTypeDescription[] getContainerTypeDescriptionsForDefaultConfigTypes(
- ContainerTypeDescription[] descriptions) {
- String[] defaultConfigTypes = getDefaultConfigTypes();
- if (defaultConfigTypes == null || defaultConfigTypes.length == 0)
- return null;
- List results = new ArrayList();
- for (int i = 0; i < descriptions.length; i++) {
- // For each description, get supported config types
- String[] supportedConfigTypes = descriptions[i]
- .getSupportedConfigs();
- if (supportedConfigTypes != null
- && matchDefaultConfigTypes(defaultConfigTypes,
- supportedConfigTypes))
- results.add(descriptions[i]);
- }
- return (ContainerTypeDescription[]) results
- .toArray(new ContainerTypeDescription[] {});
- }
-
- protected boolean matchDefaultConfigTypes(String[] defaultConfigTypes,
- String[] supportedConfigTypes) {
- List supportedConfigTypesList = Arrays.asList(supportedConfigTypes);
- for (int i = 0; i < defaultConfigTypes.length; i++) {
- if (supportedConfigTypesList.contains(defaultConfigTypes[i]))
- return true;
- }
- return false;
- }
-
- protected String[] getDefaultConfigTypes() {
- return defaultConfigTypes;
- }
-
- /**
- * @throws ContainerCreateException
- * @since 2.0
- */
- protected IRemoteServiceContainer createMatchingContainer(
- ContainerTypeDescription containerTypeDescription,
- ServiceReference serviceReference, Map<String, Object> properties,
- String[] serviceExportedInterfaces, String[] requiredConfigs,
- String[] requiredIntents) throws SelectContainerException {
-
- if (matchHostSupportedConfigTypes(requiredConfigs,
- containerTypeDescription)
- && matchHostSupportedIntents(requiredIntents,
- containerTypeDescription)) {
- return createRSContainer(serviceReference, properties,
- containerTypeDescription);
- }
- return null;
- }
-
- /**
- * @throws ContainerCreateException
- * @since 2.0
- */
- protected IRemoteServiceContainer createRSContainer(
- ServiceReference serviceReference, Map<String, Object> properties,
- ContainerTypeDescription containerTypeDescription)
- throws SelectContainerException {
- IContainer container = createContainer(serviceReference, properties,
- containerTypeDescription);
- IRemoteServiceContainerAdapter adapter = (IRemoteServiceContainerAdapter) container
- .getAdapter(IRemoteServiceContainerAdapter.class);
- if (adapter == null)
- throw new SelectContainerException(
- "Container does not implement IRemoteServiceContainerAdapter", null, containerTypeDescription); //$NON-NLS-1$
- return new RemoteServiceContainer(container, adapter);
- }
-
- /**
- * @since 2.0
- */
- protected void connectHostContainer(ServiceReference serviceReference,
- Map<String, Object> properties, IContainer container, Object target)
- throws ContainerConnectException, IDCreateException {
- ID targetID = (target instanceof String) ? IDUtil.createID(
- container.getConnectNamespace(), (String) target) : IDUtil
- .createID(container.getConnectNamespace(),
- new Object[] { target });
- Object context = properties
- .get(RemoteConstants.SERVICE_EXPORTED_CONTAINER_CONNECT_CONTEXT);
- IConnectContext connectContext = null;
- if (context != null) {
- connectContext = createConnectContext(serviceReference, properties,
- container, context);
- }
- // connect the container
- container.connect(targetID, connectContext);
- }
-
- protected boolean matchHostSupportedIntents(
- String[] serviceRequiredIntents,
- ContainerTypeDescription containerTypeDescription) {
- // If there are no required intents then we have a match
- if (serviceRequiredIntents == null)
- return true;
-
- String[] supportedIntents = getSupportedIntents(containerTypeDescription);
-
- if (supportedIntents == null)
- return false;
-
- List supportedIntentsList = Arrays.asList(supportedIntents);
-
- boolean result = true;
- for (int i = 0; i < serviceRequiredIntents.length; i++)
- result = result
- && supportedIntentsList.contains(serviceRequiredIntents[i]);
-
- return result;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.ecf.core.ContainerConnectException;
+import org.eclipse.ecf.core.ContainerCreateException;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.identity.IDCreateException;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.IDUtil;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
+import org.eclipse.ecf.remoteservice.RemoteServiceContainer;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Abstract superclass for host container selectors...i.e. implementers of
+ * {@link IHostContainerSelector}.
+ *
+ */
+public abstract class AbstractHostContainerSelector extends
+ AbstractContainerSelector {
+
+ protected String[] defaultConfigTypes;
+
+ public AbstractHostContainerSelector(String[] defaultConfigTypes) {
+ this.defaultConfigTypes = defaultConfigTypes;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected Collection selectExistingHostContainers(
+ ServiceReference serviceReference,
+ Map<String, Object> overridingProperties,
+ String[] serviceExportedInterfaces,
+ String[] serviceExportedConfigs, String[] serviceIntents) {
+ List results = new ArrayList();
+ // Get all existing containers
+ IContainer[] containers = getContainers();
+ // If nothing there, then return empty array
+ if (containers == null || containers.length == 0)
+ return results;
+
+ for (int i = 0; i < containers.length; i++) {
+ // Check to make sure it's a rs container adapter. If it's not go
+ // onto next one
+ IRemoteServiceContainerAdapter adapter = hasRemoteServiceContainerAdapter(containers[i]);
+ if (adapter == null)
+ continue;
+ // Get container type description and intents
+ ContainerTypeDescription description = getContainerTypeDescription(containers[i]);
+ // If it has no description go onto next
+ if (description == null)
+ continue;
+
+ // http://bugs.eclipse.org/331532
+ if (!description.isServer()) {
+ continue;
+ }
+
+ if (matchExistingHostContainer(serviceReference,
+ overridingProperties, containers[i], adapter, description,
+ serviceExportedConfigs, serviceIntents)) {
+ trace("selectExistingHostContainers", "INCLUDING containerID=" //$NON-NLS-1$ //$NON-NLS-2$
+ + containers[i].getID()
+ + " configs=" //$NON-NLS-1$
+ + ((serviceExportedConfigs == null) ? "null" : Arrays //$NON-NLS-1$
+ .asList(serviceExportedConfigs).toString())
+ + " intents=" //$NON-NLS-1$
+ + ((serviceIntents == null) ? "null" : Arrays.asList( //$NON-NLS-1$
+ serviceIntents).toString()));
+ results.add(new RemoteServiceContainer(containers[i], adapter));
+ } else {
+ trace("selectExistingHostContainers", "EXCLUDING containerID=" //$NON-NLS-1$ //$NON-NLS-2$
+ + containers[i].getID()
+ + " configs=" //$NON-NLS-1$
+ + ((serviceExportedConfigs == null) ? "null" : Arrays //$NON-NLS-1$
+ .asList(serviceExportedConfigs).toString())
+ + " intents=" //$NON-NLS-1$
+ + ((serviceIntents == null) ? "null" : Arrays.asList( //$NON-NLS-1$
+ serviceIntents).toString()));
+ }
+ }
+ return results;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected boolean matchHostContainerToConnectTarget(
+ ServiceReference serviceReference, Map<String, Object> properties,
+ IContainer container) {
+ String target = (String) properties
+ .get(RemoteConstants.ENDPOINT_CONNECTTARGET_ID);
+ if (target == null)
+ return true;
+ // If a targetID is specified, make sure it either matches what the
+ // container
+ // is already connected to, or that we connect an unconnected container
+ ID connectedID = container.getConnectedID();
+ // If the container is not already connected to anything
+ // then we connect it to the given target
+ if (connectedID == null) {
+ // connect to the target and we have a match
+ try {
+ connectHostContainer(serviceReference, properties, container,
+ target);
+ } catch (Exception e) {
+ logException("doConnectContainer containerID=" //$NON-NLS-1$
+ + container.getID() + " target=" + target, e); //$NON-NLS-1$
+ return false;
+ }
+ return true;
+ } else {
+ ID targetID = createTargetID(container, target);
+ // We check here if the currently connectedID equals the target.
+ // If it does we have a match
+ if (connectedID.equals(targetID))
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected boolean matchExistingHostContainer(
+ ServiceReference serviceReference, Map<String, Object> properties,
+ IContainer container, IRemoteServiceContainerAdapter adapter,
+ ContainerTypeDescription description, String[] requiredConfigTypes,
+ String[] requiredServiceIntents) {
+
+ return matchHostSupportedConfigTypes(requiredConfigTypes, description)
+ && matchHostSupportedIntents(requiredServiceIntents,
+ description)
+ && matchHostContainerID(serviceReference, properties, container)
+ && matchHostContainerToConnectTarget(serviceReference,
+ properties, container);
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected boolean matchHostContainerID(ServiceReference serviceReference,
+ Map<String, Object> properties, IContainer container) {
+
+ ID containerID = container.getID();
+ // No match if the container has no ID
+ if (containerID == null)
+ return false;
+
+ // Then get containerid if specified directly by user in properties
+ ID requiredContainerID = (ID) properties
+ .get(RemoteConstants.SERVICE_EXPORTED_CONTAINER_ID);
+ // If the CONTAINER_I
+ if (requiredContainerID != null) {
+ return requiredContainerID.equals(containerID);
+ }
+ // Else get the container factory arguments, create an ID from the
+ // arguments
+ // and check if the ID matches that
+ Namespace ns = containerID.getNamespace();
+ Object cid = properties
+ .get(RemoteConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS);
+ // If no arguments are present, then any container ID should match
+ if (cid == null)
+ return true;
+ ID cID = null;
+ if (cid instanceof ID) {
+ cID = (ID) cid;
+ } else if (cid instanceof String) {
+ cID = IDUtil.createID(ns, (String) cid);
+ } else if (cid instanceof Object[]) {
+ Object cido = ((Object[]) cid)[0];
+ cID = IDUtil.createID(ns, new Object[] { cido });
+ }
+ if (cID == null)
+ return true;
+ return containerID.equals(cID);
+ }
+
+ protected boolean matchHostSupportedConfigTypes(
+ String[] requiredConfigTypes,
+ ContainerTypeDescription containerTypeDescription) {
+ // if no config type is set the spec requires to create a default
+ // endpoint (see section 122.5.1)
+ if (requiredConfigTypes == null)
+ return true;
+ // Get supported config types for this description
+ String[] supportedConfigTypes = getSupportedConfigTypes(containerTypeDescription);
+ // If it doesn't support anything, return false
+ if (supportedConfigTypes == null || supportedConfigTypes.length == 0)
+ return false;
+ // Turn supported config types for this description into list
+ List supportedConfigTypesList = Arrays.asList(supportedConfigTypes);
+ List requiredConfigTypesList = Arrays.asList(requiredConfigTypes);
+ // We check all of the required config types and make sure
+ // that they are present in the supportedConfigTypes
+ boolean result = true;
+ for (Iterator i = requiredConfigTypesList.iterator(); i.hasNext();)
+ result &= supportedConfigTypesList.contains(i.next());
+ return result;
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected Collection createAndConfigureHostContainers(
+ ServiceReference serviceReference, Map<String, Object> properties,
+ String[] serviceExportedInterfaces, String[] requiredConfigs,
+ String[] requiredIntents) throws SelectContainerException {
+
+ List results = new ArrayList();
+ ContainerTypeDescription[] descriptions = getContainerTypeDescriptions();
+ if (descriptions == null)
+ return Collections.EMPTY_LIST;
+ // If there are no required configs specified, then create any defaults
+ if (requiredConfigs == null || requiredConfigs.length == 0) {
+ createAndAddDefaultContainers(serviceReference, properties,
+ serviceExportedInterfaces, requiredIntents, descriptions,
+ results);
+ } else {
+ // See if we have a match
+ for (int i = 0; i < descriptions.length; i++) {
+ IRemoteServiceContainer matchingContainer = createMatchingContainer(
+ descriptions[i], serviceReference, properties,
+ serviceExportedInterfaces, requiredConfigs,
+ requiredIntents);
+ if (matchingContainer != null)
+ results.add(matchingContainer);
+ }
+ }
+ return results;
+ }
+
+ private void createAndAddDefaultContainers(
+ ServiceReference serviceReference, Map<String, Object> properties,
+ String[] serviceExportedInterfaces, String[] requiredIntents,
+ ContainerTypeDescription[] descriptions, Collection results)
+ throws SelectContainerException {
+ ContainerTypeDescription[] ctds = getContainerTypeDescriptionsForDefaultConfigTypes(descriptions);
+ if (ctds != null) {
+ for (int i = 0; i < ctds.length; i++) {
+ IRemoteServiceContainer matchingContainer = createMatchingContainer(
+ ctds[i], serviceReference, properties,
+ serviceExportedInterfaces, null, requiredIntents);
+ if (matchingContainer != null)
+ results.add(matchingContainer);
+ }
+ }
+ }
+
+ protected ContainerTypeDescription[] getContainerTypeDescriptionsForDefaultConfigTypes(
+ ContainerTypeDescription[] descriptions) {
+ String[] defaultConfigTypes = getDefaultConfigTypes();
+ if (defaultConfigTypes == null || defaultConfigTypes.length == 0)
+ return null;
+ List results = new ArrayList();
+ for (int i = 0; i < descriptions.length; i++) {
+ // For each description, get supported config types
+ String[] supportedConfigTypes = descriptions[i]
+ .getSupportedConfigs();
+ if (supportedConfigTypes != null
+ && matchDefaultConfigTypes(defaultConfigTypes,
+ supportedConfigTypes))
+ results.add(descriptions[i]);
+ }
+ return (ContainerTypeDescription[]) results
+ .toArray(new ContainerTypeDescription[] {});
+ }
+
+ protected boolean matchDefaultConfigTypes(String[] defaultConfigTypes,
+ String[] supportedConfigTypes) {
+ List supportedConfigTypesList = Arrays.asList(supportedConfigTypes);
+ for (int i = 0; i < defaultConfigTypes.length; i++) {
+ if (supportedConfigTypesList.contains(defaultConfigTypes[i]))
+ return true;
+ }
+ return false;
+ }
+
+ protected String[] getDefaultConfigTypes() {
+ return defaultConfigTypes;
+ }
+
+ /**
+ * @throws ContainerCreateException
+ * @since 2.0
+ */
+ protected IRemoteServiceContainer createMatchingContainer(
+ ContainerTypeDescription containerTypeDescription,
+ ServiceReference serviceReference, Map<String, Object> properties,
+ String[] serviceExportedInterfaces, String[] requiredConfigs,
+ String[] requiredIntents) throws SelectContainerException {
+
+ if (matchHostSupportedConfigTypes(requiredConfigs,
+ containerTypeDescription)
+ && matchHostSupportedIntents(requiredIntents,
+ containerTypeDescription)) {
+ return createRSContainer(serviceReference, properties,
+ containerTypeDescription);
+ }
+ return null;
+ }
+
+ /**
+ * @throws ContainerCreateException
+ * @since 2.0
+ */
+ protected IRemoteServiceContainer createRSContainer(
+ ServiceReference serviceReference, Map<String, Object> properties,
+ ContainerTypeDescription containerTypeDescription)
+ throws SelectContainerException {
+ IContainer container = createContainer(serviceReference, properties,
+ containerTypeDescription);
+ IRemoteServiceContainerAdapter adapter = (IRemoteServiceContainerAdapter) container
+ .getAdapter(IRemoteServiceContainerAdapter.class);
+ if (adapter == null)
+ throw new SelectContainerException(
+ "Container does not implement IRemoteServiceContainerAdapter", null, containerTypeDescription); //$NON-NLS-1$
+ return new RemoteServiceContainer(container, adapter);
+ }
+
+ /**
+ * @since 2.0
+ */
+ protected void connectHostContainer(ServiceReference serviceReference,
+ Map<String, Object> properties, IContainer container, Object target)
+ throws ContainerConnectException, IDCreateException {
+ ID targetID = (target instanceof String) ? IDUtil.createID(
+ container.getConnectNamespace(), (String) target) : IDUtil
+ .createID(container.getConnectNamespace(),
+ new Object[] { target });
+ Object context = properties
+ .get(RemoteConstants.SERVICE_EXPORTED_CONTAINER_CONNECT_CONTEXT);
+ IConnectContext connectContext = null;
+ if (context != null) {
+ connectContext = createConnectContext(serviceReference, properties,
+ container, context);
+ }
+ // connect the container
+ container.connect(targetID, connectContext);
+ }
+
+ protected boolean matchHostSupportedIntents(
+ String[] serviceRequiredIntents,
+ ContainerTypeDescription containerTypeDescription) {
+ // If there are no required intents then we have a match
+ if (serviceRequiredIntents == null)
+ return true;
+
+ String[] supportedIntents = getSupportedIntents(containerTypeDescription);
+
+ if (supportedIntents == null)
+ return false;
+
+ List supportedIntentsList = Arrays.asList(supportedIntents);
+
+ boolean result = true;
+ for (int i = 0; i < serviceRequiredIntents.length; i++)
+ result = result
+ && supportedIntentsList.contains(serviceRequiredIntents[i]);
+
+ return result;
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java
index 43b89df25..c325b683e 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java
@@ -1,411 +1,411 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.TreeMap;
-
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.discovery.IServiceProperties;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
-import org.osgi.framework.Version;
-
-/**
- * Abstract superclass for metadata factories...i.e. implementers of
- * {@link IServiceInfoFactory}.
- *
- *
- */
-public abstract class AbstractMetadataFactory {
-
- protected static final String LIST_SEPARATOR = " "; //$NON-NLS-1$
-
- protected void encodeString(IServiceProperties props, String name,
- String value) {
- props.setPropertyString(name, value);
- }
-
- protected String decodeString(IServiceProperties props, String name) {
- return props.getPropertyString(name);
- }
-
- protected void encodeLong(IServiceProperties result, String name, Long value) {
- result.setPropertyString(name, value.toString());
- }
-
- protected Long decodeLong(IServiceProperties props, String name) {
- String longAsString = props.getPropertyString(name);
- if (longAsString == null)
- return new Long(0);
- return new Long(longAsString);
- }
-
- protected void encodeList(IServiceProperties props, String name,
- List<String> list) {
- if (list == null)
- return;
- if (list.size() == 1) {
- props.setPropertyString(name, list.get(0));
- } else {
- final StringBuffer result = new StringBuffer();
- for (Iterator<String> i = list.iterator(); i.hasNext();) {
- result.append(i.next());
- if (i.hasNext())
- result.append(LIST_SEPARATOR);
- }
- // Now add to props
- props.setPropertyString(name, result.toString());
- }
- }
-
- protected List<String> decodeList(IServiceProperties props, String name) {
- String value = props.getPropertyString(name);
- if (value == null)
- return Collections.EMPTY_LIST;
- List<String> result = new ArrayList<String>();
- final StringTokenizer t = new StringTokenizer(value, LIST_SEPARATOR);
- while (t.hasMoreTokens())
- result.add(t.nextToken());
- return result;
- }
-
- protected void decodeOSGiProperties(IServiceProperties props,
- Map osgiProperties) {
- // org.osgi.framework.Constants.OBJECTCLASS
- List<String> interfaces = decodeList(props,
- org.osgi.framework.Constants.OBJECTCLASS);
- osgiProperties.put(org.osgi.framework.Constants.OBJECTCLASS,
- (String[]) interfaces.toArray(new String[interfaces.size()]));
- // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
- for (String intf : interfaces) {
- String packageKey = org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
- + getPackageName(intf);
- String intfVersion = decodeString(props, packageKey);
- if (intfVersion != null)
- osgiProperties.put(packageKey, intfVersion);
- }
- // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID
- String endpointId = decodeString(props,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID);
- osgiProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
- endpointId);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID
- Long endpointServiceId = decodeLong(
- props,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID);
- osgiProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
- endpointServiceId);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID
- String fwkuuid = decodeString(
- props,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID);
- osgiProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
- fwkuuid);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS
- List<String> configTypes = decodeList(
- props,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS);
- if (configTypes != null && configTypes.size() > 0)
- osgiProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
- (String[]) configTypes
- .toArray(new String[configTypes.size()]));
- // org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS
- List<String> intents = decodeList(
- props,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS);
- if (intents != null && intents.size() > 0)
- osgiProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS,
- (String[]) intents.toArray(new String[intents
- .size()]));
- // org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED
- List<String> remoteConfigsSupported = decodeList(
- props,
- org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED);
- if (remoteConfigsSupported != null && remoteConfigsSupported.size() > 0)
- osgiProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED,
- (String[]) remoteConfigsSupported
- .toArray(new String[remoteConfigsSupported
- .size()]));
- // org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED
- List<String> remoteIntentsSupported = decodeList(
- props,
- org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED);
- if (remoteIntentsSupported != null && remoteIntentsSupported.size() > 0)
- osgiProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED,
- (String[]) remoteIntentsSupported
- .toArray(new String[remoteIntentsSupported
- .size()]));
-
- }
-
- protected EndpointDescription decodeEndpointDescription(
- IServiceProperties discoveredServiceProperties) {
-
- Map<String, Object> endpointDescriptionProperties = new TreeMap<String, Object>(
- String.CASE_INSENSITIVE_ORDER);
-
- decodeOSGiProperties(discoveredServiceProperties,
- endpointDescriptionProperties);
-
- // remote service id
- Long remoteServiceId = decodeLong(discoveredServiceProperties,
- org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
- endpointDescriptionProperties.put(
- org.eclipse.ecf.remoteservice.Constants.SERVICE_ID,
- remoteServiceId);
-
- // container id namespace
- String containerIDNamespace = decodeString(discoveredServiceProperties,
- RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE);
- if (containerIDNamespace != null)
- endpointDescriptionProperties.put(
- RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE,
- containerIDNamespace);
-
- // connect target ID
- String connectTargetIDName = decodeString(discoveredServiceProperties,
- RemoteConstants.ENDPOINT_CONNECTTARGET_ID);
- if (connectTargetIDName != null)
- endpointDescriptionProperties.put(
- RemoteConstants.ENDPOINT_CONNECTTARGET_ID,
- connectTargetIDName);
-
- // ID filter
- List<String> idFilterNames = decodeList(discoveredServiceProperties,
- RemoteConstants.ENDPOINT_IDFILTER_IDS);
- Object idFilterNamesval = PropertiesUtil
- .convertToStringPlusValue(idFilterNames);
- if (idFilterNamesval != null)
- endpointDescriptionProperties.put(
- RemoteConstants.ENDPOINT_IDFILTER_IDS, idFilterNamesval);
-
- // remote service filter
- String remoteServiceFilter = decodeString(discoveredServiceProperties,
- RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER);
- if (remoteServiceFilter != null)
- endpointDescriptionProperties.put(
- RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER,
- remoteServiceFilter);
-
- // Finally, fill out other properties
- decodeNonStandardServiceProperties(discoveredServiceProperties,
- endpointDescriptionProperties);
-
- return new EndpointDescription(endpointDescriptionProperties);
- }
-
- private String getPackageName(String className) {
- int lastDotIndex = className.lastIndexOf("."); //$NON-NLS-1$
- if (lastDotIndex == -1)
- return ""; //$NON-NLS-1$
- return className.substring(0, lastDotIndex);
- }
-
- protected void encodeOSGiServiceProperties(
- EndpointDescription endpointDescription, IServiceProperties result) {
- // org.osgi.framework.Constants.OBJECTCLASS =
- // endpointDescription.getInterfaces();
- List<String> interfaces = endpointDescription.getInterfaces();
- encodeList(result, org.osgi.framework.Constants.OBJECTCLASS, interfaces);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
- // version every interface package, make sure to encode package version
- // (if specified)
- for (String intf : interfaces) {
- String intfPackageName = getPackageName(intf);
- Version intfVersion = endpointDescription
- .getPackageVersion(intfPackageName);
- if (intfVersion != null
- && !Version.emptyVersion.equals(intfVersion))
- encodeString(
- result,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
- + intfPackageName, intfVersion.toString());
- }
- // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID ==
- // endpointDescription.getId()
- String endpointId = endpointDescription.getId();
- encodeString(
- result,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
- endpointId);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID
- // = endpointDescription.getServiceId()
- long endpointServiceId = endpointDescription.getServiceId();
- encodeLong(
- result,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
- new Long(endpointServiceId));
- // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID
- // = endpointDescription.getFrameworkUUID()
- String frameworkUUID = endpointDescription.getFrameworkUUID();
- if (frameworkUUID != null)
- encodeString(
- result,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
- frameworkUUID);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS
- // = endpointDescription.getConfigurationTypes();
- List<String> configurationTypes = endpointDescription
- .getConfigurationTypes();
- if (configurationTypes.size() > 0)
- encodeList(
- result,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
- configurationTypes);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS =
- // endpointDescription.getIntents()
- List<String> serviceIntents = endpointDescription.getIntents();
- if (serviceIntents.size() > 0)
- encodeList(
- result,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS,
- serviceIntents);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED
- Map endpointDescriptionProperties = endpointDescription.getProperties();
- List<String> remoteConfigsSupported = PropertiesUtil
- .getStringPlusProperty(
- endpointDescriptionProperties,
- org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED);
- if (remoteConfigsSupported.size() > 0)
- encodeList(
- result,
- org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED,
- remoteConfigsSupported);
- // org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED
- List<String> remoteIntentsSupported = PropertiesUtil
- .getStringPlusProperty(
- endpointDescriptionProperties,
- org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED);
- if (remoteIntentsSupported.size() > 0)
- encodeList(
- result,
- org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED,
- remoteIntentsSupported);
-
- }
-
- protected void encodeServiceProperties(
- EndpointDescription endpointDescription, IServiceProperties result) {
-
- encodeOSGiServiceProperties(endpointDescription, result);
-
- Long rsId = (Long) endpointDescription.getProperties().get(
- org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
- if (rsId != null)
- encodeLong(result,
- org.eclipse.ecf.remoteservice.Constants.SERVICE_ID, rsId);
-
- // org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE
- // = endpointDescription.getIdNamespace()
- String containerIDNamespace = endpointDescription.getIdNamespace();
- if (containerIDNamespace != null)
- encodeString(result,
- RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE,
- containerIDNamespace);
-
- // org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.ENDPOINT_CONNECTTARGET_ID
- // = endpointDescription.getRemoteServiceId()
- ID connectTargetID = endpointDescription.getConnectTargetID();
- if (connectTargetID != null)
- encodeString(result, RemoteConstants.ENDPOINT_CONNECTTARGET_ID,
- connectTargetID.getName());
-
- // org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.ENDPOINT_IDFILTER_IDS
- // = endpointDescription.getIDFilter();
- ID[] idFilter = endpointDescription.getIDFilter();
- if (idFilter != null && idFilter.length > 0) {
- List<String> idNames = new ArrayList<String>();
- for (int i = 0; i < idFilter.length; i++)
- idNames.add(idFilter[i].getName());
- encodeList(result, RemoteConstants.ENDPOINT_IDFILTER_IDS, idNames);
- }
-
- // org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER
- // = endpointDescription.getRemoteServiceFilter()
- String remoteFilter = endpointDescription.getRemoteServiceFilter();
- if (remoteFilter != null) {
- encodeString(result, RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER,
- remoteFilter);
- }
- // encode non standard properties
- encodeNonStandardServiceProperties(endpointDescription.getProperties(),
- result);
- }
-
- protected void encodeNonStandardServiceProperties(
- Map<String, Object> properties, IServiceProperties result) {
- for (String key : properties.keySet()) {
- if (!PropertiesUtil.isReservedProperty(key)) {
- Object val = properties.get(key);
- if (val instanceof byte[]) {
- result.setPropertyBytes(key, (byte[]) val);
- } else if (val instanceof String) {
- result.setPropertyString(key, (String) val);
- } else {
- result.setProperty(key, val);
- }
- }
- }
- }
-
- protected void decodeNonStandardServiceProperties(IServiceProperties props,
- Map<String, Object> result) {
- for (Enumeration keys = props.getPropertyNames(); keys
- .hasMoreElements();) {
- String key = (String) keys.nextElement();
- if (!PropertiesUtil.isReservedProperty(key)) {
- byte[] bytes = props.getPropertyBytes(key);
- if (bytes != null) {
- result.put(key, bytes);
- continue;
- }
- String str = props.getPropertyString(key);
- if (str != null) {
- result.put(key, str);
- continue;
- }
- Object obj = props.getProperty(key);
- if (obj != null) {
- result.put(key, obj);
- continue;
- }
- }
- }
- }
-
- protected void logWarning(String methodName, String message, Throwable t) {
- LogUtility.logWarning(methodName, DebugOptions.METADATA_FACTORY,
- this.getClass(), message, t);
- }
-
- protected void logError(String methodName, String message, Throwable t) {
- LogUtility.logError(methodName, DebugOptions.METADATA_FACTORY,
- this.getClass(), message, t);
- }
-
- public void close() {
- // nothing to do
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.discovery.IServiceProperties;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
+import org.osgi.framework.Version;
+
+/**
+ * Abstract superclass for metadata factories...i.e. implementers of
+ * {@link IServiceInfoFactory}.
+ *
+ *
+ */
+public abstract class AbstractMetadataFactory {
+
+ protected static final String LIST_SEPARATOR = " "; //$NON-NLS-1$
+
+ protected void encodeString(IServiceProperties props, String name,
+ String value) {
+ props.setPropertyString(name, value);
+ }
+
+ protected String decodeString(IServiceProperties props, String name) {
+ return props.getPropertyString(name);
+ }
+
+ protected void encodeLong(IServiceProperties result, String name, Long value) {
+ result.setPropertyString(name, value.toString());
+ }
+
+ protected Long decodeLong(IServiceProperties props, String name) {
+ String longAsString = props.getPropertyString(name);
+ if (longAsString == null)
+ return new Long(0);
+ return new Long(longAsString);
+ }
+
+ protected void encodeList(IServiceProperties props, String name,
+ List<String> list) {
+ if (list == null)
+ return;
+ if (list.size() == 1) {
+ props.setPropertyString(name, list.get(0));
+ } else {
+ final StringBuffer result = new StringBuffer();
+ for (Iterator<String> i = list.iterator(); i.hasNext();) {
+ result.append(i.next());
+ if (i.hasNext())
+ result.append(LIST_SEPARATOR);
+ }
+ // Now add to props
+ props.setPropertyString(name, result.toString());
+ }
+ }
+
+ protected List<String> decodeList(IServiceProperties props, String name) {
+ String value = props.getPropertyString(name);
+ if (value == null)
+ return Collections.EMPTY_LIST;
+ List<String> result = new ArrayList<String>();
+ final StringTokenizer t = new StringTokenizer(value, LIST_SEPARATOR);
+ while (t.hasMoreTokens())
+ result.add(t.nextToken());
+ return result;
+ }
+
+ protected void decodeOSGiProperties(IServiceProperties props,
+ Map osgiProperties) {
+ // org.osgi.framework.Constants.OBJECTCLASS
+ List<String> interfaces = decodeList(props,
+ org.osgi.framework.Constants.OBJECTCLASS);
+ osgiProperties.put(org.osgi.framework.Constants.OBJECTCLASS,
+ (String[]) interfaces.toArray(new String[interfaces.size()]));
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
+ for (String intf : interfaces) {
+ String packageKey = org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
+ + getPackageName(intf);
+ String intfVersion = decodeString(props, packageKey);
+ if (intfVersion != null)
+ osgiProperties.put(packageKey, intfVersion);
+ }
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID
+ String endpointId = decodeString(props,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID);
+ osgiProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
+ endpointId);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID
+ Long endpointServiceId = decodeLong(
+ props,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID);
+ osgiProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
+ endpointServiceId);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID
+ String fwkuuid = decodeString(
+ props,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID);
+ osgiProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
+ fwkuuid);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS
+ List<String> configTypes = decodeList(
+ props,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS);
+ if (configTypes != null && configTypes.size() > 0)
+ osgiProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
+ (String[]) configTypes
+ .toArray(new String[configTypes.size()]));
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS
+ List<String> intents = decodeList(
+ props,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS);
+ if (intents != null && intents.size() > 0)
+ osgiProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS,
+ (String[]) intents.toArray(new String[intents
+ .size()]));
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED
+ List<String> remoteConfigsSupported = decodeList(
+ props,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED);
+ if (remoteConfigsSupported != null && remoteConfigsSupported.size() > 0)
+ osgiProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED,
+ (String[]) remoteConfigsSupported
+ .toArray(new String[remoteConfigsSupported
+ .size()]));
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED
+ List<String> remoteIntentsSupported = decodeList(
+ props,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED);
+ if (remoteIntentsSupported != null && remoteIntentsSupported.size() > 0)
+ osgiProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED,
+ (String[]) remoteIntentsSupported
+ .toArray(new String[remoteIntentsSupported
+ .size()]));
+
+ }
+
+ protected EndpointDescription decodeEndpointDescription(
+ IServiceProperties discoveredServiceProperties) {
+
+ Map<String, Object> endpointDescriptionProperties = new TreeMap<String, Object>(
+ String.CASE_INSENSITIVE_ORDER);
+
+ decodeOSGiProperties(discoveredServiceProperties,
+ endpointDescriptionProperties);
+
+ // remote service id
+ Long remoteServiceId = decodeLong(discoveredServiceProperties,
+ org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
+ endpointDescriptionProperties.put(
+ org.eclipse.ecf.remoteservice.Constants.SERVICE_ID,
+ remoteServiceId);
+
+ // container id namespace
+ String containerIDNamespace = decodeString(discoveredServiceProperties,
+ RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE);
+ if (containerIDNamespace != null)
+ endpointDescriptionProperties.put(
+ RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE,
+ containerIDNamespace);
+
+ // connect target ID
+ String connectTargetIDName = decodeString(discoveredServiceProperties,
+ RemoteConstants.ENDPOINT_CONNECTTARGET_ID);
+ if (connectTargetIDName != null)
+ endpointDescriptionProperties.put(
+ RemoteConstants.ENDPOINT_CONNECTTARGET_ID,
+ connectTargetIDName);
+
+ // ID filter
+ List<String> idFilterNames = decodeList(discoveredServiceProperties,
+ RemoteConstants.ENDPOINT_IDFILTER_IDS);
+ Object idFilterNamesval = PropertiesUtil
+ .convertToStringPlusValue(idFilterNames);
+ if (idFilterNamesval != null)
+ endpointDescriptionProperties.put(
+ RemoteConstants.ENDPOINT_IDFILTER_IDS, idFilterNamesval);
+
+ // remote service filter
+ String remoteServiceFilter = decodeString(discoveredServiceProperties,
+ RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER);
+ if (remoteServiceFilter != null)
+ endpointDescriptionProperties.put(
+ RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER,
+ remoteServiceFilter);
+
+ // Finally, fill out other properties
+ decodeNonStandardServiceProperties(discoveredServiceProperties,
+ endpointDescriptionProperties);
+
+ return new EndpointDescription(endpointDescriptionProperties);
+ }
+
+ private String getPackageName(String className) {
+ int lastDotIndex = className.lastIndexOf("."); //$NON-NLS-1$
+ if (lastDotIndex == -1)
+ return ""; //$NON-NLS-1$
+ return className.substring(0, lastDotIndex);
+ }
+
+ protected void encodeOSGiServiceProperties(
+ EndpointDescription endpointDescription, IServiceProperties result) {
+ // org.osgi.framework.Constants.OBJECTCLASS =
+ // endpointDescription.getInterfaces();
+ List<String> interfaces = endpointDescription.getInterfaces();
+ encodeList(result, org.osgi.framework.Constants.OBJECTCLASS, interfaces);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
+ // version every interface package, make sure to encode package version
+ // (if specified)
+ for (String intf : interfaces) {
+ String intfPackageName = getPackageName(intf);
+ Version intfVersion = endpointDescription
+ .getPackageVersion(intfPackageName);
+ if (intfVersion != null
+ && !Version.emptyVersion.equals(intfVersion))
+ encodeString(
+ result,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
+ + intfPackageName, intfVersion.toString());
+ }
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID ==
+ // endpointDescription.getId()
+ String endpointId = endpointDescription.getId();
+ encodeString(
+ result,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
+ endpointId);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID
+ // = endpointDescription.getServiceId()
+ long endpointServiceId = endpointDescription.getServiceId();
+ encodeLong(
+ result,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
+ new Long(endpointServiceId));
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID
+ // = endpointDescription.getFrameworkUUID()
+ String frameworkUUID = endpointDescription.getFrameworkUUID();
+ if (frameworkUUID != null)
+ encodeString(
+ result,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
+ frameworkUUID);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS
+ // = endpointDescription.getConfigurationTypes();
+ List<String> configurationTypes = endpointDescription
+ .getConfigurationTypes();
+ if (configurationTypes.size() > 0)
+ encodeList(
+ result,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
+ configurationTypes);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS =
+ // endpointDescription.getIntents()
+ List<String> serviceIntents = endpointDescription.getIntents();
+ if (serviceIntents.size() > 0)
+ encodeList(
+ result,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS,
+ serviceIntents);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED
+ Map endpointDescriptionProperties = endpointDescription.getProperties();
+ List<String> remoteConfigsSupported = PropertiesUtil
+ .getStringPlusProperty(
+ endpointDescriptionProperties,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED);
+ if (remoteConfigsSupported.size() > 0)
+ encodeList(
+ result,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED,
+ remoteConfigsSupported);
+ // org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED
+ List<String> remoteIntentsSupported = PropertiesUtil
+ .getStringPlusProperty(
+ endpointDescriptionProperties,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED);
+ if (remoteIntentsSupported.size() > 0)
+ encodeList(
+ result,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED,
+ remoteIntentsSupported);
+
+ }
+
+ protected void encodeServiceProperties(
+ EndpointDescription endpointDescription, IServiceProperties result) {
+
+ encodeOSGiServiceProperties(endpointDescription, result);
+
+ Long rsId = (Long) endpointDescription.getProperties().get(
+ org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
+ if (rsId != null)
+ encodeLong(result,
+ org.eclipse.ecf.remoteservice.Constants.SERVICE_ID, rsId);
+
+ // org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE
+ // = endpointDescription.getIdNamespace()
+ String containerIDNamespace = endpointDescription.getIdNamespace();
+ if (containerIDNamespace != null)
+ encodeString(result,
+ RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE,
+ containerIDNamespace);
+
+ // org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.ENDPOINT_CONNECTTARGET_ID
+ // = endpointDescription.getRemoteServiceId()
+ ID connectTargetID = endpointDescription.getConnectTargetID();
+ if (connectTargetID != null)
+ encodeString(result, RemoteConstants.ENDPOINT_CONNECTTARGET_ID,
+ connectTargetID.getName());
+
+ // org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.ENDPOINT_IDFILTER_IDS
+ // = endpointDescription.getIDFilter();
+ ID[] idFilter = endpointDescription.getIDFilter();
+ if (idFilter != null && idFilter.length > 0) {
+ List<String> idNames = new ArrayList<String>();
+ for (int i = 0; i < idFilter.length; i++)
+ idNames.add(idFilter[i].getName());
+ encodeList(result, RemoteConstants.ENDPOINT_IDFILTER_IDS, idNames);
+ }
+
+ // org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER
+ // = endpointDescription.getRemoteServiceFilter()
+ String remoteFilter = endpointDescription.getRemoteServiceFilter();
+ if (remoteFilter != null) {
+ encodeString(result, RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER,
+ remoteFilter);
+ }
+ // encode non standard properties
+ encodeNonStandardServiceProperties(endpointDescription.getProperties(),
+ result);
+ }
+
+ protected void encodeNonStandardServiceProperties(
+ Map<String, Object> properties, IServiceProperties result) {
+ for (String key : properties.keySet()) {
+ if (!PropertiesUtil.isReservedProperty(key)) {
+ Object val = properties.get(key);
+ if (val instanceof byte[]) {
+ result.setPropertyBytes(key, (byte[]) val);
+ } else if (val instanceof String) {
+ result.setPropertyString(key, (String) val);
+ } else {
+ result.setProperty(key, val);
+ }
+ }
+ }
+ }
+
+ protected void decodeNonStandardServiceProperties(IServiceProperties props,
+ Map<String, Object> result) {
+ for (Enumeration keys = props.getPropertyNames(); keys
+ .hasMoreElements();) {
+ String key = (String) keys.nextElement();
+ if (!PropertiesUtil.isReservedProperty(key)) {
+ byte[] bytes = props.getPropertyBytes(key);
+ if (bytes != null) {
+ result.put(key, bytes);
+ continue;
+ }
+ String str = props.getPropertyString(key);
+ if (str != null) {
+ result.put(key, str);
+ continue;
+ }
+ Object obj = props.getProperty(key);
+ if (obj != null) {
+ result.put(key, obj);
+ continue;
+ }
+ }
+ }
+ }
+
+ protected void logWarning(String methodName, String message, Throwable t) {
+ LogUtility.logWarning(methodName, DebugOptions.METADATA_FACTORY,
+ this.getClass(), message, t);
+ }
+
+ protected void logError(String methodName, String message, Throwable t) {
+ LogUtility.logError(methodName, DebugOptions.METADATA_FACTORY,
+ this.getClass(), message, t);
+ }
+
+ public void close() {
+ // nothing to do
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractTopologyManager.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractTopologyManager.java
index 8c6048e7a..a810ceda6 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractTopologyManager.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractTopologyManager.java
@@ -1,435 +1,435 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceEvent;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.remoteserviceadmin.ExportRegistration;
-import org.osgi.service.remoteserviceadmin.ImportRegistration;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * Abstract superclass for topology managers. This abstract superclass provides
- * basic functionality for topology managers to reuse. New topology managers can
- * extend this class to get or customize desired functionality. Alternatively,
- * they can use this class as a guide to implementing desired topology manager
- * behavior. For description of the role of topology managers see the <a
- * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGI 4.2 Remote
- * Service Admin specification (chap 122)</a>.
- *
- */
-public abstract class AbstractTopologyManager {
-
- public static final String SERVICE_EXPORTED_INTERFACES_WILDCARD = "*"; //$NON-NLS-1$
-
- private BundleContext context;
-
- private ServiceTracker endpointDescriptionAdvertiserTracker;
- private Object endpointDescriptionAdvertiserTrackerLock = new Object();
-
- private ServiceTracker remoteServiceAdminTracker;
- private Object remoteServiceAdminTrackerLock = new Object();
-
- protected Collection<org.osgi.service.remoteserviceadmin.ExportRegistration> exportedRegistrations = new ArrayList<org.osgi.service.remoteserviceadmin.ExportRegistration>();
-
- protected Collection<org.osgi.service.remoteserviceadmin.ImportRegistration> importedRegistrations = new ArrayList<org.osgi.service.remoteserviceadmin.ImportRegistration>();
-
- public AbstractTopologyManager(BundleContext context) {
- this.context = context;
- }
-
- protected BundleContext getContext() {
- return context;
- }
-
- protected String getFrameworkUUID() {
- Activator a = Activator.getDefault();
- if (a == null)
- return null;
- return a.getFrameworkUUID();
- }
-
- protected IEndpointDescriptionAdvertiser getEndpointDescriptionAdvertiser(
- EndpointDescription endpointDescription) {
- synchronized (endpointDescriptionAdvertiserTrackerLock) {
- if (endpointDescriptionAdvertiserTracker == null) {
- endpointDescriptionAdvertiserTracker = new ServiceTracker(
- getContext(),
- IEndpointDescriptionAdvertiser.class.getName(), null);
- endpointDescriptionAdvertiserTracker.open();
- }
- }
- return (IEndpointDescriptionAdvertiser) endpointDescriptionAdvertiserTracker
- .getService();
- }
-
- public void close() {
- synchronized (endpointDescriptionAdvertiserTrackerLock) {
- if (endpointDescriptionAdvertiserTracker != null) {
- endpointDescriptionAdvertiserTracker.close();
- endpointDescriptionAdvertiserTracker = null;
- }
- }
- synchronized (remoteServiceAdminTrackerLock) {
- if (remoteServiceAdminTracker != null) {
- remoteServiceAdminTracker.close();
- remoteServiceAdminTracker = null;
- }
- }
- synchronized (exportedRegistrations) {
- exportedRegistrations.clear();
- }
- synchronized (importedRegistrations) {
- importedRegistrations.clear();
- }
- context = null;
- }
-
- protected void logWarning(String methodName, String message) {
- LogUtility.logWarning(methodName, DebugOptions.TOPOLOGY_MANAGER,
- this.getClass(), message);
- }
-
- protected Filter createRSAFilter() {
- String filterString = "(&(" //$NON-NLS-1$
- + org.osgi.framework.Constants.OBJECTCLASS
- + "=" //$NON-NLS-1$
- + org.osgi.service.remoteserviceadmin.RemoteServiceAdmin.class
- .getName()
- + ")(" //$NON-NLS-1$
- + org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.SERVICE_PROP
- + "=*))"; //$NON-NLS-1$
- try {
- return getContext().createFilter(filterString);
- } catch (InvalidSyntaxException e) {
- // Should never happen
- return null;
- }
- }
-
- protected org.osgi.service.remoteserviceadmin.RemoteServiceAdmin getRemoteServiceAdmin() {
- synchronized (remoteServiceAdminTrackerLock) {
- if (remoteServiceAdminTracker == null) {
- remoteServiceAdminTracker = new ServiceTracker(getContext(),
- createRSAFilter(), null);
- remoteServiceAdminTracker.open();
- }
- }
- return (org.osgi.service.remoteserviceadmin.RemoteServiceAdmin) remoteServiceAdminTracker
- .getService();
- }
-
- protected void advertiseEndpointDescription(
- EndpointDescription endpointDescription) {
- IEndpointDescriptionAdvertiser advertiser = getEndpointDescriptionAdvertiser(endpointDescription);
- if (advertiser == null) {
- logWarning("advertiseExportedRegistration", //$NON-NLS-1$
- "No endpoint description advertiser available for endpointDescription=" //$NON-NLS-1$
- + endpointDescription);
- return;
- }
- // Now advertise endpoint description using endpoint description
- // advertiser
- trace("advertiseEndpointDescription", //$NON-NLS-1$
- "advertising endpointDescription=" + endpointDescription //$NON-NLS-1$
- + " with advertiser=" + advertiser); //$NON-NLS-1$
- IStatus result = advertiser.advertise(endpointDescription);
- if (!result.isOK())
- logError("advertiseExportedRegistration", //$NON-NLS-1$
- "Advertise of endpointDescription=" + endpointDescription //$NON-NLS-1$
- + " FAILED", result); //$NON-NLS-1$
- }
-
- protected void unadvertiseEndpointDescription(
- EndpointDescription endpointDescription) {
- IEndpointDescriptionAdvertiser advertiser = getEndpointDescriptionAdvertiser(endpointDescription);
- if (advertiser == null) {
- logError(
- "unadvertiseEndpointDescription", //$NON-NLS-1$
- "No endpoint description advertiser available to unadvertise endpointDescription=" //$NON-NLS-1$
- + endpointDescription);
- return;
- }
- // Now unadvertise endpoint description using endpoint description
- // advertiser
- IStatus result = advertiser.unadvertise(endpointDescription);
- if (!result.isOK())
- logError("unadvertiseEndpointDescription", //$NON-NLS-1$
- "Unadvertise of endpointDescription=" + endpointDescription //$NON-NLS-1$
- + " FAILED", result); //$NON-NLS-1$
- }
-
- protected void logError(String methodName, String message,
- Throwable exception) {
- LogUtility.logError(methodName, DebugOptions.TOPOLOGY_MANAGER,
- this.getClass(), message, exception);
- }
-
- protected void logError(String methodName, String message, IStatus result) {
- LogUtility.logError(methodName, DebugOptions.TOPOLOGY_MANAGER,
- this.getClass(), result);
- }
-
- protected void trace(String methodName, String message) {
- LogUtility.trace(methodName, DebugOptions.TOPOLOGY_MANAGER,
- this.getClass(), message);
- }
-
- protected void logError(String methodName, String message) {
- LogUtility.logError(methodName, DebugOptions.TOPOLOGY_MANAGER,
- this.getClass(), message);
- }
-
- protected void handleEndpointAdded(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
- String matchedFilter) {
-
- // First, select importing remote service admin
- org.osgi.service.remoteserviceadmin.RemoteServiceAdmin rsa = getRemoteServiceAdmin();
-
- if (rsa == null) {
- logError("handleEndpointAdded", //$NON-NLS-1$
- "RemoteServiceAdmin not found for importing endpointDescription=" //$NON-NLS-1$
- + endpointDescription);
- return;
- }
-
- trace("handleEndpointAdded", "endpointDescription=" //$NON-NLS-1$ //$NON-NLS-2$
- + endpointDescription + " rsa=" + rsa); //$NON-NLS-1$
-
- // now call rsa.import
- org.osgi.service.remoteserviceadmin.ImportRegistration importRegistration = rsa
- .importService(endpointDescription);
-
- if (importRegistration == null) {
- logError("handleEndpointAdded", //$NON-NLS-1$
- "Import registration is null for endpointDescription=" //$NON-NLS-1$
- + endpointDescription + " and rsa=" + rsa); //$NON-NLS-1$
- } else {
- Throwable t = importRegistration.getException();
- if (t != null)
- handleInvalidImportRegistration(importRegistration, t);
- else {
- synchronized (importedRegistrations) {
- importedRegistrations.add(importRegistration);
- }
- }
- }
- }
-
- protected void handleInvalidImportRegistration(
- ImportRegistration importRegistration, Throwable t) {
- logError("handleInvalidImportRegistration", "importRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
- + importRegistration, t);
- }
-
- protected void handleEvent(ServiceEvent event, Collection contexts) {
- switch (event.getType()) {
- case ServiceEvent.MODIFIED:
- handleServiceModifying(event.getServiceReference());
- break;
- case ServiceEvent.MODIFIED_ENDMATCH:
- break;
- case ServiceEvent.REGISTERED:
- handleServiceRegistering(event.getServiceReference());
- break;
- case ServiceEvent.UNREGISTERING:
- handleServiceUnregistering(event.getServiceReference());
- break;
- default:
- break;
- }
- }
-
- protected void handleEndpointRemoved(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
- String matchedFilter) {
- trace("handleEndpointRemoved", "endpointDescription=" //$NON-NLS-1$ //$NON-NLS-2$
- + endpointDescription);
- unimportService(endpointDescription);
- }
-
- protected void handleServiceRegistering(ServiceReference serviceReference) {
- // Using OSGI 4.2 Chap 13 Remote Services spec, get the specified remote
- // interfaces for the given service reference
- String[] exportedInterfaces = PropertiesUtil
- .getExportedInterfaces(serviceReference);
- // If no remote interfaces set, then we don't do anything with it
- if (exportedInterfaces == null)
- return;
-
- // Select remote service admin
- org.osgi.service.remoteserviceadmin.RemoteServiceAdmin rsa = getRemoteServiceAdmin();
-
- // if no remote service admin available, then log error and return
- if (rsa == null) {
- logError("handleServiceRegistered", //$NON-NLS-1$
- "No RemoteServiceAdmin found for serviceReference=" //$NON-NLS-1$
- + serviceReference
- + ". Remote service NOT EXPORTED"); //$NON-NLS-1$
- return;
- }
-
- // prepare export properties
- Map<String, Object> exportProperties = new TreeMap<String, Object>(
- String.CASE_INSENSITIVE_ORDER);
- exportProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES,
- exportedInterfaces);
- trace("handleServiceRegistering", "serviceReference=" //$NON-NLS-1$ //$NON-NLS-2$
- + serviceReference + " exportProperties=" + exportProperties); //$NON-NLS-1$
- Collection<org.osgi.service.remoteserviceadmin.ExportRegistration> registrations = rsa
- .exportService(serviceReference, exportProperties);
-
- if (registrations == null || registrations.size() == 0) {
- logError("handleServiceRegistered", //$NON-NLS-1$
- "No export registrations created by RemoteServiceAdmin=" //$NON-NLS-1$
- + rsa + ". ServiceReference=" + serviceReference //$NON-NLS-1$
- + " NOT EXPORTED"); //$NON-NLS-1$
- return;
- }
-
- List<EndpointDescription> endpointDescriptions = new ArrayList<EndpointDescription>();
-
- for (org.osgi.service.remoteserviceadmin.ExportRegistration exportRegistration : registrations) {
- // If they are invalid report as such
- Throwable t = exportRegistration.getException();
- if (t != null)
- handleInvalidExportRegistration(exportRegistration, t);
- else {
- endpointDescriptions
- .add((EndpointDescription) exportRegistration
- .getExportReference().getExportedEndpoint());
- synchronized (exportedRegistrations) {
- exportedRegistrations.add(exportRegistration);
- }
- }
- }
- // advertise valid exported registrations
- advertiseEndpointDescriptions(endpointDescriptions);
- }
-
- protected void advertiseEndpointDescriptions(
- List<EndpointDescription> endpointDescriptions) {
- for (EndpointDescription ed : endpointDescriptions)
- advertiseEndpointDescription(ed);
- }
-
- protected void handleInvalidExportRegistration(
- ExportRegistration exportRegistration, Throwable t) {
- logError("handleInvalidExportRegistration", "exportRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
- + exportRegistration, t);
- }
-
- protected void handleServiceModifying(ServiceReference serviceReference) {
- }
-
- protected void handleServiceUnregistering(ServiceReference serviceReference) {
- Collection<EndpointDescription> endpointDescriptions = unexportService(serviceReference);
- if (endpointDescriptions != null)
- for (EndpointDescription ed : endpointDescriptions)
- unadvertiseEndpointDescription(ed);
- }
-
- protected Collection<EndpointDescription> unexportService(
- ServiceReference serviceReference) {
- Map<org.osgi.service.remoteserviceadmin.ExportRegistration, EndpointDescription> matchingExportRegistrations = null;
- synchronized (exportedRegistrations) {
- for (Iterator<org.osgi.service.remoteserviceadmin.ExportRegistration> i = exportedRegistrations
- .iterator(); i.hasNext();) {
- if (matchingExportRegistrations == null)
- matchingExportRegistrations = new HashMap<org.osgi.service.remoteserviceadmin.ExportRegistration, EndpointDescription>();
- org.osgi.service.remoteserviceadmin.ExportRegistration exportRegistration = i
- .next();
- // Only check valid registrations (no exceptions)
- if (exportRegistration.getException() == null) {
- org.osgi.service.remoteserviceadmin.ExportReference exportRef = exportRegistration
- .getExportReference();
- if (exportRef != null) {
- ServiceReference exportReference = exportRef
- .getExportedService();
- if (exportReference != null
- && serviceReference.equals(exportReference)) {
- matchingExportRegistrations.put(exportRegistration,
- (EndpointDescription) exportRef
- .getExportedEndpoint());
- i.remove();
- }
- }
- }
- }
- }
- // If no matching export registrations then we return null and are done
- if (matchingExportRegistrations == null
- || matchingExportRegistrations.size() == 0)
- return null;
- // We close all matching export registrations
- for (Iterator<org.osgi.service.remoteserviceadmin.ExportRegistration> i = matchingExportRegistrations
- .keySet().iterator(); i.hasNext();) {
- org.osgi.service.remoteserviceadmin.ExportRegistration exportRegistration = i
- .next();
- trace("unexportService", "closing exportRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
- + exportRegistration);
- exportRegistration.close();
- }
- // And return endpointDescriptions for matching registrations
- return matchingExportRegistrations.values();
- }
-
- protected void unimportService(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
- List<org.osgi.service.remoteserviceadmin.ImportRegistration> removedRegistrations = null;
- synchronized (importedRegistrations) {
- for (Iterator<org.osgi.service.remoteserviceadmin.ImportRegistration> i = importedRegistrations
- .iterator(); i.hasNext();) {
- if (removedRegistrations == null)
- removedRegistrations = new ArrayList<org.osgi.service.remoteserviceadmin.ImportRegistration>();
- org.osgi.service.remoteserviceadmin.ImportRegistration importRegistration = i
- .next();
- if (importRegistration.getException() == null) {
- org.osgi.service.remoteserviceadmin.ImportReference importRef = importRegistration
- .getImportReference();
- if (importRef != null) {
- org.osgi.service.remoteserviceadmin.EndpointDescription ed = importRef
- .getImportedEndpoint();
- if (ed != null && ed.isSameService(endpointDescription)) {
- removedRegistrations.add(importRegistration);
- i.remove();
- }
- }
- }
- }
- }
- // Now close all of them
- if (removedRegistrations != null)
- for (org.osgi.service.remoteserviceadmin.ImportRegistration removedReg : removedRegistrations) {
- trace("unimportService", "closing importRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
- + removedReg);
- removedReg.close();
- }
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Filter;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.remoteserviceadmin.ExportRegistration;
+import org.osgi.service.remoteserviceadmin.ImportRegistration;
+import org.osgi.util.tracker.ServiceTracker;
+
+/**
+ * Abstract superclass for topology managers. This abstract superclass provides
+ * basic functionality for topology managers to reuse. New topology managers can
+ * extend this class to get or customize desired functionality. Alternatively,
+ * they can use this class as a guide to implementing desired topology manager
+ * behavior. For description of the role of topology managers see the <a
+ * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGI 4.2 Remote
+ * Service Admin specification (chap 122)</a>.
+ *
+ */
+public abstract class AbstractTopologyManager {
+
+ public static final String SERVICE_EXPORTED_INTERFACES_WILDCARD = "*"; //$NON-NLS-1$
+
+ private BundleContext context;
+
+ private ServiceTracker endpointDescriptionAdvertiserTracker;
+ private Object endpointDescriptionAdvertiserTrackerLock = new Object();
+
+ private ServiceTracker remoteServiceAdminTracker;
+ private Object remoteServiceAdminTrackerLock = new Object();
+
+ protected Collection<org.osgi.service.remoteserviceadmin.ExportRegistration> exportedRegistrations = new ArrayList<org.osgi.service.remoteserviceadmin.ExportRegistration>();
+
+ protected Collection<org.osgi.service.remoteserviceadmin.ImportRegistration> importedRegistrations = new ArrayList<org.osgi.service.remoteserviceadmin.ImportRegistration>();
+
+ public AbstractTopologyManager(BundleContext context) {
+ this.context = context;
+ }
+
+ protected BundleContext getContext() {
+ return context;
+ }
+
+ protected String getFrameworkUUID() {
+ Activator a = Activator.getDefault();
+ if (a == null)
+ return null;
+ return a.getFrameworkUUID();
+ }
+
+ protected IEndpointDescriptionAdvertiser getEndpointDescriptionAdvertiser(
+ EndpointDescription endpointDescription) {
+ synchronized (endpointDescriptionAdvertiserTrackerLock) {
+ if (endpointDescriptionAdvertiserTracker == null) {
+ endpointDescriptionAdvertiserTracker = new ServiceTracker(
+ getContext(),
+ IEndpointDescriptionAdvertiser.class.getName(), null);
+ endpointDescriptionAdvertiserTracker.open();
+ }
+ }
+ return (IEndpointDescriptionAdvertiser) endpointDescriptionAdvertiserTracker
+ .getService();
+ }
+
+ public void close() {
+ synchronized (endpointDescriptionAdvertiserTrackerLock) {
+ if (endpointDescriptionAdvertiserTracker != null) {
+ endpointDescriptionAdvertiserTracker.close();
+ endpointDescriptionAdvertiserTracker = null;
+ }
+ }
+ synchronized (remoteServiceAdminTrackerLock) {
+ if (remoteServiceAdminTracker != null) {
+ remoteServiceAdminTracker.close();
+ remoteServiceAdminTracker = null;
+ }
+ }
+ synchronized (exportedRegistrations) {
+ exportedRegistrations.clear();
+ }
+ synchronized (importedRegistrations) {
+ importedRegistrations.clear();
+ }
+ context = null;
+ }
+
+ protected void logWarning(String methodName, String message) {
+ LogUtility.logWarning(methodName, DebugOptions.TOPOLOGY_MANAGER,
+ this.getClass(), message);
+ }
+
+ protected Filter createRSAFilter() {
+ String filterString = "(&(" //$NON-NLS-1$
+ + org.osgi.framework.Constants.OBJECTCLASS
+ + "=" //$NON-NLS-1$
+ + org.osgi.service.remoteserviceadmin.RemoteServiceAdmin.class
+ .getName()
+ + ")(" //$NON-NLS-1$
+ + org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.SERVICE_PROP
+ + "=*))"; //$NON-NLS-1$
+ try {
+ return getContext().createFilter(filterString);
+ } catch (InvalidSyntaxException e) {
+ // Should never happen
+ return null;
+ }
+ }
+
+ protected org.osgi.service.remoteserviceadmin.RemoteServiceAdmin getRemoteServiceAdmin() {
+ synchronized (remoteServiceAdminTrackerLock) {
+ if (remoteServiceAdminTracker == null) {
+ remoteServiceAdminTracker = new ServiceTracker(getContext(),
+ createRSAFilter(), null);
+ remoteServiceAdminTracker.open();
+ }
+ }
+ return (org.osgi.service.remoteserviceadmin.RemoteServiceAdmin) remoteServiceAdminTracker
+ .getService();
+ }
+
+ protected void advertiseEndpointDescription(
+ EndpointDescription endpointDescription) {
+ IEndpointDescriptionAdvertiser advertiser = getEndpointDescriptionAdvertiser(endpointDescription);
+ if (advertiser == null) {
+ logWarning("advertiseExportedRegistration", //$NON-NLS-1$
+ "No endpoint description advertiser available for endpointDescription=" //$NON-NLS-1$
+ + endpointDescription);
+ return;
+ }
+ // Now advertise endpoint description using endpoint description
+ // advertiser
+ trace("advertiseEndpointDescription", //$NON-NLS-1$
+ "advertising endpointDescription=" + endpointDescription //$NON-NLS-1$
+ + " with advertiser=" + advertiser); //$NON-NLS-1$
+ IStatus result = advertiser.advertise(endpointDescription);
+ if (!result.isOK())
+ logError("advertiseExportedRegistration", //$NON-NLS-1$
+ "Advertise of endpointDescription=" + endpointDescription //$NON-NLS-1$
+ + " FAILED", result); //$NON-NLS-1$
+ }
+
+ protected void unadvertiseEndpointDescription(
+ EndpointDescription endpointDescription) {
+ IEndpointDescriptionAdvertiser advertiser = getEndpointDescriptionAdvertiser(endpointDescription);
+ if (advertiser == null) {
+ logError(
+ "unadvertiseEndpointDescription", //$NON-NLS-1$
+ "No endpoint description advertiser available to unadvertise endpointDescription=" //$NON-NLS-1$
+ + endpointDescription);
+ return;
+ }
+ // Now unadvertise endpoint description using endpoint description
+ // advertiser
+ IStatus result = advertiser.unadvertise(endpointDescription);
+ if (!result.isOK())
+ logError("unadvertiseEndpointDescription", //$NON-NLS-1$
+ "Unadvertise of endpointDescription=" + endpointDescription //$NON-NLS-1$
+ + " FAILED", result); //$NON-NLS-1$
+ }
+
+ protected void logError(String methodName, String message,
+ Throwable exception) {
+ LogUtility.logError(methodName, DebugOptions.TOPOLOGY_MANAGER,
+ this.getClass(), message, exception);
+ }
+
+ protected void logError(String methodName, String message, IStatus result) {
+ LogUtility.logError(methodName, DebugOptions.TOPOLOGY_MANAGER,
+ this.getClass(), result);
+ }
+
+ protected void trace(String methodName, String message) {
+ LogUtility.trace(methodName, DebugOptions.TOPOLOGY_MANAGER,
+ this.getClass(), message);
+ }
+
+ protected void logError(String methodName, String message) {
+ LogUtility.logError(methodName, DebugOptions.TOPOLOGY_MANAGER,
+ this.getClass(), message);
+ }
+
+ protected void handleEndpointAdded(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
+ String matchedFilter) {
+
+ // First, select importing remote service admin
+ org.osgi.service.remoteserviceadmin.RemoteServiceAdmin rsa = getRemoteServiceAdmin();
+
+ if (rsa == null) {
+ logError("handleEndpointAdded", //$NON-NLS-1$
+ "RemoteServiceAdmin not found for importing endpointDescription=" //$NON-NLS-1$
+ + endpointDescription);
+ return;
+ }
+
+ trace("handleEndpointAdded", "endpointDescription=" //$NON-NLS-1$ //$NON-NLS-2$
+ + endpointDescription + " rsa=" + rsa); //$NON-NLS-1$
+
+ // now call rsa.import
+ org.osgi.service.remoteserviceadmin.ImportRegistration importRegistration = rsa
+ .importService(endpointDescription);
+
+ if (importRegistration == null) {
+ logError("handleEndpointAdded", //$NON-NLS-1$
+ "Import registration is null for endpointDescription=" //$NON-NLS-1$
+ + endpointDescription + " and rsa=" + rsa); //$NON-NLS-1$
+ } else {
+ Throwable t = importRegistration.getException();
+ if (t != null)
+ handleInvalidImportRegistration(importRegistration, t);
+ else {
+ synchronized (importedRegistrations) {
+ importedRegistrations.add(importRegistration);
+ }
+ }
+ }
+ }
+
+ protected void handleInvalidImportRegistration(
+ ImportRegistration importRegistration, Throwable t) {
+ logError("handleInvalidImportRegistration", "importRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
+ + importRegistration, t);
+ }
+
+ protected void handleEvent(ServiceEvent event, Collection contexts) {
+ switch (event.getType()) {
+ case ServiceEvent.MODIFIED:
+ handleServiceModifying(event.getServiceReference());
+ break;
+ case ServiceEvent.MODIFIED_ENDMATCH:
+ break;
+ case ServiceEvent.REGISTERED:
+ handleServiceRegistering(event.getServiceReference());
+ break;
+ case ServiceEvent.UNREGISTERING:
+ handleServiceUnregistering(event.getServiceReference());
+ break;
+ default:
+ break;
+ }
+ }
+
+ protected void handleEndpointRemoved(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
+ String matchedFilter) {
+ trace("handleEndpointRemoved", "endpointDescription=" //$NON-NLS-1$ //$NON-NLS-2$
+ + endpointDescription);
+ unimportService(endpointDescription);
+ }
+
+ protected void handleServiceRegistering(ServiceReference serviceReference) {
+ // Using OSGI 4.2 Chap 13 Remote Services spec, get the specified remote
+ // interfaces for the given service reference
+ String[] exportedInterfaces = PropertiesUtil
+ .getExportedInterfaces(serviceReference);
+ // If no remote interfaces set, then we don't do anything with it
+ if (exportedInterfaces == null)
+ return;
+
+ // Select remote service admin
+ org.osgi.service.remoteserviceadmin.RemoteServiceAdmin rsa = getRemoteServiceAdmin();
+
+ // if no remote service admin available, then log error and return
+ if (rsa == null) {
+ logError("handleServiceRegistered", //$NON-NLS-1$
+ "No RemoteServiceAdmin found for serviceReference=" //$NON-NLS-1$
+ + serviceReference
+ + ". Remote service NOT EXPORTED"); //$NON-NLS-1$
+ return;
+ }
+
+ // prepare export properties
+ Map<String, Object> exportProperties = new TreeMap<String, Object>(
+ String.CASE_INSENSITIVE_ORDER);
+ exportProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES,
+ exportedInterfaces);
+ trace("handleServiceRegistering", "serviceReference=" //$NON-NLS-1$ //$NON-NLS-2$
+ + serviceReference + " exportProperties=" + exportProperties); //$NON-NLS-1$
+ Collection<org.osgi.service.remoteserviceadmin.ExportRegistration> registrations = rsa
+ .exportService(serviceReference, exportProperties);
+
+ if (registrations == null || registrations.size() == 0) {
+ logError("handleServiceRegistered", //$NON-NLS-1$
+ "No export registrations created by RemoteServiceAdmin=" //$NON-NLS-1$
+ + rsa + ". ServiceReference=" + serviceReference //$NON-NLS-1$
+ + " NOT EXPORTED"); //$NON-NLS-1$
+ return;
+ }
+
+ List<EndpointDescription> endpointDescriptions = new ArrayList<EndpointDescription>();
+
+ for (org.osgi.service.remoteserviceadmin.ExportRegistration exportRegistration : registrations) {
+ // If they are invalid report as such
+ Throwable t = exportRegistration.getException();
+ if (t != null)
+ handleInvalidExportRegistration(exportRegistration, t);
+ else {
+ endpointDescriptions
+ .add((EndpointDescription) exportRegistration
+ .getExportReference().getExportedEndpoint());
+ synchronized (exportedRegistrations) {
+ exportedRegistrations.add(exportRegistration);
+ }
+ }
+ }
+ // advertise valid exported registrations
+ advertiseEndpointDescriptions(endpointDescriptions);
+ }
+
+ protected void advertiseEndpointDescriptions(
+ List<EndpointDescription> endpointDescriptions) {
+ for (EndpointDescription ed : endpointDescriptions)
+ advertiseEndpointDescription(ed);
+ }
+
+ protected void handleInvalidExportRegistration(
+ ExportRegistration exportRegistration, Throwable t) {
+ logError("handleInvalidExportRegistration", "exportRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
+ + exportRegistration, t);
+ }
+
+ protected void handleServiceModifying(ServiceReference serviceReference) {
+ }
+
+ protected void handleServiceUnregistering(ServiceReference serviceReference) {
+ Collection<EndpointDescription> endpointDescriptions = unexportService(serviceReference);
+ if (endpointDescriptions != null)
+ for (EndpointDescription ed : endpointDescriptions)
+ unadvertiseEndpointDescription(ed);
+ }
+
+ protected Collection<EndpointDescription> unexportService(
+ ServiceReference serviceReference) {
+ Map<org.osgi.service.remoteserviceadmin.ExportRegistration, EndpointDescription> matchingExportRegistrations = null;
+ synchronized (exportedRegistrations) {
+ for (Iterator<org.osgi.service.remoteserviceadmin.ExportRegistration> i = exportedRegistrations
+ .iterator(); i.hasNext();) {
+ if (matchingExportRegistrations == null)
+ matchingExportRegistrations = new HashMap<org.osgi.service.remoteserviceadmin.ExportRegistration, EndpointDescription>();
+ org.osgi.service.remoteserviceadmin.ExportRegistration exportRegistration = i
+ .next();
+ // Only check valid registrations (no exceptions)
+ if (exportRegistration.getException() == null) {
+ org.osgi.service.remoteserviceadmin.ExportReference exportRef = exportRegistration
+ .getExportReference();
+ if (exportRef != null) {
+ ServiceReference exportReference = exportRef
+ .getExportedService();
+ if (exportReference != null
+ && serviceReference.equals(exportReference)) {
+ matchingExportRegistrations.put(exportRegistration,
+ (EndpointDescription) exportRef
+ .getExportedEndpoint());
+ i.remove();
+ }
+ }
+ }
+ }
+ }
+ // If no matching export registrations then we return null and are done
+ if (matchingExportRegistrations == null
+ || matchingExportRegistrations.size() == 0)
+ return null;
+ // We close all matching export registrations
+ for (Iterator<org.osgi.service.remoteserviceadmin.ExportRegistration> i = matchingExportRegistrations
+ .keySet().iterator(); i.hasNext();) {
+ org.osgi.service.remoteserviceadmin.ExportRegistration exportRegistration = i
+ .next();
+ trace("unexportService", "closing exportRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
+ + exportRegistration);
+ exportRegistration.close();
+ }
+ // And return endpointDescriptions for matching registrations
+ return matchingExportRegistrations.values();
+ }
+
+ protected void unimportService(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
+ List<org.osgi.service.remoteserviceadmin.ImportRegistration> removedRegistrations = null;
+ synchronized (importedRegistrations) {
+ for (Iterator<org.osgi.service.remoteserviceadmin.ImportRegistration> i = importedRegistrations
+ .iterator(); i.hasNext();) {
+ if (removedRegistrations == null)
+ removedRegistrations = new ArrayList<org.osgi.service.remoteserviceadmin.ImportRegistration>();
+ org.osgi.service.remoteserviceadmin.ImportRegistration importRegistration = i
+ .next();
+ if (importRegistration.getException() == null) {
+ org.osgi.service.remoteserviceadmin.ImportReference importRef = importRegistration
+ .getImportReference();
+ if (importRef != null) {
+ org.osgi.service.remoteserviceadmin.EndpointDescription ed = importRef
+ .getImportedEndpoint();
+ if (ed != null && ed.isSameService(endpointDescription)) {
+ removedRegistrations.add(importRegistration);
+ i.remove();
+ }
+ }
+ }
+ }
+ }
+ // Now close all of them
+ if (removedRegistrations != null)
+ for (org.osgi.service.remoteserviceadmin.ImportRegistration removedReg : removedRegistrations) {
+ trace("unimportService", "closing importRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
+ + removedReg);
+ removedReg.close();
+ }
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ConsumerContainerSelector.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ConsumerContainerSelector.java
index e06dff72d..2ecdd153a 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ConsumerContainerSelector.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ConsumerContainerSelector.java
@@ -1,71 +1,71 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.List;
-
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
-
-/**
- * Default implementation of {@link IConsumerContainerSelector}.
- *
- */
-public class ConsumerContainerSelector extends
- AbstractConsumerContainerSelector implements IConsumerContainerSelector {
-
- private boolean autoCreateContainer = false;
-
- public ConsumerContainerSelector(boolean autoCreateContainer) {
- this.autoCreateContainer = autoCreateContainer;
- }
-
- public IRemoteServiceContainer selectConsumerContainer(
- EndpointDescription endpointDescription)
- throws SelectContainerException {
- trace("selectConsumerContainers", "endpointDescription=" + endpointDescription); //$NON-NLS-1$ //$NON-NLS-2$
-
- // Get service.imported.configs
- List<String> sic = PropertiesUtil
- .getStringPlusProperty(
- endpointDescription.getProperties(),
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS);
- String[] serviceImportedConfigs = sic.toArray(new String[sic.size()]);
- // Get the endpointID
- ID endpointContainerID = endpointDescription.getContainerID();
-
- // Get connect targetID
- ID connectTargetID = endpointDescription.getConnectTargetID();
-
- IRemoteServiceContainer rsContainer = selectExistingConsumerContainer(
- endpointContainerID, serviceImportedConfigs, connectTargetID);
-
- // If we haven't found any existing containers then we create one
- // from the remoteSupportedConfigs...*iff* autoCreateContainer is
- // set to true
- if (rsContainer == null && autoCreateContainer)
- rsContainer = createAndConfigureConsumerContainer(
- serviceImportedConfigs, endpointDescription.getProperties());
-
- // Get the connect target ID from the endpointDescription
- // and connect the given containers to the connect targetID
- // This is only needed when when the endpointID is different from
- // the connect targetID, and the containers are not already
- // connected
- connectContainerToTarget(rsContainer, connectTargetID);
-
- return rsContainer;
- }
-
- public void close() {
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.List;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
+
+/**
+ * Default implementation of {@link IConsumerContainerSelector}.
+ *
+ */
+public class ConsumerContainerSelector extends
+ AbstractConsumerContainerSelector implements IConsumerContainerSelector {
+
+ private boolean autoCreateContainer = false;
+
+ public ConsumerContainerSelector(boolean autoCreateContainer) {
+ this.autoCreateContainer = autoCreateContainer;
+ }
+
+ public IRemoteServiceContainer selectConsumerContainer(
+ EndpointDescription endpointDescription)
+ throws SelectContainerException {
+ trace("selectConsumerContainers", "endpointDescription=" + endpointDescription); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Get service.imported.configs
+ List<String> sic = PropertiesUtil
+ .getStringPlusProperty(
+ endpointDescription.getProperties(),
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS);
+ String[] serviceImportedConfigs = sic.toArray(new String[sic.size()]);
+ // Get the endpointID
+ ID endpointContainerID = endpointDescription.getContainerID();
+
+ // Get connect targetID
+ ID connectTargetID = endpointDescription.getConnectTargetID();
+
+ IRemoteServiceContainer rsContainer = selectExistingConsumerContainer(
+ endpointContainerID, serviceImportedConfigs, connectTargetID);
+
+ // If we haven't found any existing containers then we create one
+ // from the remoteSupportedConfigs...*iff* autoCreateContainer is
+ // set to true
+ if (rsContainer == null && autoCreateContainer)
+ rsContainer = createAndConfigureConsumerContainer(
+ serviceImportedConfigs, endpointDescription.getProperties());
+
+ // Get the connect target ID from the endpointDescription
+ // and connect the given containers to the connect targetID
+ // This is only needed when when the endpointID is different from
+ // the connect targetID, and the containers are not already
+ // connected
+ connectContainerToTarget(rsContainer, connectTargetID);
+
+ return rsContainer;
+ }
+
+ public void close() {
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescription.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescription.java
index 557c9b27a..7fc339bf1 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescription.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescription.java
@@ -1,70 +1,70 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.discovery.identity.IServiceID;
-
-/**
- * Discovered endpoint description. Instances of this class represent discovered
- * endpoint descriptions that were discovered by a particular discovery locator
- * namespace. Instances of this class are typically created via a
- * {@link IDiscoveredEndpointDescriptionFactory}.
- *
- * @see IDiscoveredEndpointDescriptionFactory
- */
-public class DiscoveredEndpointDescription {
-
- private Namespace discoveryLocatorNamespace;
- private IServiceID serviceID;
- private org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription;
- private int hashCode = 7;
-
- public DiscoveredEndpointDescription(
- Namespace discoveryLocatorNamespace,
- IServiceID serviceID,
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
- this.discoveryLocatorNamespace = discoveryLocatorNamespace;
- this.serviceID = serviceID;
- this.endpointDescription = endpointDescription;
- this.hashCode = 31 * this.hashCode
- + discoveryLocatorNamespace.getName().hashCode();
- this.hashCode = 31 * this.hashCode + endpointDescription.hashCode();
- }
-
- public int hashCode() {
- return hashCode;
- }
-
- public boolean equals(Object other) {
- if (other == null)
- return false;
- if (other == this)
- return true;
- if (!(other instanceof DiscoveredEndpointDescription))
- return false;
- DiscoveredEndpointDescription o = (DiscoveredEndpointDescription) other;
- return (this.discoveryLocatorNamespace
- .equals(o.discoveryLocatorNamespace) && this.endpointDescription
- .equals(o.endpointDescription));
- }
-
- public Namespace getDiscoveryLocatorNamespace() {
- return discoveryLocatorNamespace;
- }
-
- public IServiceID getServiceID() {
- return serviceID;
- }
-
- public org.osgi.service.remoteserviceadmin.EndpointDescription getEndpointDescription() {
- return endpointDescription;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.discovery.identity.IServiceID;
+
+/**
+ * Discovered endpoint description. Instances of this class represent discovered
+ * endpoint descriptions that were discovered by a particular discovery locator
+ * namespace. Instances of this class are typically created via a
+ * {@link IDiscoveredEndpointDescriptionFactory}.
+ *
+ * @see IDiscoveredEndpointDescriptionFactory
+ */
+public class DiscoveredEndpointDescription {
+
+ private Namespace discoveryLocatorNamespace;
+ private IServiceID serviceID;
+ private org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription;
+ private int hashCode = 7;
+
+ public DiscoveredEndpointDescription(
+ Namespace discoveryLocatorNamespace,
+ IServiceID serviceID,
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
+ this.discoveryLocatorNamespace = discoveryLocatorNamespace;
+ this.serviceID = serviceID;
+ this.endpointDescription = endpointDescription;
+ this.hashCode = 31 * this.hashCode
+ + discoveryLocatorNamespace.getName().hashCode();
+ this.hashCode = 31 * this.hashCode + endpointDescription.hashCode();
+ }
+
+ public int hashCode() {
+ return hashCode;
+ }
+
+ public boolean equals(Object other) {
+ if (other == null)
+ return false;
+ if (other == this)
+ return true;
+ if (!(other instanceof DiscoveredEndpointDescription))
+ return false;
+ DiscoveredEndpointDescription o = (DiscoveredEndpointDescription) other;
+ return (this.discoveryLocatorNamespace
+ .equals(o.discoveryLocatorNamespace) && this.endpointDescription
+ .equals(o.endpointDescription));
+ }
+
+ public Namespace getDiscoveryLocatorNamespace() {
+ return discoveryLocatorNamespace;
+ }
+
+ public IServiceID getServiceID() {
+ return serviceID;
+ }
+
+ public org.osgi.service.remoteserviceadmin.EndpointDescription getEndpointDescription() {
+ return endpointDescription;
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescriptionFactory.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescriptionFactory.java
index c44c8e610..4009aca92 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescriptionFactory.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/DiscoveredEndpointDescriptionFactory.java
@@ -1,140 +1,140 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.discovery.IDiscoveryLocator;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.discovery.IServiceProperties;
-import org.eclipse.ecf.discovery.identity.IServiceID;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-
-/**
- * Default implementation of {@link IDiscoveredEndpointDescriptionFactory}
- * service.
- *
- * @see IDiscoveredEndpointDescriptionFactory
- */
-public class DiscoveredEndpointDescriptionFactory extends
- AbstractMetadataFactory implements
- IDiscoveredEndpointDescriptionFactory {
-
- protected List<DiscoveredEndpointDescription> discoveredEndpointDescriptions = new ArrayList();
-
- private DiscoveredEndpointDescription findDiscoveredEndpointDescription(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
- synchronized (discoveredEndpointDescriptions) {
- for (DiscoveredEndpointDescription d : discoveredEndpointDescriptions) {
- org.osgi.service.remoteserviceadmin.EndpointDescription ed = d
- .getEndpointDescription();
- if (ed.equals(endpointDescription))
- return d;
- }
- }
- return null;
- }
-
- private DiscoveredEndpointDescription findUniscoveredEndpointDescription(
- IDiscoveryLocator locator, IServiceID serviceID) {
- synchronized (discoveredEndpointDescriptions) {
- for (DiscoveredEndpointDescription d : discoveredEndpointDescriptions) {
- Namespace dln = d.getDiscoveryLocatorNamespace();
- IServiceID svcId = d.getServiceID();
- if (dln.getName().equals(
- locator.getServicesNamespace().getName())
- && svcId.equals(serviceID)) {
- return d;
- }
- }
- }
- return null;
- }
-
- public DiscoveredEndpointDescription createDiscoveredEndpointDescription(
- IDiscoveryLocator locator, IServiceInfo discoveredServiceInfo) {
- try {
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription = createEndpointDescription(
- locator, discoveredServiceInfo);
- synchronized (discoveredEndpointDescriptions) {
- DiscoveredEndpointDescription ded = findDiscoveredEndpointDescription(endpointDescription);
- if (ded != null)
- return ded;
- else {
- ded = createDiscoveredEndpointDescription(locator,
- discoveredServiceInfo, endpointDescription);
- // put into discoveredEndpointDescriptions
- discoveredEndpointDescriptions.add(ded);
- return ded;
- }
- }
- } catch (Exception e) {
- logError("createDiscoveredEndpointDescription", //$NON-NLS-1$
- "Exception creating discovered endpoint description", e); //$NON-NLS-1$
- return null;
- }
- }
-
- public DiscoveredEndpointDescription removeDiscoveredEndpointDescription(
- IDiscoveryLocator locator, IServiceID serviceID) {
- synchronized (discoveredEndpointDescriptions) {
- DiscoveredEndpointDescription ded = findUniscoveredEndpointDescription(
- locator, serviceID);
- if (ded != null) {
- // remove
- discoveredEndpointDescriptions.remove(ded);
- return ded;
- }
- }
- return null;
- }
-
- protected org.osgi.service.remoteserviceadmin.EndpointDescription createEndpointDescription(
- IDiscoveryLocator locator, IServiceInfo discoveredServiceInfo) {
- IServiceProperties discoveredServiceProperties = discoveredServiceInfo
- .getServiceProperties();
- return decodeEndpointDescription(discoveredServiceProperties);
-
- }
-
- protected DiscoveredEndpointDescription createDiscoveredEndpointDescription(
- IDiscoveryLocator locator,
- IServiceInfo discoveredServiceInfo,
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
- return new DiscoveredEndpointDescription(
- locator.getServicesNamespace(),
- discoveredServiceInfo.getServiceID(), endpointDescription);
- }
-
- public void close() {
- removeAllDiscoveredEndpointDescriptions();
- super.close();
- }
-
- public boolean removeDiscoveredEndpointDescription(
- EndpointDescription endpointDescription) {
- synchronized (discoveredEndpointDescriptions) {
- DiscoveredEndpointDescription d = findDiscoveredEndpointDescription(endpointDescription);
- if (d != null) {
- discoveredEndpointDescriptions.remove(d);
- return true;
- }
- }
- return false;
- }
-
- public void removeAllDiscoveredEndpointDescriptions() {
- synchronized (discoveredEndpointDescriptions) {
- discoveredEndpointDescriptions.clear();
- }
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.discovery.IDiscoveryLocator;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.discovery.IServiceProperties;
+import org.eclipse.ecf.discovery.identity.IServiceID;
+import org.osgi.service.remoteserviceadmin.EndpointDescription;
+
+/**
+ * Default implementation of {@link IDiscoveredEndpointDescriptionFactory}
+ * service.
+ *
+ * @see IDiscoveredEndpointDescriptionFactory
+ */
+public class DiscoveredEndpointDescriptionFactory extends
+ AbstractMetadataFactory implements
+ IDiscoveredEndpointDescriptionFactory {
+
+ protected List<DiscoveredEndpointDescription> discoveredEndpointDescriptions = new ArrayList();
+
+ private DiscoveredEndpointDescription findDiscoveredEndpointDescription(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
+ synchronized (discoveredEndpointDescriptions) {
+ for (DiscoveredEndpointDescription d : discoveredEndpointDescriptions) {
+ org.osgi.service.remoteserviceadmin.EndpointDescription ed = d
+ .getEndpointDescription();
+ if (ed.equals(endpointDescription))
+ return d;
+ }
+ }
+ return null;
+ }
+
+ private DiscoveredEndpointDescription findUniscoveredEndpointDescription(
+ IDiscoveryLocator locator, IServiceID serviceID) {
+ synchronized (discoveredEndpointDescriptions) {
+ for (DiscoveredEndpointDescription d : discoveredEndpointDescriptions) {
+ Namespace dln = d.getDiscoveryLocatorNamespace();
+ IServiceID svcId = d.getServiceID();
+ if (dln.getName().equals(
+ locator.getServicesNamespace().getName())
+ && svcId.equals(serviceID)) {
+ return d;
+ }
+ }
+ }
+ return null;
+ }
+
+ public DiscoveredEndpointDescription createDiscoveredEndpointDescription(
+ IDiscoveryLocator locator, IServiceInfo discoveredServiceInfo) {
+ try {
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription = createEndpointDescription(
+ locator, discoveredServiceInfo);
+ synchronized (discoveredEndpointDescriptions) {
+ DiscoveredEndpointDescription ded = findDiscoveredEndpointDescription(endpointDescription);
+ if (ded != null)
+ return ded;
+ else {
+ ded = createDiscoveredEndpointDescription(locator,
+ discoveredServiceInfo, endpointDescription);
+ // put into discoveredEndpointDescriptions
+ discoveredEndpointDescriptions.add(ded);
+ return ded;
+ }
+ }
+ } catch (Exception e) {
+ logError("createDiscoveredEndpointDescription", //$NON-NLS-1$
+ "Exception creating discovered endpoint description", e); //$NON-NLS-1$
+ return null;
+ }
+ }
+
+ public DiscoveredEndpointDescription removeDiscoveredEndpointDescription(
+ IDiscoveryLocator locator, IServiceID serviceID) {
+ synchronized (discoveredEndpointDescriptions) {
+ DiscoveredEndpointDescription ded = findUniscoveredEndpointDescription(
+ locator, serviceID);
+ if (ded != null) {
+ // remove
+ discoveredEndpointDescriptions.remove(ded);
+ return ded;
+ }
+ }
+ return null;
+ }
+
+ protected org.osgi.service.remoteserviceadmin.EndpointDescription createEndpointDescription(
+ IDiscoveryLocator locator, IServiceInfo discoveredServiceInfo) {
+ IServiceProperties discoveredServiceProperties = discoveredServiceInfo
+ .getServiceProperties();
+ return decodeEndpointDescription(discoveredServiceProperties);
+
+ }
+
+ protected DiscoveredEndpointDescription createDiscoveredEndpointDescription(
+ IDiscoveryLocator locator,
+ IServiceInfo discoveredServiceInfo,
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
+ return new DiscoveredEndpointDescription(
+ locator.getServicesNamespace(),
+ discoveredServiceInfo.getServiceID(), endpointDescription);
+ }
+
+ public void close() {
+ removeAllDiscoveredEndpointDescriptions();
+ super.close();
+ }
+
+ public boolean removeDiscoveredEndpointDescription(
+ EndpointDescription endpointDescription) {
+ synchronized (discoveredEndpointDescriptions) {
+ DiscoveredEndpointDescription d = findDiscoveredEndpointDescription(endpointDescription);
+ if (d != null) {
+ discoveredEndpointDescriptions.remove(d);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void removeAllDiscoveredEndpointDescriptions() {
+ synchronized (discoveredEndpointDescriptions) {
+ discoveredEndpointDescriptions.clear();
+ }
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionAdvertiser.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionAdvertiser.java
index 6e42be4fb..1e1e41cce 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionAdvertiser.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionAdvertiser.java
@@ -1,141 +1,141 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
-
-/**
- * Default implementation of {@link IEndpointDescriptionAdvertiser}.
- *
- */
-public class EndpointDescriptionAdvertiser implements
- IEndpointDescriptionAdvertiser {
-
- private EndpointDescriptionLocator endpointDescriptionLocator;
-
- public EndpointDescriptionAdvertiser(
- EndpointDescriptionLocator endpointDescriptionLocator) {
- this.endpointDescriptionLocator = endpointDescriptionLocator;
- }
-
- public IStatus advertise(EndpointDescription endpointDescription) {
- return doDiscovery(endpointDescription, true);
- }
-
- protected IStatus doDiscovery(IDiscoveryAdvertiser discoveryAdvertiser,
- IServiceInfo serviceInfo, boolean advertise) {
- try {
- if (advertise)
- discoveryAdvertiser.registerService(serviceInfo);
- else
- discoveryAdvertiser.unregisterService(serviceInfo);
- return Status.OK_STATUS;
- } catch (Exception e) {
- return createErrorStatus((advertise ? "registerService" //$NON-NLS-1$
- : "unregisterService") //$NON-NLS-1$
- + " with serviceInfo=" //$NON-NLS-1$
- + serviceInfo + " for discoveryAdvertiser=" //$NON-NLS-1$
- + discoveryAdvertiser + " failed", e); //$NON-NLS-1$
- }
- }
-
- protected IServiceInfoFactory getServiceInfoFactory() {
- return endpointDescriptionLocator.getServiceInfoFactory();
- }
-
- protected IDiscoveryAdvertiser[] getDiscoveryAdvertisers() {
- return endpointDescriptionLocator.getDiscoveryAdvertisers();
- }
-
- protected IStatus createErrorStatus(String message) {
- return createErrorStatus(message, null);
- }
-
- protected IStatus createErrorStatus(String message, Throwable e) {
- return new Status(IStatus.ERROR, Activator.PLUGIN_ID, message, e);
- }
-
- protected IStatus doDiscovery(EndpointDescription endpointDescription,
- boolean advertise) {
- Assert.isNotNull(endpointDescription);
- String messagePrefix = advertise ? "Advertise" : "Unadvertise"; //$NON-NLS-1$ //$NON-NLS-2$
- List<IStatus> statuses = new ArrayList<IStatus>();
- // First get serviceInfoFactory
- IServiceInfoFactory serviceInfoFactory = getServiceInfoFactory();
- if (serviceInfoFactory == null)
- return createErrorStatus(messagePrefix
- + " endpointDescription=" //$NON-NLS-1$
- + endpointDescription
- + ". No IServiceInfoFactory is available. Cannot unpublish endpointDescription=" //$NON-NLS-1$
- + endpointDescription);
- IDiscoveryAdvertiser[] discoveryAdvertisers = getDiscoveryAdvertisers();
- if (discoveryAdvertisers == null || discoveryAdvertisers.length == 0)
- return createErrorStatus(messagePrefix
- + " endpointDescription=" //$NON-NLS-1$
- + endpointDescription
- + ". No endpointDescriptionLocator advertisers available. Cannot " //$NON-NLS-1$
- + (advertise ? "publish" : "unpublish") //$NON-NLS-1$ //$NON-NLS-2$
- + " endpointDescription=" //$NON-NLS-1$
- + endpointDescription);
- for (int i = 0; i < discoveryAdvertisers.length; i++) {
- IServiceInfo serviceInfo = (advertise ? serviceInfoFactory
- .createServiceInfo(discoveryAdvertisers[i],
- endpointDescription) : serviceInfoFactory
- .removeServiceInfo(discoveryAdvertisers[i],
- endpointDescription));
- if (serviceInfo == null) {
- statuses.add(createErrorStatus(messagePrefix
- + " endpointDescription=" //$NON-NLS-1$
- + endpointDescription
- + ". Service Info is null. Cannot publish endpointDescription=" //$NON-NLS-1$
- + endpointDescription));
- continue;
- }
- // Now actually unregister with advertiser
- statuses.add(doDiscovery(discoveryAdvertisers[i], serviceInfo,
- advertise));
- }
- return createResultStatus(statuses, messagePrefix
- + " endpointDesription=" + endpointDescription //$NON-NLS-1$
- + ". Problem in unadvertise"); //$NON-NLS-1$
- }
-
- public IStatus unadvertise(EndpointDescription endpointDescription) {
- return doDiscovery(endpointDescription, false);
- }
-
- private IStatus createResultStatus(List<IStatus> statuses,
- String errorMessage) {
- List<IStatus> errorStatuses = new ArrayList<IStatus>();
- for (IStatus status : statuses)
- if (!status.isOK())
- errorStatuses.add(status);
- if (errorStatuses.size() > 0)
- return new MultiStatus(Activator.PLUGIN_ID, IStatus.ERROR,
- (IStatus[]) statuses.toArray(new IStatus[statuses.size()]),
- errorMessage, null);
- else
- return Status.OK_STATUS;
- }
-
- public void close() {
- this.endpointDescriptionLocator = null;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
+
+/**
+ * Default implementation of {@link IEndpointDescriptionAdvertiser}.
+ *
+ */
+public class EndpointDescriptionAdvertiser implements
+ IEndpointDescriptionAdvertiser {
+
+ private EndpointDescriptionLocator endpointDescriptionLocator;
+
+ public EndpointDescriptionAdvertiser(
+ EndpointDescriptionLocator endpointDescriptionLocator) {
+ this.endpointDescriptionLocator = endpointDescriptionLocator;
+ }
+
+ public IStatus advertise(EndpointDescription endpointDescription) {
+ return doDiscovery(endpointDescription, true);
+ }
+
+ protected IStatus doDiscovery(IDiscoveryAdvertiser discoveryAdvertiser,
+ IServiceInfo serviceInfo, boolean advertise) {
+ try {
+ if (advertise)
+ discoveryAdvertiser.registerService(serviceInfo);
+ else
+ discoveryAdvertiser.unregisterService(serviceInfo);
+ return Status.OK_STATUS;
+ } catch (Exception e) {
+ return createErrorStatus((advertise ? "registerService" //$NON-NLS-1$
+ : "unregisterService") //$NON-NLS-1$
+ + " with serviceInfo=" //$NON-NLS-1$
+ + serviceInfo + " for discoveryAdvertiser=" //$NON-NLS-1$
+ + discoveryAdvertiser + " failed", e); //$NON-NLS-1$
+ }
+ }
+
+ protected IServiceInfoFactory getServiceInfoFactory() {
+ return endpointDescriptionLocator.getServiceInfoFactory();
+ }
+
+ protected IDiscoveryAdvertiser[] getDiscoveryAdvertisers() {
+ return endpointDescriptionLocator.getDiscoveryAdvertisers();
+ }
+
+ protected IStatus createErrorStatus(String message) {
+ return createErrorStatus(message, null);
+ }
+
+ protected IStatus createErrorStatus(String message, Throwable e) {
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, message, e);
+ }
+
+ protected IStatus doDiscovery(EndpointDescription endpointDescription,
+ boolean advertise) {
+ Assert.isNotNull(endpointDescription);
+ String messagePrefix = advertise ? "Advertise" : "Unadvertise"; //$NON-NLS-1$ //$NON-NLS-2$
+ List<IStatus> statuses = new ArrayList<IStatus>();
+ // First get serviceInfoFactory
+ IServiceInfoFactory serviceInfoFactory = getServiceInfoFactory();
+ if (serviceInfoFactory == null)
+ return createErrorStatus(messagePrefix
+ + " endpointDescription=" //$NON-NLS-1$
+ + endpointDescription
+ + ". No IServiceInfoFactory is available. Cannot unpublish endpointDescription=" //$NON-NLS-1$
+ + endpointDescription);
+ IDiscoveryAdvertiser[] discoveryAdvertisers = getDiscoveryAdvertisers();
+ if (discoveryAdvertisers == null || discoveryAdvertisers.length == 0)
+ return createErrorStatus(messagePrefix
+ + " endpointDescription=" //$NON-NLS-1$
+ + endpointDescription
+ + ". No endpointDescriptionLocator advertisers available. Cannot " //$NON-NLS-1$
+ + (advertise ? "publish" : "unpublish") //$NON-NLS-1$ //$NON-NLS-2$
+ + " endpointDescription=" //$NON-NLS-1$
+ + endpointDescription);
+ for (int i = 0; i < discoveryAdvertisers.length; i++) {
+ IServiceInfo serviceInfo = (advertise ? serviceInfoFactory
+ .createServiceInfo(discoveryAdvertisers[i],
+ endpointDescription) : serviceInfoFactory
+ .removeServiceInfo(discoveryAdvertisers[i],
+ endpointDescription));
+ if (serviceInfo == null) {
+ statuses.add(createErrorStatus(messagePrefix
+ + " endpointDescription=" //$NON-NLS-1$
+ + endpointDescription
+ + ". Service Info is null. Cannot publish endpointDescription=" //$NON-NLS-1$
+ + endpointDescription));
+ continue;
+ }
+ // Now actually unregister with advertiser
+ statuses.add(doDiscovery(discoveryAdvertisers[i], serviceInfo,
+ advertise));
+ }
+ return createResultStatus(statuses, messagePrefix
+ + " endpointDesription=" + endpointDescription //$NON-NLS-1$
+ + ". Problem in unadvertise"); //$NON-NLS-1$
+ }
+
+ public IStatus unadvertise(EndpointDescription endpointDescription) {
+ return doDiscovery(endpointDescription, false);
+ }
+
+ private IStatus createResultStatus(List<IStatus> statuses,
+ String errorMessage) {
+ List<IStatus> errorStatuses = new ArrayList<IStatus>();
+ for (IStatus status : statuses)
+ if (!status.isOK())
+ errorStatuses.add(status);
+ if (errorStatuses.size() > 0)
+ return new MultiStatus(Activator.PLUGIN_ID, IStatus.ERROR,
+ (IStatus[]) statuses.toArray(new IStatus[statuses.size()]),
+ errorMessage, null);
+ else
+ return Status.OK_STATUS;
+ }
+
+ public void close() {
+ this.endpointDescriptionLocator = null;
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java
index f852af366..94222418f 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java
@@ -1,943 +1,943 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeMap;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
-import org.eclipse.ecf.discovery.IDiscoveryLocator;
-import org.eclipse.ecf.discovery.IServiceEvent;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.discovery.IServiceListener;
-import org.eclipse.ecf.discovery.identity.IServiceID;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
-import org.eclipse.equinox.concurrent.future.IExecutor;
-import org.eclipse.equinox.concurrent.future.IProgressRunnable;
-import org.eclipse.equinox.concurrent.future.ThreadsExecutor;
-import org.eclipse.osgi.framework.eventmgr.CopyOnWriteIdentityMap;
-import org.eclipse.osgi.framework.eventmgr.EventDispatcher;
-import org.eclipse.osgi.framework.eventmgr.EventManager;
-import org.eclipse.osgi.framework.eventmgr.ListenerQueue;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.EndpointListener;
-import org.osgi.util.tracker.BundleTracker;
-import org.osgi.util.tracker.BundleTrackerCustomizer;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-
-/**
- * Implementation of EndpointDescription discovery mechanism, using any/all ECF
- * discovery providers (implementers if {@link IDiscoveryLocator}.
- *
- */
-public class EndpointDescriptionLocator {
-
- private BundleContext context;
- private IExecutor executor;
-
- // service info factory default
- private ServiceInfoFactory serviceInfoFactory;
- private ServiceRegistration defaultServiceInfoFactoryRegistration;
- // service info factory service tracker
- private Object serviceInfoFactoryTrackerLock = new Object();
- private ServiceTracker serviceInfoFactoryTracker;
-
- // endpoint description factory default
- private DiscoveredEndpointDescriptionFactory defaultEndpointDescriptionFactory;
- private ServiceRegistration defaultEndpointDescriptionFactoryRegistration;
- // endpoint description factory tracker
- private Object endpointDescriptionFactoryTrackerLock = new Object();
- private ServiceTracker endpointDescriptionFactoryTracker;
- // endpointDescriptionReader default
- private ServiceRegistration defaultEndpointDescriptionReaderRegistration;
-
- // For processing synchronous notifications asynchronously
- private EventManager eventManager;
- private ListenerQueue eventQueue;
- private LocatorServiceListener localLocatorServiceListener;
-
- // ECF IDiscoveryLocator tracker
- private ServiceTracker locatorServiceTracker;
- // Locator listeners
- private Map<IDiscoveryLocator, LocatorServiceListener> locatorListeners;
-
- private ServiceTracker endpointListenerTracker;
-
- private ServiceTracker advertiserTracker;
- private Object advertiserTrackerLock = new Object();
-
- private BundleTracker bundleTracker;
- private EndpointDescriptionBundleTrackerCustomizer bundleTrackerCustomizer;
-
- public EndpointDescriptionLocator(BundleContext context) {
- this.context = context;
- this.executor = new ThreadsExecutor();
- }
-
- public void start() {
- // For service info and endpoint description factories
- // set the service ranking to Integer.MIN_VALUE
- // so that any other registered factories will be preferred
- final Properties properties = new Properties();
- properties.put(Constants.SERVICE_RANKING,
- new Integer(Integer.MIN_VALUE));
- serviceInfoFactory = new ServiceInfoFactory();
- defaultServiceInfoFactoryRegistration = context.registerService(
- IServiceInfoFactory.class.getName(), serviceInfoFactory,
- (Dictionary) properties);
- defaultEndpointDescriptionFactory = new DiscoveredEndpointDescriptionFactory();
- defaultEndpointDescriptionFactoryRegistration = context
- .registerService(
- IDiscoveredEndpointDescriptionFactory.class.getName(),
- defaultEndpointDescriptionFactory,
- (Dictionary) properties);
- // setup/register default endpointDescriptionReader
- defaultEndpointDescriptionReaderRegistration = context.registerService(
- IEndpointDescriptionReader.class.getName(),
- new EndpointDescriptionReader(), (Dictionary) properties);
-
- // Create thread group, event manager, and eventQueue, and setup to
- // dispatch EndpointListenerEvents
- ThreadGroup eventGroup = new ThreadGroup(
- "RSA EndpointDescriptionLocator ThreadGroup"); //$NON-NLS-1$
- eventGroup.setDaemon(true);
- eventManager = new EventManager(
- "RSA EndpointDescriptionLocator Dispatcher", eventGroup); //$NON-NLS-1$
- eventQueue = new ListenerQueue(eventManager);
- CopyOnWriteIdentityMap listeners = new CopyOnWriteIdentityMap();
- listeners.put(this, this);
- eventQueue.queueListeners(listeners.entrySet(), new EventDispatcher() {
- public void dispatchEvent(Object eventListener,
- Object listenerObject, int eventAction, Object eventObject) {
- final String logMethodName = "dispatchEvent"; //$NON-NLS-1$
- final EndpointListenerEvent event = (EndpointListenerEvent) eventObject;
- final EndpointListener endpointListener = event
- .getEndpointListener();
- final EndpointDescription endpointDescription = event
- .getEndointDescription();
- final String matchingFilter = event.getMatchingFilter();
-
- try {
- if (event.isDiscovered())
- endpointListener.endpointAdded(endpointDescription,
- matchingFilter);
- else
- endpointListener.endpointRemoved(endpointDescription,
- matchingFilter);
- } catch (Exception e) {
- String message = "Exception in EndpointListener listener=" //$NON-NLS-1$
- + endpointListener + " description=" //$NON-NLS-1$
- + endpointDescription + " matchingFilter=" //$NON-NLS-1$
- + matchingFilter;
- logError(logMethodName, message, e);
- } catch (LinkageError e) {
- String message = "LinkageError in EndpointListener listener=" //$NON-NLS-1$
- + endpointListener + " description=" //$NON-NLS-1$
- + endpointDescription + " matchingFilter=" //$NON-NLS-1$
- + matchingFilter;
- logError(logMethodName, message, e);
- } catch (AssertionError e) {
- String message = "AssertionError in EndpointListener listener=" //$NON-NLS-1$
- + endpointListener + " description=" //$NON-NLS-1$
- + endpointDescription + " matchingFilter=" //$NON-NLS-1$
- + matchingFilter;
- logError(logMethodName, message, e);
- }
- }
- });
- // Register the endpoint listener tracker, so that endpoint listeners
- // that are subsequently added
- // will then be notified of discovered endpoints
- endpointListenerTracker = new ServiceTracker(context,
- EndpointListener.class.getName(),
- new ServiceTrackerCustomizer() {
- public Object addingService(ServiceReference reference) {
- if (context == null)
- return null;
- EndpointListener listener = (EndpointListener) context
- .getService(reference);
- if (listener == null)
- return null;
- Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> allDiscoveredEndpointDescriptions = getAllDiscoveredEndpointDescriptions();
- for (org.osgi.service.remoteserviceadmin.EndpointDescription ed : allDiscoveredEndpointDescriptions) {
- EndpointDescriptionLocator.EndpointListenerHolder[] endpointListenerHolders = getMatchingEndpointListenerHolders(
- new ServiceReference[] { reference }, ed);
- if (endpointListenerHolders != null) {
- for (int i = 0; i < endpointListenerHolders.length; i++) {
- queueEndpointDescription(
- endpointListenerHolders[i]
- .getListener(),
- endpointListenerHolders[i]
- .getDescription(),
- endpointListenerHolders[i]
- .getMatchingFilter(), true);
- }
- }
- }
- return listener;
- }
-
- public void modifiedService(ServiceReference reference,
- Object service) {
- }
-
- public void removedService(ServiceReference reference,
- Object service) {
- }
- });
-
- endpointListenerTracker.open();
-
- locatorListeners = new HashMap();
- localLocatorServiceListener = new LocatorServiceListener(null);
- // Create locator service tracker, so new IDiscoveryLocators can
- // be used to discover endpoint descriptions
- locatorServiceTracker = new ServiceTracker(context,
- IDiscoveryLocator.class.getName(),
- new LocatorTrackerCustomizer());
- locatorServiceTracker.open();
- // Create bundle tracker for reading local/xml-file endpoint
- // descriptions
- bundleTrackerCustomizer = new EndpointDescriptionBundleTrackerCustomizer();
- bundleTracker = new BundleTracker(context, Bundle.ACTIVE
- | Bundle.STARTING, bundleTrackerCustomizer);
- // This may trigger local endpoint description discovery
- bundleTracker.open();
- }
-
- private void logError(String methodName, String message, Throwable e) {
- LogUtility.logError(methodName,
- DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
- message, e);
- }
-
- private void trace(String methodName, String message) {
- LogUtility.trace(methodName, DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR,
- this.getClass(), message);
- }
-
- public void close() {
- if (bundleTracker != null) {
- bundleTracker.close();
- bundleTracker = null;
- }
- if (bundleTrackerCustomizer != null) {
- bundleTrackerCustomizer.close();
- bundleTrackerCustomizer = null;
- }
-
- // shutdown locatorListeners
- synchronized (locatorListeners) {
- for (IDiscoveryLocator l : locatorListeners.keySet()) {
- LocatorServiceListener locatorListener = locatorListeners
- .get(l);
- if (locatorListener != null) {
- l.removeServiceListener(locatorListener);
- locatorListener.close();
- }
- }
- locatorListeners.clear();
- }
-
- Object[] locators = locatorServiceTracker.getServices();
- if (locators != null) {
- for (int i = 0; i < locators.length; i++) {
- // Add service listener to locator
- shutdownLocator((IDiscoveryLocator) locators[i]);
- }
- }
-
- if (localLocatorServiceListener != null) {
- localLocatorServiceListener.close();
- localLocatorServiceListener = null;
- }
-
- if (endpointListenerTracker != null) {
- endpointListenerTracker.close();
- endpointListenerTracker = null;
- }
- // Shutdown asynchronous event manager
- if (eventManager != null) {
- eventManager.close();
- eventManager = null;
- }
-
- synchronized (endpointDescriptionFactoryTrackerLock) {
- if (endpointDescriptionFactoryTracker != null) {
- endpointDescriptionFactoryTracker.close();
- endpointDescriptionFactoryTracker = null;
- }
- }
- if (defaultEndpointDescriptionFactoryRegistration != null) {
- defaultEndpointDescriptionFactoryRegistration.unregister();
- defaultEndpointDescriptionFactoryRegistration = null;
- }
- if (defaultEndpointDescriptionFactory != null) {
- defaultEndpointDescriptionFactory.close();
- defaultEndpointDescriptionFactory = null;
- }
-
- synchronized (serviceInfoFactoryTrackerLock) {
- if (serviceInfoFactoryTracker != null) {
- serviceInfoFactoryTracker.close();
- serviceInfoFactoryTracker = null;
- }
- }
- if (defaultServiceInfoFactoryRegistration != null) {
- defaultServiceInfoFactoryRegistration.unregister();
- defaultServiceInfoFactoryRegistration = null;
- }
- if (serviceInfoFactory != null) {
- serviceInfoFactory.close();
- serviceInfoFactory = null;
- }
- if (defaultEndpointDescriptionReaderRegistration != null) {
- defaultEndpointDescriptionReaderRegistration.unregister();
- defaultEndpointDescriptionReaderRegistration = null;
- }
- if (locatorServiceTracker != null) {
- locatorServiceTracker.close();
- locatorServiceTracker = null;
- }
- synchronized (advertiserTrackerLock) {
- if (advertiserTracker != null) {
- advertiserTracker.close();
- advertiserTracker = null;
- }
- }
- this.executor = null;
- this.context = null;
- }
-
- public IDiscoveryAdvertiser[] getDiscoveryAdvertisers() {
- synchronized (advertiserTrackerLock) {
- if (advertiserTracker == null) {
- advertiserTracker = new ServiceTracker(context,
- IDiscoveryAdvertiser.class.getName(), null);
- advertiserTracker.open();
- }
- }
- ServiceReference[] advertiserRefs = advertiserTracker
- .getServiceReferences();
- if (advertiserRefs == null)
- return null;
- List<IDiscoveryAdvertiser> results = new ArrayList<IDiscoveryAdvertiser>();
- for (int i = 0; i < advertiserRefs.length; i++) {
- results.add((IDiscoveryAdvertiser) context
- .getService(advertiserRefs[i]));
- }
- return results.toArray(new IDiscoveryAdvertiser[results.size()]);
- }
-
- private void openLocator(IDiscoveryLocator locator) {
- if (context == null)
- return;
- synchronized (locatorListeners) {
- LocatorServiceListener locatorListener = new LocatorServiceListener(
- locator);
- locatorListeners.put(locator, locatorListener);
- processInitialLocatorServices(locator, locatorListener);
- }
- }
-
- private void shutdownLocator(IDiscoveryLocator locator) {
- if (locator == null || context == null)
- return;
- synchronized (locatorListeners) {
- LocatorServiceListener locatorListener = locatorListeners
- .remove(locator);
- if (locatorListener != null)
- locatorListener.close();
- }
- }
-
- void queueEndpointDescription(
- EndpointListener listener,
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
- String matchingFilters, boolean discovered) {
- if (eventQueue == null)
- return;
- trace("queueEndpointDescription", "endpointDescription=" //$NON-NLS-1$ //$NON-NLS-2$
- + endpointDescription);
- synchronized (eventQueue) {
- eventQueue
- .dispatchEventAsynchronous(0, new EndpointListenerEvent(
- listener, endpointDescription, matchingFilters,
- discovered));
- }
- }
-
- Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> getAllDiscoveredEndpointDescriptions() {
- Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> result = new ArrayList();
- if (localLocatorServiceListener == null)
- return result;
- // Get local first
- result.addAll(localLocatorServiceListener.getEndpointDescriptions());
- synchronized (locatorListeners) {
- for (IDiscoveryLocator l : locatorListeners.keySet()) {
- LocatorServiceListener locatorListener = locatorListeners
- .get(l);
- result.addAll(locatorListener.getEndpointDescriptions());
- }
- }
- return result;
- }
-
- void queueEndpointDescription(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
- boolean discovered) {
- EndpointListenerHolder[] endpointListenerHolders = getMatchingEndpointListenerHolders(endpointDescription);
- if (endpointListenerHolders != null) {
- for (int i = 0; i < endpointListenerHolders.length; i++) {
- queueEndpointDescription(
- endpointListenerHolders[i].getListener(),
- endpointListenerHolders[i].getDescription(),
- endpointListenerHolders[i].getMatchingFilter(),
- discovered);
-
- }
- } else {
- LogUtility.logWarning(
- "queueEndpointDescription", //$NON-NLS-1$
- DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
- "No matching EndpointListeners found for " //$NON-NLS-1$
- + (discovered ? "discovered" : "undiscovered") //$NON-NLS-1$ //$NON-NLS-2$
- + " endpointDescription=" + endpointDescription); //$NON-NLS-1$
- }
-
- }
-
- private void processInitialLocatorServices(final IDiscoveryLocator locator,
- final LocatorServiceListener locatorListener) {
- IProgressRunnable runnable = new IProgressRunnable() {
- public Object run(IProgressMonitor arg0) throws Exception {
- IServiceInfo[] serviceInfos = locator.getServices();
- for (int i = 0; i < serviceInfos.length; i++) {
- locatorListener.handleService(serviceInfos[i], true);
- }
- return null;
- }
- };
- executor.execute(runnable, null);
- }
-
- void shutdownLocators() {
- Object[] locators = locatorServiceTracker.getServices();
- if (locators != null) {
- for (int i = 0; i < locators.length; i++) {
- // Add service listener to locator
- shutdownLocator((IDiscoveryLocator) locators[i]);
- }
- }
- }
-
- private class EndpointListenerEvent {
-
- private EndpointListener endpointListener;
- private org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription;
- private String matchingFilter;
- private boolean discovered;
-
- public EndpointListenerEvent(
- EndpointListener endpointListener,
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
- String matchingFilter, boolean discovered) {
- this.endpointListener = endpointListener;
- this.endpointDescription = endpointDescription;
- this.matchingFilter = matchingFilter;
- this.discovered = discovered;
- }
-
- public EndpointListener getEndpointListener() {
- return endpointListener;
- }
-
- public org.osgi.service.remoteserviceadmin.EndpointDescription getEndointDescription() {
- return endpointDescription;
- }
-
- public String getMatchingFilter() {
- return matchingFilter;
- }
-
- public boolean isDiscovered() {
- return discovered;
- }
- }
-
- private class LocatorTrackerCustomizer implements ServiceTrackerCustomizer {
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.osgi.util.tracker.ServiceTrackerCustomizer#addingService(org.
- * osgi.framework.ServiceReference)
- */
- public Object addingService(ServiceReference reference) {
- IDiscoveryLocator locator = (IDiscoveryLocator) context
- .getService(reference);
- if (locator != null)
- openLocator(locator);
- return locator;
- }
-
- public void modifiedService(ServiceReference reference, Object service) {
- }
-
- public void removedService(ServiceReference reference, Object service) {
- shutdownLocator((IDiscoveryLocator) service);
- }
- }
-
- public IServiceInfoFactory getServiceInfoFactory() {
- if (context == null)
- return null;
- synchronized (serviceInfoFactoryTrackerLock) {
- if (serviceInfoFactoryTracker == null) {
- serviceInfoFactoryTracker = new ServiceTracker(context,
- IServiceInfoFactory.class.getName(), null);
- serviceInfoFactoryTracker.open();
- }
- }
- return (IServiceInfoFactory) serviceInfoFactoryTracker.getService();
- }
-
- public IDiscoveredEndpointDescriptionFactory getDiscoveredEndpointDescriptionFactory() {
- synchronized (endpointDescriptionFactoryTrackerLock) {
- if (context == null)
- return null;
- if (endpointDescriptionFactoryTracker == null) {
- endpointDescriptionFactoryTracker = new ServiceTracker(context,
- IDiscoveredEndpointDescriptionFactory.class.getName(),
- null);
- endpointDescriptionFactoryTracker.open();
- }
- return (IDiscoveredEndpointDescriptionFactory) endpointDescriptionFactoryTracker
- .getService();
- }
- }
-
- private Object endpointListenerServiceTrackerLock = new Object();
-
- public EndpointListenerHolder[] getMatchingEndpointListenerHolders(
- EndpointDescription description) {
- synchronized (endpointListenerServiceTrackerLock) {
- if (context == null)
- return null;
- return getMatchingEndpointListenerHolders(
- endpointListenerTracker.getServiceReferences(), description);
- }
- }
-
- public class EndpointListenerHolder {
-
- private EndpointListener listener;
- private EndpointDescription description;
- private String matchingFilter;
-
- public EndpointListenerHolder(EndpointListener l,
- EndpointDescription d, String f) {
- this.listener = l;
- this.description = d;
- this.matchingFilter = f;
- }
-
- public EndpointListener getListener() {
- return listener;
- }
-
- public EndpointDescription getDescription() {
- return description;
- }
-
- public String getMatchingFilter() {
- return matchingFilter;
- }
- }
-
- public EndpointListenerHolder[] getMatchingEndpointListenerHolders(
- ServiceReference[] refs, EndpointDescription description) {
- if (refs == null)
- return null;
- List results = new ArrayList();
- for (int i = 0; i < refs.length; i++) {
- EndpointListener listener = (EndpointListener) context
- .getService(refs[i]);
- if (listener == null)
- continue;
- List<String> filters = PropertiesUtil.getStringPlusProperty(
- getMapFromProperties(refs[i]),
- EndpointListener.ENDPOINT_LISTENER_SCOPE);
- if (filters.size() > 0) {
- String matchingFilter = isMatch(description, filters);
- if (matchingFilter != null)
- results.add(new EndpointListenerHolder(listener,
- description, matchingFilter));
- }
- }
- return (EndpointListenerHolder[]) results
- .toArray(new EndpointListenerHolder[results.size()]);
- }
-
- private String isMatch(EndpointDescription description, List<String> filters) {
- for (String filter : filters) {
- try {
- if (description.matches(filter))
- return filter;
- } catch (IllegalArgumentException e) {
- logError("isMatch", "invalid endpoint listener filter=" //$NON-NLS-1$ //$NON-NLS-2$
- + filters, e);
- }
- }
- return null;
- }
-
- private Map getMapFromProperties(ServiceReference ref) {
- Map<String, Object> results = new TreeMap<String, Object>(
- String.CASE_INSENSITIVE_ORDER);
- String[] keys = ref.getPropertyKeys();
- if (keys != null) {
- for (int i = 0; i < keys.length; i++) {
- results.put(keys[i], ref.getProperty(keys[i]));
- }
- }
- return results;
- }
-
- class EndpointDescriptionBundleTrackerCustomizer implements
- BundleTrackerCustomizer {
-
- private static final String REMOTESERVICE_MANIFESTHEADER = "Remote-Service"; //$NON-NLS-1$
- private static final String XML_FILE_PATTERN = "*.xml"; //$NON-NLS-1$
-
- private Map<Long, Collection<org.osgi.service.remoteserviceadmin.EndpointDescription>> bundleDescriptionMap = Collections
- .synchronizedMap(new HashMap<Long, Collection<org.osgi.service.remoteserviceadmin.EndpointDescription>>());
-
- private Object endpointDescriptionReaderTrackerLock = new Object();
- private ServiceTracker endpointDescriptionReaderTracker;
-
- private IEndpointDescriptionReader getEndpointDescriptionReader() {
- synchronized (endpointDescriptionReaderTrackerLock) {
- if (endpointDescriptionReaderTracker == null) {
- endpointDescriptionReaderTracker = new ServiceTracker(
- context,
- IEndpointDescriptionReader.class.getName(), null);
- endpointDescriptionReaderTracker.open();
- }
- }
- return (IEndpointDescriptionReader) endpointDescriptionReaderTracker
- .getService();
- }
-
- public Object addingBundle(Bundle bundle, BundleEvent event) {
- handleAddingBundle(bundle);
- return bundle;
- }
-
- private void handleAddingBundle(Bundle bundle) {
- if (context == null)
- return;
- String remoteServicesHeaderValue = (String) bundle.getHeaders()
- .get(REMOTESERVICE_MANIFESTHEADER);
- if (remoteServicesHeaderValue != null) {
- // First parse into comma-separated values
- String[] paths = remoteServicesHeaderValue.split(","); //$NON-NLS-1$
- if (paths != null)
- for (int i = 0; i < paths.length; i++)
- handleEndpointDescriptionPath(bundle, paths[i]);
- }
- }
-
- private void handleEndpointDescriptionPath(Bundle bundle,
- String remoteServicesHeaderValue) {
- // if it's empty, ignore
- if ("".equals(remoteServicesHeaderValue)) //$NON-NLS-1$
- return;
- Enumeration<URL> e = null;
- // if it endswith a '/', then scan for *.xml files
- if (remoteServicesHeaderValue.endsWith("/")) { //$NON-NLS-1$
- e = bundle.findEntries(remoteServicesHeaderValue,
- XML_FILE_PATTERN, false);
- } else {
- // Break into path and filename/pattern
- int lastSlashIndex = remoteServicesHeaderValue.lastIndexOf('/');
- if (lastSlashIndex == -1) {
- // no slash...might be a file name or pattern, assumed to be
- // at root of bundle
- e = bundle.findEntries(
- "/", remoteServicesHeaderValue, false); //$NON-NLS-1$
- } else {
- String path = remoteServicesHeaderValue.substring(0,
- lastSlashIndex);
- if ("".equals(path)) { //$NON-NLS-1$
- // path is empty so assume it's root
- path = "/"; //$NON-NLS-1$
- }
- String filePattern = remoteServicesHeaderValue
- .substring(lastSlashIndex + 1);
- e = bundle.findEntries(path, filePattern, false);
- }
- }
- // Now process any found
- Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> endpointDescriptions = new ArrayList<org.osgi.service.remoteserviceadmin.EndpointDescription>();
- if (e != null) {
- while (e.hasMoreElements()) {
- org.osgi.service.remoteserviceadmin.EndpointDescription[] eps = handleEndpointDescriptionFile(
- bundle, e.nextElement());
- if (eps != null)
- for (int i = 0; i < eps.length; i++)
- endpointDescriptions.add(eps[i]);
- }
- }
- // finally, handle them
- if (endpointDescriptions.size() > 0) {
- bundleDescriptionMap.put(new Long(bundle.getBundleId()),
- endpointDescriptions);
- for (org.osgi.service.remoteserviceadmin.EndpointDescription ed : endpointDescriptions)
- localLocatorServiceListener.handleEndpointDescription(ed,
- true);
- }
- }
-
- private org.osgi.service.remoteserviceadmin.EndpointDescription[] handleEndpointDescriptionFile(
- Bundle bundle, URL fileURL) {
- InputStream ins = null;
- try {
- IEndpointDescriptionReader endpointDescriptionReader = getEndpointDescriptionReader();
- if (endpointDescriptionReader == null)
- throw new NullPointerException(
- "No endpointDescriptionReader available for handleEndpointDescriptionFile fileURL=" //$NON-NLS-1$
- + fileURL);
- ins = fileURL.openStream();
- return endpointDescriptionReader.readEndpointDescriptions(ins);
- } catch (Exception e) {
- logError("handleEndpointDescriptionFile", //$NON-NLS-1$
- "Exception creating endpoint descriptions from fileURL=" //$NON-NLS-1$
- + fileURL, e);
- return null;
- } finally {
- if (ins != null)
- try {
- ins.close();
- } catch (IOException e) {
- logError("handleEndpointDescriptionFile", //$NON-NLS-1$
- "Exception closing endpointDescription input fileURL=" //$NON-NLS-1$
- + fileURL, e);
- }
- }
- }
-
- private void logError(String method, String message, Throwable t) {
- LogUtility.logError(method,
- DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
- new Status(IStatus.ERROR, Activator.PLUGIN_ID,
- IStatus.ERROR, message, t));
- }
-
- public void modifiedBundle(Bundle bundle, BundleEvent event,
- Object object) {
- }
-
- public void removedBundle(Bundle bundle, BundleEvent event,
- Object object) {
- handleRemovedBundle(bundle);
- }
-
- private void handleRemovedBundle(Bundle bundle) {
- Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> endpointDescriptions = bundleDescriptionMap
- .remove(new Long(bundle.getBundleId()));
- if (endpointDescriptions != null)
- for (org.osgi.service.remoteserviceadmin.EndpointDescription ed : endpointDescriptions)
- localLocatorServiceListener.handleEndpointDescription(ed,
- false);
- }
-
- public void close() {
- synchronized (endpointDescriptionReaderTrackerLock) {
- if (endpointDescriptionReaderTracker != null) {
- endpointDescriptionReaderTracker.close();
- endpointDescriptionReaderTracker = null;
- }
- }
- bundleDescriptionMap.clear();
- }
- }
-
- class LocatorServiceListener implements IServiceListener {
-
- private Object listenerLock = new Object();
- private IDiscoveryLocator locator;
-
- private List<org.osgi.service.remoteserviceadmin.EndpointDescription> discoveredEndpointDescriptions = new ArrayList();
-
- public LocatorServiceListener(IDiscoveryLocator locator) {
- this.locator = locator;
- if (locator != null)
- this.locator.addServiceListener(this);
- }
-
- public void serviceDiscovered(IServiceEvent anEvent) {
- handleService(anEvent.getServiceInfo(), true);
- }
-
- public void serviceUndiscovered(IServiceEvent anEvent) {
- handleService(anEvent.getServiceInfo(), false);
- }
-
- private boolean matchServiceID(IServiceID serviceId) {
- if (Arrays.asList(serviceId.getServiceTypeID().getServices())
- .contains(RemoteConstants.DISCOVERY_SERVICE_TYPE))
- return true;
- return false;
- }
-
- void handleService(IServiceInfo serviceInfo, boolean discovered) {
- logInfo("handleService", "serviceInfo=" + serviceInfo //$NON-NLS-1$ //$NON-NLS-2$
- + ",discovered=" + discovered); //$NON-NLS-1$
- IServiceID serviceID = serviceInfo.getServiceID();
- if (matchServiceID(serviceID))
- handleOSGiServiceEndpoint(serviceID, serviceInfo, discovered);
- }
-
- private void handleOSGiServiceEndpoint(IServiceID serviceId,
- IServiceInfo serviceInfo, boolean discovered) {
- if (locator == null)
- return;
- DiscoveredEndpointDescription discoveredEndpointDescription = getDiscoveredEndpointDescription(
- serviceId, serviceInfo, discovered);
- if (discoveredEndpointDescription != null) {
- handleEndpointDescription(
- discoveredEndpointDescription.getEndpointDescription(),
- discovered);
- } else {
- logWarning("handleOSGiServiceEvent", //$NON-NLS-1$
- "discoveredEndpointDescription is null for service info=" //$NON-NLS-1$
- + serviceInfo + ",discovered=" + discovered); //$NON-NLS-1$
- }
- }
-
- public void handleEndpointDescription(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
- boolean discovered) {
- synchronized (listenerLock) {
- if (discovered)
- discoveredEndpointDescriptions.add(endpointDescription);
- else
- discoveredEndpointDescriptions.remove(endpointDescription);
-
- queueEndpointDescription(endpointDescription, discovered);
- }
- }
-
- public Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> getEndpointDescriptions() {
- synchronized (listenerLock) {
- Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> result = new ArrayList<org.osgi.service.remoteserviceadmin.EndpointDescription>();
- result.addAll(discoveredEndpointDescriptions);
- return result;
- }
- }
-
- private void logInfo(String methodName, String message) {
- LogUtility.logInfo(methodName,
- DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
- message);
- }
-
- private void logWarning(String methodName, String message) {
- LogUtility.logWarning(methodName,
- DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
- message);
- }
-
- private void logError(String methodName, String message) {
- logError(methodName, message, null);
- }
-
- private void logError(String methodName, String message, Throwable t) {
- LogUtility.logError(methodName,
- DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
- message, t);
- }
-
- private DiscoveredEndpointDescription getDiscoveredEndpointDescription(
- IServiceID serviceId, IServiceInfo serviceInfo,
- boolean discovered) {
- // Get IEndpointDescriptionFactory
- final String methodName = "getDiscoveredEndpointDescription"; //$NON-NLS-1$
- IDiscoveredEndpointDescriptionFactory factory = getDiscoveredEndpointDescriptionFactory();
- if (factory == null) {
- logError(
- methodName,
- "No IEndpointDescriptionFactory found, could not create EndpointDescription for " //$NON-NLS-1$
- + (discovered ? "discovered" : "undiscovered") //$NON-NLS-1$ //$NON-NLS-2$
- + " serviceInfo=" + serviceInfo); //$NON-NLS-1$
- return null;
- }
- try {
- // Else get endpoint description factory to create
- // EndpointDescription
- // for given serviceID and serviceInfo
- return (discovered) ? factory
- .createDiscoveredEndpointDescription(locator,
- serviceInfo)
- : factory.removeDiscoveredEndpointDescription(locator,
- serviceId);
- } catch (Exception e) {
- logError(
- methodName,
- "Exception calling IEndpointDescriptionFactory." //$NON-NLS-1$
- + ((discovered) ? "createDiscoveredEndpointDescription" //$NON-NLS-1$
- : "getUndiscoveredEndpointDescription"), e); //$NON-NLS-1$
- return null;
- } catch (NoClassDefFoundError e) {
- logError(
- methodName,
- "NoClassDefFoundError calling IEndpointDescriptionFactory." //$NON-NLS-1$
- + ((discovered) ? "createDiscoveredEndpointDescription" //$NON-NLS-1$
- : "getUndiscoveredEndpointDescription"), e); //$NON-NLS-1$
- return null;
- }
- }
-
- public synchronized void close() {
- if (locator != null) {
- locator.removeServiceListener(this);
- locator = null;
- }
- discoveredEndpointDescriptions.clear();
- }
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.TreeMap;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
+import org.eclipse.ecf.discovery.IDiscoveryLocator;
+import org.eclipse.ecf.discovery.IServiceEvent;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.discovery.IServiceListener;
+import org.eclipse.ecf.discovery.identity.IServiceID;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
+import org.eclipse.equinox.concurrent.future.IExecutor;
+import org.eclipse.equinox.concurrent.future.IProgressRunnable;
+import org.eclipse.equinox.concurrent.future.ThreadsExecutor;
+import org.eclipse.osgi.framework.eventmgr.CopyOnWriteIdentityMap;
+import org.eclipse.osgi.framework.eventmgr.EventDispatcher;
+import org.eclipse.osgi.framework.eventmgr.EventManager;
+import org.eclipse.osgi.framework.eventmgr.ListenerQueue;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.remoteserviceadmin.EndpointDescription;
+import org.osgi.service.remoteserviceadmin.EndpointListener;
+import org.osgi.util.tracker.BundleTracker;
+import org.osgi.util.tracker.BundleTrackerCustomizer;
+import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
+
+/**
+ * Implementation of EndpointDescription discovery mechanism, using any/all ECF
+ * discovery providers (implementers if {@link IDiscoveryLocator}.
+ *
+ */
+public class EndpointDescriptionLocator {
+
+ private BundleContext context;
+ private IExecutor executor;
+
+ // service info factory default
+ private ServiceInfoFactory serviceInfoFactory;
+ private ServiceRegistration defaultServiceInfoFactoryRegistration;
+ // service info factory service tracker
+ private Object serviceInfoFactoryTrackerLock = new Object();
+ private ServiceTracker serviceInfoFactoryTracker;
+
+ // endpoint description factory default
+ private DiscoveredEndpointDescriptionFactory defaultEndpointDescriptionFactory;
+ private ServiceRegistration defaultEndpointDescriptionFactoryRegistration;
+ // endpoint description factory tracker
+ private Object endpointDescriptionFactoryTrackerLock = new Object();
+ private ServiceTracker endpointDescriptionFactoryTracker;
+ // endpointDescriptionReader default
+ private ServiceRegistration defaultEndpointDescriptionReaderRegistration;
+
+ // For processing synchronous notifications asynchronously
+ private EventManager eventManager;
+ private ListenerQueue eventQueue;
+ private LocatorServiceListener localLocatorServiceListener;
+
+ // ECF IDiscoveryLocator tracker
+ private ServiceTracker locatorServiceTracker;
+ // Locator listeners
+ private Map<IDiscoveryLocator, LocatorServiceListener> locatorListeners;
+
+ private ServiceTracker endpointListenerTracker;
+
+ private ServiceTracker advertiserTracker;
+ private Object advertiserTrackerLock = new Object();
+
+ private BundleTracker bundleTracker;
+ private EndpointDescriptionBundleTrackerCustomizer bundleTrackerCustomizer;
+
+ public EndpointDescriptionLocator(BundleContext context) {
+ this.context = context;
+ this.executor = new ThreadsExecutor();
+ }
+
+ public void start() {
+ // For service info and endpoint description factories
+ // set the service ranking to Integer.MIN_VALUE
+ // so that any other registered factories will be preferred
+ final Properties properties = new Properties();
+ properties.put(Constants.SERVICE_RANKING,
+ new Integer(Integer.MIN_VALUE));
+ serviceInfoFactory = new ServiceInfoFactory();
+ defaultServiceInfoFactoryRegistration = context.registerService(
+ IServiceInfoFactory.class.getName(), serviceInfoFactory,
+ (Dictionary) properties);
+ defaultEndpointDescriptionFactory = new DiscoveredEndpointDescriptionFactory();
+ defaultEndpointDescriptionFactoryRegistration = context
+ .registerService(
+ IDiscoveredEndpointDescriptionFactory.class.getName(),
+ defaultEndpointDescriptionFactory,
+ (Dictionary) properties);
+ // setup/register default endpointDescriptionReader
+ defaultEndpointDescriptionReaderRegistration = context.registerService(
+ IEndpointDescriptionReader.class.getName(),
+ new EndpointDescriptionReader(), (Dictionary) properties);
+
+ // Create thread group, event manager, and eventQueue, and setup to
+ // dispatch EndpointListenerEvents
+ ThreadGroup eventGroup = new ThreadGroup(
+ "RSA EndpointDescriptionLocator ThreadGroup"); //$NON-NLS-1$
+ eventGroup.setDaemon(true);
+ eventManager = new EventManager(
+ "RSA EndpointDescriptionLocator Dispatcher", eventGroup); //$NON-NLS-1$
+ eventQueue = new ListenerQueue(eventManager);
+ CopyOnWriteIdentityMap listeners = new CopyOnWriteIdentityMap();
+ listeners.put(this, this);
+ eventQueue.queueListeners(listeners.entrySet(), new EventDispatcher() {
+ public void dispatchEvent(Object eventListener,
+ Object listenerObject, int eventAction, Object eventObject) {
+ final String logMethodName = "dispatchEvent"; //$NON-NLS-1$
+ final EndpointListenerEvent event = (EndpointListenerEvent) eventObject;
+ final EndpointListener endpointListener = event
+ .getEndpointListener();
+ final EndpointDescription endpointDescription = event
+ .getEndointDescription();
+ final String matchingFilter = event.getMatchingFilter();
+
+ try {
+ if (event.isDiscovered())
+ endpointListener.endpointAdded(endpointDescription,
+ matchingFilter);
+ else
+ endpointListener.endpointRemoved(endpointDescription,
+ matchingFilter);
+ } catch (Exception e) {
+ String message = "Exception in EndpointListener listener=" //$NON-NLS-1$
+ + endpointListener + " description=" //$NON-NLS-1$
+ + endpointDescription + " matchingFilter=" //$NON-NLS-1$
+ + matchingFilter;
+ logError(logMethodName, message, e);
+ } catch (LinkageError e) {
+ String message = "LinkageError in EndpointListener listener=" //$NON-NLS-1$
+ + endpointListener + " description=" //$NON-NLS-1$
+ + endpointDescription + " matchingFilter=" //$NON-NLS-1$
+ + matchingFilter;
+ logError(logMethodName, message, e);
+ } catch (AssertionError e) {
+ String message = "AssertionError in EndpointListener listener=" //$NON-NLS-1$
+ + endpointListener + " description=" //$NON-NLS-1$
+ + endpointDescription + " matchingFilter=" //$NON-NLS-1$
+ + matchingFilter;
+ logError(logMethodName, message, e);
+ }
+ }
+ });
+ // Register the endpoint listener tracker, so that endpoint listeners
+ // that are subsequently added
+ // will then be notified of discovered endpoints
+ endpointListenerTracker = new ServiceTracker(context,
+ EndpointListener.class.getName(),
+ new ServiceTrackerCustomizer() {
+ public Object addingService(ServiceReference reference) {
+ if (context == null)
+ return null;
+ EndpointListener listener = (EndpointListener) context
+ .getService(reference);
+ if (listener == null)
+ return null;
+ Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> allDiscoveredEndpointDescriptions = getAllDiscoveredEndpointDescriptions();
+ for (org.osgi.service.remoteserviceadmin.EndpointDescription ed : allDiscoveredEndpointDescriptions) {
+ EndpointDescriptionLocator.EndpointListenerHolder[] endpointListenerHolders = getMatchingEndpointListenerHolders(
+ new ServiceReference[] { reference }, ed);
+ if (endpointListenerHolders != null) {
+ for (int i = 0; i < endpointListenerHolders.length; i++) {
+ queueEndpointDescription(
+ endpointListenerHolders[i]
+ .getListener(),
+ endpointListenerHolders[i]
+ .getDescription(),
+ endpointListenerHolders[i]
+ .getMatchingFilter(), true);
+ }
+ }
+ }
+ return listener;
+ }
+
+ public void modifiedService(ServiceReference reference,
+ Object service) {
+ }
+
+ public void removedService(ServiceReference reference,
+ Object service) {
+ }
+ });
+
+ endpointListenerTracker.open();
+
+ locatorListeners = new HashMap();
+ localLocatorServiceListener = new LocatorServiceListener(null);
+ // Create locator service tracker, so new IDiscoveryLocators can
+ // be used to discover endpoint descriptions
+ locatorServiceTracker = new ServiceTracker(context,
+ IDiscoveryLocator.class.getName(),
+ new LocatorTrackerCustomizer());
+ locatorServiceTracker.open();
+ // Create bundle tracker for reading local/xml-file endpoint
+ // descriptions
+ bundleTrackerCustomizer = new EndpointDescriptionBundleTrackerCustomizer();
+ bundleTracker = new BundleTracker(context, Bundle.ACTIVE
+ | Bundle.STARTING, bundleTrackerCustomizer);
+ // This may trigger local endpoint description discovery
+ bundleTracker.open();
+ }
+
+ private void logError(String methodName, String message, Throwable e) {
+ LogUtility.logError(methodName,
+ DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
+ message, e);
+ }
+
+ private void trace(String methodName, String message) {
+ LogUtility.trace(methodName, DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR,
+ this.getClass(), message);
+ }
+
+ public void close() {
+ if (bundleTracker != null) {
+ bundleTracker.close();
+ bundleTracker = null;
+ }
+ if (bundleTrackerCustomizer != null) {
+ bundleTrackerCustomizer.close();
+ bundleTrackerCustomizer = null;
+ }
+
+ // shutdown locatorListeners
+ synchronized (locatorListeners) {
+ for (IDiscoveryLocator l : locatorListeners.keySet()) {
+ LocatorServiceListener locatorListener = locatorListeners
+ .get(l);
+ if (locatorListener != null) {
+ l.removeServiceListener(locatorListener);
+ locatorListener.close();
+ }
+ }
+ locatorListeners.clear();
+ }
+
+ Object[] locators = locatorServiceTracker.getServices();
+ if (locators != null) {
+ for (int i = 0; i < locators.length; i++) {
+ // Add service listener to locator
+ shutdownLocator((IDiscoveryLocator) locators[i]);
+ }
+ }
+
+ if (localLocatorServiceListener != null) {
+ localLocatorServiceListener.close();
+ localLocatorServiceListener = null;
+ }
+
+ if (endpointListenerTracker != null) {
+ endpointListenerTracker.close();
+ endpointListenerTracker = null;
+ }
+ // Shutdown asynchronous event manager
+ if (eventManager != null) {
+ eventManager.close();
+ eventManager = null;
+ }
+
+ synchronized (endpointDescriptionFactoryTrackerLock) {
+ if (endpointDescriptionFactoryTracker != null) {
+ endpointDescriptionFactoryTracker.close();
+ endpointDescriptionFactoryTracker = null;
+ }
+ }
+ if (defaultEndpointDescriptionFactoryRegistration != null) {
+ defaultEndpointDescriptionFactoryRegistration.unregister();
+ defaultEndpointDescriptionFactoryRegistration = null;
+ }
+ if (defaultEndpointDescriptionFactory != null) {
+ defaultEndpointDescriptionFactory.close();
+ defaultEndpointDescriptionFactory = null;
+ }
+
+ synchronized (serviceInfoFactoryTrackerLock) {
+ if (serviceInfoFactoryTracker != null) {
+ serviceInfoFactoryTracker.close();
+ serviceInfoFactoryTracker = null;
+ }
+ }
+ if (defaultServiceInfoFactoryRegistration != null) {
+ defaultServiceInfoFactoryRegistration.unregister();
+ defaultServiceInfoFactoryRegistration = null;
+ }
+ if (serviceInfoFactory != null) {
+ serviceInfoFactory.close();
+ serviceInfoFactory = null;
+ }
+ if (defaultEndpointDescriptionReaderRegistration != null) {
+ defaultEndpointDescriptionReaderRegistration.unregister();
+ defaultEndpointDescriptionReaderRegistration = null;
+ }
+ if (locatorServiceTracker != null) {
+ locatorServiceTracker.close();
+ locatorServiceTracker = null;
+ }
+ synchronized (advertiserTrackerLock) {
+ if (advertiserTracker != null) {
+ advertiserTracker.close();
+ advertiserTracker = null;
+ }
+ }
+ this.executor = null;
+ this.context = null;
+ }
+
+ public IDiscoveryAdvertiser[] getDiscoveryAdvertisers() {
+ synchronized (advertiserTrackerLock) {
+ if (advertiserTracker == null) {
+ advertiserTracker = new ServiceTracker(context,
+ IDiscoveryAdvertiser.class.getName(), null);
+ advertiserTracker.open();
+ }
+ }
+ ServiceReference[] advertiserRefs = advertiserTracker
+ .getServiceReferences();
+ if (advertiserRefs == null)
+ return null;
+ List<IDiscoveryAdvertiser> results = new ArrayList<IDiscoveryAdvertiser>();
+ for (int i = 0; i < advertiserRefs.length; i++) {
+ results.add((IDiscoveryAdvertiser) context
+ .getService(advertiserRefs[i]));
+ }
+ return results.toArray(new IDiscoveryAdvertiser[results.size()]);
+ }
+
+ private void openLocator(IDiscoveryLocator locator) {
+ if (context == null)
+ return;
+ synchronized (locatorListeners) {
+ LocatorServiceListener locatorListener = new LocatorServiceListener(
+ locator);
+ locatorListeners.put(locator, locatorListener);
+ processInitialLocatorServices(locator, locatorListener);
+ }
+ }
+
+ private void shutdownLocator(IDiscoveryLocator locator) {
+ if (locator == null || context == null)
+ return;
+ synchronized (locatorListeners) {
+ LocatorServiceListener locatorListener = locatorListeners
+ .remove(locator);
+ if (locatorListener != null)
+ locatorListener.close();
+ }
+ }
+
+ void queueEndpointDescription(
+ EndpointListener listener,
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
+ String matchingFilters, boolean discovered) {
+ if (eventQueue == null)
+ return;
+ trace("queueEndpointDescription", "endpointDescription=" //$NON-NLS-1$ //$NON-NLS-2$
+ + endpointDescription);
+ synchronized (eventQueue) {
+ eventQueue
+ .dispatchEventAsynchronous(0, new EndpointListenerEvent(
+ listener, endpointDescription, matchingFilters,
+ discovered));
+ }
+ }
+
+ Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> getAllDiscoveredEndpointDescriptions() {
+ Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> result = new ArrayList();
+ if (localLocatorServiceListener == null)
+ return result;
+ // Get local first
+ result.addAll(localLocatorServiceListener.getEndpointDescriptions());
+ synchronized (locatorListeners) {
+ for (IDiscoveryLocator l : locatorListeners.keySet()) {
+ LocatorServiceListener locatorListener = locatorListeners
+ .get(l);
+ result.addAll(locatorListener.getEndpointDescriptions());
+ }
+ }
+ return result;
+ }
+
+ void queueEndpointDescription(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
+ boolean discovered) {
+ EndpointListenerHolder[] endpointListenerHolders = getMatchingEndpointListenerHolders(endpointDescription);
+ if (endpointListenerHolders != null) {
+ for (int i = 0; i < endpointListenerHolders.length; i++) {
+ queueEndpointDescription(
+ endpointListenerHolders[i].getListener(),
+ endpointListenerHolders[i].getDescription(),
+ endpointListenerHolders[i].getMatchingFilter(),
+ discovered);
+
+ }
+ } else {
+ LogUtility.logWarning(
+ "queueEndpointDescription", //$NON-NLS-1$
+ DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
+ "No matching EndpointListeners found for " //$NON-NLS-1$
+ + (discovered ? "discovered" : "undiscovered") //$NON-NLS-1$ //$NON-NLS-2$
+ + " endpointDescription=" + endpointDescription); //$NON-NLS-1$
+ }
+
+ }
+
+ private void processInitialLocatorServices(final IDiscoveryLocator locator,
+ final LocatorServiceListener locatorListener) {
+ IProgressRunnable runnable = new IProgressRunnable() {
+ public Object run(IProgressMonitor arg0) throws Exception {
+ IServiceInfo[] serviceInfos = locator.getServices();
+ for (int i = 0; i < serviceInfos.length; i++) {
+ locatorListener.handleService(serviceInfos[i], true);
+ }
+ return null;
+ }
+ };
+ executor.execute(runnable, null);
+ }
+
+ void shutdownLocators() {
+ Object[] locators = locatorServiceTracker.getServices();
+ if (locators != null) {
+ for (int i = 0; i < locators.length; i++) {
+ // Add service listener to locator
+ shutdownLocator((IDiscoveryLocator) locators[i]);
+ }
+ }
+ }
+
+ private class EndpointListenerEvent {
+
+ private EndpointListener endpointListener;
+ private org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription;
+ private String matchingFilter;
+ private boolean discovered;
+
+ public EndpointListenerEvent(
+ EndpointListener endpointListener,
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
+ String matchingFilter, boolean discovered) {
+ this.endpointListener = endpointListener;
+ this.endpointDescription = endpointDescription;
+ this.matchingFilter = matchingFilter;
+ this.discovered = discovered;
+ }
+
+ public EndpointListener getEndpointListener() {
+ return endpointListener;
+ }
+
+ public org.osgi.service.remoteserviceadmin.EndpointDescription getEndointDescription() {
+ return endpointDescription;
+ }
+
+ public String getMatchingFilter() {
+ return matchingFilter;
+ }
+
+ public boolean isDiscovered() {
+ return discovered;
+ }
+ }
+
+ private class LocatorTrackerCustomizer implements ServiceTrackerCustomizer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.util.tracker.ServiceTrackerCustomizer#addingService(org.
+ * osgi.framework.ServiceReference)
+ */
+ public Object addingService(ServiceReference reference) {
+ IDiscoveryLocator locator = (IDiscoveryLocator) context
+ .getService(reference);
+ if (locator != null)
+ openLocator(locator);
+ return locator;
+ }
+
+ public void modifiedService(ServiceReference reference, Object service) {
+ }
+
+ public void removedService(ServiceReference reference, Object service) {
+ shutdownLocator((IDiscoveryLocator) service);
+ }
+ }
+
+ public IServiceInfoFactory getServiceInfoFactory() {
+ if (context == null)
+ return null;
+ synchronized (serviceInfoFactoryTrackerLock) {
+ if (serviceInfoFactoryTracker == null) {
+ serviceInfoFactoryTracker = new ServiceTracker(context,
+ IServiceInfoFactory.class.getName(), null);
+ serviceInfoFactoryTracker.open();
+ }
+ }
+ return (IServiceInfoFactory) serviceInfoFactoryTracker.getService();
+ }
+
+ public IDiscoveredEndpointDescriptionFactory getDiscoveredEndpointDescriptionFactory() {
+ synchronized (endpointDescriptionFactoryTrackerLock) {
+ if (context == null)
+ return null;
+ if (endpointDescriptionFactoryTracker == null) {
+ endpointDescriptionFactoryTracker = new ServiceTracker(context,
+ IDiscoveredEndpointDescriptionFactory.class.getName(),
+ null);
+ endpointDescriptionFactoryTracker.open();
+ }
+ return (IDiscoveredEndpointDescriptionFactory) endpointDescriptionFactoryTracker
+ .getService();
+ }
+ }
+
+ private Object endpointListenerServiceTrackerLock = new Object();
+
+ public EndpointListenerHolder[] getMatchingEndpointListenerHolders(
+ EndpointDescription description) {
+ synchronized (endpointListenerServiceTrackerLock) {
+ if (context == null)
+ return null;
+ return getMatchingEndpointListenerHolders(
+ endpointListenerTracker.getServiceReferences(), description);
+ }
+ }
+
+ public class EndpointListenerHolder {
+
+ private EndpointListener listener;
+ private EndpointDescription description;
+ private String matchingFilter;
+
+ public EndpointListenerHolder(EndpointListener l,
+ EndpointDescription d, String f) {
+ this.listener = l;
+ this.description = d;
+ this.matchingFilter = f;
+ }
+
+ public EndpointListener getListener() {
+ return listener;
+ }
+
+ public EndpointDescription getDescription() {
+ return description;
+ }
+
+ public String getMatchingFilter() {
+ return matchingFilter;
+ }
+ }
+
+ public EndpointListenerHolder[] getMatchingEndpointListenerHolders(
+ ServiceReference[] refs, EndpointDescription description) {
+ if (refs == null)
+ return null;
+ List results = new ArrayList();
+ for (int i = 0; i < refs.length; i++) {
+ EndpointListener listener = (EndpointListener) context
+ .getService(refs[i]);
+ if (listener == null)
+ continue;
+ List<String> filters = PropertiesUtil.getStringPlusProperty(
+ getMapFromProperties(refs[i]),
+ EndpointListener.ENDPOINT_LISTENER_SCOPE);
+ if (filters.size() > 0) {
+ String matchingFilter = isMatch(description, filters);
+ if (matchingFilter != null)
+ results.add(new EndpointListenerHolder(listener,
+ description, matchingFilter));
+ }
+ }
+ return (EndpointListenerHolder[]) results
+ .toArray(new EndpointListenerHolder[results.size()]);
+ }
+
+ private String isMatch(EndpointDescription description, List<String> filters) {
+ for (String filter : filters) {
+ try {
+ if (description.matches(filter))
+ return filter;
+ } catch (IllegalArgumentException e) {
+ logError("isMatch", "invalid endpoint listener filter=" //$NON-NLS-1$ //$NON-NLS-2$
+ + filters, e);
+ }
+ }
+ return null;
+ }
+
+ private Map getMapFromProperties(ServiceReference ref) {
+ Map<String, Object> results = new TreeMap<String, Object>(
+ String.CASE_INSENSITIVE_ORDER);
+ String[] keys = ref.getPropertyKeys();
+ if (keys != null) {
+ for (int i = 0; i < keys.length; i++) {
+ results.put(keys[i], ref.getProperty(keys[i]));
+ }
+ }
+ return results;
+ }
+
+ class EndpointDescriptionBundleTrackerCustomizer implements
+ BundleTrackerCustomizer {
+
+ private static final String REMOTESERVICE_MANIFESTHEADER = "Remote-Service"; //$NON-NLS-1$
+ private static final String XML_FILE_PATTERN = "*.xml"; //$NON-NLS-1$
+
+ private Map<Long, Collection<org.osgi.service.remoteserviceadmin.EndpointDescription>> bundleDescriptionMap = Collections
+ .synchronizedMap(new HashMap<Long, Collection<org.osgi.service.remoteserviceadmin.EndpointDescription>>());
+
+ private Object endpointDescriptionReaderTrackerLock = new Object();
+ private ServiceTracker endpointDescriptionReaderTracker;
+
+ private IEndpointDescriptionReader getEndpointDescriptionReader() {
+ synchronized (endpointDescriptionReaderTrackerLock) {
+ if (endpointDescriptionReaderTracker == null) {
+ endpointDescriptionReaderTracker = new ServiceTracker(
+ context,
+ IEndpointDescriptionReader.class.getName(), null);
+ endpointDescriptionReaderTracker.open();
+ }
+ }
+ return (IEndpointDescriptionReader) endpointDescriptionReaderTracker
+ .getService();
+ }
+
+ public Object addingBundle(Bundle bundle, BundleEvent event) {
+ handleAddingBundle(bundle);
+ return bundle;
+ }
+
+ private void handleAddingBundle(Bundle bundle) {
+ if (context == null)
+ return;
+ String remoteServicesHeaderValue = (String) bundle.getHeaders()
+ .get(REMOTESERVICE_MANIFESTHEADER);
+ if (remoteServicesHeaderValue != null) {
+ // First parse into comma-separated values
+ String[] paths = remoteServicesHeaderValue.split(","); //$NON-NLS-1$
+ if (paths != null)
+ for (int i = 0; i < paths.length; i++)
+ handleEndpointDescriptionPath(bundle, paths[i]);
+ }
+ }
+
+ private void handleEndpointDescriptionPath(Bundle bundle,
+ String remoteServicesHeaderValue) {
+ // if it's empty, ignore
+ if ("".equals(remoteServicesHeaderValue)) //$NON-NLS-1$
+ return;
+ Enumeration<URL> e = null;
+ // if it endswith a '/', then scan for *.xml files
+ if (remoteServicesHeaderValue.endsWith("/")) { //$NON-NLS-1$
+ e = bundle.findEntries(remoteServicesHeaderValue,
+ XML_FILE_PATTERN, false);
+ } else {
+ // Break into path and filename/pattern
+ int lastSlashIndex = remoteServicesHeaderValue.lastIndexOf('/');
+ if (lastSlashIndex == -1) {
+ // no slash...might be a file name or pattern, assumed to be
+ // at root of bundle
+ e = bundle.findEntries(
+ "/", remoteServicesHeaderValue, false); //$NON-NLS-1$
+ } else {
+ String path = remoteServicesHeaderValue.substring(0,
+ lastSlashIndex);
+ if ("".equals(path)) { //$NON-NLS-1$
+ // path is empty so assume it's root
+ path = "/"; //$NON-NLS-1$
+ }
+ String filePattern = remoteServicesHeaderValue
+ .substring(lastSlashIndex + 1);
+ e = bundle.findEntries(path, filePattern, false);
+ }
+ }
+ // Now process any found
+ Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> endpointDescriptions = new ArrayList<org.osgi.service.remoteserviceadmin.EndpointDescription>();
+ if (e != null) {
+ while (e.hasMoreElements()) {
+ org.osgi.service.remoteserviceadmin.EndpointDescription[] eps = handleEndpointDescriptionFile(
+ bundle, e.nextElement());
+ if (eps != null)
+ for (int i = 0; i < eps.length; i++)
+ endpointDescriptions.add(eps[i]);
+ }
+ }
+ // finally, handle them
+ if (endpointDescriptions.size() > 0) {
+ bundleDescriptionMap.put(new Long(bundle.getBundleId()),
+ endpointDescriptions);
+ for (org.osgi.service.remoteserviceadmin.EndpointDescription ed : endpointDescriptions)
+ localLocatorServiceListener.handleEndpointDescription(ed,
+ true);
+ }
+ }
+
+ private org.osgi.service.remoteserviceadmin.EndpointDescription[] handleEndpointDescriptionFile(
+ Bundle bundle, URL fileURL) {
+ InputStream ins = null;
+ try {
+ IEndpointDescriptionReader endpointDescriptionReader = getEndpointDescriptionReader();
+ if (endpointDescriptionReader == null)
+ throw new NullPointerException(
+ "No endpointDescriptionReader available for handleEndpointDescriptionFile fileURL=" //$NON-NLS-1$
+ + fileURL);
+ ins = fileURL.openStream();
+ return endpointDescriptionReader.readEndpointDescriptions(ins);
+ } catch (Exception e) {
+ logError("handleEndpointDescriptionFile", //$NON-NLS-1$
+ "Exception creating endpoint descriptions from fileURL=" //$NON-NLS-1$
+ + fileURL, e);
+ return null;
+ } finally {
+ if (ins != null)
+ try {
+ ins.close();
+ } catch (IOException e) {
+ logError("handleEndpointDescriptionFile", //$NON-NLS-1$
+ "Exception closing endpointDescription input fileURL=" //$NON-NLS-1$
+ + fileURL, e);
+ }
+ }
+ }
+
+ private void logError(String method, String message, Throwable t) {
+ LogUtility.logError(method,
+ DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID,
+ IStatus.ERROR, message, t));
+ }
+
+ public void modifiedBundle(Bundle bundle, BundleEvent event,
+ Object object) {
+ }
+
+ public void removedBundle(Bundle bundle, BundleEvent event,
+ Object object) {
+ handleRemovedBundle(bundle);
+ }
+
+ private void handleRemovedBundle(Bundle bundle) {
+ Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> endpointDescriptions = bundleDescriptionMap
+ .remove(new Long(bundle.getBundleId()));
+ if (endpointDescriptions != null)
+ for (org.osgi.service.remoteserviceadmin.EndpointDescription ed : endpointDescriptions)
+ localLocatorServiceListener.handleEndpointDescription(ed,
+ false);
+ }
+
+ public void close() {
+ synchronized (endpointDescriptionReaderTrackerLock) {
+ if (endpointDescriptionReaderTracker != null) {
+ endpointDescriptionReaderTracker.close();
+ endpointDescriptionReaderTracker = null;
+ }
+ }
+ bundleDescriptionMap.clear();
+ }
+ }
+
+ class LocatorServiceListener implements IServiceListener {
+
+ private Object listenerLock = new Object();
+ private IDiscoveryLocator locator;
+
+ private List<org.osgi.service.remoteserviceadmin.EndpointDescription> discoveredEndpointDescriptions = new ArrayList();
+
+ public LocatorServiceListener(IDiscoveryLocator locator) {
+ this.locator = locator;
+ if (locator != null)
+ this.locator.addServiceListener(this);
+ }
+
+ public void serviceDiscovered(IServiceEvent anEvent) {
+ handleService(anEvent.getServiceInfo(), true);
+ }
+
+ public void serviceUndiscovered(IServiceEvent anEvent) {
+ handleService(anEvent.getServiceInfo(), false);
+ }
+
+ private boolean matchServiceID(IServiceID serviceId) {
+ if (Arrays.asList(serviceId.getServiceTypeID().getServices())
+ .contains(RemoteConstants.DISCOVERY_SERVICE_TYPE))
+ return true;
+ return false;
+ }
+
+ void handleService(IServiceInfo serviceInfo, boolean discovered) {
+ logInfo("handleService", "serviceInfo=" + serviceInfo //$NON-NLS-1$ //$NON-NLS-2$
+ + ",discovered=" + discovered); //$NON-NLS-1$
+ IServiceID serviceID = serviceInfo.getServiceID();
+ if (matchServiceID(serviceID))
+ handleOSGiServiceEndpoint(serviceID, serviceInfo, discovered);
+ }
+
+ private void handleOSGiServiceEndpoint(IServiceID serviceId,
+ IServiceInfo serviceInfo, boolean discovered) {
+ if (locator == null)
+ return;
+ DiscoveredEndpointDescription discoveredEndpointDescription = getDiscoveredEndpointDescription(
+ serviceId, serviceInfo, discovered);
+ if (discoveredEndpointDescription != null) {
+ handleEndpointDescription(
+ discoveredEndpointDescription.getEndpointDescription(),
+ discovered);
+ } else {
+ logWarning("handleOSGiServiceEvent", //$NON-NLS-1$
+ "discoveredEndpointDescription is null for service info=" //$NON-NLS-1$
+ + serviceInfo + ",discovered=" + discovered); //$NON-NLS-1$
+ }
+ }
+
+ public void handleEndpointDescription(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
+ boolean discovered) {
+ synchronized (listenerLock) {
+ if (discovered)
+ discoveredEndpointDescriptions.add(endpointDescription);
+ else
+ discoveredEndpointDescriptions.remove(endpointDescription);
+
+ queueEndpointDescription(endpointDescription, discovered);
+ }
+ }
+
+ public Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> getEndpointDescriptions() {
+ synchronized (listenerLock) {
+ Collection<org.osgi.service.remoteserviceadmin.EndpointDescription> result = new ArrayList<org.osgi.service.remoteserviceadmin.EndpointDescription>();
+ result.addAll(discoveredEndpointDescriptions);
+ return result;
+ }
+ }
+
+ private void logInfo(String methodName, String message) {
+ LogUtility.logInfo(methodName,
+ DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
+ message);
+ }
+
+ private void logWarning(String methodName, String message) {
+ LogUtility.logWarning(methodName,
+ DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
+ message);
+ }
+
+ private void logError(String methodName, String message) {
+ logError(methodName, message, null);
+ }
+
+ private void logError(String methodName, String message, Throwable t) {
+ LogUtility.logError(methodName,
+ DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, this.getClass(),
+ message, t);
+ }
+
+ private DiscoveredEndpointDescription getDiscoveredEndpointDescription(
+ IServiceID serviceId, IServiceInfo serviceInfo,
+ boolean discovered) {
+ // Get IEndpointDescriptionFactory
+ final String methodName = "getDiscoveredEndpointDescription"; //$NON-NLS-1$
+ IDiscoveredEndpointDescriptionFactory factory = getDiscoveredEndpointDescriptionFactory();
+ if (factory == null) {
+ logError(
+ methodName,
+ "No IEndpointDescriptionFactory found, could not create EndpointDescription for " //$NON-NLS-1$
+ + (discovered ? "discovered" : "undiscovered") //$NON-NLS-1$ //$NON-NLS-2$
+ + " serviceInfo=" + serviceInfo); //$NON-NLS-1$
+ return null;
+ }
+ try {
+ // Else get endpoint description factory to create
+ // EndpointDescription
+ // for given serviceID and serviceInfo
+ return (discovered) ? factory
+ .createDiscoveredEndpointDescription(locator,
+ serviceInfo)
+ : factory.removeDiscoveredEndpointDescription(locator,
+ serviceId);
+ } catch (Exception e) {
+ logError(
+ methodName,
+ "Exception calling IEndpointDescriptionFactory." //$NON-NLS-1$
+ + ((discovered) ? "createDiscoveredEndpointDescription" //$NON-NLS-1$
+ : "getUndiscoveredEndpointDescription"), e); //$NON-NLS-1$
+ return null;
+ } catch (NoClassDefFoundError e) {
+ logError(
+ methodName,
+ "NoClassDefFoundError calling IEndpointDescriptionFactory." //$NON-NLS-1$
+ + ((discovered) ? "createDiscoveredEndpointDescription" //$NON-NLS-1$
+ : "getUndiscoveredEndpointDescription"), e); //$NON-NLS-1$
+ return null;
+ }
+ }
+
+ public synchronized void close() {
+ if (locator != null) {
+ locator.removeServiceListener(this);
+ locator = null;
+ }
+ discoveredEndpointDescriptions.clear();
+ }
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionParseException.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionParseException.java
index ab3fe2ba1..cb21c0645 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionParseException.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionParseException.java
@@ -1,37 +1,37 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-/**
- * Exception class to represent endpoint description parse problems when
- * performed by {@link IEndpointDescriptionReader}.
- *
- * @see IEndpointDescriptionReader#readEndpointDescriptions(java.io.InputStream)
- */
-public class EndpointDescriptionParseException extends Exception {
-
- private static final long serialVersionUID = -4481979787400184664L;
-
- public EndpointDescriptionParseException() {
- }
-
- public EndpointDescriptionParseException(String message) {
- super(message);
- }
-
- public EndpointDescriptionParseException(Throwable cause) {
- super(cause);
- }
-
- public EndpointDescriptionParseException(String message, Throwable cause) {
- super(message, cause);
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+/**
+ * Exception class to represent endpoint description parse problems when
+ * performed by {@link IEndpointDescriptionReader}.
+ *
+ * @see IEndpointDescriptionReader#readEndpointDescriptions(java.io.InputStream)
+ */
+public class EndpointDescriptionParseException extends Exception {
+
+ private static final long serialVersionUID = -4481979787400184664L;
+
+ public EndpointDescriptionParseException() {
+ }
+
+ public EndpointDescriptionParseException(String message) {
+ super(message);
+ }
+
+ public EndpointDescriptionParseException(Throwable cause) {
+ super(cause);
+ }
+
+ public EndpointDescriptionParseException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java
index 1197f12a6..6eb48ed0a 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java
@@ -1,56 +1,56 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.EndpointDescriptionParser;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
-
-/**
- * Default implementation of {@link IEndpointDescriptionReader}.
- *
- */
-public class EndpointDescriptionReader implements IEndpointDescriptionReader {
-
- public org.osgi.service.remoteserviceadmin.EndpointDescription[] readEndpointDescriptions(
- InputStream input) throws IOException {
- // First create parser
- EndpointDescriptionParser parser = new EndpointDescriptionParser();
- // Parse input stream
- parser.parse(input);
- // Get possible endpoint descriptions
- List<EndpointDescriptionParser.EndpointDescription> parsedDescriptions = parser
- .getEndpointDescriptions();
- List<org.osgi.service.remoteserviceadmin.EndpointDescription> results = new ArrayList<org.osgi.service.remoteserviceadmin.EndpointDescription>();
- // For each one parsed, get properties and
- for (EndpointDescriptionParser.EndpointDescription ed : parsedDescriptions) {
- Map parsedProperties = ed.getProperties();
- try {
- results.add(new EndpointDescription(parsedProperties));
- } catch (Exception e) {
- LogUtility.logError(
- "readEndpointDescriptions", //$NON-NLS-1$
- DebugOptions.ENDPOINT_DESCRIPTION_READER,
- this.getClass(),
- "Exception parsing endpoint description properties", e); //$NON-NLS-1$
- throw new IOException("Error creating endpoint description: " //$NON-NLS-1$
- + e.getMessage());
- }
- }
- return results.toArray(new EndpointDescription[results.size()]);
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.EndpointDescriptionParser;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
+
+/**
+ * Default implementation of {@link IEndpointDescriptionReader}.
+ *
+ */
+public class EndpointDescriptionReader implements IEndpointDescriptionReader {
+
+ public org.osgi.service.remoteserviceadmin.EndpointDescription[] readEndpointDescriptions(
+ InputStream input) throws IOException {
+ // First create parser
+ EndpointDescriptionParser parser = new EndpointDescriptionParser();
+ // Parse input stream
+ parser.parse(input);
+ // Get possible endpoint descriptions
+ List<EndpointDescriptionParser.EndpointDescription> parsedDescriptions = parser
+ .getEndpointDescriptions();
+ List<org.osgi.service.remoteserviceadmin.EndpointDescription> results = new ArrayList<org.osgi.service.remoteserviceadmin.EndpointDescription>();
+ // For each one parsed, get properties and
+ for (EndpointDescriptionParser.EndpointDescription ed : parsedDescriptions) {
+ Map parsedProperties = ed.getProperties();
+ try {
+ results.add(new EndpointDescription(parsedProperties));
+ } catch (Exception e) {
+ LogUtility.logError(
+ "readEndpointDescriptions", //$NON-NLS-1$
+ DebugOptions.ENDPOINT_DESCRIPTION_READER,
+ this.getClass(),
+ "Exception parsing endpoint description properties", e); //$NON-NLS-1$
+ throw new IOException("Error creating endpoint description: " //$NON-NLS-1$
+ + e.getMessage());
+ }
+ }
+ return results.toArray(new EndpointDescription[results.size()]);
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionWriter.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionWriter.java
index 82dc11c6f..5234ddc7b 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionWriter.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionWriter.java
@@ -1,332 +1,332 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Endpoint description writer class for writing {@link EndpointDescription}s to
- * the OSGi 4.2 Remote Service Admin Endpoint Description Extender Format
- * (section 122.8 of OSGi 4.2 enterprise specification). This class may be used
- * or extended to write {@link EndpointDescription} instances to the format
- * specified by OSGi 4.2 section 122.8.
- *
- */
-public class EndpointDescriptionWriter {
-
- protected String indent = " "; //$NON-NLS-1$
-
- protected List<String> xmlNames;
-
- public EndpointDescriptionWriter() {
- this(null);
- }
-
- public EndpointDescriptionWriter(List<String> xmlNames) {
- this.xmlNames = xmlNames;
- }
-
- protected abstract class ComplexProperty {
- private String name;
- private Object value;
-
- public ComplexProperty(String name, Object value) {
- this.name = name;
- this.value = value;
- }
-
- public abstract void writeProperty(int indentLevel, Writer writer)
- throws IOException;
-
- protected String getName() {
- return name;
- }
-
- protected Object getValue() {
- return value;
- }
- }
-
- protected class XmlProperty extends ComplexProperty {
- public XmlProperty(String name, String xml) {
- super(name, xml);
- }
-
- void writeXml(int indentLevel, Writer writer) throws IOException {
- indent(indentLevel, writer);
- writer.append("<xml>"); //$NON-NLS-1$
- newLine(writer);
- indent(indentLevel + 1, writer);
- writer.append((String) getValue());
- newLine(writer);
- indent(indentLevel, writer);
- writer.append("</xml>"); //$NON-NLS-1$
- newLine(writer);
- }
-
- public void writeProperty(int indentLevel, Writer writer)
- throws IOException {
- indent(indentLevel, writer);
- writer.append("<property name=\"").append(getName()).append("\">"); //$NON-NLS-1$ //$NON-NLS-2$
- newLine(writer);
- writeXml(indentLevel + 1, writer);
- writer.append("</property>"); //$NON-NLS-1$
- newLine(writer);
- }
- }
-
- protected abstract class MultiValueProperty extends ComplexProperty {
- public MultiValueProperty(String name, Object value) {
- super(name, value);
- }
-
- abstract String getValueType();
-
- abstract void writePropertyValues(int indentLevel, Writer writer)
- throws IOException;
-
- public void writeProperty(int indentLevel, Writer writer)
- throws IOException {
- indent(indentLevel, writer);
- writer.append("<property name=\"").append(getName()) //$NON-NLS-1$
- .append("\" value-type=\"").append(getValueType()) //$NON-NLS-1$
- .append("\">"); //$NON-NLS-1$
- newLine(writer);
- writePropertyValues(indentLevel + 1, writer);
- indent(indentLevel, writer);
- writer.append("</property>"); //$NON-NLS-1$
- newLine(writer);
- }
-
- void writePropertyValue(int indentLevel, Object value, Writer writer)
- throws IOException {
- indent(indentLevel, writer);
- writer.append("<value>").append(value.toString()) //$NON-NLS-1$
- .append("</value>"); //$NON-NLS-1$
- newLine(writer);
- }
-
- }
-
- protected class SetProperty extends MultiValueProperty {
- public SetProperty(String key, Set value) {
- super(key, value);
- }
-
- public String getValueType() {
- return EndpointDescriptionWriter.this
- .getValueType(((Set) getValue()).iterator().next());
- }
-
- void writePropertyValues(int indentLevel, Writer writer)
- throws IOException {
- Set s = (Set) getValue();
- indent(indentLevel, writer);
- writer.append("<set>"); //$NON-NLS-1$
- newLine(writer);
- for (Iterator i = s.iterator(); i.hasNext();)
- writePropertyValue(indentLevel + 1, i.next(), writer);
- indent(indentLevel, writer);
- writer.append("</set>"); //$NON-NLS-1$
- }
-
- }
-
- protected class ListProperty extends MultiValueProperty {
- public ListProperty(String key, List value) {
- super(key, value);
- }
-
- public String getValueType() {
- return EndpointDescriptionWriter.this
- .getValueType(((List) getValue()).iterator().next());
- }
-
- void writePropertyValues(int indentLevel, Writer writer)
- throws IOException {
- List l = (List) getValue();
- indent(indentLevel, writer);
- writer.append("<list>"); //$NON-NLS-1$
- newLine(writer);
- for (Iterator i = l.iterator(); i.hasNext();)
- writePropertyValue(indentLevel + 1, i.next(), writer);
- indent(indentLevel, writer);
- writer.append("</list>"); //$NON-NLS-1$
- newLine(writer);
- }
- }
-
- protected class ArrayProperty extends MultiValueProperty {
- public ArrayProperty(String key, Object[] value) {
- super(key, value);
- }
-
- public String getValueType() {
- return EndpointDescriptionWriter.this
- .getValueType(((Object[]) getValue())[0]);
- }
-
- void writePropertyValues(int indentLevel, Writer writer)
- throws IOException {
- Object[] a = (Object[]) getValue();
- indent(indentLevel, writer);
- writer.append("<array>"); //$NON-NLS-1$
- newLine(writer);
- for (int i = 0; i < a.length; i++)
- writePropertyValue(indentLevel + 1, a[i], writer);
- indent(indentLevel, writer);
- writer.append("</array>"); //$NON-NLS-1$
- newLine(writer);
- }
- }
-
- public void writeEndpointDescriptions(
- Writer writer,
- org.osgi.service.remoteserviceadmin.EndpointDescription[] endpointDescriptions)
- throws IOException {
-
- indent(0, writer);
- writer.append("<endpoint-descriptions xmlns=\"http://www.osgi.org/xmlns/rsa/v1.0.0\">"); //$NON-NLS-1$
- newLine(writer);
- for (int i = 0; i < endpointDescriptions.length; i++)
- writeEndpointDescription(1, writer, endpointDescriptions[i]);
- indent(0, writer);
- writer.append("</endpoint-descriptions>"); //$NON-NLS-1$
- newLine(writer);
- }
-
- protected void writeEndpointDescription(
- int indentLevel,
- Writer writer,
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription)
- throws IOException {
- indent(indentLevel, writer);
- writer.append("<endpoint-description>"); //$NON-NLS-1$
- newLine(writer);
- writeProperties(indentLevel, writer, endpointDescription);
- indent(indentLevel, writer);
- writer.append("</endpoint-description>"); //$NON-NLS-1$
- newLine(writer);
- }
-
- protected void writeProperties(
- int indentLevel,
- Writer writer,
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription)
- throws IOException {
- Map<String, Object> properties = endpointDescription.getProperties();
- for (String name : properties.keySet())
- writeProperty(indentLevel + 1, writer, name, properties.get(name));
- }
-
- protected void writeProperty(int indentLevel, Writer writer, String name,
- Object value) throws IOException {
- if (value != null) {
- ComplexProperty complexProperty = getComplexProperty(name, value);
- if (complexProperty != null) {
- complexProperty.writeProperty(indentLevel, writer);
- return;
- }
- String valueType = getValueType(value);
- if (valueType != null) {
- writeValueProperty(indentLevel, name, valueType, value, writer);
- return;
- } else
- writeUnknownProperty(indentLevel, writer, name, value);
- }
- }
-
- protected void writeUnknownProperty(int indentLevel, Writer writer,
- String name, Object value) {
- // By default, do nothing
- }
-
- protected ComplexProperty getComplexProperty(String name, Object value) {
- XmlProperty xmlProperty = getXmlProperty(name, value);
- return (xmlProperty == null) ? getMultiValueProperty(name, value)
- : xmlProperty;
- }
-
- protected XmlProperty getXmlProperty(String name, Object value) {
- if (xmlNames != null && xmlNames.contains(name))
- return new XmlProperty(name, (String) value);
- return null;
- }
-
- protected void writeValueProperty(int indentLevel, String name,
- String valueType, Object value, Writer writer) throws IOException {
- indent(indentLevel, writer);
- writer.append("<property name=\"").append(name) //$NON-NLS-1$
- .append("\" value-type=\"").append(valueType) //$NON-NLS-1$
- .append("\" value=\"").append(value.toString()).append("\"/>"); //$NON-NLS-1$ //$NON-NLS-2$
- newLine(writer);
- }
-
- protected MultiValueProperty getMultiValueProperty(String key, Object value) {
- if (value instanceof Set) {
- Set s = (Set) value;
- Object first = s.iterator().next();
- if (first == null)
- return null;
- return new SetProperty(key, s);
- } else if (value instanceof List) {
- List l = (List) value;
- Object first = l.get(0);
- if (first == null)
- return null;
- return new ListProperty(key, l);
- } else if (value.getClass().isArray()) {
- Object[] a = (Object[]) value;
- if (a.length == 0 || a[0] == null)
- return null;
- return new ArrayProperty(key, a);
- }
- return null;
- }
-
- protected String getValueType(Object value) {
- // first determine if is array
- if (value instanceof String)
- return "String"; //$NON-NLS-1$
- else if (value instanceof Long)
- return "Long"; //$NON-NLS-1$
- else if (value instanceof Double)
- return "Double"; //$NON-NLS-1$
- else if (value instanceof Float)
- return "Float"; //$NON-NLS-1$
- else if (value instanceof Integer)
- return "Integer"; //$NON-NLS-1$
- else if (value instanceof Byte)
- return "Byte"; //$NON-NLS-1$
- else if (value instanceof Character)
- return "Character"; //$NON-NLS-1$
- else if (value instanceof Boolean)
- return "Boolean"; //$NON-NLS-1$
- else if (value instanceof Short)
- return "Short"; //$NON-NLS-1$
- return null;
- }
-
- protected Writer newLine(Writer writer) throws IOException {
- return writer.append("\n"); //$NON-NLS-1$
- }
-
- protected Writer indent(int indentLevel, Writer writer) throws IOException {
- for (int i = 0; i < indentLevel; i++)
- writer.append(indent);
- return writer;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Endpoint description writer class for writing {@link EndpointDescription}s to
+ * the OSGi 4.2 Remote Service Admin Endpoint Description Extender Format
+ * (section 122.8 of OSGi 4.2 enterprise specification). This class may be used
+ * or extended to write {@link EndpointDescription} instances to the format
+ * specified by OSGi 4.2 section 122.8.
+ *
+ */
+public class EndpointDescriptionWriter {
+
+ protected String indent = " "; //$NON-NLS-1$
+
+ protected List<String> xmlNames;
+
+ public EndpointDescriptionWriter() {
+ this(null);
+ }
+
+ public EndpointDescriptionWriter(List<String> xmlNames) {
+ this.xmlNames = xmlNames;
+ }
+
+ protected abstract class ComplexProperty {
+ private String name;
+ private Object value;
+
+ public ComplexProperty(String name, Object value) {
+ this.name = name;
+ this.value = value;
+ }
+
+ public abstract void writeProperty(int indentLevel, Writer writer)
+ throws IOException;
+
+ protected String getName() {
+ return name;
+ }
+
+ protected Object getValue() {
+ return value;
+ }
+ }
+
+ protected class XmlProperty extends ComplexProperty {
+ public XmlProperty(String name, String xml) {
+ super(name, xml);
+ }
+
+ void writeXml(int indentLevel, Writer writer) throws IOException {
+ indent(indentLevel, writer);
+ writer.append("<xml>"); //$NON-NLS-1$
+ newLine(writer);
+ indent(indentLevel + 1, writer);
+ writer.append((String) getValue());
+ newLine(writer);
+ indent(indentLevel, writer);
+ writer.append("</xml>"); //$NON-NLS-1$
+ newLine(writer);
+ }
+
+ public void writeProperty(int indentLevel, Writer writer)
+ throws IOException {
+ indent(indentLevel, writer);
+ writer.append("<property name=\"").append(getName()).append("\">"); //$NON-NLS-1$ //$NON-NLS-2$
+ newLine(writer);
+ writeXml(indentLevel + 1, writer);
+ writer.append("</property>"); //$NON-NLS-1$
+ newLine(writer);
+ }
+ }
+
+ protected abstract class MultiValueProperty extends ComplexProperty {
+ public MultiValueProperty(String name, Object value) {
+ super(name, value);
+ }
+
+ abstract String getValueType();
+
+ abstract void writePropertyValues(int indentLevel, Writer writer)
+ throws IOException;
+
+ public void writeProperty(int indentLevel, Writer writer)
+ throws IOException {
+ indent(indentLevel, writer);
+ writer.append("<property name=\"").append(getName()) //$NON-NLS-1$
+ .append("\" value-type=\"").append(getValueType()) //$NON-NLS-1$
+ .append("\">"); //$NON-NLS-1$
+ newLine(writer);
+ writePropertyValues(indentLevel + 1, writer);
+ indent(indentLevel, writer);
+ writer.append("</property>"); //$NON-NLS-1$
+ newLine(writer);
+ }
+
+ void writePropertyValue(int indentLevel, Object value, Writer writer)
+ throws IOException {
+ indent(indentLevel, writer);
+ writer.append("<value>").append(value.toString()) //$NON-NLS-1$
+ .append("</value>"); //$NON-NLS-1$
+ newLine(writer);
+ }
+
+ }
+
+ protected class SetProperty extends MultiValueProperty {
+ public SetProperty(String key, Set value) {
+ super(key, value);
+ }
+
+ public String getValueType() {
+ return EndpointDescriptionWriter.this
+ .getValueType(((Set) getValue()).iterator().next());
+ }
+
+ void writePropertyValues(int indentLevel, Writer writer)
+ throws IOException {
+ Set s = (Set) getValue();
+ indent(indentLevel, writer);
+ writer.append("<set>"); //$NON-NLS-1$
+ newLine(writer);
+ for (Iterator i = s.iterator(); i.hasNext();)
+ writePropertyValue(indentLevel + 1, i.next(), writer);
+ indent(indentLevel, writer);
+ writer.append("</set>"); //$NON-NLS-1$
+ }
+
+ }
+
+ protected class ListProperty extends MultiValueProperty {
+ public ListProperty(String key, List value) {
+ super(key, value);
+ }
+
+ public String getValueType() {
+ return EndpointDescriptionWriter.this
+ .getValueType(((List) getValue()).iterator().next());
+ }
+
+ void writePropertyValues(int indentLevel, Writer writer)
+ throws IOException {
+ List l = (List) getValue();
+ indent(indentLevel, writer);
+ writer.append("<list>"); //$NON-NLS-1$
+ newLine(writer);
+ for (Iterator i = l.iterator(); i.hasNext();)
+ writePropertyValue(indentLevel + 1, i.next(), writer);
+ indent(indentLevel, writer);
+ writer.append("</list>"); //$NON-NLS-1$
+ newLine(writer);
+ }
+ }
+
+ protected class ArrayProperty extends MultiValueProperty {
+ public ArrayProperty(String key, Object[] value) {
+ super(key, value);
+ }
+
+ public String getValueType() {
+ return EndpointDescriptionWriter.this
+ .getValueType(((Object[]) getValue())[0]);
+ }
+
+ void writePropertyValues(int indentLevel, Writer writer)
+ throws IOException {
+ Object[] a = (Object[]) getValue();
+ indent(indentLevel, writer);
+ writer.append("<array>"); //$NON-NLS-1$
+ newLine(writer);
+ for (int i = 0; i < a.length; i++)
+ writePropertyValue(indentLevel + 1, a[i], writer);
+ indent(indentLevel, writer);
+ writer.append("</array>"); //$NON-NLS-1$
+ newLine(writer);
+ }
+ }
+
+ public void writeEndpointDescriptions(
+ Writer writer,
+ org.osgi.service.remoteserviceadmin.EndpointDescription[] endpointDescriptions)
+ throws IOException {
+
+ indent(0, writer);
+ writer.append("<endpoint-descriptions xmlns=\"http://www.osgi.org/xmlns/rsa/v1.0.0\">"); //$NON-NLS-1$
+ newLine(writer);
+ for (int i = 0; i < endpointDescriptions.length; i++)
+ writeEndpointDescription(1, writer, endpointDescriptions[i]);
+ indent(0, writer);
+ writer.append("</endpoint-descriptions>"); //$NON-NLS-1$
+ newLine(writer);
+ }
+
+ protected void writeEndpointDescription(
+ int indentLevel,
+ Writer writer,
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription)
+ throws IOException {
+ indent(indentLevel, writer);
+ writer.append("<endpoint-description>"); //$NON-NLS-1$
+ newLine(writer);
+ writeProperties(indentLevel, writer, endpointDescription);
+ indent(indentLevel, writer);
+ writer.append("</endpoint-description>"); //$NON-NLS-1$
+ newLine(writer);
+ }
+
+ protected void writeProperties(
+ int indentLevel,
+ Writer writer,
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription)
+ throws IOException {
+ Map<String, Object> properties = endpointDescription.getProperties();
+ for (String name : properties.keySet())
+ writeProperty(indentLevel + 1, writer, name, properties.get(name));
+ }
+
+ protected void writeProperty(int indentLevel, Writer writer, String name,
+ Object value) throws IOException {
+ if (value != null) {
+ ComplexProperty complexProperty = getComplexProperty(name, value);
+ if (complexProperty != null) {
+ complexProperty.writeProperty(indentLevel, writer);
+ return;
+ }
+ String valueType = getValueType(value);
+ if (valueType != null) {
+ writeValueProperty(indentLevel, name, valueType, value, writer);
+ return;
+ } else
+ writeUnknownProperty(indentLevel, writer, name, value);
+ }
+ }
+
+ protected void writeUnknownProperty(int indentLevel, Writer writer,
+ String name, Object value) {
+ // By default, do nothing
+ }
+
+ protected ComplexProperty getComplexProperty(String name, Object value) {
+ XmlProperty xmlProperty = getXmlProperty(name, value);
+ return (xmlProperty == null) ? getMultiValueProperty(name, value)
+ : xmlProperty;
+ }
+
+ protected XmlProperty getXmlProperty(String name, Object value) {
+ if (xmlNames != null && xmlNames.contains(name))
+ return new XmlProperty(name, (String) value);
+ return null;
+ }
+
+ protected void writeValueProperty(int indentLevel, String name,
+ String valueType, Object value, Writer writer) throws IOException {
+ indent(indentLevel, writer);
+ writer.append("<property name=\"").append(name) //$NON-NLS-1$
+ .append("\" value-type=\"").append(valueType) //$NON-NLS-1$
+ .append("\" value=\"").append(value.toString()).append("\"/>"); //$NON-NLS-1$ //$NON-NLS-2$
+ newLine(writer);
+ }
+
+ protected MultiValueProperty getMultiValueProperty(String key, Object value) {
+ if (value instanceof Set) {
+ Set s = (Set) value;
+ Object first = s.iterator().next();
+ if (first == null)
+ return null;
+ return new SetProperty(key, s);
+ } else if (value instanceof List) {
+ List l = (List) value;
+ Object first = l.get(0);
+ if (first == null)
+ return null;
+ return new ListProperty(key, l);
+ } else if (value.getClass().isArray()) {
+ Object[] a = (Object[]) value;
+ if (a.length == 0 || a[0] == null)
+ return null;
+ return new ArrayProperty(key, a);
+ }
+ return null;
+ }
+
+ protected String getValueType(Object value) {
+ // first determine if is array
+ if (value instanceof String)
+ return "String"; //$NON-NLS-1$
+ else if (value instanceof Long)
+ return "Long"; //$NON-NLS-1$
+ else if (value instanceof Double)
+ return "Double"; //$NON-NLS-1$
+ else if (value instanceof Float)
+ return "Float"; //$NON-NLS-1$
+ else if (value instanceof Integer)
+ return "Integer"; //$NON-NLS-1$
+ else if (value instanceof Byte)
+ return "Byte"; //$NON-NLS-1$
+ else if (value instanceof Character)
+ return "Character"; //$NON-NLS-1$
+ else if (value instanceof Boolean)
+ return "Boolean"; //$NON-NLS-1$
+ else if (value instanceof Short)
+ return "Short"; //$NON-NLS-1$
+ return null;
+ }
+
+ protected Writer newLine(Writer writer) throws IOException {
+ return writer.append("\n"); //$NON-NLS-1$
+ }
+
+ protected Writer indent(int indentLevel, Writer writer) throws IOException {
+ for (int i = 0; i < indentLevel; i++)
+ writer.append(indent);
+ return writer;
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/HostContainerSelector.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/HostContainerSelector.java
index 28873c148..7ab52c69b 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/HostContainerSelector.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/HostContainerSelector.java
@@ -1,92 +1,92 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Default implementation of {@link IHostContainerSelector} service.
- *
- */
-public class HostContainerSelector extends AbstractHostContainerSelector
- implements IHostContainerSelector {
-
- private boolean autoCreateContainer = false;
-
- public HostContainerSelector(String[] defaultConfigTypes,
- boolean autoCreateContainer) {
- super(defaultConfigTypes);
- this.autoCreateContainer = autoCreateContainer;
- }
-
- // Adding synchronized to make the host container finding
- // thread safe to deal with bug
- // https://bugs.eclipse.org/bugs/show_bug.cgi?id=331836
- /**
- * @see org.eclipse.ecf.osgi.services.remoteserviceadmin.IHostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference,
- * java.util.Map, java.lang.String[], java.lang.String[],
- * java.lang.String[])
- * @since 2.0
- */
- public synchronized IRemoteServiceContainer[] selectHostContainers(
- ServiceReference serviceReference,
- Map<String, Object> overridingProperties,
- String[] serviceExportedInterfaces,
- String[] serviceExportedConfigs, String[] serviceIntents)
- throws SelectContainerException {
- // Find previously created containers that match the given
- // serviceExportedConfigs and serviceIntents
- Collection rsContainers = selectExistingHostContainers(
- serviceReference, overridingProperties,
- serviceExportedInterfaces, serviceExportedConfigs,
- serviceIntents);
-
- if (rsContainers.size() == 0 && autoCreateContainer) {
- // If no existing containers are found we'll go through
- // finding/creating/configuring/connecting
- rsContainers = createAndConfigureHostContainers(serviceReference,
- overridingProperties, serviceExportedInterfaces,
- serviceExportedConfigs, serviceIntents);
-
- // if SERVICE_EXPORTED_CONTAINER_CONNECT_TARGET service property is
- // specified, then
- // connect the host container(s)
- Object target = overridingProperties
- .get(RemoteConstants.ENDPOINT_CONNECTTARGET_ID);
- if (target != null) {
- for (Iterator i = rsContainers.iterator(); i.hasNext();) {
- IContainer container = ((IRemoteServiceContainer) i.next())
- .getContainer();
- try {
- connectHostContainer(serviceReference,
- overridingProperties, container, target);
- } catch (Exception e) {
- logException("doConnectContainer failure containerID=" //$NON-NLS-1$
- + container.getID() + " target=" + target, e); //$NON-NLS-1$
- }
- }
-
- }
- }
-
- // return result
- return (IRemoteServiceContainer[]) rsContainers
- .toArray(new IRemoteServiceContainer[] {});
- }
-
- public void close() {
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Default implementation of {@link IHostContainerSelector} service.
+ *
+ */
+public class HostContainerSelector extends AbstractHostContainerSelector
+ implements IHostContainerSelector {
+
+ private boolean autoCreateContainer = false;
+
+ public HostContainerSelector(String[] defaultConfigTypes,
+ boolean autoCreateContainer) {
+ super(defaultConfigTypes);
+ this.autoCreateContainer = autoCreateContainer;
+ }
+
+ // Adding synchronized to make the host container finding
+ // thread safe to deal with bug
+ // https://bugs.eclipse.org/bugs/show_bug.cgi?id=331836
+ /**
+ * @see org.eclipse.ecf.osgi.services.remoteserviceadmin.IHostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference,
+ * java.util.Map, java.lang.String[], java.lang.String[],
+ * java.lang.String[])
+ * @since 2.0
+ */
+ public synchronized IRemoteServiceContainer[] selectHostContainers(
+ ServiceReference serviceReference,
+ Map<String, Object> overridingProperties,
+ String[] serviceExportedInterfaces,
+ String[] serviceExportedConfigs, String[] serviceIntents)
+ throws SelectContainerException {
+ // Find previously created containers that match the given
+ // serviceExportedConfigs and serviceIntents
+ Collection rsContainers = selectExistingHostContainers(
+ serviceReference, overridingProperties,
+ serviceExportedInterfaces, serviceExportedConfigs,
+ serviceIntents);
+
+ if (rsContainers.size() == 0 && autoCreateContainer) {
+ // If no existing containers are found we'll go through
+ // finding/creating/configuring/connecting
+ rsContainers = createAndConfigureHostContainers(serviceReference,
+ overridingProperties, serviceExportedInterfaces,
+ serviceExportedConfigs, serviceIntents);
+
+ // if SERVICE_EXPORTED_CONTAINER_CONNECT_TARGET service property is
+ // specified, then
+ // connect the host container(s)
+ Object target = overridingProperties
+ .get(RemoteConstants.ENDPOINT_CONNECTTARGET_ID);
+ if (target != null) {
+ for (Iterator i = rsContainers.iterator(); i.hasNext();) {
+ IContainer container = ((IRemoteServiceContainer) i.next())
+ .getContainer();
+ try {
+ connectHostContainer(serviceReference,
+ overridingProperties, container, target);
+ } catch (Exception e) {
+ logException("doConnectContainer failure containerID=" //$NON-NLS-1$
+ + container.getID() + " target=" + target, e); //$NON-NLS-1$
+ }
+ }
+
+ }
+ }
+
+ // return result
+ return (IRemoteServiceContainer[]) rsContainers
+ .toArray(new IRemoteServiceContainer[] {});
+ }
+
+ public void close() {
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IConsumerContainerSelector.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IConsumerContainerSelector.java
index fce1ddb3a..e344da639 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IConsumerContainerSelector.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IConsumerContainerSelector.java
@@ -1,52 +1,52 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
-
-/**
- * Consumer container selector service contract. When an ECF RemoteServiceAdmin
- * instance is asked to import a service (i.e. via
- * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
- * ), the RSA first gets an instance of this service via the service registry,
- * and then uses it to select an ECF consumer container instance by calling
- * {@link #selectConsumerContainer(EndpointDescription)}.
- * <p>
- * <p>
- * The {@link IRemoteServiceContainer} returned is then used on the consumer
- * side, to actually import the remote service.
- * <p>
- * <p>
- * If no other instances of this service have been registered, a default
- * instance of {@link ConsumerContainerSelector} will be used. Note that this
- * default instance is registered with the lowest possible priority, so that if
- * other {@link IConsumerContainerSelector} instances are registered, they will
- * be preferred/used over the default.
- *
- */
-public interface IConsumerContainerSelector {
-
- /**
- * Select (or create and initialize) a consumer remote service container.
- *
- * @param endpointDescription
- * the endpoint description that has been discovered.
- * @return IRemoteServiceContainer to be used for importing the remote
- * service. May be <code>null</code> if not container is available
- * for use as a consumer for the given endpointDescription.
- * @throws SelectContainerException
- * thrown if the host container selection or
- * creation/configuration fails.
- */
- public IRemoteServiceContainer selectConsumerContainer(
- EndpointDescription endpointDescription)
- throws SelectContainerException;
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
+
+/**
+ * Consumer container selector service contract. When an ECF RemoteServiceAdmin
+ * instance is asked to import a service (i.e. via
+ * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
+ * ), the RSA first gets an instance of this service via the service registry,
+ * and then uses it to select an ECF consumer container instance by calling
+ * {@link #selectConsumerContainer(EndpointDescription)}.
+ * <p>
+ * <p>
+ * The {@link IRemoteServiceContainer} returned is then used on the consumer
+ * side, to actually import the remote service.
+ * <p>
+ * <p>
+ * If no other instances of this service have been registered, a default
+ * instance of {@link ConsumerContainerSelector} will be used. Note that this
+ * default instance is registered with the lowest possible priority, so that if
+ * other {@link IConsumerContainerSelector} instances are registered, they will
+ * be preferred/used over the default.
+ *
+ */
+public interface IConsumerContainerSelector {
+
+ /**
+ * Select (or create and initialize) a consumer remote service container.
+ *
+ * @param endpointDescription
+ * the endpoint description that has been discovered.
+ * @return IRemoteServiceContainer to be used for importing the remote
+ * service. May be <code>null</code> if not container is available
+ * for use as a consumer for the given endpointDescription.
+ * @throws SelectContainerException
+ * thrown if the host container selection or
+ * creation/configuration fails.
+ */
+ public IRemoteServiceContainer selectConsumerContainer(
+ EndpointDescription endpointDescription)
+ throws SelectContainerException;
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionAdvertiser.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionAdvertiser.java
index 2d59f784f..1ae389814 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionAdvertiser.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionAdvertiser.java
@@ -1,80 +1,80 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
-
-/**
- * Endpoint description advertiser service. TopologyManager consumers may use
- * this service to advertise/publish endpoint descriptions for discovery.
- * Typically, implementations of this service will use the ECF Discovery API to
- * advertise/publish EndpointDescriptions over the network. For example, this is
- * what {@link EndpointDescriptionAdvertiser} does...i.e. it
- * advertises/unadvertises endpoint descriptions by calling and/all available
- * instances of
- * {@link org.eclipse.ecf.discovery.IDiscoveryAdvertiser#registerService(org.eclipse.ecf.discovery.IServiceInfo)}
- * .
- * <p>
- * <p>
- * Note, however, that other implementations of endpoint description advertisers
- * are possible that do not use ECF Discovery...or use ECF Discovery in other
- * ways. For example, some TopologyManagers may wish to advertise exported
- * remote services by creating a static xml file describing the endpoint by
- * using the Endpoint Description Extender Format (EDEF) described in section
- * 122.8 of the <a
- * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGi Enterprise
- * Specification</a> by calling {@link #advertise(EndpointDescription)} on their
- * own implementation of this service that uses an
- * {@link EndpointDescriptionWriter} to create an EDEF bundle.
- * <p>
- * <p>
- * If no other instances of this service have been registered, a default
- * instance of {@link EndpointDescriptionAdvertiser} will be used. The default
- * instance uses ECF {@link IDiscoveryAdvertiser}s to publish the endpoint
- * description. Note that the default instance is registered with the lowest
- * possible priority, so that if other {@link IEndpointDescriptionAdvertiser}
- * instances are registered, they will be preferred/used over the default.
- */
-public interface IEndpointDescriptionAdvertiser {
-
- /**
- * Advertise/publish the given endpoint description.
- *
- * @param endpointDescription
- * the endpoint description to advertise. Must not be
- * <code>null</code>.
- * @return IStatus to indicate the status of the advertisement. If the
- * returned status returns <code>false</code> from
- * {@link IStatus#isOK()}, then the advertisement failed. The
- * IStatus can be further inspected for exception information and/or
- * child statuses.
- *
- * @see IStatus
- */
- public IStatus advertise(EndpointDescription endpointDescription);
-
- /**
- * Unadvertise/unpublishe the given endpoint description.
- *
- * @param endpointDescription
- * the endpoint description to unadvertise. Must not be
- * <code>null</code>.
- * @return IStatus to indicate the status of the unadvertisement. If the
- * returned status returns <code>false</code> from
- * {@link IStatus#isOK()}, then the unadvertisement failed. The
- * IStatus can be further inspected for exception information and/or
- * child statuses.
- *
- * @see IStatus
- */
- public IStatus unadvertise(EndpointDescription endpointDescription);
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
+
+/**
+ * Endpoint description advertiser service. TopologyManager consumers may use
+ * this service to advertise/publish endpoint descriptions for discovery.
+ * Typically, implementations of this service will use the ECF Discovery API to
+ * advertise/publish EndpointDescriptions over the network. For example, this is
+ * what {@link EndpointDescriptionAdvertiser} does...i.e. it
+ * advertises/unadvertises endpoint descriptions by calling and/all available
+ * instances of
+ * {@link org.eclipse.ecf.discovery.IDiscoveryAdvertiser#registerService(org.eclipse.ecf.discovery.IServiceInfo)}
+ * .
+ * <p>
+ * <p>
+ * Note, however, that other implementations of endpoint description advertisers
+ * are possible that do not use ECF Discovery...or use ECF Discovery in other
+ * ways. For example, some TopologyManagers may wish to advertise exported
+ * remote services by creating a static xml file describing the endpoint by
+ * using the Endpoint Description Extender Format (EDEF) described in section
+ * 122.8 of the <a
+ * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGi Enterprise
+ * Specification</a> by calling {@link #advertise(EndpointDescription)} on their
+ * own implementation of this service that uses an
+ * {@link EndpointDescriptionWriter} to create an EDEF bundle.
+ * <p>
+ * <p>
+ * If no other instances of this service have been registered, a default
+ * instance of {@link EndpointDescriptionAdvertiser} will be used. The default
+ * instance uses ECF {@link IDiscoveryAdvertiser}s to publish the endpoint
+ * description. Note that the default instance is registered with the lowest
+ * possible priority, so that if other {@link IEndpointDescriptionAdvertiser}
+ * instances are registered, they will be preferred/used over the default.
+ */
+public interface IEndpointDescriptionAdvertiser {
+
+ /**
+ * Advertise/publish the given endpoint description.
+ *
+ * @param endpointDescription
+ * the endpoint description to advertise. Must not be
+ * <code>null</code>.
+ * @return IStatus to indicate the status of the advertisement. If the
+ * returned status returns <code>false</code> from
+ * {@link IStatus#isOK()}, then the advertisement failed. The
+ * IStatus can be further inspected for exception information and/or
+ * child statuses.
+ *
+ * @see IStatus
+ */
+ public IStatus advertise(EndpointDescription endpointDescription);
+
+ /**
+ * Unadvertise/unpublishe the given endpoint description.
+ *
+ * @param endpointDescription
+ * the endpoint description to unadvertise. Must not be
+ * <code>null</code>.
+ * @return IStatus to indicate the status of the unadvertisement. If the
+ * returned status returns <code>false</code> from
+ * {@link IStatus#isOK()}, then the unadvertisement failed. The
+ * IStatus can be further inspected for exception information and/or
+ * child statuses.
+ *
+ * @see IStatus
+ */
+ public IStatus unadvertise(EndpointDescription endpointDescription);
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionReader.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionReader.java
index b12c9ffed..73f8bb116 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionReader.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IEndpointDescriptionReader.java
@@ -1,53 +1,53 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Service for reading endpoint descriptions from xml-files in the Endpoint
- * Description Extender Format (EDEF) specified in section 122.8 of the <a
- * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGi Enterprise
- * Specification (chapter 122)</a>. The InputStream provided must be of the EDEF
- * format, otherwise an IOException or EndpointDescriptionParseException will be
- * thrown.
- *
- */
-public interface IEndpointDescriptionReader {
-
- /**
- * Read endpoint descriptions from the given input stream. The ins parameter
- * must not be <code>null</code>, and must provide data in the Endpoint
- * Description Extender Format (EDEF) specified in section 122.8 of the <a
- * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGi
- * Enterprise Specification</a>.
- *
- * @param ins
- * the input stream to read from. Must be non-<code>null</code>,
- * and must provide data in the format specified the EDEF
- * specification (see link above).
- * @return array of
- * {@link org.osgi.service.remoteserviceadmin.EndpointDescription}
- * instance read from the given input stream.
- *
- * @throws IOException
- * if the inputstream does not have valid data in the EDE
- * format. Note that the implementation of this method may call
- * {@link InputStream#close()}.
- *
- * @throws EndpointDescriptionParseException
- * if the EDE format cannot be parsed from the input stream.
- */
- public org.osgi.service.remoteserviceadmin.EndpointDescription[] readEndpointDescriptions(
- InputStream ins) throws IOException,
- EndpointDescriptionParseException;
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Service for reading endpoint descriptions from xml-files in the Endpoint
+ * Description Extender Format (EDEF) specified in section 122.8 of the <a
+ * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGi Enterprise
+ * Specification (chapter 122)</a>. The InputStream provided must be of the EDEF
+ * format, otherwise an IOException or EndpointDescriptionParseException will be
+ * thrown.
+ *
+ */
+public interface IEndpointDescriptionReader {
+
+ /**
+ * Read endpoint descriptions from the given input stream. The ins parameter
+ * must not be <code>null</code>, and must provide data in the Endpoint
+ * Description Extender Format (EDEF) specified in section 122.8 of the <a
+ * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGi
+ * Enterprise Specification</a>.
+ *
+ * @param ins
+ * the input stream to read from. Must be non-<code>null</code>,
+ * and must provide data in the format specified the EDEF
+ * specification (see link above).
+ * @return array of
+ * {@link org.osgi.service.remoteserviceadmin.EndpointDescription}
+ * instance read from the given input stream.
+ *
+ * @throws IOException
+ * if the inputstream does not have valid data in the EDE
+ * format. Note that the implementation of this method may call
+ * {@link InputStream#close()}.
+ *
+ * @throws EndpointDescriptionParseException
+ * if the EDE format cannot be parsed from the input stream.
+ */
+ public org.osgi.service.remoteserviceadmin.EndpointDescription[] readEndpointDescriptions(
+ InputStream ins) throws IOException,
+ EndpointDescriptionParseException;
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IHostContainerSelector.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IHostContainerSelector.java
index f7ecdf33d..44279122c 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IHostContainerSelector.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IHostContainerSelector.java
@@ -1,79 +1,79 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.Map;
-
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Host container selector service contract. When an ECF RemoteServiceAdmin
- * instance is asked to import a service (i.e. via
- * {@link RemoteServiceAdmin#exportService(ServiceReference, java.util.Map)} ),
- * the RSA first gets an instance of this service via the service registry, and
- * then uses it to select an array of ECF host container instances by calling
- * {@link #selectHostContainers(ServiceReference, String[], String[], String[])}
- * .
- * <p>
- * <p>
- * The {@link IRemoteServiceContainer} array returned is then used to actually
- * export the remote service (typically via
- * {@link IRemoteServiceContainerAdapter#registerRemoteService(String[], Object, java.util.Dictionary)}
- * <p>
- * <p>
- * If no other instances of this service have been registered, a default
- * instance of {@link HostContainerSelector} will be used. Note that this
- * default instance is registered with the lowest possible priority, so that if
- * other {@link IHostContainerSelector} instances are registered, they will be
- * preferred/used over the default.
- *
- */
-public interface IHostContainerSelector {
- /**
- *
- * Select host containers to use to export a remote service.
- *
- * @param serviceReference
- * the service reference given by the
- * {@link RemoteServiceAdmin#exportService(ServiceReference, java.util.Map)}
- * @param overridingProperties
- * the map portion given by the
- * {@link RemoteServiceAdmin#exportService(ServiceReference, java.util.Map)}
- * @param exportedInterfaces
- * the exportedInterfaces (typically associated with
- * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_INTERFACES}
- * ). Will not be <code>null</code>.
- * @param exportedConfigs
- * the exportedConfigs (typically associated with
- * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_CONFIGS}
- * ). May be <code>null</code>.
- * @param serviceIntents
- * the service intents (typically associated with
- * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_INTENTS}
- * and
- * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_INTENTS_EXTRA}
- * ). May be <code>null</code>.
- * @return IRemoteServiceContainer[] of remote service containers that
- * should be used to export the given remote service (typically via
- * {@link IRemoteServiceContainerAdapter#registerRemoteService(String[], Object, java.util.Dictionary)}
- * ). Will not be <code>null</code>, but may be empty array.
- * @throws SelectContainerException
- * thrown if the host container selection or
- * creation/configuration fails.
- * @since 2.0
- */
- IRemoteServiceContainer[] selectHostContainers(
- ServiceReference serviceReference,
- Map<String, Object> overridingProperties,
- String[] exportedInterfaces, String[] exportedConfigs,
- String[] serviceIntents) throws SelectContainerException;
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.Map;
+
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * Host container selector service contract. When an ECF RemoteServiceAdmin
+ * instance is asked to import a service (i.e. via
+ * {@link RemoteServiceAdmin#exportService(ServiceReference, java.util.Map)} ),
+ * the RSA first gets an instance of this service via the service registry, and
+ * then uses it to select an array of ECF host container instances by calling
+ * {@link #selectHostContainers(ServiceReference, String[], String[], String[])}
+ * .
+ * <p>
+ * <p>
+ * The {@link IRemoteServiceContainer} array returned is then used to actually
+ * export the remote service (typically via
+ * {@link IRemoteServiceContainerAdapter#registerRemoteService(String[], Object, java.util.Dictionary)}
+ * <p>
+ * <p>
+ * If no other instances of this service have been registered, a default
+ * instance of {@link HostContainerSelector} will be used. Note that this
+ * default instance is registered with the lowest possible priority, so that if
+ * other {@link IHostContainerSelector} instances are registered, they will be
+ * preferred/used over the default.
+ *
+ */
+public interface IHostContainerSelector {
+ /**
+ *
+ * Select host containers to use to export a remote service.
+ *
+ * @param serviceReference
+ * the service reference given by the
+ * {@link RemoteServiceAdmin#exportService(ServiceReference, java.util.Map)}
+ * @param overridingProperties
+ * the map portion given by the
+ * {@link RemoteServiceAdmin#exportService(ServiceReference, java.util.Map)}
+ * @param exportedInterfaces
+ * the exportedInterfaces (typically associated with
+ * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_INTERFACES}
+ * ). Will not be <code>null</code>.
+ * @param exportedConfigs
+ * the exportedConfigs (typically associated with
+ * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_CONFIGS}
+ * ). May be <code>null</code>.
+ * @param serviceIntents
+ * the service intents (typically associated with
+ * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_INTENTS}
+ * and
+ * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_INTENTS_EXTRA}
+ * ). May be <code>null</code>.
+ * @return IRemoteServiceContainer[] of remote service containers that
+ * should be used to export the given remote service (typically via
+ * {@link IRemoteServiceContainerAdapter#registerRemoteService(String[], Object, java.util.Dictionary)}
+ * ). Will not be <code>null</code>, but may be empty array.
+ * @throws SelectContainerException
+ * thrown if the host container selection or
+ * creation/configuration fails.
+ * @since 2.0
+ */
+ IRemoteServiceContainer[] selectHostContainers(
+ ServiceReference serviceReference,
+ Map<String, Object> overridingProperties,
+ String[] exportedInterfaces, String[] exportedConfigs,
+ String[] serviceIntents) throws SelectContainerException;
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IServiceInfoFactory.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IServiceInfoFactory.java
index 5af66f5ca..f70983d47 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IServiceInfoFactory.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/IServiceInfoFactory.java
@@ -1,88 +1,88 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
-import org.eclipse.ecf.discovery.IServiceInfo;
-
-/**
- * Service info factory service contract. A service info factory is used by the
- * {@link EndpointDescriptionAdvertiser} to convert {@link EndpointDescription}s
- * to {@link IServiceInfo} instances (via
- * {@link #createServiceInfo(IDiscoveryAdvertiser, EndpointDescription)}. The
- * resulting IServiceInfo instances are then used to by the
- * {@link EndpointDescriptionAdvertiser} to publish the EndpointDescription
- * metadata to a {@link IDiscoveryAdvertiser}.
- * <p>
- * <p>
- * If no other instances of this service have been registered, a default
- * instance of {@link ServiceInfoFactory} will be used by the
- * {@link EndpointDescriptionAdvertiser}. Note that this default instance is
- * registered with the lowest possible priority, so that if other
- * {@link IServiceInfoFactory} instances are registered, they will be
- * preferred/used over the default. This means that Those wishing to
- * customize/control this process of converting {@link EndpointDescription}s to
- * {@link IServiceInfo} must
- * <ul>
- * <li>create their own implementation of {@link IServiceInfoFactory}</li>
- * <li>register it with the OSGi service registry with a priority
- * ({org.osgi.framework.Constants#SERVICE_RANKING}) higher than
- * {@link Integer#MIN_VALUE}</li>
- * <ul>
- * Then at runtime, when needed by the {@link EndpointDescriptionAdvertiser},
- * the new service info factory will be used.
- *
- * @see IDiscoveredEndpointDescriptionFactory
- */
-public interface IServiceInfoFactory {
-
- /**
- * Create an service info instance to represent the given
- * endpointDescription for discovery using the given discovery advertiser.
- *
- * @param advertiser
- * the advertiser to use for creating the service info result.
- * Must not be <code>null</code>.
- * @param endpointDescription
- * the endpoint description that the service info is to
- * represent. Must not be <code>null</code>.
- * @return IServiceInfo to use to publish the endpointDescription for
- * discovery (via
- * {@link IDiscoveryAdvertiser#registerService(IServiceInfo)}. If a
- * service info instance has previously been created for the given
- * endpointDescription by this service info factory, then that
- * serviceInfo will be returned in favor of creating a new one.
- * Otherwise, a new service info will be created and returned. If
- * some error occurs in the creation of the serviceInfo,
- * <code>null</code> will be returned.
- */
- public IServiceInfo createServiceInfo(IDiscoveryAdvertiser advertiser,
- EndpointDescription endpointDescription);
-
- /**
- * Remove any previously created service info that is associated with the
- * given endpointDescription (and advertiser).
- *
- * @param advertiser
- * the advertiser associated with the service info previously
- * created. Must not be <code>null</code>.
- * @param endpointDescription
- * the endpoint description that the service info was previously
- * created for. Must not be <code>null</code>.
- * @return IServiceInfo to use to unpublish the endpointDescription for
- * discovery (via
- * {@link IDiscoveryAdvertiser#unregisterService(IServiceInfo)). If
- * <code>null</code> no service info exists that had previously been
- * created for the given endpointDescription and advertiser.
- */
- public IServiceInfo removeServiceInfo(IDiscoveryAdvertiser advertiser,
- EndpointDescription endpointDescription);
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
+import org.eclipse.ecf.discovery.IServiceInfo;
+
+/**
+ * Service info factory service contract. A service info factory is used by the
+ * {@link EndpointDescriptionAdvertiser} to convert {@link EndpointDescription}s
+ * to {@link IServiceInfo} instances (via
+ * {@link #createServiceInfo(IDiscoveryAdvertiser, EndpointDescription)}. The
+ * resulting IServiceInfo instances are then used to by the
+ * {@link EndpointDescriptionAdvertiser} to publish the EndpointDescription
+ * metadata to a {@link IDiscoveryAdvertiser}.
+ * <p>
+ * <p>
+ * If no other instances of this service have been registered, a default
+ * instance of {@link ServiceInfoFactory} will be used by the
+ * {@link EndpointDescriptionAdvertiser}. Note that this default instance is
+ * registered with the lowest possible priority, so that if other
+ * {@link IServiceInfoFactory} instances are registered, they will be
+ * preferred/used over the default. This means that Those wishing to
+ * customize/control this process of converting {@link EndpointDescription}s to
+ * {@link IServiceInfo} must
+ * <ul>
+ * <li>create their own implementation of {@link IServiceInfoFactory}</li>
+ * <li>register it with the OSGi service registry with a priority
+ * ({org.osgi.framework.Constants#SERVICE_RANKING}) higher than
+ * {@link Integer#MIN_VALUE}</li>
+ * <ul>
+ * Then at runtime, when needed by the {@link EndpointDescriptionAdvertiser},
+ * the new service info factory will be used.
+ *
+ * @see IDiscoveredEndpointDescriptionFactory
+ */
+public interface IServiceInfoFactory {
+
+ /**
+ * Create an service info instance to represent the given
+ * endpointDescription for discovery using the given discovery advertiser.
+ *
+ * @param advertiser
+ * the advertiser to use for creating the service info result.
+ * Must not be <code>null</code>.
+ * @param endpointDescription
+ * the endpoint description that the service info is to
+ * represent. Must not be <code>null</code>.
+ * @return IServiceInfo to use to publish the endpointDescription for
+ * discovery (via
+ * {@link IDiscoveryAdvertiser#registerService(IServiceInfo)}. If a
+ * service info instance has previously been created for the given
+ * endpointDescription by this service info factory, then that
+ * serviceInfo will be returned in favor of creating a new one.
+ * Otherwise, a new service info will be created and returned. If
+ * some error occurs in the creation of the serviceInfo,
+ * <code>null</code> will be returned.
+ */
+ public IServiceInfo createServiceInfo(IDiscoveryAdvertiser advertiser,
+ EndpointDescription endpointDescription);
+
+ /**
+ * Remove any previously created service info that is associated with the
+ * given endpointDescription (and advertiser).
+ *
+ * @param advertiser
+ * the advertiser associated with the service info previously
+ * created. Must not be <code>null</code>.
+ * @param endpointDescription
+ * the endpoint description that the service info was previously
+ * created for. Must not be <code>null</code>.
+ * @return IServiceInfo to use to unpublish the endpointDescription for
+ * discovery (via
+ * {@link IDiscoveryAdvertiser#unregisterService(IServiceInfo)). If
+ * <code>null</code> no service info exists that had previously been
+ * created for the given endpointDescription and advertiser.
+ */
+ public IServiceInfo removeServiceInfo(IDiscoveryAdvertiser advertiser,
+ EndpointDescription endpointDescription);
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteConstants.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteConstants.java
index 86a73b58c..7d0624ccf 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteConstants.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteConstants.java
@@ -1,186 +1,186 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import org.eclipse.ecf.core.IContainerFactory;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.discovery.identity.IServiceIDFactory;
-import org.eclipse.ecf.discovery.identity.IServiceTypeID;
-import org.eclipse.ecf.remoteservice.IRemoteService;
-
-/**
- * ECF Remote Service Admin RemoteConstants. These are constants for ECF's RSA
- * implementation-specific meta-data. For OSGi Remote constant see
- * {@link org.osgi.service.remoteserviceadmin.RemoteConstants} and the <a
- * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGI 4.2 Remote
- * Service Admin specification (chap 122)</a>.
- */
-public class RemoteConstants {
-
- private RemoteConstants() {
- // not instantiable
- }
-
- /**
- * ECF discovery service type for Remote Service Admin. All ECF remote
- * services published by Remote Service Admin advertisers should have this
- * value as one of the entries in the list returned from
- * {@link IServiceTypeID#getServices()}.
- */
- public static final String DISCOVERY_SERVICE_TYPE = "ecf.osgirsvc"; //$NON-NLS-1$
- /**
- * ECF discovery scope property. Value type is String+. If set, the value
- * will be used by the {@link IServiceInfoFactory} during
- * {@link IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription)}
- * to create an {@link IServiceTypeID} via
- * {@link IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String)}
- * . The scopes value determines the third parameter. If not explicitly set,
- * the {@link IServiceTypeID#DEFAULT_SCOPE} is used.
- */
- public static final String DISCOVERY_SCOPE = "ecf.endpoint.discovery.scope"; //$NON-NLS-1$
- /**
- * ECF discovery protocols property. Value type is String+. If set, the
- * value will be used by the {@link IServiceInfoFactory} during
- * {@link IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription)}
- * to create an {@link IServiceTypeID} via
- * {@link IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String)}
- * . The protocols value determines the fourth parameter. If not explicitly
- * set, the {@link IServiceTypeID#DEFAULT_PROTO} is used.
- */
- public static final String DISCOVERY_PROTOCOLS = "ecf.endpoint.discovery.protocols"; //$NON-NLS-1$
- /**
- * ECF discovery naming authority property. Value type is String. If set,
- * the value will be used by the {@link IServiceInfoFactory} during
- * {@link IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription)}
- * to create an {@link IServiceTypeID} via
- * {@link IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String)}
- * . The protocols value determines the fifth parameter. If not explicitly
- * set, the {@link IServiceTypeID#DEFAULT_NA} is used.
- */
- public static final String DISCOVERY_NAMING_AUTHORITY = "ecf.endpoint.discovery.namingauthority"; //$NON-NLS-1$
- /**
- * ECF discovery service name property. Value type is String. If set, the
- * value will be used by the {@link IServiceInfoFactory} during
- * {@link IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription)}
- * to create an {@link IServiceInfo} with a given name. The default is a
- * globally unique identifier. Note that if this value is explicitly set,
- * care should be taken to not have the name conflict with other remote
- * service names.
- */
- public static final String DISCOVERY_SERVICE_NAME = "ecf.endpoint.discovery.servicename"; //$NON-NLS-1$
- /**
- * ECF service name default prefix. If the DISCOVERY_SERVICE_NAME is
- * <b>not</b> set, this prefix will be the precede the unique identifier.
- */
- public static final String DISCOVERY_DEFAULT_SERVICE_NAME_PREFIX = "osgirsvc_"; //$NON-NLS-1$
-
- /**
- * Optional ECF {@link EndpointDescription} property (with value of type
- * String) that defines the unique
- * {@link org.eclipse.ecf.core.identity.Namespace} name. If present in the
- * {@link EndpointDescription}, the value will be used to create the
- * containerID for accessing a remote service. The Namespace name is
- * optional because typically the ID protocol specifier (e.g. 'ecftcp' in ID
- * with name: 'ecftcp://localhost:3282/server') can be used to unambiguously
- * determine the appropriate {@link org.eclipse.ecf.core.identity.Namespace}
- * used to create the container ID for remote service import.
- */
- public static final String ENDPOINT_CONTAINER_ID_NAMESPACE = "ecf.endpoint.id.ns"; //$NON-NLS-1$
- /**
- * Optional ECF {@link EndpointDescription} property (with value of type
- * String) that defines a connect target ID. If set/non-<code>null</code>,
- * this property can be used by remote service consumers to connect to a
- * specific container, and access a remote service exposed by some
- * <b>other</b> member of the group.
- */
- public static final String ENDPOINT_CONNECTTARGET_ID = "ecf.endpoint.connecttarget.id"; //$NON-NLS-1$
- /**
- * Optional ECF {@link EndpointDescription} property (with value of type
- * String+) that defines one or more IDs used for filtering remote service
- * references during
- * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
- * .
- */
- public static final String ENDPOINT_IDFILTER_IDS = "ecf.endpoint.idfilter.ids"; //$NON-NLS-1$
- /**
- * Optional ECF {@link EndpointDescription} property (with value of type
- * String), that defines a remote services properties filter used during
- * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
- * .
- */
- public static final String ENDPOINT_REMOTESERVICE_FILTER = "ecf.endpoint.rsfilter"; //$NON-NLS-1$
-
- /**
- * Container factory arguments for exported remote service hosts. If
- * specified as a service property upon remote service registration, this
- * property allows ECF containers to be initialized and configured upon
- * creation during the call to
- * {@link HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, String[], String[], String[])}
- * . The type of the value may be String, ID, or Object[]. The
- * IContainerFactory.createContainer method is then selected based upon the
- * type of the value...i.e.
- * {@link IContainerFactory#createContainer(org.eclipse.ecf.core.ContainerTypeDescription, String)}
- * ,
- * {@link IContainerFactory#createContainer(org.eclipse.ecf.core.identity.ID)}
- * , or {@link IContainerFactory#createContainer(String, Object[])}, and the
- * value is passed in for container creation.
- */
- public static final String SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS = "ecf.exported.containerfactoryargs"; //$NON-NLS-1$
- /**
- * Container connect context for exported remote service hosts. If specified
- * as a service property for remote service export, this property allows ECF
- * containers to have given a connect context for authentication upon
- * container connection by
- * {@link HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, String[], String[], String[])}
- * . The type of the value is {@link IConnectContext}.
- */
- public static final String SERVICE_EXPORTED_CONTAINER_CONNECT_CONTEXT = "ecf.exported.containerconnectcontext"; //$NON-NLS-1$
- /**
- * Container ID of the target host container for remote service export. If
- * specified as a service property for remote service export, this property
- * is used to match against the set of available containers in
- * {@link HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, String[], String[], String[])}
- * . The type of the value is {@link ID}.
- */
- public static final String SERVICE_EXPORTED_CONTAINER_ID = "ecf.exported.containerid"; //$NON-NLS-1$
-
- /**
- * Allows exporting ECF containers to determine the type of value associated
- * with the
- * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_IMPORTED}
- * property on the OSGi remote service consumer. For ECF, the default value
- * type is {@link IRemoteService}. If set to some other value (e.g.
- * {@link Boolean} by the exporting host container, then consumers can use
- * the SERVICE_IMPORTED value appropriately.
- */
- public static final String SERVICE_IMPORTED_VALUETYPE = "ecf.service.imported.valuetype"; //$NON-NLS-1$
- /**
- * This property is set on the remote service proxy during
- * {@link org.osgi.service.remoteserviceadmin.RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
- * , before local service proxy registration. It's String value is set to
- * the value returned from
- * {@link org.osgi.service.remoteserviceadmin.EndpointDescription#getId()}.
- * It allows those accessing the remote service proxy to get information
- * about the endpoint id.
- */
- public static final String SERVICE_IMPORTED_ENDPOINT_ID = "ecf.service.imported.endpoint.id"; //$NON-NLS-1$
-
- /**
- * This property is set on the remote service proxy during
- * {@link org.osgi.service.remoteserviceadmin.RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
- * , before local service proxy registration. It's Long value is set to the
- * value returned from
- * {@link org.osgi.service.remoteserviceadmin.EndpointDescription#getServiceId()}
- * . It allows those accessing the remote service proxy to get information
- * about the endpoint remote service id.
- */
- public static final String SERVICE_IMPORTED_ENDPOINT_SERVICE_ID = "ecf.service.imported.endpoint.service.id"; //$NON-NLS-1$
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import org.eclipse.ecf.core.IContainerFactory;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.discovery.identity.IServiceIDFactory;
+import org.eclipse.ecf.discovery.identity.IServiceTypeID;
+import org.eclipse.ecf.remoteservice.IRemoteService;
+
+/**
+ * ECF Remote Service Admin RemoteConstants. These are constants for ECF's RSA
+ * implementation-specific meta-data. For OSGi Remote constant see
+ * {@link org.osgi.service.remoteserviceadmin.RemoteConstants} and the <a
+ * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGI 4.2 Remote
+ * Service Admin specification (chap 122)</a>.
+ */
+public class RemoteConstants {
+
+ private RemoteConstants() {
+ // not instantiable
+ }
+
+ /**
+ * ECF discovery service type for Remote Service Admin. All ECF remote
+ * services published by Remote Service Admin advertisers should have this
+ * value as one of the entries in the list returned from
+ * {@link IServiceTypeID#getServices()}.
+ */
+ public static final String DISCOVERY_SERVICE_TYPE = "ecf.osgirsvc"; //$NON-NLS-1$
+ /**
+ * ECF discovery scope property. Value type is String+. If set, the value
+ * will be used by the {@link IServiceInfoFactory} during
+ * {@link IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription)}
+ * to create an {@link IServiceTypeID} via
+ * {@link IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String)}
+ * . The scopes value determines the third parameter. If not explicitly set,
+ * the {@link IServiceTypeID#DEFAULT_SCOPE} is used.
+ */
+ public static final String DISCOVERY_SCOPE = "ecf.endpoint.discovery.scope"; //$NON-NLS-1$
+ /**
+ * ECF discovery protocols property. Value type is String+. If set, the
+ * value will be used by the {@link IServiceInfoFactory} during
+ * {@link IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription)}
+ * to create an {@link IServiceTypeID} via
+ * {@link IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String)}
+ * . The protocols value determines the fourth parameter. If not explicitly
+ * set, the {@link IServiceTypeID#DEFAULT_PROTO} is used.
+ */
+ public static final String DISCOVERY_PROTOCOLS = "ecf.endpoint.discovery.protocols"; //$NON-NLS-1$
+ /**
+ * ECF discovery naming authority property. Value type is String. If set,
+ * the value will be used by the {@link IServiceInfoFactory} during
+ * {@link IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription)}
+ * to create an {@link IServiceTypeID} via
+ * {@link IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String)}
+ * . The protocols value determines the fifth parameter. If not explicitly
+ * set, the {@link IServiceTypeID#DEFAULT_NA} is used.
+ */
+ public static final String DISCOVERY_NAMING_AUTHORITY = "ecf.endpoint.discovery.namingauthority"; //$NON-NLS-1$
+ /**
+ * ECF discovery service name property. Value type is String. If set, the
+ * value will be used by the {@link IServiceInfoFactory} during
+ * {@link IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription)}
+ * to create an {@link IServiceInfo} with a given name. The default is a
+ * globally unique identifier. Note that if this value is explicitly set,
+ * care should be taken to not have the name conflict with other remote
+ * service names.
+ */
+ public static final String DISCOVERY_SERVICE_NAME = "ecf.endpoint.discovery.servicename"; //$NON-NLS-1$
+ /**
+ * ECF service name default prefix. If the DISCOVERY_SERVICE_NAME is
+ * <b>not</b> set, this prefix will be the precede the unique identifier.
+ */
+ public static final String DISCOVERY_DEFAULT_SERVICE_NAME_PREFIX = "osgirsvc_"; //$NON-NLS-1$
+
+ /**
+ * Optional ECF {@link EndpointDescription} property (with value of type
+ * String) that defines the unique
+ * {@link org.eclipse.ecf.core.identity.Namespace} name. If present in the
+ * {@link EndpointDescription}, the value will be used to create the
+ * containerID for accessing a remote service. The Namespace name is
+ * optional because typically the ID protocol specifier (e.g. 'ecftcp' in ID
+ * with name: 'ecftcp://localhost:3282/server') can be used to unambiguously
+ * determine the appropriate {@link org.eclipse.ecf.core.identity.Namespace}
+ * used to create the container ID for remote service import.
+ */
+ public static final String ENDPOINT_CONTAINER_ID_NAMESPACE = "ecf.endpoint.id.ns"; //$NON-NLS-1$
+ /**
+ * Optional ECF {@link EndpointDescription} property (with value of type
+ * String) that defines a connect target ID. If set/non-<code>null</code>,
+ * this property can be used by remote service consumers to connect to a
+ * specific container, and access a remote service exposed by some
+ * <b>other</b> member of the group.
+ */
+ public static final String ENDPOINT_CONNECTTARGET_ID = "ecf.endpoint.connecttarget.id"; //$NON-NLS-1$
+ /**
+ * Optional ECF {@link EndpointDescription} property (with value of type
+ * String+) that defines one or more IDs used for filtering remote service
+ * references during
+ * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
+ * .
+ */
+ public static final String ENDPOINT_IDFILTER_IDS = "ecf.endpoint.idfilter.ids"; //$NON-NLS-1$
+ /**
+ * Optional ECF {@link EndpointDescription} property (with value of type
+ * String), that defines a remote services properties filter used during
+ * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
+ * .
+ */
+ public static final String ENDPOINT_REMOTESERVICE_FILTER = "ecf.endpoint.rsfilter"; //$NON-NLS-1$
+
+ /**
+ * Container factory arguments for exported remote service hosts. If
+ * specified as a service property upon remote service registration, this
+ * property allows ECF containers to be initialized and configured upon
+ * creation during the call to
+ * {@link HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, String[], String[], String[])}
+ * . The type of the value may be String, ID, or Object[]. The
+ * IContainerFactory.createContainer method is then selected based upon the
+ * type of the value...i.e.
+ * {@link IContainerFactory#createContainer(org.eclipse.ecf.core.ContainerTypeDescription, String)}
+ * ,
+ * {@link IContainerFactory#createContainer(org.eclipse.ecf.core.identity.ID)}
+ * , or {@link IContainerFactory#createContainer(String, Object[])}, and the
+ * value is passed in for container creation.
+ */
+ public static final String SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS = "ecf.exported.containerfactoryargs"; //$NON-NLS-1$
+ /**
+ * Container connect context for exported remote service hosts. If specified
+ * as a service property for remote service export, this property allows ECF
+ * containers to have given a connect context for authentication upon
+ * container connection by
+ * {@link HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, String[], String[], String[])}
+ * . The type of the value is {@link IConnectContext}.
+ */
+ public static final String SERVICE_EXPORTED_CONTAINER_CONNECT_CONTEXT = "ecf.exported.containerconnectcontext"; //$NON-NLS-1$
+ /**
+ * Container ID of the target host container for remote service export. If
+ * specified as a service property for remote service export, this property
+ * is used to match against the set of available containers in
+ * {@link HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, String[], String[], String[])}
+ * . The type of the value is {@link ID}.
+ */
+ public static final String SERVICE_EXPORTED_CONTAINER_ID = "ecf.exported.containerid"; //$NON-NLS-1$
+
+ /**
+ * Allows exporting ECF containers to determine the type of value associated
+ * with the
+ * {@link org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_IMPORTED}
+ * property on the OSGi remote service consumer. For ECF, the default value
+ * type is {@link IRemoteService}. If set to some other value (e.g.
+ * {@link Boolean} by the exporting host container, then consumers can use
+ * the SERVICE_IMPORTED value appropriately.
+ */
+ public static final String SERVICE_IMPORTED_VALUETYPE = "ecf.service.imported.valuetype"; //$NON-NLS-1$
+ /**
+ * This property is set on the remote service proxy during
+ * {@link org.osgi.service.remoteserviceadmin.RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
+ * , before local service proxy registration. It's String value is set to
+ * the value returned from
+ * {@link org.osgi.service.remoteserviceadmin.EndpointDescription#getId()}.
+ * It allows those accessing the remote service proxy to get information
+ * about the endpoint id.
+ */
+ public static final String SERVICE_IMPORTED_ENDPOINT_ID = "ecf.service.imported.endpoint.id"; //$NON-NLS-1$
+
+ /**
+ * This property is set on the remote service proxy during
+ * {@link org.osgi.service.remoteserviceadmin.RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
+ * , before local service proxy registration. It's Long value is set to the
+ * value returned from
+ * {@link org.osgi.service.remoteserviceadmin.EndpointDescription#getServiceId()}
+ * . It allows those accessing the remote service proxy to get information
+ * about the endpoint remote service id.
+ */
+ public static final String SERVICE_IMPORTED_ENDPOINT_SERVICE_ID = "ecf.service.imported.endpoint.service.id"; //$NON-NLS-1$
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteReferenceNotFoundException.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteReferenceNotFoundException.java
index e8a68f4ed..dbe9280c1 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteReferenceNotFoundException.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteReferenceNotFoundException.java
@@ -1,68 +1,68 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
-
-/**
- * Exception class for the case when no remote reference is found during
- * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
- * . Instances of this class will be thrown when the call to
- * {@link IRemoteServiceContainerAdapter#getRemoteServiceReferences(ID, ID[], String, String)}
- * made in
- * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
- * fail to find any available remote references (e.g. due to connection problem
- * or remote reference lookup problem).
- *
- */
-public class RemoteReferenceNotFoundException extends Exception {
-
- private static final long serialVersionUID = -4174685192086828376L;
-
- private ID targetID;
- private ID[] idFilter;
- private Collection<String> interfaces;
- private String rsFilter;
-
- public RemoteReferenceNotFoundException(ID targetID, ID[] idFilter,
- Collection<String> interfaces, String rsFilter) {
- this.targetID = targetID;
- this.idFilter = idFilter;
- this.interfaces = interfaces;
- this.rsFilter = rsFilter;
- }
-
- public ID getTargetID() {
- return targetID;
- }
-
- public ID[] getIdFilter() {
- return idFilter;
- }
-
- public Collection<String> getInterfaces() {
- return interfaces;
- }
-
- public String getRsFilter() {
- return rsFilter;
- }
-
- public String toString() {
- return "RemoteReferenceNotFoundException[targetID=" + targetID //$NON-NLS-1$
- + ", idFilter=" + Arrays.toString(idFilter) + ", interfaces=" //$NON-NLS-1$ //$NON-NLS-2$
- + interfaces + ", rsFilter=" + rsFilter + "]"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
+
+/**
+ * Exception class for the case when no remote reference is found during
+ * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
+ * . Instances of this class will be thrown when the call to
+ * {@link IRemoteServiceContainerAdapter#getRemoteServiceReferences(ID, ID[], String, String)}
+ * made in
+ * {@link RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription)}
+ * fail to find any available remote references (e.g. due to connection problem
+ * or remote reference lookup problem).
+ *
+ */
+public class RemoteReferenceNotFoundException extends Exception {
+
+ private static final long serialVersionUID = -4174685192086828376L;
+
+ private ID targetID;
+ private ID[] idFilter;
+ private Collection<String> interfaces;
+ private String rsFilter;
+
+ public RemoteReferenceNotFoundException(ID targetID, ID[] idFilter,
+ Collection<String> interfaces, String rsFilter) {
+ this.targetID = targetID;
+ this.idFilter = idFilter;
+ this.interfaces = interfaces;
+ this.rsFilter = rsFilter;
+ }
+
+ public ID getTargetID() {
+ return targetID;
+ }
+
+ public ID[] getIdFilter() {
+ return idFilter;
+ }
+
+ public Collection<String> getInterfaces() {
+ return interfaces;
+ }
+
+ public String getRsFilter() {
+ return rsFilter;
+ }
+
+ public String toString() {
+ return "RemoteReferenceNotFoundException[targetID=" + targetID //$NON-NLS-1$
+ + ", idFilter=" + Arrays.toString(idFilter) + ", interfaces=" //$NON-NLS-1$ //$NON-NLS-2$
+ + interfaces + ", rsFilter=" + rsFilter + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java
index fe8d8b0ef..fd643ba58 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java
@@ -1,2179 +1,2179 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeMap;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.core.ContainerTypeDescription;
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
-import org.eclipse.ecf.remoteservice.IOSGiRemoteServiceContainerAdapter;
-import org.eclipse.ecf.remoteservice.IRemoteService;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
-import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
-import org.eclipse.ecf.remoteservice.IRemoteServiceID;
-import org.eclipse.ecf.remoteservice.IRemoteServiceListener;
-import org.eclipse.ecf.remoteservice.IRemoteServiceReference;
-import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
-import org.eclipse.ecf.remoteservice.events.IRemoteServiceEvent;
-import org.eclipse.ecf.remoteservice.events.IRemoteServiceUnregisteredEvent;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceException;
-import org.osgi.framework.ServiceFactory;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.framework.Version;
-import org.osgi.framework.wiring.BundleCapability;
-import org.osgi.framework.wiring.BundleRevision;
-import org.osgi.framework.wiring.BundleWire;
-import org.osgi.framework.wiring.BundleWiring;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventAdmin;
-import org.osgi.service.remoteserviceadmin.EndpointPermission;
-import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * ECF implementation of <a
- * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGI 4.2 Remote
- * Service Admin service</a>. This service can be used by topology managers to
- * to export and/or import remote services with any <a
- * href="http://wiki.eclipse.org/ECF_Connection_Creation_and_Management">ECF
- * container</a> that implements the <a
- * href="http://wiki.eclipse.org/ECF/API_Docs#Remote_Services_API">ECF remote
- * service API</a>.
- */
-public class RemoteServiceAdmin implements
- org.osgi.service.remoteserviceadmin.RemoteServiceAdmin {
-
- public static final String SERVICE_PROP = "org.eclipse.ecf.rsa"; //$NON-NLS-1$
-
- private Bundle clientBundle;
-
- private boolean hostAutoCreateContainer = new Boolean(
- System.getProperty(
- "org.eclipse.ecf.osgi.services.remoteserviceadmin.hostAutoCreateContainer", //$NON-NLS-1$
- "true")).booleanValue(); //$NON-NLS-1$
- private String[] hostDefaultConfigTypes = new String[] { System
- .getProperty(
- "org.eclipse.ecf.osgi.services.remoteserviceadmin.hostDefaultConfigType", //$NON-NLS-1$
- "ecf.generic.server") }; //$NON-NLS-1$
-
- private boolean consumerAutoCreateContainer = new Boolean(
- System.getProperty(
- "org.eclipse.ecf.osgi.services.remoteserviceadmin.consumerAutoCreateContainer", //$NON-NLS-1$
- "true")).booleanValue(); //$NON-NLS-1$
-
- private ServiceTracker packageAdminTracker;
- private Object packageAdminTrackerLock = new Object();
-
- private Object eventAdminTrackerLock = new Object();
- private ServiceTracker eventAdminTracker;
-
- private Object remoteServiceAdminListenerTrackerLock = new Object();
- private ServiceTracker remoteServiceAdminListenerTracker;
-
- private HostContainerSelector defaultHostContainerSelector;
- private ServiceRegistration defaultHostContainerSelectorRegistration;
-
- private ConsumerContainerSelector defaultConsumerContainerSelector;
- private ServiceRegistration defaultConsumerContainerSelectorRegistration;
-
- private Collection<ExportRegistration> exportedRegistrations = new ArrayList<ExportRegistration>();
- private Collection<ImportRegistration> importedRegistrations = new ArrayList<ImportRegistration>();
-
- public RemoteServiceAdmin(Bundle clientBundle) {
- this.clientBundle = clientBundle;
- Assert.isNotNull(this.clientBundle);
- trace("RemoteServiceAdmin<init>", //$NON-NLS-1$
- "clientBundle=" + clientBundle.getSymbolicName()); //$NON-NLS-1$
- // Only setup defaults if it hasn't already been done by some other
- // Remote Service Admin instance
- Properties props = new Properties();
- props.put(org.osgi.framework.Constants.SERVICE_RANKING, new Integer(
- Integer.MIN_VALUE));
- // host container selector
- ServiceReference[] hostContainerSelectorRefs = null;
- try {
- hostContainerSelectorRefs = getClientBundleContext()
- .getServiceReferences(
- IHostContainerSelector.class.getName(), null);
- } catch (InvalidSyntaxException e) {
- // will not happen
- }
- // register a default only if no others already exist
- if (hostContainerSelectorRefs == null
- || hostContainerSelectorRefs.length == 0) {
- defaultHostContainerSelector = new HostContainerSelector(
- hostDefaultConfigTypes, hostAutoCreateContainer);
- defaultHostContainerSelectorRegistration = getClientBundleContext()
- .registerService(IHostContainerSelector.class.getName(),
- defaultHostContainerSelector, (Dictionary) props);
- }
- // consumer container selector
- ServiceReference[] consumerContainerSelectorRefs = null;
- try {
- consumerContainerSelectorRefs = getClientBundleContext()
- .getServiceReferences(
- IConsumerContainerSelector.class.getName(), null);
- } catch (InvalidSyntaxException e) {
- // will not happen
- }
- // register a default only if no others already exist
- if (consumerContainerSelectorRefs == null
- || consumerContainerSelectorRefs.length == 0) {
- defaultConsumerContainerSelector = new ConsumerContainerSelector(
- consumerAutoCreateContainer);
- defaultConsumerContainerSelectorRegistration = getClientBundleContext()
- .registerService(
- IConsumerContainerSelector.class.getName(),
- defaultConsumerContainerSelector,
- (Dictionary) props);
- }
- }
-
- private boolean validExportedInterfaces(ServiceReference serviceReference,
- String[] exportedInterfaces) {
- if (exportedInterfaces == null || exportedInterfaces.length == 0)
- return false;
- List<String> objectClassList = Arrays
- .asList((String[]) serviceReference
- .getProperty(org.osgi.framework.Constants.OBJECTCLASS));
- for (int i = 0; i < exportedInterfaces.length; i++)
- if (!objectClassList.contains(exportedInterfaces[i]))
- return false;
- return true;
- }
-
- // RemoteServiceAdmin service interface impl methods
- public Collection<org.osgi.service.remoteserviceadmin.ExportRegistration> exportService(
- ServiceReference serviceReference,
- Map<String, ?> overridingProperties) {
-
- trace("exportService", "serviceReference=" + serviceReference //$NON-NLS-1$ //$NON-NLS-2$
- + ",properties=" + overridingProperties); //$NON-NLS-1$
-
- overridingProperties = PropertiesUtil.mergeProperties(serviceReference,
- overridingProperties == null ? Collections.EMPTY_MAP
- : overridingProperties);
-
- // First get exported interfaces
- String[] exportedInterfaces = PropertiesUtil.getExportedInterfaces(
- serviceReference, overridingProperties);
- if (exportedInterfaces == null)
- throw new IllegalArgumentException(
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES
- + " not set"); //$NON-NLS-1$
- // verifyExportedInterfaces
- if (!validExportedInterfaces(serviceReference, exportedInterfaces))
- return Collections.EMPTY_LIST;
-
- // Get optional exported configs
- String[] exportedConfigs = PropertiesUtil
- .getStringArrayFromPropertyValue(overridingProperties
- .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_CONFIGS));
- if (exportedConfigs == null) {
- exportedConfigs = PropertiesUtil
- .getStringArrayFromPropertyValue(serviceReference
- .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_CONFIGS));
- }
- // Get all intents (service.intents, service.exported.intents,
- // service.exported.intents.extra)
- String[] serviceIntents = PropertiesUtil.getServiceIntents(
- serviceReference, overridingProperties);
-
- // Get a host container selector, and use it to
- IHostContainerSelector hostContainerSelector = getHostContainerSelector();
- // select ECF remote service containers that match given exported
- // interfaces, configs, and intents
- IRemoteServiceContainer[] rsContainers = null;
- try {
- rsContainers = hostContainerSelector.selectHostContainers(
- serviceReference, (Map<String,Object>) overridingProperties, exportedInterfaces,
- exportedConfigs, serviceIntents);
- } catch (SelectContainerException e) {
- ExportRegistration errorRegistration = createErrorExportRegistration(
- serviceReference, (Map<String,Object>) overridingProperties,
- "Error selecting or creating host container for serviceReference=" //$NON-NLS-1$
- + serviceReference + " properties=" //$NON-NLS-1$
- + overridingProperties, e);
- Collection<org.osgi.service.remoteserviceadmin.ExportRegistration> result = new ArrayList<org.osgi.service.remoteserviceadmin.ExportRegistration>();
- result.add(errorRegistration);
- publishExportEvent(errorRegistration);
- return result;
- }
- // If none found, log warning and return
- if (rsContainers == null || rsContainers.length == 0) {
- String errorMessage = "No containers found for serviceReference=" //$NON-NLS-1$
- + serviceReference
- + " properties=" + overridingProperties + ". Remote service NOT EXPORTED"; //$NON-NLS-1$//$NON-NLS-2$
- logWarning("exportService", errorMessage); //$NON-NLS-1$
- return Collections.EMPTY_LIST;
- }
- Collection<ExportRegistration> exportRegistrations = new ArrayList<ExportRegistration>();
- synchronized (exportedRegistrations) {
- for (int i = 0; i < rsContainers.length; i++) {
- ExportRegistration exportRegistration = null;
- // If we've already got an export endpoint
- // for this service reference/containerID combination,
- // then create an ExportRegistration that uses the endpoint
- ExportEndpoint exportEndpoint = findExistingExportEndpoint(
- serviceReference, rsContainers[i].getContainer()
- .getID());
- // If we've already got one, then create a new
- // ExportRegistration for it and we're done
- if (exportEndpoint != null)
- exportRegistration = new ExportRegistration(exportEndpoint);
- else {
- Map endpointDescriptionProperties = createExportEndpointDescriptionProperties(
- serviceReference, (Map<String,Object>) overridingProperties,
- exportedInterfaces, serviceIntents, rsContainers[i]);
- // otherwise, actually export the service to create a new
- // ExportEndpoint and use it to create a new
- // ExportRegistration
- EndpointDescription endpointDescription = new EndpointDescription(
- serviceReference, endpointDescriptionProperties);
- try {
- // Check security access for export
- checkEndpointPermission(endpointDescription,
- EndpointPermission.EXPORT);
- // Actually do the export and return export registration
- exportRegistration = exportService(serviceReference,
- overridingProperties, exportedInterfaces,
- rsContainers[i], endpointDescriptionProperties);
- } catch (Exception e) {
- exportRegistration = new ExportRegistration(e,
- endpointDescription);
- }
- }
- // If no exception, we add it to our known set of exported
- // registrations
- if (exportRegistration.getException() == null)
- addExportRegistration(exportRegistration);
- // We add it to the results in either case
- exportRegistrations.add(exportRegistration);
- }
- }
- // publish all activeExportRegistrations
- for (ExportRegistration exportReg : exportRegistrations)
- publishExportEvent(exportReg);
- // and return
- return new ArrayList<org.osgi.service.remoteserviceadmin.ExportRegistration>(
- exportRegistrations);
- }
-
- private ExportRegistration createErrorExportRegistration(
- ServiceReference serviceReference,
- Map<String, Object> overridingProperties, String errorMessage,
- SelectContainerException exception) {
- ContainerTypeDescription ctd = exception.getContainerTypeDescription();
- overridingProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
- "noendpoint"); //$NON-NLS-1$
- overridingProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
- (ctd == null) ? "noconfig" : ctd.getName()); //$NON-NLS-1$
- return new ExportRegistration(exception, new EndpointDescription(
- serviceReference, overridingProperties));
- }
-
- public org.osgi.service.remoteserviceadmin.ImportRegistration importService(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
-
- trace("importService", "endpointDescription=" + endpointDescription); //$NON-NLS-1$ //$NON-NLS-2$
- // First, make sure that the client bundle has the IMPORT endpoint
- // permission
- checkEndpointPermission(endpointDescription, EndpointPermission.IMPORT);
-
- EndpointDescription ed = null;
- if (endpointDescription instanceof EndpointDescription)
- ed = (EndpointDescription) endpointDescription;
- else
- ed = new EndpointDescription(endpointDescription.getProperties());
-
- // Now get IConsumerContainerSelector, to select the ECF container
- // for the given endpointDescription
- IConsumerContainerSelector consumerContainerSelector = getConsumerContainerSelector();
- // If there is none, then we can go no further
- if (consumerContainerSelector == null) {
- logError("importService", //$NON-NLS-1$
- "No defaultConsumerContainerSelector available"); //$NON-NLS-1$
- return null;
- }
- // Select the rsContainer to handle the endpoint description
- IRemoteServiceContainer rsContainer = null;
- try {
- rsContainer = consumerContainerSelector.selectConsumerContainer(ed);
- } catch (SelectContainerException e) {
- ImportRegistration errorRegistration = new ImportRegistration(ed, e);
- publishImportEvent(errorRegistration);
- return errorRegistration;
- }
- // If none found, log a warning and we're done
- if (rsContainer == null) {
- logWarning(
- "importService", "No remote service container selected for endpoint=" //$NON-NLS-1$ //$NON-NLS-2$
- + endpointDescription
- + ". Remote service NOT IMPORTED"); //$NON-NLS-1$
- return null;
- }
- // If one selected then import the service to create an import
- // registration
- ImportRegistration importRegistration = null;
- synchronized (importedRegistrations) {
- ImportEndpoint importEndpoint = findImportEndpoint(ed);
- if (importEndpoint != null)
- importRegistration = new ImportRegistration(importEndpoint);
- else {
- importRegistration = importService(ed, rsContainer);
- if (importRegistration.getException() == null)
- addImportRegistration(importRegistration);
- }
- }
- // publish import event
- publishImportEvent(importRegistration);
- // Finally, return the importRegistration. It may be null or not.
- return importRegistration;
- }
-
- public Collection<org.osgi.service.remoteserviceadmin.ExportReference> getExportedServices() {
- Collection<org.osgi.service.remoteserviceadmin.ExportReference> results = new ArrayList<org.osgi.service.remoteserviceadmin.ExportReference>();
- synchronized (exportedRegistrations) {
- for (ExportRegistration reg : exportedRegistrations) {
- org.osgi.service.remoteserviceadmin.ExportReference eRef = reg
- .getExportReference();
- if (eRef != null
- && checkEndpointPermissionRead("getExportedServices", //$NON-NLS-1$
- eRef.getExportedEndpoint()))
- results.add(eRef);
- }
- }
- return results;
- }
-
- public Collection<org.osgi.service.remoteserviceadmin.ImportReference> getImportedEndpoints() {
- Collection<org.osgi.service.remoteserviceadmin.ImportReference> results = new ArrayList<org.osgi.service.remoteserviceadmin.ImportReference>();
- synchronized (importedRegistrations) {
- for (ImportRegistration reg : importedRegistrations) {
- org.osgi.service.remoteserviceadmin.ImportReference iRef = reg
- .getImportReference();
- if (iRef != null
- && checkEndpointPermissionRead("getImportedEndpoints", //$NON-NLS-1$
- iRef.getImportedEndpoint()))
- results.add(iRef);
- }
- }
- return results;
- }
-
- // end RemoteServiceAdmin service interface impl methods
-
- private boolean checkEndpointPermissionRead(
- String methodName,
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
- try {
- checkEndpointPermission(endpointDescription,
- EndpointPermission.READ);
- return true;
- } catch (SecurityException e) {
- logError(methodName,
- "permission check failed for read access to endpointDescription=" //$NON-NLS-1$
- + endpointDescription, e);
- return false;
- }
- }
-
- private BundleContext getClientBundleContext() {
- return clientBundle.getBundleContext();
- }
-
- private Bundle getRSABundle() {
- BundleContext bundleContext = Activator.getContext();
- if (bundleContext == null)
- return null;
- return bundleContext.getBundle();
- }
-
- private void addImportRegistration(ImportRegistration importRegistration) {
- synchronized (importedRegistrations) {
- importedRegistrations.add(importRegistration);
- trace("addImportRegistration", "importRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
- + importRegistration + " importedRegistrations=" //$NON-NLS-1$
- + importedRegistrations);
- }
- }
-
- private void addExportRegistration(ExportRegistration exportRegistration) {
- synchronized (exportedRegistrations) {
- exportedRegistrations.add(exportRegistration);
- trace("addExportRegistration", "exportRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
- + exportRegistration + " exportedRegistrations=" //$NON-NLS-1$
- + exportedRegistrations);
- }
- }
-
- private boolean removeExportRegistration(
- ExportRegistration exportRegistration) {
- synchronized (exportedRegistrations) {
- boolean removed = exportedRegistrations.remove(exportRegistration);
- trace("removeExportRegistration", "exportRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
- + exportRegistration + " exportedRegistrations=" //$NON-NLS-1$
- + exportedRegistrations + " removed=" + removed); //$NON-NLS-1$
- return removed;
- }
- }
-
- private boolean removeImportRegistration(
- ImportRegistration importRegistration) {
- synchronized (importedRegistrations) {
- boolean removed = importedRegistrations.remove(importRegistration);
- trace("removeImportRegistration", "importRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
- + importRegistration + " importedRegistrations=" //$NON-NLS-1$
- + importedRegistrations + " removed=" + removed); //$NON-NLS-1$
- return removed;
- }
- }
-
- private void closeDefaultContainerSelectors() {
- if (defaultHostContainerSelectorRegistration != null) {
- defaultHostContainerSelectorRegistration.unregister();
- defaultHostContainerSelectorRegistration = null;
- }
- if (defaultHostContainerSelector != null) {
- defaultHostContainerSelector.close();
- defaultHostContainerSelector = null;
- }
- if (defaultConsumerContainerSelectorRegistration != null) {
- defaultConsumerContainerSelectorRegistration.unregister();
- defaultConsumerContainerSelectorRegistration = null;
- }
- if (defaultConsumerContainerSelector != null) {
- defaultConsumerContainerSelector.close();
- defaultConsumerContainerSelector = null;
- }
- }
-
- private void checkEndpointPermission(
- org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
- String permissionType) throws SecurityException {
- SecurityManager sm = System.getSecurityManager();
- if (sm == null)
- return;
- sm.checkPermission(new EndpointPermission(endpointDescription,
- Activator.getDefault().getFrameworkUUID(), permissionType));
- }
-
- class ExportEndpoint {
-
- private ServiceReference serviceReference;
- private EndpointDescription endpointDescription;
-
- private IRemoteServiceRegistration rsRegistration;
- private Set<ExportRegistration> activeExportRegistrations = new HashSet<ExportRegistration>();
-
- ExportEndpoint(ServiceReference serviceReference,
- EndpointDescription endpointDescription,
- IRemoteServiceRegistration reg) {
- Assert.isNotNull(serviceReference);
- this.serviceReference = serviceReference;
- Assert.isNotNull(endpointDescription);
- this.endpointDescription = endpointDescription;
- Assert.isNotNull(reg);
- this.rsRegistration = reg;
- }
-
- synchronized ID getContainerID() {
- return endpointDescription.getContainerID();
- }
-
- synchronized ServiceReference getServiceReference() {
- return serviceReference;
- }
-
- synchronized EndpointDescription getEndpointDescription() {
- return endpointDescription;
- }
-
- synchronized IRemoteServiceRegistration getRemoteServiceRegistration() {
- return rsRegistration;
- }
-
- synchronized boolean addExportRegistration(
- ExportRegistration exportRegistration) {
- return this.activeExportRegistrations.add(exportRegistration);
- }
-
- synchronized boolean close(ExportRegistration exportRegistration) {
- boolean removed = this.activeExportRegistrations
- .remove(exportRegistration);
- if (removed && activeExportRegistrations.size() == 0) {
- if (rsRegistration != null) {
- rsRegistration.unregister();
- rsRegistration = null;
- }
- serviceReference = null;
- endpointDescription = null;
- }
- return removed;
- }
- }
-
- class ExportRegistration implements
- org.osgi.service.remoteserviceadmin.ExportRegistration {
-
- private ExportReference exportReference;
-
- private boolean closed = false;
-
- ExportRegistration(ExportEndpoint exportEndpoint) {
- Assert.isNotNull(exportEndpoint);
- exportEndpoint.addExportRegistration(this);
- this.exportReference = new ExportReference(exportEndpoint);
- }
-
- ExportRegistration(Throwable exception,
- EndpointDescription errorEndpointDescription) {
- Assert.isNotNull(exception);
- this.exportReference = new ExportReference(exception,
- errorEndpointDescription);
- this.closed = true;
- }
-
- ID getContainerID() {
- return exportReference.getContainerID();
- }
-
- ServiceReference getServiceReference() {
- return exportReference.getExportedService();
- }
-
- public org.osgi.service.remoteserviceadmin.ExportReference getExportReference() {
- Throwable t = getException();
- if (t != null)
- throw new IllegalStateException(
- "Cannot get export reference as export registration is invalid", //$NON-NLS-1$
- t);
- return exportReference;
- }
-
- boolean match(ServiceReference serviceReference) {
- return match(serviceReference, null);
- }
-
- boolean match(ServiceReference serviceReference,
- ID containerID) {
- ServiceReference ourServiceReference = getServiceReference();
- if (ourServiceReference == null)
- return false;
- boolean serviceReferenceCompare = ourServiceReference
- .equals(serviceReference);
- // If the second parameter is null, then we compare only on service
- // references
- if (containerID == null)
- return serviceReferenceCompare;
- ID ourContainerID = getContainerID();
- if (ourContainerID == null)
- return false;
- return serviceReferenceCompare
- && ourContainerID.equals(containerID);
- }
-
- synchronized ExportEndpoint getExportEndpoint(
- ServiceReference serviceReference, ID containerID) {
- return match(serviceReference, containerID) ? exportReference
- .getExportEndpoint() : null;
- }
-
- IRemoteServiceRegistration getRemoteServiceRegistration() {
- return exportReference.getRemoteServiceRegistration();
- }
-
- EndpointDescription getEndpointDescription() {
- return exportReference.getEndpointDescription();
- }
-
- public void close() {
- boolean publish = false;
- ID containerID = null;
- Throwable exception = null;
- EndpointDescription endpointDescription = null;
- synchronized (this) {
- // Only do this once
- if (!closed) {
- containerID = getContainerID();
- exception = getException();
- endpointDescription = getEndpointDescription();
- publish = exportReference.close(this);
- closed = true;
- }
- }
- removeExportRegistration(this);
- Bundle rsaBundle = getRSABundle();
- // Only publish events
- if (publish && rsaBundle != null)
- publishEvent(new RemoteServiceAdminEvent(containerID,
- RemoteServiceAdminEvent.EXPORT_UNREGISTRATION,
- rsaBundle, exportReference, exception),
- endpointDescription);
- }
-
- public Throwable getException() {
- return exportReference.getException();
- }
-
- }
-
- class ExportReference implements
- org.osgi.service.remoteserviceadmin.ExportReference {
-
- private ExportEndpoint exportEndpoint;
-
- private Throwable exception;
- private EndpointDescription errorEndpointDescription;
-
- ExportReference(ExportEndpoint exportEndpoint) {
- Assert.isNotNull(exportEndpoint);
- this.exportEndpoint = exportEndpoint;
- }
-
- ExportReference(Throwable exception,
- EndpointDescription errorEndpointDescription) {
- Assert.isNotNull(exception);
- this.exception = exception;
- Assert.isNotNull(exception);
- this.errorEndpointDescription = errorEndpointDescription;
- }
-
- synchronized Throwable getException() {
- return exception;
- }
-
- synchronized boolean close(ExportRegistration exportRegistration) {
- if (exportEndpoint == null)
- return false;
- boolean result = exportEndpoint.close(exportRegistration);
- exportEndpoint = null;
- return result;
- }
-
- synchronized ExportEndpoint getExportEndpoint() {
- return exportEndpoint;
- }
-
- synchronized IRemoteServiceRegistration getRemoteServiceRegistration() {
- return (exportEndpoint == null) ? null : exportEndpoint
- .getRemoteServiceRegistration();
- }
-
- synchronized ID getContainerID() {
- return (exportEndpoint == null) ? null : exportEndpoint
- .getContainerID();
- }
-
- public synchronized ServiceReference getExportedService() {
- return (exportEndpoint == null) ? null : exportEndpoint
- .getServiceReference();
- }
-
- public synchronized org.osgi.service.remoteserviceadmin.EndpointDescription getExportedEndpoint() {
- return (exportEndpoint == null) ? null : exportEndpoint
- .getEndpointDescription();
- }
-
- synchronized EndpointDescription getEndpointDescription() {
- return (exportEndpoint == null) ? errorEndpointDescription
- : exportEndpoint.getEndpointDescription();
- }
-
- }
-
- class ImportEndpoint {
-
- private IRemoteServiceContainerAdapter rsContainerAdapter;
- private EndpointDescription endpointDescription;
- private IRemoteServiceListener rsListener;
- private IRemoteServiceReference rsReference;
- private ServiceRegistration proxyRegistration;
- private Set<ImportRegistration> activeImportRegistrations = new HashSet<ImportRegistration>();
-
- ImportEndpoint(IRemoteServiceContainerAdapter rsContainerAdapter,
- IRemoteServiceReference rsReference,
- IRemoteServiceListener rsListener,
- ServiceRegistration proxyRegistration,
- EndpointDescription endpointDescription) {
- this.rsContainerAdapter = rsContainerAdapter;
- this.endpointDescription = endpointDescription;
- this.rsReference = rsReference;
- this.rsListener = rsListener;
- this.proxyRegistration = proxyRegistration;
- // Add the remoteservice listener to the container adapter, so that
- // the rsListener notified asynchronously if our underlying remote
- // service
- // reference is unregistered locally due to disconnect or remote
- // ejection
- this.rsContainerAdapter.addRemoteServiceListener(this.rsListener);
- }
-
- synchronized EndpointDescription getEndpointDescription() {
- return endpointDescription;
- }
-
- synchronized ServiceRegistration getProxyRegistration() {
- return proxyRegistration;
- }
-
- synchronized ID getContainerID() {
- return (rsReference == null) ? null : rsReference.getContainerID();
- }
-
- synchronized boolean addImportRegistration(
- ImportRegistration importRegistration) {
- return this.activeImportRegistrations.add(importRegistration);
- }
-
- synchronized boolean close(ImportRegistration importRegistration) {
- boolean removed = this.activeImportRegistrations
- .remove(importRegistration);
- if (removed && activeImportRegistrations.size() == 0) {
- if (proxyRegistration != null) {
- proxyRegistration.unregister();
- proxyRegistration = null;
- }
- if (rsContainerAdapter != null) {
- if (rsReference != null) {
- rsContainerAdapter.ungetRemoteService(rsReference);
- rsReference = null;
- }
- // remove remote service listener
- if (rsListener != null) {
- rsContainerAdapter
- .removeRemoteServiceListener(rsListener);
- rsListener = null;
- }
- rsContainerAdapter = null;
- }
- endpointDescription = null;
- }
- return removed;
- }
-
- synchronized boolean match(IRemoteServiceID remoteServiceID) {
- if (remoteServiceID == null || rsReference == null)
- return false;
- return rsReference.getID().equals(remoteServiceID);
- }
-
- synchronized boolean match(EndpointDescription ed) {
- if (activeImportRegistrations.size() == 0)
- return false;
- return this.endpointDescription.isSameService(ed);
- }
-
- }
-
- class ImportRegistration implements
- org.osgi.service.remoteserviceadmin.ImportRegistration {
-
- private ImportReference importReference;
-
- private boolean closed = false;
-
- ImportRegistration(ImportEndpoint importEndpoint) {
- Assert.isNotNull(importEndpoint);
- importEndpoint.addImportRegistration(this);
- this.importReference = new ImportReference(importEndpoint);
- }
-
- ImportRegistration(EndpointDescription errorEndpointDescription,
- Throwable exception) {
- this.importReference = new ImportReference(
- errorEndpointDescription, exception);
- }
-
- ID getContainerID() {
- return importReference.getContainerID();
- }
-
- EndpointDescription getEndpointDescription() {
- return importReference.getEndpointDescription();
- }
-
- boolean match(IRemoteServiceID remoteServiceID) {
- return importReference.match(remoteServiceID);
- }
-
- ImportEndpoint getImportEndpoint(EndpointDescription ed) {
- return importReference.match(ed);
- }
-
- public org.osgi.service.remoteserviceadmin.ImportReference getImportReference() {
- Throwable t = getException();
- if (t != null)
- throw new IllegalStateException(
- "Cannot get import reference as registration not properly initialized", //$NON-NLS-1$
- t);
- return importReference;
- }
-
- public void close() {
- boolean publish = false;
- ID containerID = null;
- Throwable exception = null;
- EndpointDescription endpointDescription = null;
- synchronized (this) {
- // only do this once
- if (!closed) {
- containerID = getContainerID();
- exception = getException();
- endpointDescription = getEndpointDescription();
- publish = importReference.close(this);
- closed = true;
- }
- }
- removeImportRegistration(this);
- Bundle rsaBundle = getRSABundle();
- if (publish && rsaBundle != null)
- publishEvent(
- new RemoteServiceAdminEvent(
- containerID,
- RemoteServiceAdminEvent.IMPORT_UNREGISTRATION,
- rsaBundle, importReference, exception),
- endpointDescription);
-
- }
-
- public Throwable getException() {
- return importReference.getException();
- }
-
- }
-
- class ImportReference implements
- org.osgi.service.remoteserviceadmin.ImportReference {
-
- private ImportEndpoint importEndpoint;
-
- private Throwable exception;
- private EndpointDescription errorEndpointDescription;
-
- ImportReference(ImportEndpoint importEndpoint) {
- Assert.isNotNull(importEndpoint);
- this.importEndpoint = importEndpoint;
- }
-
- ImportReference(EndpointDescription endpointDescription,
- Throwable exception) {
- Assert.isNotNull(exception);
- this.exception = exception;
- Assert.isNotNull(endpointDescription);
- this.errorEndpointDescription = endpointDescription;
- }
-
- synchronized Throwable getException() {
- return exception;
- }
-
- synchronized boolean match(IRemoteServiceID remoteServiceID) {
- return (importEndpoint == null) ? false : importEndpoint
- .match(remoteServiceID);
- }
-
- synchronized ImportEndpoint match(EndpointDescription ed) {
- if (importEndpoint != null && importEndpoint.match(ed))
- return importEndpoint;
- return null;
- }
-
- synchronized EndpointDescription getEndpointDescription() {
- return (importEndpoint == null) ? errorEndpointDescription
- : importEndpoint.getEndpointDescription();
- }
-
- synchronized ID getContainerID() {
- return (importEndpoint == null) ? null : importEndpoint
- .getContainerID();
- }
-
- public synchronized ServiceReference getImportedService() {
- return (importEndpoint == null) ? null : importEndpoint
- .getProxyRegistration().getReference();
- }
-
- public synchronized org.osgi.service.remoteserviceadmin.EndpointDescription getImportedEndpoint() {
- return (importEndpoint == null) ? null : importEndpoint
- .getEndpointDescription();
- }
-
- synchronized boolean close(ImportRegistration importRegistration) {
- if (importEndpoint == null)
- return false;
- boolean result = importEndpoint.close(importRegistration);
- importEndpoint = null;
- return result;
- }
-
- }
-
- private void publishEvent(RemoteServiceAdminEvent event,
- EndpointDescription endpointDescription) {
- // send event synchronously to RemoteServiceAdminListeners
- EndpointPermission perm = new EndpointPermission(endpointDescription,
- Activator.getDefault().getFrameworkUUID(),
- EndpointPermission.READ);
- // notify synchronously all appropriate listeners (those with READ
- // permission)
- RemoteServiceAdminListener[] listeners = getListeners(perm);
- if (listeners != null)
- for (int i = 0; i < listeners.length; i++)
- listeners[i].remoteAdminEvent(event);
- // Now also post the event asynchronously to EventAdmin
- postEvent(event, endpointDescription);
- }
-
- private void postEvent(RemoteServiceAdminEvent event,
- EndpointDescription endpointDescription) {
- EventAdmin eventAdmin = getEventAdmin();
- if (eventAdmin == null) {
- //logWarning("RemoteServiceAdmin.postEvent", "No event admin service available to post event=" //$NON-NLS-1$ //$NON-NLS-2$
- // + event);
- return;
- }
- int eventType = event.getType();
- String eventTypeName = null;
- String registrationTypeName = null;
- switch (eventType) {
- case (RemoteServiceAdminEvent.EXPORT_REGISTRATION):
- eventTypeName = "EXPORT_REGISTRATION"; //$NON-NLS-1$
- registrationTypeName = "export.registration";//$NON-NLS-1$
- break;
- case (RemoteServiceAdminEvent.EXPORT_ERROR):
- eventTypeName = "EXPORT_ERROR"; //$NON-NLS-1$
- registrationTypeName = "export.registration";//$NON-NLS-1$
- break;
- case (RemoteServiceAdminEvent.EXPORT_UNREGISTRATION):
- eventTypeName = "EXPORT_UNREGISTRATION"; //$NON-NLS-1$
- registrationTypeName = "export.registration";//$NON-NLS-1$
- break;
- case (RemoteServiceAdminEvent.EXPORT_WARNING):
- eventTypeName = "EXPORT_WARNING"; //$NON-NLS-1$
- registrationTypeName = "export.registration";//$NON-NLS-1$
- break;
- case (RemoteServiceAdminEvent.IMPORT_REGISTRATION):
- eventTypeName = "IMPORT_REGISTRATION"; //$NON-NLS-1$
- registrationTypeName = "import.registration";//$NON-NLS-1$
- break;
- case (RemoteServiceAdminEvent.IMPORT_ERROR):
- eventTypeName = "IMPORT_ERROR"; //$NON-NLS-1$
- registrationTypeName = "import.registration";//$NON-NLS-1$
- break;
- case (RemoteServiceAdminEvent.IMPORT_UNREGISTRATION):
- eventTypeName = "IMPORT_UNREGISTRATION"; //$NON-NLS-1$
- registrationTypeName = "import.registration";//$NON-NLS-1$
- break;
- case (RemoteServiceAdminEvent.IMPORT_WARNING):
- eventTypeName = "IMPORT_WARNING"; //$NON-NLS-1$
- registrationTypeName = "import.registration";//$NON-NLS-1$
- break;
- }
- if (eventTypeName == null) {
- logError("postEvent", "Event type=" + eventType //$NON-NLS-1$ //$NON-NLS-2$
- + " not understood for event=" + event + ". Not posting"); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
- String topic = "org/osgi/service/remoteserviceadmin/" + eventTypeName; //$NON-NLS-1$
- Bundle rsaBundle = getRSABundle();
- if (rsaBundle == null) {
- logError(
- "postEvent", "RSA Bundle is null. Not posting remote service admin event=" + event); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
- Dictionary eventProperties = new Properties();
- eventProperties.put("bundle", rsaBundle); //$NON-NLS-1$
- eventProperties.put("bundle.id", //$NON-NLS-1$
- new Long(rsaBundle.getBundleId()));
- eventProperties.put("bundle.symbolicname", //$NON-NLS-1$
- rsaBundle.getSymbolicName());
- eventProperties.put("bundle.version", rsaBundle.getVersion()); //$NON-NLS-1$
- String[] signers = getSignersForBundle(clientBundle);
- if (signers != null && signers.length > 0)
- eventProperties.put("bundle.signer", signers); //$NON-NLS-1$
- Throwable t = event.getException();
- if (t != null)
- eventProperties.put("cause", t); //$NON-NLS-1$
- long serviceId = endpointDescription.getServiceId();
- if (serviceId != 0)
- eventProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
- new Long(serviceId));
- String frameworkUUID = endpointDescription.getFrameworkUUID();
- if (frameworkUUID != null)
- eventProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
- frameworkUUID);
- String endpointId = endpointDescription.getId();
- if (endpointId != null)
- eventProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
- endpointId);
- List<String> interfaces = endpointDescription.getInterfaces();
- if (interfaces != null && interfaces.size() > 0)
- eventProperties.put(org.osgi.framework.Constants.OBJECTCLASS,
- interfaces.toArray(new String[interfaces.size()]));
- List<String> importedConfigs = endpointDescription
- .getConfigurationTypes();
- if (importedConfigs != null && importedConfigs.size() > 0)
- eventProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
- importedConfigs.toArray(new String[importedConfigs
- .size()]));
- eventProperties.put("timestamp", new Long(new Date().getTime())); //$NON-NLS-1$
- eventProperties.put("event", event); //$NON-NLS-1$
- if (registrationTypeName != null) {
- eventProperties.put(registrationTypeName, endpointDescription);
- }
- postRemoteServiceAdminEvent(topic, eventProperties);
-
- }
-
- private String[] getSignersForBundle(Bundle bundle) {
- List<String> result = new ArrayList<String>();
- Map signers = bundle.getSignerCertificates(Bundle.SIGNERS_ALL);
- for (Iterator i = signers.keySet().iterator(); i.hasNext();)
- result.add(i.next().toString());
- return (String[]) result.toArray(new String[result.size()]);
- }
-
- private void publishExportEvent(ExportRegistration exportRegistration) {
- Throwable exception = exportRegistration.getException();
- org.osgi.service.remoteserviceadmin.ExportReference exportReference = (exception == null) ? exportRegistration
- .getExportReference() : null;
- RemoteServiceAdminEvent rsaEvent = new RemoteServiceAdminEvent(
- exportRegistration.getContainerID(),
- (exception == null) ? RemoteServiceAdminEvent.EXPORT_REGISTRATION
- : RemoteServiceAdminEvent.EXPORT_ERROR, getRSABundle(),
- exportReference, exception);
- publishEvent(rsaEvent, exportRegistration.getEndpointDescription());
- }
-
- private void publishImportEvent(ImportRegistration importRegistration) {
- Throwable exception = importRegistration.getException();
- org.osgi.service.remoteserviceadmin.ImportReference importReference = (exception == null) ? importRegistration
- .getImportReference() : null;
- RemoteServiceAdminEvent rsaEvent = new RemoteServiceAdminEvent(
- importRegistration.getContainerID(),
- (exception == null) ? RemoteServiceAdminEvent.IMPORT_REGISTRATION
- : RemoteServiceAdminEvent.IMPORT_ERROR, getRSABundle(),
- importReference, exception);
- publishEvent(rsaEvent, importRegistration.getEndpointDescription());
- }
-
- private void closeRemoteServiceAdminListenerTracker() {
- synchronized (remoteServiceAdminListenerTrackerLock) {
- if (remoteServiceAdminListenerTracker != null) {
- remoteServiceAdminListenerTracker.close();
- remoteServiceAdminListenerTracker = null;
- }
- }
- }
-
- private RemoteServiceAdminListener[] getListeners(EndpointPermission perm) {
- synchronized (remoteServiceAdminListenerTrackerLock) {
- if (remoteServiceAdminListenerTracker == null) {
- remoteServiceAdminListenerTracker = new ServiceTracker(
- getClientBundleContext(),
- RemoteServiceAdminListener.class.getName(), null);
- remoteServiceAdminListenerTracker.open();
- }
- }
- ServiceReference[] unfilteredRefs = remoteServiceAdminListenerTracker
- .getServiceReferences();
- if (unfilteredRefs == null)
- return null;
- // Filter by Bundle.hasPermission
- List<ServiceReference> filteredRefs = new ArrayList<ServiceReference>();
- for (ServiceReference ref : unfilteredRefs)
- if (perm == null || ref.getBundle().hasPermission(perm))
- filteredRefs.add(ref);
- List<RemoteServiceAdminListener> results = new ArrayList<RemoteServiceAdminListener>();
- for (ServiceReference ref : filteredRefs) {
- RemoteServiceAdminListener l = (RemoteServiceAdminListener) remoteServiceAdminListenerTracker
- .getService(ref);
- if (l != null)
- results.add(l);
- }
- return results.toArray(new RemoteServiceAdminListener[results.size()]);
- }
-
- private ExportEndpoint findExistingExportEndpoint(
- ServiceReference serviceReference, ID containerID) {
- for (ExportRegistration eReg : exportedRegistrations) {
- ExportEndpoint exportEndpoint = eReg.getExportEndpoint(
- serviceReference, containerID);
- if (exportEndpoint != null)
- return exportEndpoint;
- }
- return null;
- }
-
- private EventAdmin getEventAdmin() {
- synchronized (eventAdminTrackerLock) {
- eventAdminTracker = new ServiceTracker(getClientBundleContext(),
- EventAdmin.class.getName(), null);
- eventAdminTracker.open();
- }
- return (EventAdmin) eventAdminTracker.getService();
- }
-
- private void postRemoteServiceAdminEvent(String topic,
- Dictionary eventProperties) {
- EventAdmin eventAdmin = getEventAdmin();
- if (eventAdmin == null) {
- logError("postRemoteServiceAdminEvent", //$NON-NLS-1$
- "No EventAdmin service available to send eventTopic=" //$NON-NLS-1$
- + topic + " eventProperties=" + eventProperties); //$NON-NLS-1$
- return;
- }
- eventAdmin.postEvent(new Event(topic, eventProperties));
- }
-
- private void closeEventAdminTracker() {
- synchronized (eventAdminTrackerLock) {
- if (eventAdminTracker != null) {
- eventAdminTracker.close();
- eventAdminTracker = null;
- }
- }
- }
-
- private void closePackageAdminTracker() {
- synchronized (packageAdminTrackerLock) {
- if (packageAdminTracker != null) {
- packageAdminTracker.close();
- packageAdminTracker = null;
- }
- }
- }
-
- private Object consumerContainerSelectorTrackerLock = new Object();
- private ServiceTracker consumerContainerSelectorTracker;
-
- private void closeConsumerContainerSelectorTracker() {
- synchronized (consumerContainerSelectorTrackerLock) {
- if (consumerContainerSelectorTracker != null) {
- consumerContainerSelectorTracker.close();
- consumerContainerSelectorTracker = null;
- }
- }
- if (defaultConsumerContainerSelector != null) {
- defaultConsumerContainerSelector.close();
- defaultConsumerContainerSelector = null;
- }
- }
-
- private Object hostContainerSelectorTrackerLock = new Object();
- private ServiceTracker hostContainerSelectorTracker;
-
- private void closeHostContainerSelectorTracker() {
- synchronized (hostContainerSelectorTrackerLock) {
- if (hostContainerSelectorTracker != null) {
- hostContainerSelectorTracker.close();
- hostContainerSelectorTracker = null;
- }
- }
- if (defaultHostContainerSelector != null) {
- defaultHostContainerSelector.close();
- defaultHostContainerSelector = null;
- }
- }
-
- protected IHostContainerSelector getHostContainerSelector() {
- synchronized (hostContainerSelectorTrackerLock) {
- if (hostContainerSelectorTracker == null) {
- hostContainerSelectorTracker = new ServiceTracker(
- getClientBundleContext(),
- IHostContainerSelector.class.getName(), null);
- hostContainerSelectorTracker.open();
- }
- }
- return (IHostContainerSelector) hostContainerSelectorTracker
- .getService();
- }
-
- protected IConsumerContainerSelector getConsumerContainerSelector() {
- synchronized (consumerContainerSelectorTrackerLock) {
- if (consumerContainerSelectorTracker == null) {
- consumerContainerSelectorTracker = new ServiceTracker(
- getClientBundleContext(),
- IConsumerContainerSelector.class.getName(), null);
- consumerContainerSelectorTracker.open();
- }
- }
- return (IConsumerContainerSelector) consumerContainerSelectorTracker
- .getService();
- }
-
- private ContainerTypeDescription getContainerTypeDescription(
- IContainer container) {
- return Activator.getDefault().getContainerManager().getContainerTypeDescription(
- container.getID());
- }
-
- private boolean isClient(IContainer container) {
- ContainerTypeDescription ctd = getContainerTypeDescription(container);
- if (ctd == null) return false;
- else return !ctd.isServer();
- }
-
- private Version getPackageVersion(ServiceReference serviceReference,
- String serviceInterface, String packageName) {
- Object service = getClientBundleContext().getService(serviceReference);
- if (service == null)
- return null;
- Class[] interfaceClasses = service.getClass().getInterfaces();
- if (interfaceClasses == null)
- return null;
- Class interfaceClass = null;
- for (int i = 0; i < interfaceClasses.length; i++)
- if (interfaceClasses[i].getName().equals(serviceInterface))
- interfaceClass = interfaceClasses[i];
- if (interfaceClass == null)
- return null;
- Bundle providingBundle = FrameworkUtil.getBundle(interfaceClass);
- if (providingBundle == null) return null;
- return getVersionForPackage(providingBundle, packageName);
- }
-
- private Map<String, Object> createExportEndpointDescriptionProperties(
- ServiceReference serviceReference,
- Map<String, Object> overridingProperties,
- String[] exportedInterfaces, String[] serviceIntents,
- IRemoteServiceContainer rsContainer) {
- IContainer container = rsContainer.getContainer();
- ID containerID = container.getID();
-
- Map<String, Object> endpointDescriptionProperties = new TreeMap<String, Object>(
- String.CASE_INSENSITIVE_ORDER);
-
- // OSGi properties
- // OBJECTCLASS set to exportedInterfaces
- endpointDescriptionProperties.put(
- org.osgi.framework.Constants.OBJECTCLASS, exportedInterfaces);
-
- // Service interface versions
- for (int i = 0; i < exportedInterfaces.length; i++) {
- String packageName = getPackageName(exportedInterfaces[i]);
- String packageVersionKey = org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
- + packageName;
- // If it's pre-set...by registration or by overridingProperties,
- // then use that value
- String packageVersion = (String) PropertiesUtil.getPropertyValue(
- serviceReference, overridingProperties, packageVersionKey);
- if (packageVersion == null) {
- Version version = getPackageVersion(serviceReference,
- exportedInterfaces[i], packageName);
- if (version != null && !version.equals(Version.emptyVersion))
- packageVersion = version.toString();
- }
- // Only set the package version if we have a non-null value
- if (packageVersion != null)
- endpointDescriptionProperties.put(packageVersionKey,
- packageVersion);
- }
-
- // ENDPOINT_ID
- String endpointId = (String) PropertiesUtil
- .getPropertyValue(
- serviceReference,
- overridingProperties,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID);
- if (endpointId == null)
- endpointId = containerID.getName();
- endpointDescriptionProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
- endpointId);
-
- // ENDPOINT_SERVICE_ID
- // This is always set to the value from serviceReference as per 122.5.1
- Long serviceId = (Long) serviceReference
- .getProperty(org.osgi.framework.Constants.SERVICE_ID);
- endpointDescriptionProperties.put(
- org.osgi.framework.Constants.SERVICE_ID, serviceId);
-
- // ENDPOINT_FRAMEWORK_ID
- String frameworkId = (String) PropertiesUtil
- .getPropertyValue(
- serviceReference,
- overridingProperties,
- org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID);
- if (frameworkId == null)
- frameworkId = Activator.getDefault().getFrameworkUUID();
- endpointDescriptionProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
- frameworkId);
-
- // REMOTE_CONFIGS_SUPPORTED
- String[] remoteConfigsSupported = getSupportedConfigs(container);
- if (remoteConfigsSupported != null)
- endpointDescriptionProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED,
- remoteConfigsSupported);
- // SERVICE_IMPORTED_CONFIGS...set to constant value for all ECF
- // providers
- // supported (which is computed
- // for the exporting ECF container
- endpointDescriptionProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
- remoteConfigsSupported);
-
- // SERVICE_INTENTS
- Object intents = PropertiesUtil
- .getPropertyValue(
- null,
- overridingProperties,
- org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS);
- if (intents == null)
- intents = serviceIntents;
- if (intents != null)
- endpointDescriptionProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS,
- intents);
-
- // REMOTE_INTENTS_SUPPORTED
- String[] remoteIntentsSupported = getSupportedIntents(container);
- if (remoteIntentsSupported != null)
- endpointDescriptionProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED,
- remoteIntentsSupported);
-
- // ECF properties
- // ID namespace
- String idNamespace = containerID.getNamespace().getName();
- endpointDescriptionProperties.put(
- RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE, idNamespace);
-
- // ENDPOINT_CONNECTTARGET_ID
- String connectTarget = (String) PropertiesUtil.getPropertyValue(
- serviceReference, overridingProperties,
- RemoteConstants.ENDPOINT_CONNECTTARGET_ID);
- if (connectTarget == null && isClient(container)) {
- ID connectedID = container.getConnectedID();
- if (connectedID != null && !connectedID.equals(containerID))
- connectTarget = connectedID.getName();
- }
- if (connectTarget != null)
- endpointDescriptionProperties.put(
- RemoteConstants.ENDPOINT_CONNECTTARGET_ID, connectTarget);
-
- // ENDPOINT_IDFILTER_IDS
- String[] idFilter = (String[]) PropertiesUtil.getPropertyValue(
- serviceReference, overridingProperties,
- RemoteConstants.ENDPOINT_IDFILTER_IDS);
- if (idFilter != null && idFilter.length > 0)
- endpointDescriptionProperties.put(
- RemoteConstants.ENDPOINT_IDFILTER_IDS, idFilter);
-
- // ENDPOINT_REMOTESERVICE_FILTER
- String rsFilter = (String) PropertiesUtil.getPropertyValue(
- serviceReference, overridingProperties,
- RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER);
- if (rsFilter != null)
- endpointDescriptionProperties.put(
- RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER, rsFilter);
-
- // Finally, copy all non-reserved properties
- return PropertiesUtil.copyNonReservedProperties(overridingProperties,
- endpointDescriptionProperties);
- }
-
- private Map<String, Object> copyNonReservedProperties(
- ServiceReference serviceReference,
- Map<String, Object> overridingProperties, Map<String, Object> target) {
- // copy all other properties...from service reference
- PropertiesUtil.copyNonReservedProperties(serviceReference, target);
- // And override with overridingProperties
- PropertiesUtil.copyNonReservedProperties(overridingProperties, target);
- return target;
- }
-
- private String[] getSupportedConfigs(IContainer container) {
- ContainerTypeDescription ctd = getContainerTypeDescription(container);
- return (ctd == null) ? null : ctd.getSupportedConfigs();
- }
-
- private String[] getImportedConfigs(IContainer container,
- String[] exporterSupportedConfigs) {
- ContainerTypeDescription ctd = getContainerTypeDescription(container);
- return (ctd == null) ? null : ctd
- .getImportedConfigs(exporterSupportedConfigs);
- }
-
- private String[] getSupportedIntents(IContainer container) {
- ContainerTypeDescription ctd = getContainerTypeDescription(container);
- return (ctd == null) ? null : ctd.getSupportedIntents();
- }
-
- private ID[] getIDFilter(EndpointDescription endpointDescription,
- ID endpointID) {
- ID[] idFilter = endpointDescription.getIDFilter();
- // If it is null,
- return (idFilter == null) ? new ID[] { endpointID } : idFilter;
- }
-
- private String getRemoteServiceFilter(
- EndpointDescription endpointDescription) {
-
- long rsId = 0;
- // if the ECF remote service id is present in properties, allow it to
- // override
- Long l = (Long) endpointDescription.getProperties().get(
- org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
- if (l != null)
- rsId = l.longValue();
- // if rsId is still zero, use the endpoint.service.id from
- // endpoint description
- if (rsId == 0)
- rsId = endpointDescription.getServiceId();
- // If it's *still* zero, then just use the raw filter
- if (rsId == 0) {
- // It's not known...so we just return the 'raw' remote service
- // filter
- return endpointDescription.getRemoteServiceFilter();
- } else {
- String edRsFilter = endpointDescription.getRemoteServiceFilter();
- // It's a real remote service id...so we return
- StringBuffer result = new StringBuffer("(&(") //$NON-NLS-1$
- .append(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID)
- .append("=").append(rsId).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
- if (edRsFilter != null)
- result.append(edRsFilter);
- result.append(")"); //$NON-NLS-1$
- return result.toString();
- }
- }
-
- private ImportEndpoint createAndRegisterProxy(
- EndpointDescription endpointDescription,
- IRemoteServiceContainer rsContainer,
- IRemoteServiceReference selectedRsReference) throws Exception {
-
- BundleContext proxyServiceFactoryContext = getProxyServiceFactoryContext(endpointDescription);
- if (proxyServiceFactoryContext == null)
- throw new NullPointerException(
- "getProxyServiceFactoryContext returned null. Cannot register proxy service factory"); //$NON-NLS-1$
-
- IRemoteServiceContainerAdapter containerAdapter = rsContainer
- .getContainerAdapter();
- ID rsContainerID = rsContainer.getContainer().getID();
- // First get IRemoteService for selectedRsReference
- IRemoteService rs = containerAdapter
- .getRemoteService(selectedRsReference);
- if (rs == null)
- throw new NullPointerException(
- "getRemoteService returned null for selectedRsReference=" //$NON-NLS-1$
- + selectedRsReference + ",rsContainerID=" //$NON-NLS-1$
- + rsContainerID);
-
- Map proxyProperties = createProxyProperties(endpointDescription,
- rsContainer, selectedRsReference, rs);
-
- // sync sref props with endpoint props
- endpointDescription.setPropertiesOverrides(proxyProperties);
-
- List<String> serviceTypes = endpointDescription.getInterfaces();
-
- ServiceRegistration proxyRegistration = proxyServiceFactoryContext
- .registerService((String[]) serviceTypes
- .toArray(new String[serviceTypes.size()]),
- createProxyServiceFactory(endpointDescription, rs),
- (Dictionary) PropertiesUtil
- .createDictionaryFromMap(proxyProperties));
-
- return new ImportEndpoint(containerAdapter, selectedRsReference,
- new RemoteServiceListener(), proxyRegistration,
- endpointDescription);
- }
-
- private BundleContext getProxyServiceFactoryContext(
- EndpointDescription endpointDescription) throws Exception {
- Activator a = Activator.getDefault();
- if (a == null)
- throw new NullPointerException(
- "ECF RemoteServiceAdmin Activator cannot be null."); //$NON-NLS-1$
- if (a.isOldEquinox()) {
- // In this case, we get the Bundle that exposes the first service
- // interface class
- BundleContext rsaContext = Activator.getContext();
- if (rsaContext == null)
- throw new NullPointerException(
- "RSA BundleContext cannot be null"); //$NON-NLS-1$
- List<String> interfaces = endpointDescription.getInterfaces();
- Collection<Class> serviceInterfaceClasses = loadServiceInterfacesViaBundle(
- rsaContext.getBundle(),
- interfaces.toArray(new String[interfaces.size()]));
- if (serviceInterfaceClasses.size() == 0)
- throw new NullPointerException(
- "No interface classes loadable for endpointDescription=" //$NON-NLS-1$
- + endpointDescription);
- // Get the bundle responsible for the first service interface class
- Class serviceInterfaceClass = serviceInterfaceClasses.iterator()
- .next();
- Bundle bundle = FrameworkUtil.getBundle(serviceInterfaceClass);
- if (bundle == null)
- throw new BundleException("Bundle for service interface class=" //$NON-NLS-1$
- + serviceInterfaceClass.getName() + " cannot be found"); //$NON-NLS-1$
- int bundleState = bundle.getState();
- BundleContext bundleContext = bundle.getBundleContext();
- if (bundleContext == null)
- throw new BundleException("Bundle=" + bundle.getSymbolicName() //$NON-NLS-1$
- + " in wrong state (" + bundleState //$NON-NLS-1$
- + ") for using BundleContext proxy service factory"); //$NON-NLS-1$
- return bundleContext;
- }
- return a.getProxyServiceFactoryBundleContext();
- }
-
- private ServiceFactory createProxyServiceFactory(
- EndpointDescription endpointDescription,
- IRemoteService remoteService) {
- return new ProxyServiceFactory(
- endpointDescription.getInterfaceVersions(), remoteService);
- }
-
- private Collection<Class> loadServiceInterfacesViaBundle(Bundle bundle,
- String[] interfaces) {
- List<Class> result = new ArrayList<Class>();
- for (int i = 0; i < interfaces.length; i++) {
- try {
- result.add(bundle.loadClass(interfaces[i]));
- } catch (ClassNotFoundException e) {
- logError("loadInterfacesViaBundle", "interface=" //$NON-NLS-1$ //$NON-NLS-2$
- + interfaces[i] + " cannot be loaded by clientBundle=" //$NON-NLS-1$
- + bundle.getSymbolicName(), e);
- continue;
- } catch (IllegalStateException e) {
- logError(
- "loadInterfacesViaBundle", //$NON-NLS-1$
- "interface=" //$NON-NLS-1$
- + interfaces[i]
- + " cannot be loaded since clientBundle is in illegal state", //$NON-NLS-1$
- e);
- continue;
- }
- }
- return result;
- }
-
- class ProxyServiceFactory implements ServiceFactory {
- private IRemoteService remoteService;
- private Map<String, Version> interfaceVersions;
-
- public ProxyServiceFactory(Map<String, Version> interfaceVersions,
- IRemoteService remoteService) {
- this.interfaceVersions = interfaceVersions;
- this.remoteService = remoteService;
- }
-
- public Object getService(Bundle bundle, ServiceRegistration registration) {
- return createProxy(bundle, registration.getReference(),
- remoteService, interfaceVersions);
- }
-
- public void ungetService(Bundle bundle,
- ServiceRegistration registration, Object service) {
- ungetProxyClassLoader(bundle);
- }
- }
-
- private Object createProxy(Bundle requestingBundle,
- ServiceReference serviceReference, IRemoteService remoteService,
- Map<String, Version> interfaceVersions) {
- // Get symbolicName once for possible use below
- String bundleSymbolicName = requestingBundle.getSymbolicName();
- // Get String[] via OBJECTCLASS constant property
- String[] serviceClassnames = (String[]) serviceReference
- .getProperty(org.osgi.framework.Constants.OBJECTCLASS);
- // Load as many of the serviceInterface classes as possible
- Collection<Class> serviceInterfaceClasses = loadServiceInterfacesViaBundle(
- requestingBundle, serviceClassnames);
- // There has to be at least one serviceInterface that the clientBundle
- // can
- // load...otherwise the service can't be accessed
- if (serviceInterfaceClasses.size() < 1)
- throw new RuntimeException(
- "ProxyServiceFactory cannot load any serviceInterfaces=" //$NON-NLS-1$
- + serviceInterfaceClasses
- + " for serviceReference=" + serviceReference //$NON-NLS-1$
- + " via clientBundle=" + bundleSymbolicName); //$NON-NLS-1$
-
- // Now verify that the classes are of valid versions
- if (!verifyServiceInterfaceVersionsForProxy(requestingBundle,
- serviceInterfaceClasses, interfaceVersions))
- return null;
-
- // Now create/get class loader for proxy. This will typically
- // be an instance of ProxyClassLoader
- ClassLoader cl = getProxyClassLoader(requestingBundle);
- try {
- return remoteService.getProxy(cl, (Class[]) serviceInterfaceClasses
- .toArray(new Class[serviceInterfaceClasses.size()]));
- } catch (ECFException e) {
- throw new ServiceException(
- "ProxyServiceFactory cannot create proxy for clientBundle=" //$NON-NLS-1$
- + bundleSymbolicName + " from serviceReference=" //$NON-NLS-1$
- + serviceReference, e);
- }
-
- }
-
- private Map<Bundle, ProxyClassLoader> proxyClassLoaders = new HashMap<Bundle, ProxyClassLoader>();
-
- private void closeProxyClassLoaderCache() {
- synchronized (proxyClassLoaders) {
- proxyClassLoaders.clear();
- }
- }
-
- private ClassLoader getProxyClassLoader(Bundle bundle) {
- ProxyClassLoader proxyClassLoaderForBundle = null;
- synchronized (proxyClassLoaders) {
- proxyClassLoaderForBundle = proxyClassLoaders.get(bundle);
- if (proxyClassLoaderForBundle == null) {
- proxyClassLoaderForBundle = new ProxyClassLoader(bundle);
- proxyClassLoaders.put(bundle, proxyClassLoaderForBundle);
- } else
- proxyClassLoaderForBundle.addServiceUseCount();
- }
- return proxyClassLoaderForBundle;
- }
-
- private void ungetProxyClassLoader(Bundle bundle) {
- synchronized (proxyClassLoaders) {
- ProxyClassLoader proxyClassLoaderForBundle = proxyClassLoaders
- .get(bundle);
- if (proxyClassLoaderForBundle != null) {
- int useCount = proxyClassLoaderForBundle.getServiceUseCount();
- if (useCount == 0)
- proxyClassLoaders.remove(bundle);
- else
- proxyClassLoaderForBundle.removeServiceUseCount();
- }
- }
- }
-
- protected class ProxyClassLoader extends ClassLoader {
- private Bundle loadingBundle;
- private int serviceUseCount = 0;
-
- public ProxyClassLoader(Bundle loadingBundle) {
- this.loadingBundle = loadingBundle;
- }
-
- public Class loadClass(String name) throws ClassNotFoundException {
- return loadingBundle.loadClass(name);
- }
-
- public int getServiceUseCount() {
- return serviceUseCount;
- }
-
- public void addServiceUseCount() {
- serviceUseCount++;
- }
-
- public void removeServiceUseCount() {
- serviceUseCount--;
- }
- }
-
- private String getPackageName(String className) {
- int lastDotIndex = className.lastIndexOf("."); //$NON-NLS-1$
- if (lastDotIndex == -1)
- return ""; //$NON-NLS-1$
- return className.substring(0, lastDotIndex);
- }
-
- private boolean comparePackageVersions(String packageName,
- Version remoteVersion, Version localVersion)
- throws RuntimeException {
-
- LogUtility.trace(
- "comparePackageVersions", //$NON-NLS-1$
- DebugOptions.PACKAGE_VERSION_COMPARATOR, this.getClass(),
- "packageName=" + packageName + ",remoteVersion=" //$NON-NLS-1$ //$NON-NLS-2$
- + remoteVersion + ",localVersion=" + localVersion); //$NON-NLS-1$
-
- // If no remote version info, then set it to empty
- if (remoteVersion == null) remoteVersion = Version.emptyVersion;
- if (localVersion == null) localVersion = Version.emptyVersion;
-
- // By default we do strict comparison of remote with local...they must
- // be exactly the same, or we thrown a runtime exception
- int compareResult = localVersion.compareTo(remoteVersion);
- // Now check compare result, and throw exception to fail compare
- return (compareResult != 0);
- }
-
- private boolean verifyServiceInterfaceVersionsForProxy(Bundle bundle,
- Collection<Class> classes, Map<String, Version> interfaceVersions) {
- // For all service interface classes
- boolean result = true;
- for (Class clazz : classes) {
- String className = clazz.getName();
- String packageName = getPackageName(className);
- // Now get remoteVersion, localVersion and do compare via package
- // version comparator service
- Version remoteVersion = interfaceVersions.get(className);
- Version localVersion = getPackageVersionViaRequestingBundle(
- packageName, bundle);
- if (comparePackageVersions(packageName, remoteVersion, localVersion)) {
- logError("verifyServiceInterfaceVersionsForProxy", //$NON-NLS-1$
- "Failed version check for proxy creation. clientBundle=" //$NON-NLS-1$
- + clientBundle + " interfaceType=" + className //$NON-NLS-1$
- + " remoteVersion=" + remoteVersion //$NON-NLS-1$
- + " localVersion=" + localVersion); //$NON-NLS-1$
- result = false;
- }
- }
- return result;
- }
-
- private Version getVersionForMatchingCapability(String packageName,
- BundleCapability capability) {
- // If it's a package namespace (Import-Package)
- Map<String, Object> attributes = capability.getAttributes();
- // Then we get the package attribute
- String p = (String) attributes.get(BundleRevision.PACKAGE_NAMESPACE);
- // And compare it to the package name
- if (p != null && packageName.equals(p))
- return (Version) attributes.get(Constants.VERSION_ATTRIBUTE);
- return null;
- }
-
- private Version getPackageVersionForMatchingWire(String packageName,
- List<BundleWire> bundleWires, String namespace) {
- Version result = null;
- for (BundleWire wire : bundleWires) {
- if (namespace.equals(BundleRevision.PACKAGE_NAMESPACE))
- result = getVersionForMatchingCapability(packageName,
- wire.getCapability());
- else if (namespace.equals(BundleRevision.BUNDLE_NAMESPACE))
- // If it's a bundle namespace (Require-Bundle), then we get the
- // version for package
- // of the providing bundle
- result = getVersionForPackage(wire.getProvider().getBundle(),
- packageName);
-
- if (result != null)
- return result;
-
- }
- return result;
- }
-
- private Version getVersionForPackage(Bundle providingBundle,
- String packageName) {
- Version result = null;
- BundleRevision providingBundleRevision = providingBundle
- .adapt(BundleRevision.class);
- if (providingBundleRevision == null)
- return null;
- List<BundleCapability> providerCapabilities = providingBundleRevision
- .getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE);
- for (BundleCapability c : providerCapabilities) {
- result = getVersionForMatchingCapability(packageName, c);
- if (result != null)
- return result;
- }
- return result;
- }
-
- private Version getPackageVersionViaRequestingBundle(String packageName,
- Bundle requestingBundle) {
- Version result = null;
- // First check the requesting bundle for the desired export package
- // capability
- BundleRevision requestingBundleRevision = (BundleRevision) requestingBundle
- .adapt(BundleRevision.class);
- if (requestingBundleRevision != null) {
- List<BundleCapability> requestingBundleCapabilities = requestingBundleRevision
- .getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE);
- for (BundleCapability requestingBundleCapability : requestingBundleCapabilities) {
- Version version = getVersionForMatchingCapability(packageName,
- requestingBundleCapability);
- // If found, set our result
- if (version != null)
- result = version;
- }
- }
- // If not found in requestingBundle export package, then
- // look in exported package that are wired to the requesting bundle
- if (result == null) {
- // look for wired exported packages
- BundleWiring requestingBundleWiring = requestingBundle
- .adapt(BundleWiring.class);
- if (requestingBundleWiring != null) {
- result = getPackageVersionForMatchingWire(
- packageName,
- requestingBundleWiring
- .getRequiredWires(BundleRevision.PACKAGE_NAMESPACE),
- BundleRevision.PACKAGE_NAMESPACE);
- // If not found in wired exported packages, then look
- // in wired require bundles
- if (result == null)
- result = getPackageVersionForMatchingWire(
- packageName,
- requestingBundleWiring
- .getRequiredWires(BundleRevision.BUNDLE_NAMESPACE),
- BundleRevision.BUNDLE_NAMESPACE);
- }
- }
- return result;
- }
-
- private IRemoteServiceReference selectRemoteServiceReference(
- Collection<IRemoteServiceReference> rsRefs, ID targetID,
- ID[] idFilter, Collection<String> interfaces, String rsFilter,
- IRemoteServiceContainer rsContainer) {
- if (rsRefs.size() == 0)
- return null;
- if (rsRefs.size() > 1) {
- logWarning("selectRemoteServiceReference", "rsRefs=" + rsRefs //$NON-NLS-1$ //$NON-NLS-2$
- + ",targetID=" + targetID + ",idFilter=" + idFilter //$NON-NLS-1$ //$NON-NLS-2$
- + ",interfaces=" + interfaces + ",rsFilter=" + rsFilter //$NON-NLS-1$ //$NON-NLS-2$
- + ",rsContainer=" + rsContainer.getContainer().getID() //$NON-NLS-1$
- + " has " + rsRefs.size() //$NON-NLS-1$
- + " values. Selecting the first element"); //$NON-NLS-1$
- }
- return rsRefs.iterator().next();
- }
-
- private Map createProxyProperties(EndpointDescription endpointDescription,
- IRemoteServiceContainer rsContainer,
- IRemoteServiceReference rsReference, IRemoteService remoteService) {
-
- Map resultProperties = new TreeMap<String, Object>(
- String.CASE_INSENSITIVE_ORDER);
- PropertiesUtil.copyNonReservedProperties(rsReference, resultProperties);
- // remove OBJECTCLASS
- resultProperties
- .remove(org.eclipse.ecf.remoteservice.Constants.OBJECTCLASS);
- // remove remote service id
- resultProperties
- .remove(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
- // Set intents if there are intents
- Object intentsValue = PropertiesUtil
- .convertToStringPlusValue(endpointDescription.getIntents());
- if (intentsValue != null)
- resultProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS,
- intentsValue);
-
- // Set service.imported to IRemoteService unless
- // SERVICE_IMPORTED_VALUETYPE is
- // set
- String serviceImportedType = (String) endpointDescription
- .getProperties()
- .get(org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_VALUETYPE);
- if (serviceImportedType == null
- || serviceImportedType.equals(IRemoteService.class.getName()))
- resultProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED,
- remoteService);
- else
- resultProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED,
- new Boolean(true));
-
- String[] exporterSupportedConfigs = (String[]) endpointDescription
- .getProperties()
- .get(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED);
- String[] importedConfigs = getImportedConfigs(
- rsContainer.getContainer(), exporterSupportedConfigs);
- // Set service.imported.configs
- resultProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
- importedConfigs);
-
- // Set endpoint.id and endpoint.service.id
- resultProperties
- .put(org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_ENDPOINT_ID,
- endpointDescription
- .getProperties()
- .get(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID));
- resultProperties
- .put(org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_ENDPOINT_SERVICE_ID,
- endpointDescription
- .getProperties()
- .get(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID));
-
- return resultProperties;
- }
-
- private ExportRegistration exportService(ServiceReference serviceReference,
- Map<String, ?> overridingProperties,
- String[] exportedInterfaces, IRemoteServiceContainer rsContainer,
- Map<String, Object> endpointDescriptionProperties) throws Exception {
-
- // Create remote service properties
- Map remoteServiceProperties = copyNonReservedProperties(
- serviceReference, (Map<String,Object>) overridingProperties,
- new TreeMap<String, Object>(String.CASE_INSENSITIVE_ORDER));
-
- IRemoteServiceContainerAdapter containerAdapter = rsContainer
- .getContainerAdapter();
-
- // Register remote service via ECF container adapter to create
- // remote service registration
- IRemoteServiceRegistration remoteRegistration = null;
- if (containerAdapter instanceof IOSGiRemoteServiceContainerAdapter) {
- IOSGiRemoteServiceContainerAdapter osgiContainerAdapter = (IOSGiRemoteServiceContainerAdapter) containerAdapter;
- remoteRegistration = osgiContainerAdapter.registerRemoteService(
- exportedInterfaces, serviceReference, PropertiesUtil
- .createDictionaryFromMap(remoteServiceProperties));
- } else
- remoteRegistration = containerAdapter.registerRemoteService(
- exportedInterfaces,
- getClientBundleContext().getService(serviceReference),
- PropertiesUtil
- .createDictionaryFromMap(remoteServiceProperties));
- endpointDescriptionProperties
- .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
- remoteRegistration
- .getProperty(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID));
- EndpointDescription endpointDescription = new EndpointDescription(
- serviceReference, endpointDescriptionProperties);
- // Create ExportEndpoint/ExportRegistration
- return new ExportRegistration(new ExportEndpoint(serviceReference,
- endpointDescription, remoteRegistration));
- }
-
- private ImportRegistration importService(
- EndpointDescription endpointDescription,
- IRemoteServiceContainer rsContainer) {
- trace("doImportService", "endpointDescription=" + endpointDescription //$NON-NLS-1$ //$NON-NLS-2$
- + ",rsContainerID=" + rsContainer.getContainer().getID()); //$NON-NLS-1$
- // Get interfaces from endpoint description
- Collection<String> interfaces = endpointDescription.getInterfaces();
- Assert.isNotNull(interfaces);
- Assert.isTrue(interfaces.size() > 0);
- // Get ECF endpoint ID...if this throws IDCreateException (because the
- // local system does not have
- // namespace for creating ID, or no namespace is present in
- // endpointDescription or endpoint id,
- // then it will be caught by the caller
- ID endpointContainerID = endpointDescription.getContainerID();
- Assert.isNotNull(endpointContainerID);
- // Get connect target ID. May be null
- ID targetID = endpointDescription.getConnectTargetID();
- if (targetID == null)
- targetID = endpointContainerID;
- // Get idFilter...also may be null
- ID[] idFilter = getIDFilter(endpointDescription, endpointContainerID);
- // Get remote service filter
- String rsFilter = getRemoteServiceFilter(endpointDescription);
- // IRemoteServiceReferences from query
- Collection<IRemoteServiceReference> rsRefs = new ArrayList<IRemoteServiceReference>();
- // Get IRemoteServiceContainerAdapter
- IRemoteServiceContainerAdapter containerAdapter = rsContainer
- .getContainerAdapter();
- // rsContainerID
- ID rsContainerID = rsContainer.getContainer().getID();
- try {
- // Get first interface name for service reference
- // lookup
- String intf = interfaces.iterator().next();
- // Get/lookup remote service references
- IRemoteServiceReference[] refs = containerAdapter
- .getRemoteServiceReferences(targetID, idFilter, intf,
- rsFilter);
- if (refs == null) {
- logWarning("doImportService", //$NON-NLS-1$
- "getRemoteServiceReferences return null for targetID=" //$NON-NLS-1$
- + targetID + ",idFilter=" + idFilter //$NON-NLS-1$
- + ",intf=" + intf + ",rsFilter=" + rsFilter //$NON-NLS-1$ //$NON-NLS-2$
- + " on rsContainerID=" + rsContainerID); //$NON-NLS-1$
- } else
- for (int i = 0; i < refs.length; i++)
- rsRefs.add(refs[i]);
- // If there are several refs resulting (should not be)
- // we select the one to use
- IRemoteServiceReference selectedRsReference = selectRemoteServiceReference(
- rsRefs, targetID, idFilter, interfaces, rsFilter,
- rsContainer);
- // If none found, we obviously can't continue
- if (selectedRsReference == null)
- throw new RemoteReferenceNotFoundException(targetID, idFilter,
- interfaces, rsFilter);
-
- return new ImportRegistration(createAndRegisterProxy(
- endpointDescription, rsContainer, selectedRsReference));
- } catch (Exception e) {
- logError(
- "importService", "selectRemoteServiceReference returned null for rsRefs=" //$NON-NLS-1$ //$NON-NLS-2$
- + rsRefs + ",targetID=" + targetID //$NON-NLS-1$
- + ",idFilter=" + idFilter + ",interfaces=" //$NON-NLS-1$ //$NON-NLS-2$
- + interfaces + ",rsFilter=" + rsFilter //$NON-NLS-1$
- + ",rsContainerID=" + rsContainerID, e); //$NON-NLS-1$
- return new ImportRegistration(endpointDescription, e);
- }
- }
-
- private void closeExportRegistrations() {
- List<ExportRegistration> toClose = null;
- synchronized (exportedRegistrations) {
- toClose = new ArrayList<ExportRegistration>(exportedRegistrations);
- exportedRegistrations.clear();
- }
- for (ExportRegistration reg : toClose)
- reg.close();
- }
-
- private void closeImportRegistrations() {
- List<ImportRegistration> toClose = null;
- synchronized (importedRegistrations) {
- toClose = new ArrayList<ImportRegistration>(importedRegistrations);
- importedRegistrations.clear();
- }
- for (ImportRegistration reg : toClose)
- reg.close();
- }
-
- public void close() {
- trace("close", "closing importedRegistrations=" + importedRegistrations //$NON-NLS-1$ //$NON-NLS-2$
- + " exportedRegistrations=" + exportedRegistrations); //$NON-NLS-1$
- closeRemoteServiceAdminListenerTracker();
- closeEventAdminTracker();
- closePackageAdminTracker();
- closeProxyClassLoaderCache();
- closeConsumerContainerSelectorTracker();
- closeHostContainerSelectorTracker();
- closeDefaultContainerSelectors();
- closeImportRegistrations();
- closeExportRegistrations();
- this.clientBundle = null;
- }
-
- private ImportEndpoint findImportEndpoint(EndpointDescription ed) {
- for (ImportRegistration reg : importedRegistrations) {
- ImportEndpoint endpoint = reg.getImportEndpoint(ed);
- if (endpoint != null)
- return endpoint;
- }
- return null;
- }
-
- private void unimportService(IRemoteServiceID remoteServiceID) {
- List<ImportRegistration> removedRegistrations = new ArrayList<ImportRegistration>();
- synchronized (importedRegistrations) {
- for (Iterator<ImportRegistration> i = importedRegistrations
- .iterator(); i.hasNext();) {
- ImportRegistration importRegistration = i.next();
- if (importRegistration != null
- && importRegistration.match(remoteServiceID))
- removedRegistrations.add(importRegistration);
- }
- }
- // Now close all of them
- for (ImportRegistration removedReg : removedRegistrations) {
- trace("unimportService", "closing importRegistration=" + removedReg); //$NON-NLS-1$ //$NON-NLS-2$
- removedReg.close();
- }
- }
-
- class RemoteServiceListener implements IRemoteServiceListener {
- public void handleServiceEvent(IRemoteServiceEvent event) {
- if (event instanceof IRemoteServiceUnregisteredEvent)
- unimportService(event.getReference().getID());
- }
- }
-
- private void trace(String methodName, String message) {
- LogUtility.trace(methodName, DebugOptions.REMOTE_SERVICE_ADMIN,
- this.getClass(), message);
- }
-
- private void logWarning(String methodName, String message) {
- LogUtility.logWarning(methodName, DebugOptions.REMOTE_SERVICE_ADMIN,
- this.getClass(), message);
- }
-
- private void logError(String methodName, String message, Throwable t) {
- LogUtility.logError(methodName, DebugOptions.REMOTE_SERVICE_ADMIN,
- this.getClass(), message, t);
- }
-
- private void logError(String methodName, String message) {
- logError(methodName, message, (Throwable) null);
- }
-
- public class RemoteServiceAdminEvent extends
- org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent {
-
- private ID containerID;
-
- public RemoteServiceAdminEvent(
- ID containerID,
- int type,
- Bundle source,
- org.osgi.service.remoteserviceadmin.ExportReference exportReference,
- Throwable exception) {
- super(type, source, exportReference, exception);
- this.containerID = containerID;
- }
-
- public RemoteServiceAdminEvent(
- ID containerID,
- int type,
- Bundle source,
- org.osgi.service.remoteserviceadmin.ImportReference importReference,
- Throwable exception) {
- super(type, source, importReference, exception);
- this.containerID = containerID;
- }
-
- public ID getContainerID() {
- return containerID;
- }
-
- public String toString() {
- return "RemoteServiceAdminEvent[containerID=" + containerID //$NON-NLS-1$
- + ", getType()=" + getType() + ", getSource()=" + getSource() //$NON-NLS-1$ //$NON-NLS-2$
- + ", getException()=" + getException() //$NON-NLS-1$
- + ", getImportReference()=" + getImportReference() //$NON-NLS-1$
- + ", getExportReference()=" + getExportReference() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeMap;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.util.ECFException;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
+import org.eclipse.ecf.remoteservice.IOSGiRemoteServiceContainerAdapter;
+import org.eclipse.ecf.remoteservice.IRemoteService;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;
+import org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter;
+import org.eclipse.ecf.remoteservice.IRemoteServiceID;
+import org.eclipse.ecf.remoteservice.IRemoteServiceListener;
+import org.eclipse.ecf.remoteservice.IRemoteServiceReference;
+import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
+import org.eclipse.ecf.remoteservice.events.IRemoteServiceEvent;
+import org.eclipse.ecf.remoteservice.events.IRemoteServiceUnregisteredEvent;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.Constants;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceException;
+import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.framework.Version;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleWire;
+import org.osgi.framework.wiring.BundleWiring;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventAdmin;
+import org.osgi.service.remoteserviceadmin.EndpointPermission;
+import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener;
+import org.osgi.util.tracker.ServiceTracker;
+
+/**
+ * ECF implementation of <a
+ * href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf">OSGI 4.2 Remote
+ * Service Admin service</a>. This service can be used by topology managers to
+ * to export and/or import remote services with any <a
+ * href="http://wiki.eclipse.org/ECF_Connection_Creation_and_Management">ECF
+ * container</a> that implements the <a
+ * href="http://wiki.eclipse.org/ECF/API_Docs#Remote_Services_API">ECF remote
+ * service API</a>.
+ */
+public class RemoteServiceAdmin implements
+ org.osgi.service.remoteserviceadmin.RemoteServiceAdmin {
+
+ public static final String SERVICE_PROP = "org.eclipse.ecf.rsa"; //$NON-NLS-1$
+
+ private Bundle clientBundle;
+
+ private boolean hostAutoCreateContainer = new Boolean(
+ System.getProperty(
+ "org.eclipse.ecf.osgi.services.remoteserviceadmin.hostAutoCreateContainer", //$NON-NLS-1$
+ "true")).booleanValue(); //$NON-NLS-1$
+ private String[] hostDefaultConfigTypes = new String[] { System
+ .getProperty(
+ "org.eclipse.ecf.osgi.services.remoteserviceadmin.hostDefaultConfigType", //$NON-NLS-1$
+ "ecf.generic.server") }; //$NON-NLS-1$
+
+ private boolean consumerAutoCreateContainer = new Boolean(
+ System.getProperty(
+ "org.eclipse.ecf.osgi.services.remoteserviceadmin.consumerAutoCreateContainer", //$NON-NLS-1$
+ "true")).booleanValue(); //$NON-NLS-1$
+
+ private ServiceTracker packageAdminTracker;
+ private Object packageAdminTrackerLock = new Object();
+
+ private Object eventAdminTrackerLock = new Object();
+ private ServiceTracker eventAdminTracker;
+
+ private Object remoteServiceAdminListenerTrackerLock = new Object();
+ private ServiceTracker remoteServiceAdminListenerTracker;
+
+ private HostContainerSelector defaultHostContainerSelector;
+ private ServiceRegistration defaultHostContainerSelectorRegistration;
+
+ private ConsumerContainerSelector defaultConsumerContainerSelector;
+ private ServiceRegistration defaultConsumerContainerSelectorRegistration;
+
+ private Collection<ExportRegistration> exportedRegistrations = new ArrayList<ExportRegistration>();
+ private Collection<ImportRegistration> importedRegistrations = new ArrayList<ImportRegistration>();
+
+ public RemoteServiceAdmin(Bundle clientBundle) {
+ this.clientBundle = clientBundle;
+ Assert.isNotNull(this.clientBundle);
+ trace("RemoteServiceAdmin<init>", //$NON-NLS-1$
+ "clientBundle=" + clientBundle.getSymbolicName()); //$NON-NLS-1$
+ // Only setup defaults if it hasn't already been done by some other
+ // Remote Service Admin instance
+ Properties props = new Properties();
+ props.put(org.osgi.framework.Constants.SERVICE_RANKING, new Integer(
+ Integer.MIN_VALUE));
+ // host container selector
+ ServiceReference[] hostContainerSelectorRefs = null;
+ try {
+ hostContainerSelectorRefs = getClientBundleContext()
+ .getServiceReferences(
+ IHostContainerSelector.class.getName(), null);
+ } catch (InvalidSyntaxException e) {
+ // will not happen
+ }
+ // register a default only if no others already exist
+ if (hostContainerSelectorRefs == null
+ || hostContainerSelectorRefs.length == 0) {
+ defaultHostContainerSelector = new HostContainerSelector(
+ hostDefaultConfigTypes, hostAutoCreateContainer);
+ defaultHostContainerSelectorRegistration = getClientBundleContext()
+ .registerService(IHostContainerSelector.class.getName(),
+ defaultHostContainerSelector, (Dictionary) props);
+ }
+ // consumer container selector
+ ServiceReference[] consumerContainerSelectorRefs = null;
+ try {
+ consumerContainerSelectorRefs = getClientBundleContext()
+ .getServiceReferences(
+ IConsumerContainerSelector.class.getName(), null);
+ } catch (InvalidSyntaxException e) {
+ // will not happen
+ }
+ // register a default only if no others already exist
+ if (consumerContainerSelectorRefs == null
+ || consumerContainerSelectorRefs.length == 0) {
+ defaultConsumerContainerSelector = new ConsumerContainerSelector(
+ consumerAutoCreateContainer);
+ defaultConsumerContainerSelectorRegistration = getClientBundleContext()
+ .registerService(
+ IConsumerContainerSelector.class.getName(),
+ defaultConsumerContainerSelector,
+ (Dictionary) props);
+ }
+ }
+
+ private boolean validExportedInterfaces(ServiceReference serviceReference,
+ String[] exportedInterfaces) {
+ if (exportedInterfaces == null || exportedInterfaces.length == 0)
+ return false;
+ List<String> objectClassList = Arrays
+ .asList((String[]) serviceReference
+ .getProperty(org.osgi.framework.Constants.OBJECTCLASS));
+ for (int i = 0; i < exportedInterfaces.length; i++)
+ if (!objectClassList.contains(exportedInterfaces[i]))
+ return false;
+ return true;
+ }
+
+ // RemoteServiceAdmin service interface impl methods
+ public Collection<org.osgi.service.remoteserviceadmin.ExportRegistration> exportService(
+ ServiceReference serviceReference,
+ Map<String, ?> overridingProperties) {
+
+ trace("exportService", "serviceReference=" + serviceReference //$NON-NLS-1$ //$NON-NLS-2$
+ + ",properties=" + overridingProperties); //$NON-NLS-1$
+
+ overridingProperties = PropertiesUtil.mergeProperties(serviceReference,
+ overridingProperties == null ? Collections.EMPTY_MAP
+ : overridingProperties);
+
+ // First get exported interfaces
+ String[] exportedInterfaces = PropertiesUtil.getExportedInterfaces(
+ serviceReference, overridingProperties);
+ if (exportedInterfaces == null)
+ throw new IllegalArgumentException(
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_INTERFACES
+ + " not set"); //$NON-NLS-1$
+ // verifyExportedInterfaces
+ if (!validExportedInterfaces(serviceReference, exportedInterfaces))
+ return Collections.EMPTY_LIST;
+
+ // Get optional exported configs
+ String[] exportedConfigs = PropertiesUtil
+ .getStringArrayFromPropertyValue(overridingProperties
+ .get(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_CONFIGS));
+ if (exportedConfigs == null) {
+ exportedConfigs = PropertiesUtil
+ .getStringArrayFromPropertyValue(serviceReference
+ .getProperty(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_EXPORTED_CONFIGS));
+ }
+ // Get all intents (service.intents, service.exported.intents,
+ // service.exported.intents.extra)
+ String[] serviceIntents = PropertiesUtil.getServiceIntents(
+ serviceReference, overridingProperties);
+
+ // Get a host container selector, and use it to
+ IHostContainerSelector hostContainerSelector = getHostContainerSelector();
+ // select ECF remote service containers that match given exported
+ // interfaces, configs, and intents
+ IRemoteServiceContainer[] rsContainers = null;
+ try {
+ rsContainers = hostContainerSelector.selectHostContainers(
+ serviceReference, (Map<String,Object>) overridingProperties, exportedInterfaces,
+ exportedConfigs, serviceIntents);
+ } catch (SelectContainerException e) {
+ ExportRegistration errorRegistration = createErrorExportRegistration(
+ serviceReference, (Map<String,Object>) overridingProperties,
+ "Error selecting or creating host container for serviceReference=" //$NON-NLS-1$
+ + serviceReference + " properties=" //$NON-NLS-1$
+ + overridingProperties, e);
+ Collection<org.osgi.service.remoteserviceadmin.ExportRegistration> result = new ArrayList<org.osgi.service.remoteserviceadmin.ExportRegistration>();
+ result.add(errorRegistration);
+ publishExportEvent(errorRegistration);
+ return result;
+ }
+ // If none found, log warning and return
+ if (rsContainers == null || rsContainers.length == 0) {
+ String errorMessage = "No containers found for serviceReference=" //$NON-NLS-1$
+ + serviceReference
+ + " properties=" + overridingProperties + ". Remote service NOT EXPORTED"; //$NON-NLS-1$//$NON-NLS-2$
+ logWarning("exportService", errorMessage); //$NON-NLS-1$
+ return Collections.EMPTY_LIST;
+ }
+ Collection<ExportRegistration> exportRegistrations = new ArrayList<ExportRegistration>();
+ synchronized (exportedRegistrations) {
+ for (int i = 0; i < rsContainers.length; i++) {
+ ExportRegistration exportRegistration = null;
+ // If we've already got an export endpoint
+ // for this service reference/containerID combination,
+ // then create an ExportRegistration that uses the endpoint
+ ExportEndpoint exportEndpoint = findExistingExportEndpoint(
+ serviceReference, rsContainers[i].getContainer()
+ .getID());
+ // If we've already got one, then create a new
+ // ExportRegistration for it and we're done
+ if (exportEndpoint != null)
+ exportRegistration = new ExportRegistration(exportEndpoint);
+ else {
+ Map endpointDescriptionProperties = createExportEndpointDescriptionProperties(
+ serviceReference, (Map<String,Object>) overridingProperties,
+ exportedInterfaces, serviceIntents, rsContainers[i]);
+ // otherwise, actually export the service to create a new
+ // ExportEndpoint and use it to create a new
+ // ExportRegistration
+ EndpointDescription endpointDescription = new EndpointDescription(
+ serviceReference, endpointDescriptionProperties);
+ try {
+ // Check security access for export
+ checkEndpointPermission(endpointDescription,
+ EndpointPermission.EXPORT);
+ // Actually do the export and return export registration
+ exportRegistration = exportService(serviceReference,
+ overridingProperties, exportedInterfaces,
+ rsContainers[i], endpointDescriptionProperties);
+ } catch (Exception e) {
+ exportRegistration = new ExportRegistration(e,
+ endpointDescription);
+ }
+ }
+ // If no exception, we add it to our known set of exported
+ // registrations
+ if (exportRegistration.getException() == null)
+ addExportRegistration(exportRegistration);
+ // We add it to the results in either case
+ exportRegistrations.add(exportRegistration);
+ }
+ }
+ // publish all activeExportRegistrations
+ for (ExportRegistration exportReg : exportRegistrations)
+ publishExportEvent(exportReg);
+ // and return
+ return new ArrayList<org.osgi.service.remoteserviceadmin.ExportRegistration>(
+ exportRegistrations);
+ }
+
+ private ExportRegistration createErrorExportRegistration(
+ ServiceReference serviceReference,
+ Map<String, Object> overridingProperties, String errorMessage,
+ SelectContainerException exception) {
+ ContainerTypeDescription ctd = exception.getContainerTypeDescription();
+ overridingProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
+ "noendpoint"); //$NON-NLS-1$
+ overridingProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
+ (ctd == null) ? "noconfig" : ctd.getName()); //$NON-NLS-1$
+ return new ExportRegistration(exception, new EndpointDescription(
+ serviceReference, overridingProperties));
+ }
+
+ public org.osgi.service.remoteserviceadmin.ImportRegistration importService(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
+
+ trace("importService", "endpointDescription=" + endpointDescription); //$NON-NLS-1$ //$NON-NLS-2$
+ // First, make sure that the client bundle has the IMPORT endpoint
+ // permission
+ checkEndpointPermission(endpointDescription, EndpointPermission.IMPORT);
+
+ EndpointDescription ed = null;
+ if (endpointDescription instanceof EndpointDescription)
+ ed = (EndpointDescription) endpointDescription;
+ else
+ ed = new EndpointDescription(endpointDescription.getProperties());
+
+ // Now get IConsumerContainerSelector, to select the ECF container
+ // for the given endpointDescription
+ IConsumerContainerSelector consumerContainerSelector = getConsumerContainerSelector();
+ // If there is none, then we can go no further
+ if (consumerContainerSelector == null) {
+ logError("importService", //$NON-NLS-1$
+ "No defaultConsumerContainerSelector available"); //$NON-NLS-1$
+ return null;
+ }
+ // Select the rsContainer to handle the endpoint description
+ IRemoteServiceContainer rsContainer = null;
+ try {
+ rsContainer = consumerContainerSelector.selectConsumerContainer(ed);
+ } catch (SelectContainerException e) {
+ ImportRegistration errorRegistration = new ImportRegistration(ed, e);
+ publishImportEvent(errorRegistration);
+ return errorRegistration;
+ }
+ // If none found, log a warning and we're done
+ if (rsContainer == null) {
+ logWarning(
+ "importService", "No remote service container selected for endpoint=" //$NON-NLS-1$ //$NON-NLS-2$
+ + endpointDescription
+ + ". Remote service NOT IMPORTED"); //$NON-NLS-1$
+ return null;
+ }
+ // If one selected then import the service to create an import
+ // registration
+ ImportRegistration importRegistration = null;
+ synchronized (importedRegistrations) {
+ ImportEndpoint importEndpoint = findImportEndpoint(ed);
+ if (importEndpoint != null)
+ importRegistration = new ImportRegistration(importEndpoint);
+ else {
+ importRegistration = importService(ed, rsContainer);
+ if (importRegistration.getException() == null)
+ addImportRegistration(importRegistration);
+ }
+ }
+ // publish import event
+ publishImportEvent(importRegistration);
+ // Finally, return the importRegistration. It may be null or not.
+ return importRegistration;
+ }
+
+ public Collection<org.osgi.service.remoteserviceadmin.ExportReference> getExportedServices() {
+ Collection<org.osgi.service.remoteserviceadmin.ExportReference> results = new ArrayList<org.osgi.service.remoteserviceadmin.ExportReference>();
+ synchronized (exportedRegistrations) {
+ for (ExportRegistration reg : exportedRegistrations) {
+ org.osgi.service.remoteserviceadmin.ExportReference eRef = reg
+ .getExportReference();
+ if (eRef != null
+ && checkEndpointPermissionRead("getExportedServices", //$NON-NLS-1$
+ eRef.getExportedEndpoint()))
+ results.add(eRef);
+ }
+ }
+ return results;
+ }
+
+ public Collection<org.osgi.service.remoteserviceadmin.ImportReference> getImportedEndpoints() {
+ Collection<org.osgi.service.remoteserviceadmin.ImportReference> results = new ArrayList<org.osgi.service.remoteserviceadmin.ImportReference>();
+ synchronized (importedRegistrations) {
+ for (ImportRegistration reg : importedRegistrations) {
+ org.osgi.service.remoteserviceadmin.ImportReference iRef = reg
+ .getImportReference();
+ if (iRef != null
+ && checkEndpointPermissionRead("getImportedEndpoints", //$NON-NLS-1$
+ iRef.getImportedEndpoint()))
+ results.add(iRef);
+ }
+ }
+ return results;
+ }
+
+ // end RemoteServiceAdmin service interface impl methods
+
+ private boolean checkEndpointPermissionRead(
+ String methodName,
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription) {
+ try {
+ checkEndpointPermission(endpointDescription,
+ EndpointPermission.READ);
+ return true;
+ } catch (SecurityException e) {
+ logError(methodName,
+ "permission check failed for read access to endpointDescription=" //$NON-NLS-1$
+ + endpointDescription, e);
+ return false;
+ }
+ }
+
+ private BundleContext getClientBundleContext() {
+ return clientBundle.getBundleContext();
+ }
+
+ private Bundle getRSABundle() {
+ BundleContext bundleContext = Activator.getContext();
+ if (bundleContext == null)
+ return null;
+ return bundleContext.getBundle();
+ }
+
+ private void addImportRegistration(ImportRegistration importRegistration) {
+ synchronized (importedRegistrations) {
+ importedRegistrations.add(importRegistration);
+ trace("addImportRegistration", "importRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
+ + importRegistration + " importedRegistrations=" //$NON-NLS-1$
+ + importedRegistrations);
+ }
+ }
+
+ private void addExportRegistration(ExportRegistration exportRegistration) {
+ synchronized (exportedRegistrations) {
+ exportedRegistrations.add(exportRegistration);
+ trace("addExportRegistration", "exportRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
+ + exportRegistration + " exportedRegistrations=" //$NON-NLS-1$
+ + exportedRegistrations);
+ }
+ }
+
+ private boolean removeExportRegistration(
+ ExportRegistration exportRegistration) {
+ synchronized (exportedRegistrations) {
+ boolean removed = exportedRegistrations.remove(exportRegistration);
+ trace("removeExportRegistration", "exportRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
+ + exportRegistration + " exportedRegistrations=" //$NON-NLS-1$
+ + exportedRegistrations + " removed=" + removed); //$NON-NLS-1$
+ return removed;
+ }
+ }
+
+ private boolean removeImportRegistration(
+ ImportRegistration importRegistration) {
+ synchronized (importedRegistrations) {
+ boolean removed = importedRegistrations.remove(importRegistration);
+ trace("removeImportRegistration", "importRegistration=" //$NON-NLS-1$ //$NON-NLS-2$
+ + importRegistration + " importedRegistrations=" //$NON-NLS-1$
+ + importedRegistrations + " removed=" + removed); //$NON-NLS-1$
+ return removed;
+ }
+ }
+
+ private void closeDefaultContainerSelectors() {
+ if (defaultHostContainerSelectorRegistration != null) {
+ defaultHostContainerSelectorRegistration.unregister();
+ defaultHostContainerSelectorRegistration = null;
+ }
+ if (defaultHostContainerSelector != null) {
+ defaultHostContainerSelector.close();
+ defaultHostContainerSelector = null;
+ }
+ if (defaultConsumerContainerSelectorRegistration != null) {
+ defaultConsumerContainerSelectorRegistration.unregister();
+ defaultConsumerContainerSelectorRegistration = null;
+ }
+ if (defaultConsumerContainerSelector != null) {
+ defaultConsumerContainerSelector.close();
+ defaultConsumerContainerSelector = null;
+ }
+ }
+
+ private void checkEndpointPermission(
+ org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,
+ String permissionType) throws SecurityException {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm == null)
+ return;
+ sm.checkPermission(new EndpointPermission(endpointDescription,
+ Activator.getDefault().getFrameworkUUID(), permissionType));
+ }
+
+ class ExportEndpoint {
+
+ private ServiceReference serviceReference;
+ private EndpointDescription endpointDescription;
+
+ private IRemoteServiceRegistration rsRegistration;
+ private Set<ExportRegistration> activeExportRegistrations = new HashSet<ExportRegistration>();
+
+ ExportEndpoint(ServiceReference serviceReference,
+ EndpointDescription endpointDescription,
+ IRemoteServiceRegistration reg) {
+ Assert.isNotNull(serviceReference);
+ this.serviceReference = serviceReference;
+ Assert.isNotNull(endpointDescription);
+ this.endpointDescription = endpointDescription;
+ Assert.isNotNull(reg);
+ this.rsRegistration = reg;
+ }
+
+ synchronized ID getContainerID() {
+ return endpointDescription.getContainerID();
+ }
+
+ synchronized ServiceReference getServiceReference() {
+ return serviceReference;
+ }
+
+ synchronized EndpointDescription getEndpointDescription() {
+ return endpointDescription;
+ }
+
+ synchronized IRemoteServiceRegistration getRemoteServiceRegistration() {
+ return rsRegistration;
+ }
+
+ synchronized boolean addExportRegistration(
+ ExportRegistration exportRegistration) {
+ return this.activeExportRegistrations.add(exportRegistration);
+ }
+
+ synchronized boolean close(ExportRegistration exportRegistration) {
+ boolean removed = this.activeExportRegistrations
+ .remove(exportRegistration);
+ if (removed && activeExportRegistrations.size() == 0) {
+ if (rsRegistration != null) {
+ rsRegistration.unregister();
+ rsRegistration = null;
+ }
+ serviceReference = null;
+ endpointDescription = null;
+ }
+ return removed;
+ }
+ }
+
+ class ExportRegistration implements
+ org.osgi.service.remoteserviceadmin.ExportRegistration {
+
+ private ExportReference exportReference;
+
+ private boolean closed = false;
+
+ ExportRegistration(ExportEndpoint exportEndpoint) {
+ Assert.isNotNull(exportEndpoint);
+ exportEndpoint.addExportRegistration(this);
+ this.exportReference = new ExportReference(exportEndpoint);
+ }
+
+ ExportRegistration(Throwable exception,
+ EndpointDescription errorEndpointDescription) {
+ Assert.isNotNull(exception);
+ this.exportReference = new ExportReference(exception,
+ errorEndpointDescription);
+ this.closed = true;
+ }
+
+ ID getContainerID() {
+ return exportReference.getContainerID();
+ }
+
+ ServiceReference getServiceReference() {
+ return exportReference.getExportedService();
+ }
+
+ public org.osgi.service.remoteserviceadmin.ExportReference getExportReference() {
+ Throwable t = getException();
+ if (t != null)
+ throw new IllegalStateException(
+ "Cannot get export reference as export registration is invalid", //$NON-NLS-1$
+ t);
+ return exportReference;
+ }
+
+ boolean match(ServiceReference serviceReference) {
+ return match(serviceReference, null);
+ }
+
+ boolean match(ServiceReference serviceReference,
+ ID containerID) {
+ ServiceReference ourServiceReference = getServiceReference();
+ if (ourServiceReference == null)
+ return false;
+ boolean serviceReferenceCompare = ourServiceReference
+ .equals(serviceReference);
+ // If the second parameter is null, then we compare only on service
+ // references
+ if (containerID == null)
+ return serviceReferenceCompare;
+ ID ourContainerID = getContainerID();
+ if (ourContainerID == null)
+ return false;
+ return serviceReferenceCompare
+ && ourContainerID.equals(containerID);
+ }
+
+ synchronized ExportEndpoint getExportEndpoint(
+ ServiceReference serviceReference, ID containerID) {
+ return match(serviceReference, containerID) ? exportReference
+ .getExportEndpoint() : null;
+ }
+
+ IRemoteServiceRegistration getRemoteServiceRegistration() {
+ return exportReference.getRemoteServiceRegistration();
+ }
+
+ EndpointDescription getEndpointDescription() {
+ return exportReference.getEndpointDescription();
+ }
+
+ public void close() {
+ boolean publish = false;
+ ID containerID = null;
+ Throwable exception = null;
+ EndpointDescription endpointDescription = null;
+ synchronized (this) {
+ // Only do this once
+ if (!closed) {
+ containerID = getContainerID();
+ exception = getException();
+ endpointDescription = getEndpointDescription();
+ publish = exportReference.close(this);
+ closed = true;
+ }
+ }
+ removeExportRegistration(this);
+ Bundle rsaBundle = getRSABundle();
+ // Only publish events
+ if (publish && rsaBundle != null)
+ publishEvent(new RemoteServiceAdminEvent(containerID,
+ RemoteServiceAdminEvent.EXPORT_UNREGISTRATION,
+ rsaBundle, exportReference, exception),
+ endpointDescription);
+ }
+
+ public Throwable getException() {
+ return exportReference.getException();
+ }
+
+ }
+
+ class ExportReference implements
+ org.osgi.service.remoteserviceadmin.ExportReference {
+
+ private ExportEndpoint exportEndpoint;
+
+ private Throwable exception;
+ private EndpointDescription errorEndpointDescription;
+
+ ExportReference(ExportEndpoint exportEndpoint) {
+ Assert.isNotNull(exportEndpoint);
+ this.exportEndpoint = exportEndpoint;
+ }
+
+ ExportReference(Throwable exception,
+ EndpointDescription errorEndpointDescription) {
+ Assert.isNotNull(exception);
+ this.exception = exception;
+ Assert.isNotNull(exception);
+ this.errorEndpointDescription = errorEndpointDescription;
+ }
+
+ synchronized Throwable getException() {
+ return exception;
+ }
+
+ synchronized boolean close(ExportRegistration exportRegistration) {
+ if (exportEndpoint == null)
+ return false;
+ boolean result = exportEndpoint.close(exportRegistration);
+ exportEndpoint = null;
+ return result;
+ }
+
+ synchronized ExportEndpoint getExportEndpoint() {
+ return exportEndpoint;
+ }
+
+ synchronized IRemoteServiceRegistration getRemoteServiceRegistration() {
+ return (exportEndpoint == null) ? null : exportEndpoint
+ .getRemoteServiceRegistration();
+ }
+
+ synchronized ID getContainerID() {
+ return (exportEndpoint == null) ? null : exportEndpoint
+ .getContainerID();
+ }
+
+ public synchronized ServiceReference getExportedService() {
+ return (exportEndpoint == null) ? null : exportEndpoint
+ .getServiceReference();
+ }
+
+ public synchronized org.osgi.service.remoteserviceadmin.EndpointDescription getExportedEndpoint() {
+ return (exportEndpoint == null) ? null : exportEndpoint
+ .getEndpointDescription();
+ }
+
+ synchronized EndpointDescription getEndpointDescription() {
+ return (exportEndpoint == null) ? errorEndpointDescription
+ : exportEndpoint.getEndpointDescription();
+ }
+
+ }
+
+ class ImportEndpoint {
+
+ private IRemoteServiceContainerAdapter rsContainerAdapter;
+ private EndpointDescription endpointDescription;
+ private IRemoteServiceListener rsListener;
+ private IRemoteServiceReference rsReference;
+ private ServiceRegistration proxyRegistration;
+ private Set<ImportRegistration> activeImportRegistrations = new HashSet<ImportRegistration>();
+
+ ImportEndpoint(IRemoteServiceContainerAdapter rsContainerAdapter,
+ IRemoteServiceReference rsReference,
+ IRemoteServiceListener rsListener,
+ ServiceRegistration proxyRegistration,
+ EndpointDescription endpointDescription) {
+ this.rsContainerAdapter = rsContainerAdapter;
+ this.endpointDescription = endpointDescription;
+ this.rsReference = rsReference;
+ this.rsListener = rsListener;
+ this.proxyRegistration = proxyRegistration;
+ // Add the remoteservice listener to the container adapter, so that
+ // the rsListener notified asynchronously if our underlying remote
+ // service
+ // reference is unregistered locally due to disconnect or remote
+ // ejection
+ this.rsContainerAdapter.addRemoteServiceListener(this.rsListener);
+ }
+
+ synchronized EndpointDescription getEndpointDescription() {
+ return endpointDescription;
+ }
+
+ synchronized ServiceRegistration getProxyRegistration() {
+ return proxyRegistration;
+ }
+
+ synchronized ID getContainerID() {
+ return (rsReference == null) ? null : rsReference.getContainerID();
+ }
+
+ synchronized boolean addImportRegistration(
+ ImportRegistration importRegistration) {
+ return this.activeImportRegistrations.add(importRegistration);
+ }
+
+ synchronized boolean close(ImportRegistration importRegistration) {
+ boolean removed = this.activeImportRegistrations
+ .remove(importRegistration);
+ if (removed && activeImportRegistrations.size() == 0) {
+ if (proxyRegistration != null) {
+ proxyRegistration.unregister();
+ proxyRegistration = null;
+ }
+ if (rsContainerAdapter != null) {
+ if (rsReference != null) {
+ rsContainerAdapter.ungetRemoteService(rsReference);
+ rsReference = null;
+ }
+ // remove remote service listener
+ if (rsListener != null) {
+ rsContainerAdapter
+ .removeRemoteServiceListener(rsListener);
+ rsListener = null;
+ }
+ rsContainerAdapter = null;
+ }
+ endpointDescription = null;
+ }
+ return removed;
+ }
+
+ synchronized boolean match(IRemoteServiceID remoteServiceID) {
+ if (remoteServiceID == null || rsReference == null)
+ return false;
+ return rsReference.getID().equals(remoteServiceID);
+ }
+
+ synchronized boolean match(EndpointDescription ed) {
+ if (activeImportRegistrations.size() == 0)
+ return false;
+ return this.endpointDescription.isSameService(ed);
+ }
+
+ }
+
+ class ImportRegistration implements
+ org.osgi.service.remoteserviceadmin.ImportRegistration {
+
+ private ImportReference importReference;
+
+ private boolean closed = false;
+
+ ImportRegistration(ImportEndpoint importEndpoint) {
+ Assert.isNotNull(importEndpoint);
+ importEndpoint.addImportRegistration(this);
+ this.importReference = new ImportReference(importEndpoint);
+ }
+
+ ImportRegistration(EndpointDescription errorEndpointDescription,
+ Throwable exception) {
+ this.importReference = new ImportReference(
+ errorEndpointDescription, exception);
+ }
+
+ ID getContainerID() {
+ return importReference.getContainerID();
+ }
+
+ EndpointDescription getEndpointDescription() {
+ return importReference.getEndpointDescription();
+ }
+
+ boolean match(IRemoteServiceID remoteServiceID) {
+ return importReference.match(remoteServiceID);
+ }
+
+ ImportEndpoint getImportEndpoint(EndpointDescription ed) {
+ return importReference.match(ed);
+ }
+
+ public org.osgi.service.remoteserviceadmin.ImportReference getImportReference() {
+ Throwable t = getException();
+ if (t != null)
+ throw new IllegalStateException(
+ "Cannot get import reference as registration not properly initialized", //$NON-NLS-1$
+ t);
+ return importReference;
+ }
+
+ public void close() {
+ boolean publish = false;
+ ID containerID = null;
+ Throwable exception = null;
+ EndpointDescription endpointDescription = null;
+ synchronized (this) {
+ // only do this once
+ if (!closed) {
+ containerID = getContainerID();
+ exception = getException();
+ endpointDescription = getEndpointDescription();
+ publish = importReference.close(this);
+ closed = true;
+ }
+ }
+ removeImportRegistration(this);
+ Bundle rsaBundle = getRSABundle();
+ if (publish && rsaBundle != null)
+ publishEvent(
+ new RemoteServiceAdminEvent(
+ containerID,
+ RemoteServiceAdminEvent.IMPORT_UNREGISTRATION,
+ rsaBundle, importReference, exception),
+ endpointDescription);
+
+ }
+
+ public Throwable getException() {
+ return importReference.getException();
+ }
+
+ }
+
+ class ImportReference implements
+ org.osgi.service.remoteserviceadmin.ImportReference {
+
+ private ImportEndpoint importEndpoint;
+
+ private Throwable exception;
+ private EndpointDescription errorEndpointDescription;
+
+ ImportReference(ImportEndpoint importEndpoint) {
+ Assert.isNotNull(importEndpoint);
+ this.importEndpoint = importEndpoint;
+ }
+
+ ImportReference(EndpointDescription endpointDescription,
+ Throwable exception) {
+ Assert.isNotNull(exception);
+ this.exception = exception;
+ Assert.isNotNull(endpointDescription);
+ this.errorEndpointDescription = endpointDescription;
+ }
+
+ synchronized Throwable getException() {
+ return exception;
+ }
+
+ synchronized boolean match(IRemoteServiceID remoteServiceID) {
+ return (importEndpoint == null) ? false : importEndpoint
+ .match(remoteServiceID);
+ }
+
+ synchronized ImportEndpoint match(EndpointDescription ed) {
+ if (importEndpoint != null && importEndpoint.match(ed))
+ return importEndpoint;
+ return null;
+ }
+
+ synchronized EndpointDescription getEndpointDescription() {
+ return (importEndpoint == null) ? errorEndpointDescription
+ : importEndpoint.getEndpointDescription();
+ }
+
+ synchronized ID getContainerID() {
+ return (importEndpoint == null) ? null : importEndpoint
+ .getContainerID();
+ }
+
+ public synchronized ServiceReference getImportedService() {
+ return (importEndpoint == null) ? null : importEndpoint
+ .getProxyRegistration().getReference();
+ }
+
+ public synchronized org.osgi.service.remoteserviceadmin.EndpointDescription getImportedEndpoint() {
+ return (importEndpoint == null) ? null : importEndpoint
+ .getEndpointDescription();
+ }
+
+ synchronized boolean close(ImportRegistration importRegistration) {
+ if (importEndpoint == null)
+ return false;
+ boolean result = importEndpoint.close(importRegistration);
+ importEndpoint = null;
+ return result;
+ }
+
+ }
+
+ private void publishEvent(RemoteServiceAdminEvent event,
+ EndpointDescription endpointDescription) {
+ // send event synchronously to RemoteServiceAdminListeners
+ EndpointPermission perm = new EndpointPermission(endpointDescription,
+ Activator.getDefault().getFrameworkUUID(),
+ EndpointPermission.READ);
+ // notify synchronously all appropriate listeners (those with READ
+ // permission)
+ RemoteServiceAdminListener[] listeners = getListeners(perm);
+ if (listeners != null)
+ for (int i = 0; i < listeners.length; i++)
+ listeners[i].remoteAdminEvent(event);
+ // Now also post the event asynchronously to EventAdmin
+ postEvent(event, endpointDescription);
+ }
+
+ private void postEvent(RemoteServiceAdminEvent event,
+ EndpointDescription endpointDescription) {
+ EventAdmin eventAdmin = getEventAdmin();
+ if (eventAdmin == null) {
+ //logWarning("RemoteServiceAdmin.postEvent", "No event admin service available to post event=" //$NON-NLS-1$ //$NON-NLS-2$
+ // + event);
+ return;
+ }
+ int eventType = event.getType();
+ String eventTypeName = null;
+ String registrationTypeName = null;
+ switch (eventType) {
+ case (RemoteServiceAdminEvent.EXPORT_REGISTRATION):
+ eventTypeName = "EXPORT_REGISTRATION"; //$NON-NLS-1$
+ registrationTypeName = "export.registration";//$NON-NLS-1$
+ break;
+ case (RemoteServiceAdminEvent.EXPORT_ERROR):
+ eventTypeName = "EXPORT_ERROR"; //$NON-NLS-1$
+ registrationTypeName = "export.registration";//$NON-NLS-1$
+ break;
+ case (RemoteServiceAdminEvent.EXPORT_UNREGISTRATION):
+ eventTypeName = "EXPORT_UNREGISTRATION"; //$NON-NLS-1$
+ registrationTypeName = "export.registration";//$NON-NLS-1$
+ break;
+ case (RemoteServiceAdminEvent.EXPORT_WARNING):
+ eventTypeName = "EXPORT_WARNING"; //$NON-NLS-1$
+ registrationTypeName = "export.registration";//$NON-NLS-1$
+ break;
+ case (RemoteServiceAdminEvent.IMPORT_REGISTRATION):
+ eventTypeName = "IMPORT_REGISTRATION"; //$NON-NLS-1$
+ registrationTypeName = "import.registration";//$NON-NLS-1$
+ break;
+ case (RemoteServiceAdminEvent.IMPORT_ERROR):
+ eventTypeName = "IMPORT_ERROR"; //$NON-NLS-1$
+ registrationTypeName = "import.registration";//$NON-NLS-1$
+ break;
+ case (RemoteServiceAdminEvent.IMPORT_UNREGISTRATION):
+ eventTypeName = "IMPORT_UNREGISTRATION"; //$NON-NLS-1$
+ registrationTypeName = "import.registration";//$NON-NLS-1$
+ break;
+ case (RemoteServiceAdminEvent.IMPORT_WARNING):
+ eventTypeName = "IMPORT_WARNING"; //$NON-NLS-1$
+ registrationTypeName = "import.registration";//$NON-NLS-1$
+ break;
+ }
+ if (eventTypeName == null) {
+ logError("postEvent", "Event type=" + eventType //$NON-NLS-1$ //$NON-NLS-2$
+ + " not understood for event=" + event + ". Not posting"); //$NON-NLS-1$ //$NON-NLS-2$
+ return;
+ }
+ String topic = "org/osgi/service/remoteserviceadmin/" + eventTypeName; //$NON-NLS-1$
+ Bundle rsaBundle = getRSABundle();
+ if (rsaBundle == null) {
+ logError(
+ "postEvent", "RSA Bundle is null. Not posting remote service admin event=" + event); //$NON-NLS-1$ //$NON-NLS-2$
+ return;
+ }
+ Dictionary eventProperties = new Properties();
+ eventProperties.put("bundle", rsaBundle); //$NON-NLS-1$
+ eventProperties.put("bundle.id", //$NON-NLS-1$
+ new Long(rsaBundle.getBundleId()));
+ eventProperties.put("bundle.symbolicname", //$NON-NLS-1$
+ rsaBundle.getSymbolicName());
+ eventProperties.put("bundle.version", rsaBundle.getVersion()); //$NON-NLS-1$
+ String[] signers = getSignersForBundle(clientBundle);
+ if (signers != null && signers.length > 0)
+ eventProperties.put("bundle.signer", signers); //$NON-NLS-1$
+ Throwable t = event.getException();
+ if (t != null)
+ eventProperties.put("cause", t); //$NON-NLS-1$
+ long serviceId = endpointDescription.getServiceId();
+ if (serviceId != 0)
+ eventProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
+ new Long(serviceId));
+ String frameworkUUID = endpointDescription.getFrameworkUUID();
+ if (frameworkUUID != null)
+ eventProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
+ frameworkUUID);
+ String endpointId = endpointDescription.getId();
+ if (endpointId != null)
+ eventProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
+ endpointId);
+ List<String> interfaces = endpointDescription.getInterfaces();
+ if (interfaces != null && interfaces.size() > 0)
+ eventProperties.put(org.osgi.framework.Constants.OBJECTCLASS,
+ interfaces.toArray(new String[interfaces.size()]));
+ List<String> importedConfigs = endpointDescription
+ .getConfigurationTypes();
+ if (importedConfigs != null && importedConfigs.size() > 0)
+ eventProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
+ importedConfigs.toArray(new String[importedConfigs
+ .size()]));
+ eventProperties.put("timestamp", new Long(new Date().getTime())); //$NON-NLS-1$
+ eventProperties.put("event", event); //$NON-NLS-1$
+ if (registrationTypeName != null) {
+ eventProperties.put(registrationTypeName, endpointDescription);
+ }
+ postRemoteServiceAdminEvent(topic, eventProperties);
+
+ }
+
+ private String[] getSignersForBundle(Bundle bundle) {
+ List<String> result = new ArrayList<String>();
+ Map signers = bundle.getSignerCertificates(Bundle.SIGNERS_ALL);
+ for (Iterator i = signers.keySet().iterator(); i.hasNext();)
+ result.add(i.next().toString());
+ return (String[]) result.toArray(new String[result.size()]);
+ }
+
+ private void publishExportEvent(ExportRegistration exportRegistration) {
+ Throwable exception = exportRegistration.getException();
+ org.osgi.service.remoteserviceadmin.ExportReference exportReference = (exception == null) ? exportRegistration
+ .getExportReference() : null;
+ RemoteServiceAdminEvent rsaEvent = new RemoteServiceAdminEvent(
+ exportRegistration.getContainerID(),
+ (exception == null) ? RemoteServiceAdminEvent.EXPORT_REGISTRATION
+ : RemoteServiceAdminEvent.EXPORT_ERROR, getRSABundle(),
+ exportReference, exception);
+ publishEvent(rsaEvent, exportRegistration.getEndpointDescription());
+ }
+
+ private void publishImportEvent(ImportRegistration importRegistration) {
+ Throwable exception = importRegistration.getException();
+ org.osgi.service.remoteserviceadmin.ImportReference importReference = (exception == null) ? importRegistration
+ .getImportReference() : null;
+ RemoteServiceAdminEvent rsaEvent = new RemoteServiceAdminEvent(
+ importRegistration.getContainerID(),
+ (exception == null) ? RemoteServiceAdminEvent.IMPORT_REGISTRATION
+ : RemoteServiceAdminEvent.IMPORT_ERROR, getRSABundle(),
+ importReference, exception);
+ publishEvent(rsaEvent, importRegistration.getEndpointDescription());
+ }
+
+ private void closeRemoteServiceAdminListenerTracker() {
+ synchronized (remoteServiceAdminListenerTrackerLock) {
+ if (remoteServiceAdminListenerTracker != null) {
+ remoteServiceAdminListenerTracker.close();
+ remoteServiceAdminListenerTracker = null;
+ }
+ }
+ }
+
+ private RemoteServiceAdminListener[] getListeners(EndpointPermission perm) {
+ synchronized (remoteServiceAdminListenerTrackerLock) {
+ if (remoteServiceAdminListenerTracker == null) {
+ remoteServiceAdminListenerTracker = new ServiceTracker(
+ getClientBundleContext(),
+ RemoteServiceAdminListener.class.getName(), null);
+ remoteServiceAdminListenerTracker.open();
+ }
+ }
+ ServiceReference[] unfilteredRefs = remoteServiceAdminListenerTracker
+ .getServiceReferences();
+ if (unfilteredRefs == null)
+ return null;
+ // Filter by Bundle.hasPermission
+ List<ServiceReference> filteredRefs = new ArrayList<ServiceReference>();
+ for (ServiceReference ref : unfilteredRefs)
+ if (perm == null || ref.getBundle().hasPermission(perm))
+ filteredRefs.add(ref);
+ List<RemoteServiceAdminListener> results = new ArrayList<RemoteServiceAdminListener>();
+ for (ServiceReference ref : filteredRefs) {
+ RemoteServiceAdminListener l = (RemoteServiceAdminListener) remoteServiceAdminListenerTracker
+ .getService(ref);
+ if (l != null)
+ results.add(l);
+ }
+ return results.toArray(new RemoteServiceAdminListener[results.size()]);
+ }
+
+ private ExportEndpoint findExistingExportEndpoint(
+ ServiceReference serviceReference, ID containerID) {
+ for (ExportRegistration eReg : exportedRegistrations) {
+ ExportEndpoint exportEndpoint = eReg.getExportEndpoint(
+ serviceReference, containerID);
+ if (exportEndpoint != null)
+ return exportEndpoint;
+ }
+ return null;
+ }
+
+ private EventAdmin getEventAdmin() {
+ synchronized (eventAdminTrackerLock) {
+ eventAdminTracker = new ServiceTracker(getClientBundleContext(),
+ EventAdmin.class.getName(), null);
+ eventAdminTracker.open();
+ }
+ return (EventAdmin) eventAdminTracker.getService();
+ }
+
+ private void postRemoteServiceAdminEvent(String topic,
+ Dictionary eventProperties) {
+ EventAdmin eventAdmin = getEventAdmin();
+ if (eventAdmin == null) {
+ logError("postRemoteServiceAdminEvent", //$NON-NLS-1$
+ "No EventAdmin service available to send eventTopic=" //$NON-NLS-1$
+ + topic + " eventProperties=" + eventProperties); //$NON-NLS-1$
+ return;
+ }
+ eventAdmin.postEvent(new Event(topic, eventProperties));
+ }
+
+ private void closeEventAdminTracker() {
+ synchronized (eventAdminTrackerLock) {
+ if (eventAdminTracker != null) {
+ eventAdminTracker.close();
+ eventAdminTracker = null;
+ }
+ }
+ }
+
+ private void closePackageAdminTracker() {
+ synchronized (packageAdminTrackerLock) {
+ if (packageAdminTracker != null) {
+ packageAdminTracker.close();
+ packageAdminTracker = null;
+ }
+ }
+ }
+
+ private Object consumerContainerSelectorTrackerLock = new Object();
+ private ServiceTracker consumerContainerSelectorTracker;
+
+ private void closeConsumerContainerSelectorTracker() {
+ synchronized (consumerContainerSelectorTrackerLock) {
+ if (consumerContainerSelectorTracker != null) {
+ consumerContainerSelectorTracker.close();
+ consumerContainerSelectorTracker = null;
+ }
+ }
+ if (defaultConsumerContainerSelector != null) {
+ defaultConsumerContainerSelector.close();
+ defaultConsumerContainerSelector = null;
+ }
+ }
+
+ private Object hostContainerSelectorTrackerLock = new Object();
+ private ServiceTracker hostContainerSelectorTracker;
+
+ private void closeHostContainerSelectorTracker() {
+ synchronized (hostContainerSelectorTrackerLock) {
+ if (hostContainerSelectorTracker != null) {
+ hostContainerSelectorTracker.close();
+ hostContainerSelectorTracker = null;
+ }
+ }
+ if (defaultHostContainerSelector != null) {
+ defaultHostContainerSelector.close();
+ defaultHostContainerSelector = null;
+ }
+ }
+
+ protected IHostContainerSelector getHostContainerSelector() {
+ synchronized (hostContainerSelectorTrackerLock) {
+ if (hostContainerSelectorTracker == null) {
+ hostContainerSelectorTracker = new ServiceTracker(
+ getClientBundleContext(),
+ IHostContainerSelector.class.getName(), null);
+ hostContainerSelectorTracker.open();
+ }
+ }
+ return (IHostContainerSelector) hostContainerSelectorTracker
+ .getService();
+ }
+
+ protected IConsumerContainerSelector getConsumerContainerSelector() {
+ synchronized (consumerContainerSelectorTrackerLock) {
+ if (consumerContainerSelectorTracker == null) {
+ consumerContainerSelectorTracker = new ServiceTracker(
+ getClientBundleContext(),
+ IConsumerContainerSelector.class.getName(), null);
+ consumerContainerSelectorTracker.open();
+ }
+ }
+ return (IConsumerContainerSelector) consumerContainerSelectorTracker
+ .getService();
+ }
+
+ private ContainerTypeDescription getContainerTypeDescription(
+ IContainer container) {
+ return Activator.getDefault().getContainerManager().getContainerTypeDescription(
+ container.getID());
+ }
+
+ private boolean isClient(IContainer container) {
+ ContainerTypeDescription ctd = getContainerTypeDescription(container);
+ if (ctd == null) return false;
+ else return !ctd.isServer();
+ }
+
+ private Version getPackageVersion(ServiceReference serviceReference,
+ String serviceInterface, String packageName) {
+ Object service = getClientBundleContext().getService(serviceReference);
+ if (service == null)
+ return null;
+ Class[] interfaceClasses = service.getClass().getInterfaces();
+ if (interfaceClasses == null)
+ return null;
+ Class interfaceClass = null;
+ for (int i = 0; i < interfaceClasses.length; i++)
+ if (interfaceClasses[i].getName().equals(serviceInterface))
+ interfaceClass = interfaceClasses[i];
+ if (interfaceClass == null)
+ return null;
+ Bundle providingBundle = FrameworkUtil.getBundle(interfaceClass);
+ if (providingBundle == null) return null;
+ return getVersionForPackage(providingBundle, packageName);
+ }
+
+ private Map<String, Object> createExportEndpointDescriptionProperties(
+ ServiceReference serviceReference,
+ Map<String, Object> overridingProperties,
+ String[] exportedInterfaces, String[] serviceIntents,
+ IRemoteServiceContainer rsContainer) {
+ IContainer container = rsContainer.getContainer();
+ ID containerID = container.getID();
+
+ Map<String, Object> endpointDescriptionProperties = new TreeMap<String, Object>(
+ String.CASE_INSENSITIVE_ORDER);
+
+ // OSGi properties
+ // OBJECTCLASS set to exportedInterfaces
+ endpointDescriptionProperties.put(
+ org.osgi.framework.Constants.OBJECTCLASS, exportedInterfaces);
+
+ // Service interface versions
+ for (int i = 0; i < exportedInterfaces.length; i++) {
+ String packageName = getPackageName(exportedInterfaces[i]);
+ String packageVersionKey = org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_
+ + packageName;
+ // If it's pre-set...by registration or by overridingProperties,
+ // then use that value
+ String packageVersion = (String) PropertiesUtil.getPropertyValue(
+ serviceReference, overridingProperties, packageVersionKey);
+ if (packageVersion == null) {
+ Version version = getPackageVersion(serviceReference,
+ exportedInterfaces[i], packageName);
+ if (version != null && !version.equals(Version.emptyVersion))
+ packageVersion = version.toString();
+ }
+ // Only set the package version if we have a non-null value
+ if (packageVersion != null)
+ endpointDescriptionProperties.put(packageVersionKey,
+ packageVersion);
+ }
+
+ // ENDPOINT_ID
+ String endpointId = (String) PropertiesUtil
+ .getPropertyValue(
+ serviceReference,
+ overridingProperties,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID);
+ if (endpointId == null)
+ endpointId = containerID.getName();
+ endpointDescriptionProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID,
+ endpointId);
+
+ // ENDPOINT_SERVICE_ID
+ // This is always set to the value from serviceReference as per 122.5.1
+ Long serviceId = (Long) serviceReference
+ .getProperty(org.osgi.framework.Constants.SERVICE_ID);
+ endpointDescriptionProperties.put(
+ org.osgi.framework.Constants.SERVICE_ID, serviceId);
+
+ // ENDPOINT_FRAMEWORK_ID
+ String frameworkId = (String) PropertiesUtil
+ .getPropertyValue(
+ serviceReference,
+ overridingProperties,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID);
+ if (frameworkId == null)
+ frameworkId = Activator.getDefault().getFrameworkUUID();
+ endpointDescriptionProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID,
+ frameworkId);
+
+ // REMOTE_CONFIGS_SUPPORTED
+ String[] remoteConfigsSupported = getSupportedConfigs(container);
+ if (remoteConfigsSupported != null)
+ endpointDescriptionProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED,
+ remoteConfigsSupported);
+ // SERVICE_IMPORTED_CONFIGS...set to constant value for all ECF
+ // providers
+ // supported (which is computed
+ // for the exporting ECF container
+ endpointDescriptionProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
+ remoteConfigsSupported);
+
+ // SERVICE_INTENTS
+ Object intents = PropertiesUtil
+ .getPropertyValue(
+ null,
+ overridingProperties,
+ org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS);
+ if (intents == null)
+ intents = serviceIntents;
+ if (intents != null)
+ endpointDescriptionProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS,
+ intents);
+
+ // REMOTE_INTENTS_SUPPORTED
+ String[] remoteIntentsSupported = getSupportedIntents(container);
+ if (remoteIntentsSupported != null)
+ endpointDescriptionProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED,
+ remoteIntentsSupported);
+
+ // ECF properties
+ // ID namespace
+ String idNamespace = containerID.getNamespace().getName();
+ endpointDescriptionProperties.put(
+ RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE, idNamespace);
+
+ // ENDPOINT_CONNECTTARGET_ID
+ String connectTarget = (String) PropertiesUtil.getPropertyValue(
+ serviceReference, overridingProperties,
+ RemoteConstants.ENDPOINT_CONNECTTARGET_ID);
+ if (connectTarget == null && isClient(container)) {
+ ID connectedID = container.getConnectedID();
+ if (connectedID != null && !connectedID.equals(containerID))
+ connectTarget = connectedID.getName();
+ }
+ if (connectTarget != null)
+ endpointDescriptionProperties.put(
+ RemoteConstants.ENDPOINT_CONNECTTARGET_ID, connectTarget);
+
+ // ENDPOINT_IDFILTER_IDS
+ String[] idFilter = (String[]) PropertiesUtil.getPropertyValue(
+ serviceReference, overridingProperties,
+ RemoteConstants.ENDPOINT_IDFILTER_IDS);
+ if (idFilter != null && idFilter.length > 0)
+ endpointDescriptionProperties.put(
+ RemoteConstants.ENDPOINT_IDFILTER_IDS, idFilter);
+
+ // ENDPOINT_REMOTESERVICE_FILTER
+ String rsFilter = (String) PropertiesUtil.getPropertyValue(
+ serviceReference, overridingProperties,
+ RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER);
+ if (rsFilter != null)
+ endpointDescriptionProperties.put(
+ RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER, rsFilter);
+
+ // Finally, copy all non-reserved properties
+ return PropertiesUtil.copyNonReservedProperties(overridingProperties,
+ endpointDescriptionProperties);
+ }
+
+ private Map<String, Object> copyNonReservedProperties(
+ ServiceReference serviceReference,
+ Map<String, Object> overridingProperties, Map<String, Object> target) {
+ // copy all other properties...from service reference
+ PropertiesUtil.copyNonReservedProperties(serviceReference, target);
+ // And override with overridingProperties
+ PropertiesUtil.copyNonReservedProperties(overridingProperties, target);
+ return target;
+ }
+
+ private String[] getSupportedConfigs(IContainer container) {
+ ContainerTypeDescription ctd = getContainerTypeDescription(container);
+ return (ctd == null) ? null : ctd.getSupportedConfigs();
+ }
+
+ private String[] getImportedConfigs(IContainer container,
+ String[] exporterSupportedConfigs) {
+ ContainerTypeDescription ctd = getContainerTypeDescription(container);
+ return (ctd == null) ? null : ctd
+ .getImportedConfigs(exporterSupportedConfigs);
+ }
+
+ private String[] getSupportedIntents(IContainer container) {
+ ContainerTypeDescription ctd = getContainerTypeDescription(container);
+ return (ctd == null) ? null : ctd.getSupportedIntents();
+ }
+
+ private ID[] getIDFilter(EndpointDescription endpointDescription,
+ ID endpointID) {
+ ID[] idFilter = endpointDescription.getIDFilter();
+ // If it is null,
+ return (idFilter == null) ? new ID[] { endpointID } : idFilter;
+ }
+
+ private String getRemoteServiceFilter(
+ EndpointDescription endpointDescription) {
+
+ long rsId = 0;
+ // if the ECF remote service id is present in properties, allow it to
+ // override
+ Long l = (Long) endpointDescription.getProperties().get(
+ org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
+ if (l != null)
+ rsId = l.longValue();
+ // if rsId is still zero, use the endpoint.service.id from
+ // endpoint description
+ if (rsId == 0)
+ rsId = endpointDescription.getServiceId();
+ // If it's *still* zero, then just use the raw filter
+ if (rsId == 0) {
+ // It's not known...so we just return the 'raw' remote service
+ // filter
+ return endpointDescription.getRemoteServiceFilter();
+ } else {
+ String edRsFilter = endpointDescription.getRemoteServiceFilter();
+ // It's a real remote service id...so we return
+ StringBuffer result = new StringBuffer("(&(") //$NON-NLS-1$
+ .append(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID)
+ .append("=").append(rsId).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (edRsFilter != null)
+ result.append(edRsFilter);
+ result.append(")"); //$NON-NLS-1$
+ return result.toString();
+ }
+ }
+
+ private ImportEndpoint createAndRegisterProxy(
+ EndpointDescription endpointDescription,
+ IRemoteServiceContainer rsContainer,
+ IRemoteServiceReference selectedRsReference) throws Exception {
+
+ BundleContext proxyServiceFactoryContext = getProxyServiceFactoryContext(endpointDescription);
+ if (proxyServiceFactoryContext == null)
+ throw new NullPointerException(
+ "getProxyServiceFactoryContext returned null. Cannot register proxy service factory"); //$NON-NLS-1$
+
+ IRemoteServiceContainerAdapter containerAdapter = rsContainer
+ .getContainerAdapter();
+ ID rsContainerID = rsContainer.getContainer().getID();
+ // First get IRemoteService for selectedRsReference
+ IRemoteService rs = containerAdapter
+ .getRemoteService(selectedRsReference);
+ if (rs == null)
+ throw new NullPointerException(
+ "getRemoteService returned null for selectedRsReference=" //$NON-NLS-1$
+ + selectedRsReference + ",rsContainerID=" //$NON-NLS-1$
+ + rsContainerID);
+
+ Map proxyProperties = createProxyProperties(endpointDescription,
+ rsContainer, selectedRsReference, rs);
+
+ // sync sref props with endpoint props
+ endpointDescription.setPropertiesOverrides(proxyProperties);
+
+ List<String> serviceTypes = endpointDescription.getInterfaces();
+
+ ServiceRegistration proxyRegistration = proxyServiceFactoryContext
+ .registerService((String[]) serviceTypes
+ .toArray(new String[serviceTypes.size()]),
+ createProxyServiceFactory(endpointDescription, rs),
+ (Dictionary) PropertiesUtil
+ .createDictionaryFromMap(proxyProperties));
+
+ return new ImportEndpoint(containerAdapter, selectedRsReference,
+ new RemoteServiceListener(), proxyRegistration,
+ endpointDescription);
+ }
+
+ private BundleContext getProxyServiceFactoryContext(
+ EndpointDescription endpointDescription) throws Exception {
+ Activator a = Activator.getDefault();
+ if (a == null)
+ throw new NullPointerException(
+ "ECF RemoteServiceAdmin Activator cannot be null."); //$NON-NLS-1$
+ if (a.isOldEquinox()) {
+ // In this case, we get the Bundle that exposes the first service
+ // interface class
+ BundleContext rsaContext = Activator.getContext();
+ if (rsaContext == null)
+ throw new NullPointerException(
+ "RSA BundleContext cannot be null"); //$NON-NLS-1$
+ List<String> interfaces = endpointDescription.getInterfaces();
+ Collection<Class> serviceInterfaceClasses = loadServiceInterfacesViaBundle(
+ rsaContext.getBundle(),
+ interfaces.toArray(new String[interfaces.size()]));
+ if (serviceInterfaceClasses.size() == 0)
+ throw new NullPointerException(
+ "No interface classes loadable for endpointDescription=" //$NON-NLS-1$
+ + endpointDescription);
+ // Get the bundle responsible for the first service interface class
+ Class serviceInterfaceClass = serviceInterfaceClasses.iterator()
+ .next();
+ Bundle bundle = FrameworkUtil.getBundle(serviceInterfaceClass);
+ if (bundle == null)
+ throw new BundleException("Bundle for service interface class=" //$NON-NLS-1$
+ + serviceInterfaceClass.getName() + " cannot be found"); //$NON-NLS-1$
+ int bundleState = bundle.getState();
+ BundleContext bundleContext = bundle.getBundleContext();
+ if (bundleContext == null)
+ throw new BundleException("Bundle=" + bundle.getSymbolicName() //$NON-NLS-1$
+ + " in wrong state (" + bundleState //$NON-NLS-1$
+ + ") for using BundleContext proxy service factory"); //$NON-NLS-1$
+ return bundleContext;
+ }
+ return a.getProxyServiceFactoryBundleContext();
+ }
+
+ private ServiceFactory createProxyServiceFactory(
+ EndpointDescription endpointDescription,
+ IRemoteService remoteService) {
+ return new ProxyServiceFactory(
+ endpointDescription.getInterfaceVersions(), remoteService);
+ }
+
+ private Collection<Class> loadServiceInterfacesViaBundle(Bundle bundle,
+ String[] interfaces) {
+ List<Class> result = new ArrayList<Class>();
+ for (int i = 0; i < interfaces.length; i++) {
+ try {
+ result.add(bundle.loadClass(interfaces[i]));
+ } catch (ClassNotFoundException e) {
+ logError("loadInterfacesViaBundle", "interface=" //$NON-NLS-1$ //$NON-NLS-2$
+ + interfaces[i] + " cannot be loaded by clientBundle=" //$NON-NLS-1$
+ + bundle.getSymbolicName(), e);
+ continue;
+ } catch (IllegalStateException e) {
+ logError(
+ "loadInterfacesViaBundle", //$NON-NLS-1$
+ "interface=" //$NON-NLS-1$
+ + interfaces[i]
+ + " cannot be loaded since clientBundle is in illegal state", //$NON-NLS-1$
+ e);
+ continue;
+ }
+ }
+ return result;
+ }
+
+ class ProxyServiceFactory implements ServiceFactory {
+ private IRemoteService remoteService;
+ private Map<String, Version> interfaceVersions;
+
+ public ProxyServiceFactory(Map<String, Version> interfaceVersions,
+ IRemoteService remoteService) {
+ this.interfaceVersions = interfaceVersions;
+ this.remoteService = remoteService;
+ }
+
+ public Object getService(Bundle bundle, ServiceRegistration registration) {
+ return createProxy(bundle, registration.getReference(),
+ remoteService, interfaceVersions);
+ }
+
+ public void ungetService(Bundle bundle,
+ ServiceRegistration registration, Object service) {
+ ungetProxyClassLoader(bundle);
+ }
+ }
+
+ private Object createProxy(Bundle requestingBundle,
+ ServiceReference serviceReference, IRemoteService remoteService,
+ Map<String, Version> interfaceVersions) {
+ // Get symbolicName once for possible use below
+ String bundleSymbolicName = requestingBundle.getSymbolicName();
+ // Get String[] via OBJECTCLASS constant property
+ String[] serviceClassnames = (String[]) serviceReference
+ .getProperty(org.osgi.framework.Constants.OBJECTCLASS);
+ // Load as many of the serviceInterface classes as possible
+ Collection<Class> serviceInterfaceClasses = loadServiceInterfacesViaBundle(
+ requestingBundle, serviceClassnames);
+ // There has to be at least one serviceInterface that the clientBundle
+ // can
+ // load...otherwise the service can't be accessed
+ if (serviceInterfaceClasses.size() < 1)
+ throw new RuntimeException(
+ "ProxyServiceFactory cannot load any serviceInterfaces=" //$NON-NLS-1$
+ + serviceInterfaceClasses
+ + " for serviceReference=" + serviceReference //$NON-NLS-1$
+ + " via clientBundle=" + bundleSymbolicName); //$NON-NLS-1$
+
+ // Now verify that the classes are of valid versions
+ if (!verifyServiceInterfaceVersionsForProxy(requestingBundle,
+ serviceInterfaceClasses, interfaceVersions))
+ return null;
+
+ // Now create/get class loader for proxy. This will typically
+ // be an instance of ProxyClassLoader
+ ClassLoader cl = getProxyClassLoader(requestingBundle);
+ try {
+ return remoteService.getProxy(cl, (Class[]) serviceInterfaceClasses
+ .toArray(new Class[serviceInterfaceClasses.size()]));
+ } catch (ECFException e) {
+ throw new ServiceException(
+ "ProxyServiceFactory cannot create proxy for clientBundle=" //$NON-NLS-1$
+ + bundleSymbolicName + " from serviceReference=" //$NON-NLS-1$
+ + serviceReference, e);
+ }
+
+ }
+
+ private Map<Bundle, ProxyClassLoader> proxyClassLoaders = new HashMap<Bundle, ProxyClassLoader>();
+
+ private void closeProxyClassLoaderCache() {
+ synchronized (proxyClassLoaders) {
+ proxyClassLoaders.clear();
+ }
+ }
+
+ private ClassLoader getProxyClassLoader(Bundle bundle) {
+ ProxyClassLoader proxyClassLoaderForBundle = null;
+ synchronized (proxyClassLoaders) {
+ proxyClassLoaderForBundle = proxyClassLoaders.get(bundle);
+ if (proxyClassLoaderForBundle == null) {
+ proxyClassLoaderForBundle = new ProxyClassLoader(bundle);
+ proxyClassLoaders.put(bundle, proxyClassLoaderForBundle);
+ } else
+ proxyClassLoaderForBundle.addServiceUseCount();
+ }
+ return proxyClassLoaderForBundle;
+ }
+
+ private void ungetProxyClassLoader(Bundle bundle) {
+ synchronized (proxyClassLoaders) {
+ ProxyClassLoader proxyClassLoaderForBundle = proxyClassLoaders
+ .get(bundle);
+ if (proxyClassLoaderForBundle != null) {
+ int useCount = proxyClassLoaderForBundle.getServiceUseCount();
+ if (useCount == 0)
+ proxyClassLoaders.remove(bundle);
+ else
+ proxyClassLoaderForBundle.removeServiceUseCount();
+ }
+ }
+ }
+
+ protected class ProxyClassLoader extends ClassLoader {
+ private Bundle loadingBundle;
+ private int serviceUseCount = 0;
+
+ public ProxyClassLoader(Bundle loadingBundle) {
+ this.loadingBundle = loadingBundle;
+ }
+
+ public Class loadClass(String name) throws ClassNotFoundException {
+ return loadingBundle.loadClass(name);
+ }
+
+ public int getServiceUseCount() {
+ return serviceUseCount;
+ }
+
+ public void addServiceUseCount() {
+ serviceUseCount++;
+ }
+
+ public void removeServiceUseCount() {
+ serviceUseCount--;
+ }
+ }
+
+ private String getPackageName(String className) {
+ int lastDotIndex = className.lastIndexOf("."); //$NON-NLS-1$
+ if (lastDotIndex == -1)
+ return ""; //$NON-NLS-1$
+ return className.substring(0, lastDotIndex);
+ }
+
+ private boolean comparePackageVersions(String packageName,
+ Version remoteVersion, Version localVersion)
+ throws RuntimeException {
+
+ LogUtility.trace(
+ "comparePackageVersions", //$NON-NLS-1$
+ DebugOptions.PACKAGE_VERSION_COMPARATOR, this.getClass(),
+ "packageName=" + packageName + ",remoteVersion=" //$NON-NLS-1$ //$NON-NLS-2$
+ + remoteVersion + ",localVersion=" + localVersion); //$NON-NLS-1$
+
+ // If no remote version info, then set it to empty
+ if (remoteVersion == null) remoteVersion = Version.emptyVersion;
+ if (localVersion == null) localVersion = Version.emptyVersion;
+
+ // By default we do strict comparison of remote with local...they must
+ // be exactly the same, or we thrown a runtime exception
+ int compareResult = localVersion.compareTo(remoteVersion);
+ // Now check compare result, and throw exception to fail compare
+ return (compareResult != 0);
+ }
+
+ private boolean verifyServiceInterfaceVersionsForProxy(Bundle bundle,
+ Collection<Class> classes, Map<String, Version> interfaceVersions) {
+ // For all service interface classes
+ boolean result = true;
+ for (Class clazz : classes) {
+ String className = clazz.getName();
+ String packageName = getPackageName(className);
+ // Now get remoteVersion, localVersion and do compare via package
+ // version comparator service
+ Version remoteVersion = interfaceVersions.get(className);
+ Version localVersion = getPackageVersionViaRequestingBundle(
+ packageName, bundle);
+ if (comparePackageVersions(packageName, remoteVersion, localVersion)) {
+ logError("verifyServiceInterfaceVersionsForProxy", //$NON-NLS-1$
+ "Failed version check for proxy creation. clientBundle=" //$NON-NLS-1$
+ + clientBundle + " interfaceType=" + className //$NON-NLS-1$
+ + " remoteVersion=" + remoteVersion //$NON-NLS-1$
+ + " localVersion=" + localVersion); //$NON-NLS-1$
+ result = false;
+ }
+ }
+ return result;
+ }
+
+ private Version getVersionForMatchingCapability(String packageName,
+ BundleCapability capability) {
+ // If it's a package namespace (Import-Package)
+ Map<String, Object> attributes = capability.getAttributes();
+ // Then we get the package attribute
+ String p = (String) attributes.get(BundleRevision.PACKAGE_NAMESPACE);
+ // And compare it to the package name
+ if (p != null && packageName.equals(p))
+ return (Version) attributes.get(Constants.VERSION_ATTRIBUTE);
+ return null;
+ }
+
+ private Version getPackageVersionForMatchingWire(String packageName,
+ List<BundleWire> bundleWires, String namespace) {
+ Version result = null;
+ for (BundleWire wire : bundleWires) {
+ if (namespace.equals(BundleRevision.PACKAGE_NAMESPACE))
+ result = getVersionForMatchingCapability(packageName,
+ wire.getCapability());
+ else if (namespace.equals(BundleRevision.BUNDLE_NAMESPACE))
+ // If it's a bundle namespace (Require-Bundle), then we get the
+ // version for package
+ // of the providing bundle
+ result = getVersionForPackage(wire.getProvider().getBundle(),
+ packageName);
+
+ if (result != null)
+ return result;
+
+ }
+ return result;
+ }
+
+ private Version getVersionForPackage(Bundle providingBundle,
+ String packageName) {
+ Version result = null;
+ BundleRevision providingBundleRevision = providingBundle
+ .adapt(BundleRevision.class);
+ if (providingBundleRevision == null)
+ return null;
+ List<BundleCapability> providerCapabilities = providingBundleRevision
+ .getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE);
+ for (BundleCapability c : providerCapabilities) {
+ result = getVersionForMatchingCapability(packageName, c);
+ if (result != null)
+ return result;
+ }
+ return result;
+ }
+
+ private Version getPackageVersionViaRequestingBundle(String packageName,
+ Bundle requestingBundle) {
+ Version result = null;
+ // First check the requesting bundle for the desired export package
+ // capability
+ BundleRevision requestingBundleRevision = (BundleRevision) requestingBundle
+ .adapt(BundleRevision.class);
+ if (requestingBundleRevision != null) {
+ List<BundleCapability> requestingBundleCapabilities = requestingBundleRevision
+ .getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE);
+ for (BundleCapability requestingBundleCapability : requestingBundleCapabilities) {
+ Version version = getVersionForMatchingCapability(packageName,
+ requestingBundleCapability);
+ // If found, set our result
+ if (version != null)
+ result = version;
+ }
+ }
+ // If not found in requestingBundle export package, then
+ // look in exported package that are wired to the requesting bundle
+ if (result == null) {
+ // look for wired exported packages
+ BundleWiring requestingBundleWiring = requestingBundle
+ .adapt(BundleWiring.class);
+ if (requestingBundleWiring != null) {
+ result = getPackageVersionForMatchingWire(
+ packageName,
+ requestingBundleWiring
+ .getRequiredWires(BundleRevision.PACKAGE_NAMESPACE),
+ BundleRevision.PACKAGE_NAMESPACE);
+ // If not found in wired exported packages, then look
+ // in wired require bundles
+ if (result == null)
+ result = getPackageVersionForMatchingWire(
+ packageName,
+ requestingBundleWiring
+ .getRequiredWires(BundleRevision.BUNDLE_NAMESPACE),
+ BundleRevision.BUNDLE_NAMESPACE);
+ }
+ }
+ return result;
+ }
+
+ private IRemoteServiceReference selectRemoteServiceReference(
+ Collection<IRemoteServiceReference> rsRefs, ID targetID,
+ ID[] idFilter, Collection<String> interfaces, String rsFilter,
+ IRemoteServiceContainer rsContainer) {
+ if (rsRefs.size() == 0)
+ return null;
+ if (rsRefs.size() > 1) {
+ logWarning("selectRemoteServiceReference", "rsRefs=" + rsRefs //$NON-NLS-1$ //$NON-NLS-2$
+ + ",targetID=" + targetID + ",idFilter=" + idFilter //$NON-NLS-1$ //$NON-NLS-2$
+ + ",interfaces=" + interfaces + ",rsFilter=" + rsFilter //$NON-NLS-1$ //$NON-NLS-2$
+ + ",rsContainer=" + rsContainer.getContainer().getID() //$NON-NLS-1$
+ + " has " + rsRefs.size() //$NON-NLS-1$
+ + " values. Selecting the first element"); //$NON-NLS-1$
+ }
+ return rsRefs.iterator().next();
+ }
+
+ private Map createProxyProperties(EndpointDescription endpointDescription,
+ IRemoteServiceContainer rsContainer,
+ IRemoteServiceReference rsReference, IRemoteService remoteService) {
+
+ Map resultProperties = new TreeMap<String, Object>(
+ String.CASE_INSENSITIVE_ORDER);
+ PropertiesUtil.copyNonReservedProperties(rsReference, resultProperties);
+ // remove OBJECTCLASS
+ resultProperties
+ .remove(org.eclipse.ecf.remoteservice.Constants.OBJECTCLASS);
+ // remove remote service id
+ resultProperties
+ .remove(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
+ // Set intents if there are intents
+ Object intentsValue = PropertiesUtil
+ .convertToStringPlusValue(endpointDescription.getIntents());
+ if (intentsValue != null)
+ resultProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS,
+ intentsValue);
+
+ // Set service.imported to IRemoteService unless
+ // SERVICE_IMPORTED_VALUETYPE is
+ // set
+ String serviceImportedType = (String) endpointDescription
+ .getProperties()
+ .get(org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_VALUETYPE);
+ if (serviceImportedType == null
+ || serviceImportedType.equals(IRemoteService.class.getName()))
+ resultProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED,
+ remoteService);
+ else
+ resultProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED,
+ new Boolean(true));
+
+ String[] exporterSupportedConfigs = (String[]) endpointDescription
+ .getProperties()
+ .get(org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED);
+ String[] importedConfigs = getImportedConfigs(
+ rsContainer.getContainer(), exporterSupportedConfigs);
+ // Set service.imported.configs
+ resultProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,
+ importedConfigs);
+
+ // Set endpoint.id and endpoint.service.id
+ resultProperties
+ .put(org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_ENDPOINT_ID,
+ endpointDescription
+ .getProperties()
+ .get(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID));
+ resultProperties
+ .put(org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_ENDPOINT_SERVICE_ID,
+ endpointDescription
+ .getProperties()
+ .get(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID));
+
+ return resultProperties;
+ }
+
+ private ExportRegistration exportService(ServiceReference serviceReference,
+ Map<String, ?> overridingProperties,
+ String[] exportedInterfaces, IRemoteServiceContainer rsContainer,
+ Map<String, Object> endpointDescriptionProperties) throws Exception {
+
+ // Create remote service properties
+ Map remoteServiceProperties = copyNonReservedProperties(
+ serviceReference, (Map<String,Object>) overridingProperties,
+ new TreeMap<String, Object>(String.CASE_INSENSITIVE_ORDER));
+
+ IRemoteServiceContainerAdapter containerAdapter = rsContainer
+ .getContainerAdapter();
+
+ // Register remote service via ECF container adapter to create
+ // remote service registration
+ IRemoteServiceRegistration remoteRegistration = null;
+ if (containerAdapter instanceof IOSGiRemoteServiceContainerAdapter) {
+ IOSGiRemoteServiceContainerAdapter osgiContainerAdapter = (IOSGiRemoteServiceContainerAdapter) containerAdapter;
+ remoteRegistration = osgiContainerAdapter.registerRemoteService(
+ exportedInterfaces, serviceReference, PropertiesUtil
+ .createDictionaryFromMap(remoteServiceProperties));
+ } else
+ remoteRegistration = containerAdapter.registerRemoteService(
+ exportedInterfaces,
+ getClientBundleContext().getService(serviceReference),
+ PropertiesUtil
+ .createDictionaryFromMap(remoteServiceProperties));
+ endpointDescriptionProperties
+ .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID,
+ remoteRegistration
+ .getProperty(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID));
+ EndpointDescription endpointDescription = new EndpointDescription(
+ serviceReference, endpointDescriptionProperties);
+ // Create ExportEndpoint/ExportRegistration
+ return new ExportRegistration(new ExportEndpoint(serviceReference,
+ endpointDescription, remoteRegistration));
+ }
+
+ private ImportRegistration importService(
+ EndpointDescription endpointDescription,
+ IRemoteServiceContainer rsContainer) {
+ trace("doImportService", "endpointDescription=" + endpointDescription //$NON-NLS-1$ //$NON-NLS-2$
+ + ",rsContainerID=" + rsContainer.getContainer().getID()); //$NON-NLS-1$
+ // Get interfaces from endpoint description
+ Collection<String> interfaces = endpointDescription.getInterfaces();
+ Assert.isNotNull(interfaces);
+ Assert.isTrue(interfaces.size() > 0);
+ // Get ECF endpoint ID...if this throws IDCreateException (because the
+ // local system does not have
+ // namespace for creating ID, or no namespace is present in
+ // endpointDescription or endpoint id,
+ // then it will be caught by the caller
+ ID endpointContainerID = endpointDescription.getContainerID();
+ Assert.isNotNull(endpointContainerID);
+ // Get connect target ID. May be null
+ ID targetID = endpointDescription.getConnectTargetID();
+ if (targetID == null)
+ targetID = endpointContainerID;
+ // Get idFilter...also may be null
+ ID[] idFilter = getIDFilter(endpointDescription, endpointContainerID);
+ // Get remote service filter
+ String rsFilter = getRemoteServiceFilter(endpointDescription);
+ // IRemoteServiceReferences from query
+ Collection<IRemoteServiceReference> rsRefs = new ArrayList<IRemoteServiceReference>();
+ // Get IRemoteServiceContainerAdapter
+ IRemoteServiceContainerAdapter containerAdapter = rsContainer
+ .getContainerAdapter();
+ // rsContainerID
+ ID rsContainerID = rsContainer.getContainer().getID();
+ try {
+ // Get first interface name for service reference
+ // lookup
+ String intf = interfaces.iterator().next();
+ // Get/lookup remote service references
+ IRemoteServiceReference[] refs = containerAdapter
+ .getRemoteServiceReferences(targetID, idFilter, intf,
+ rsFilter);
+ if (refs == null) {
+ logWarning("doImportService", //$NON-NLS-1$
+ "getRemoteServiceReferences return null for targetID=" //$NON-NLS-1$
+ + targetID + ",idFilter=" + idFilter //$NON-NLS-1$
+ + ",intf=" + intf + ",rsFilter=" + rsFilter //$NON-NLS-1$ //$NON-NLS-2$
+ + " on rsContainerID=" + rsContainerID); //$NON-NLS-1$
+ } else
+ for (int i = 0; i < refs.length; i++)
+ rsRefs.add(refs[i]);
+ // If there are several refs resulting (should not be)
+ // we select the one to use
+ IRemoteServiceReference selectedRsReference = selectRemoteServiceReference(
+ rsRefs, targetID, idFilter, interfaces, rsFilter,
+ rsContainer);
+ // If none found, we obviously can't continue
+ if (selectedRsReference == null)
+ throw new RemoteReferenceNotFoundException(targetID, idFilter,
+ interfaces, rsFilter);
+
+ return new ImportRegistration(createAndRegisterProxy(
+ endpointDescription, rsContainer, selectedRsReference));
+ } catch (Exception e) {
+ logError(
+ "importService", "selectRemoteServiceReference returned null for rsRefs=" //$NON-NLS-1$ //$NON-NLS-2$
+ + rsRefs + ",targetID=" + targetID //$NON-NLS-1$
+ + ",idFilter=" + idFilter + ",interfaces=" //$NON-NLS-1$ //$NON-NLS-2$
+ + interfaces + ",rsFilter=" + rsFilter //$NON-NLS-1$
+ + ",rsContainerID=" + rsContainerID, e); //$NON-NLS-1$
+ return new ImportRegistration(endpointDescription, e);
+ }
+ }
+
+ private void closeExportRegistrations() {
+ List<ExportRegistration> toClose = null;
+ synchronized (exportedRegistrations) {
+ toClose = new ArrayList<ExportRegistration>(exportedRegistrations);
+ exportedRegistrations.clear();
+ }
+ for (ExportRegistration reg : toClose)
+ reg.close();
+ }
+
+ private void closeImportRegistrations() {
+ List<ImportRegistration> toClose = null;
+ synchronized (importedRegistrations) {
+ toClose = new ArrayList<ImportRegistration>(importedRegistrations);
+ importedRegistrations.clear();
+ }
+ for (ImportRegistration reg : toClose)
+ reg.close();
+ }
+
+ public void close() {
+ trace("close", "closing importedRegistrations=" + importedRegistrations //$NON-NLS-1$ //$NON-NLS-2$
+ + " exportedRegistrations=" + exportedRegistrations); //$NON-NLS-1$
+ closeRemoteServiceAdminListenerTracker();
+ closeEventAdminTracker();
+ closePackageAdminTracker();
+ closeProxyClassLoaderCache();
+ closeConsumerContainerSelectorTracker();
+ closeHostContainerSelectorTracker();
+ closeDefaultContainerSelectors();
+ closeImportRegistrations();
+ closeExportRegistrations();
+ this.clientBundle = null;
+ }
+
+ private ImportEndpoint findImportEndpoint(EndpointDescription ed) {
+ for (ImportRegistration reg : importedRegistrations) {
+ ImportEndpoint endpoint = reg.getImportEndpoint(ed);
+ if (endpoint != null)
+ return endpoint;
+ }
+ return null;
+ }
+
+ private void unimportService(IRemoteServiceID remoteServiceID) {
+ List<ImportRegistration> removedRegistrations = new ArrayList<ImportRegistration>();
+ synchronized (importedRegistrations) {
+ for (Iterator<ImportRegistration> i = importedRegistrations
+ .iterator(); i.hasNext();) {
+ ImportRegistration importRegistration = i.next();
+ if (importRegistration != null
+ && importRegistration.match(remoteServiceID))
+ removedRegistrations.add(importRegistration);
+ }
+ }
+ // Now close all of them
+ for (ImportRegistration removedReg : removedRegistrations) {
+ trace("unimportService", "closing importRegistration=" + removedReg); //$NON-NLS-1$ //$NON-NLS-2$
+ removedReg.close();
+ }
+ }
+
+ class RemoteServiceListener implements IRemoteServiceListener {
+ public void handleServiceEvent(IRemoteServiceEvent event) {
+ if (event instanceof IRemoteServiceUnregisteredEvent)
+ unimportService(event.getReference().getID());
+ }
+ }
+
+ private void trace(String methodName, String message) {
+ LogUtility.trace(methodName, DebugOptions.REMOTE_SERVICE_ADMIN,
+ this.getClass(), message);
+ }
+
+ private void logWarning(String methodName, String message) {
+ LogUtility.logWarning(methodName, DebugOptions.REMOTE_SERVICE_ADMIN,
+ this.getClass(), message);
+ }
+
+ private void logError(String methodName, String message, Throwable t) {
+ LogUtility.logError(methodName, DebugOptions.REMOTE_SERVICE_ADMIN,
+ this.getClass(), message, t);
+ }
+
+ private void logError(String methodName, String message) {
+ logError(methodName, message, (Throwable) null);
+ }
+
+ public class RemoteServiceAdminEvent extends
+ org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent {
+
+ private ID containerID;
+
+ public RemoteServiceAdminEvent(
+ ID containerID,
+ int type,
+ Bundle source,
+ org.osgi.service.remoteserviceadmin.ExportReference exportReference,
+ Throwable exception) {
+ super(type, source, exportReference, exception);
+ this.containerID = containerID;
+ }
+
+ public RemoteServiceAdminEvent(
+ ID containerID,
+ int type,
+ Bundle source,
+ org.osgi.service.remoteserviceadmin.ImportReference importReference,
+ Throwable exception) {
+ super(type, source, importReference, exception);
+ this.containerID = containerID;
+ }
+
+ public ID getContainerID() {
+ return containerID;
+ }
+
+ public String toString() {
+ return "RemoteServiceAdminEvent[containerID=" + containerID //$NON-NLS-1$
+ + ", getType()=" + getType() + ", getSource()=" + getSource() //$NON-NLS-1$ //$NON-NLS-2$
+ + ", getException()=" + getException() //$NON-NLS-1$
+ + ", getImportReference()=" + getImportReference() //$NON-NLS-1$
+ + ", getExportReference()=" + getExportReference() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdminEvent.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdminEvent.java
index 646665439..013c29adb 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdminEvent.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdminEvent.java
@@ -1,46 +1,46 @@
-package org.eclipse.ecf.osgi.services.remoteserviceadmin;
-
-import org.eclipse.ecf.core.identity.ID;
-import org.osgi.framework.Bundle;
-import org.osgi.service.remoteserviceadmin.ExportReference;
-import org.osgi.service.remoteserviceadmin.ImportReference;
-import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener;
-
-/**
- * ECF implementationm of
- * {@link org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent}.
- * Instances of this class are delivered to {@link RemoteServiceAdminListener}s
- * via the ECF implemenation of {@link RemoteServiceAdmin} as per the OSGi 4.2
- * Remote Service Admin specification (chap 122 of OSGi 4.2 specification).
- *
- */
-public class RemoteServiceAdminEvent extends
- org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent {
-
- private ID containerID;
-
- public RemoteServiceAdminEvent(ID containerID, int type, Bundle source,
- ExportReference exportReference, Throwable exception) {
- super(type, source, exportReference, exception);
- this.containerID = containerID;
- }
-
- public RemoteServiceAdminEvent(ID containerID, int type, Bundle source,
- ImportReference importReference, Throwable exception) {
- super(type, source, importReference, exception);
- this.containerID = containerID;
- }
-
- public ID getContainerID() {
- return containerID;
- }
-
- public String toString() {
- return "RemoteServiceAdminEvent[containerID=" + containerID //$NON-NLS-1$
- + ", getType()=" + getType() + ", getSource()=" + getSource() //$NON-NLS-1$ //$NON-NLS-2$
- + ", getException()=" + getException() //$NON-NLS-1$
- + ", getImportReference()=" + getImportReference() //$NON-NLS-1$
- + ", getExportReference()=" + getExportReference() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
-}
+package org.eclipse.ecf.osgi.services.remoteserviceadmin;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.osgi.framework.Bundle;
+import org.osgi.service.remoteserviceadmin.ExportReference;
+import org.osgi.service.remoteserviceadmin.ImportReference;
+import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener;
+
+/**
+ * ECF implementationm of
+ * {@link org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent}.
+ * Instances of this class are delivered to {@link RemoteServiceAdminListener}s
+ * via the ECF implemenation of {@link RemoteServiceAdmin} as per the OSGi 4.2
+ * Remote Service Admin specification (chap 122 of OSGi 4.2 specification).
+ *
+ */
+public class RemoteServiceAdminEvent extends
+ org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent {
+
+ private ID containerID;
+
+ public RemoteServiceAdminEvent(ID containerID, int type, Bundle source,
+ ExportReference exportReference, Throwable exception) {
+ super(type, source, exportReference, exception);
+ this.containerID = containerID;
+ }
+
+ public RemoteServiceAdminEvent(ID containerID, int type, Bundle source,
+ ImportReference importReference, Throwable exception) {
+ super(type, source, importReference, exception);
+ this.containerID = containerID;
+ }
+
+ public ID getContainerID() {
+ return containerID;
+ }
+
+ public String toString() {
+ return "RemoteServiceAdminEvent[containerID=" + containerID //$NON-NLS-1$
+ + ", getType()=" + getType() + ", getSource()=" + getSource() //$NON-NLS-1$ //$NON-NLS-2$
+ + ", getException()=" + getException() //$NON-NLS-1$
+ + ", getImportReference()=" + getImportReference() //$NON-NLS-1$
+ + ", getExportReference()=" + getExportReference() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/SelectContainerException.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/SelectContainerException.java
index 39fbe8003..2363a5e30 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/SelectContainerException.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/SelectContainerException.java
@@ -1,32 +1,32 @@
-/*******************************************************************************
- * Copyright (c) 2011 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.osgi.services.remoteserviceadmin;
-
-import org.eclipse.ecf.core.ContainerTypeDescription;
-
-/**
- * @since 2.0
- */
-public class SelectContainerException extends Exception {
-
- private static final long serialVersionUID = -5507248105370677422L;
-
- private ContainerTypeDescription containerTypeDescription;
-
- public SelectContainerException(String message, Throwable cause,
- ContainerTypeDescription containerTypeDescription) {
- super(message, cause);
- this.containerTypeDescription = containerTypeDescription;
- }
-
- public ContainerTypeDescription getContainerTypeDescription() {
- return containerTypeDescription;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 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.osgi.services.remoteserviceadmin;
+
+import org.eclipse.ecf.core.ContainerTypeDescription;
+
+/**
+ * @since 2.0
+ */
+public class SelectContainerException extends Exception {
+
+ private static final long serialVersionUID = -5507248105370677422L;
+
+ private ContainerTypeDescription containerTypeDescription;
+
+ public SelectContainerException(String message, Throwable cause,
+ ContainerTypeDescription containerTypeDescription) {
+ super(message, cause);
+ this.containerTypeDescription = containerTypeDescription;
+ }
+
+ public ContainerTypeDescription getContainerTypeDescription() {
+ return containerTypeDescription;
+ }
+}
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ServiceInfoFactory.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ServiceInfoFactory.java
index 0b14c51a8..1186bce0f 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ServiceInfoFactory.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/ServiceInfoFactory.java
@@ -1,226 +1,226 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
-
-import java.net.InetAddress;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.discovery.IServiceProperties;
-import org.eclipse.ecf.discovery.ServiceInfo;
-import org.eclipse.ecf.discovery.ServiceProperties;
-import org.eclipse.ecf.discovery.identity.IServiceTypeID;
-import org.eclipse.ecf.discovery.identity.ServiceIDFactory;
-import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
-
-/**
- * Default implementation of {@link IServiceInfoFactory}.
- *
- */
-public class ServiceInfoFactory extends AbstractMetadataFactory implements
- IServiceInfoFactory {
-
- protected Map<ServiceInfoKey, IServiceInfo> serviceInfos = new HashMap();
-
- protected class ServiceInfoKey {
- private EndpointDescription endpointDescription;
- private Namespace discoveryNamespace;
- private int hashCode = 7;
-
- public ServiceInfoKey(EndpointDescription endpointDescription,
- Namespace discoveryNamespace) {
- this.endpointDescription = endpointDescription;
- this.discoveryNamespace = discoveryNamespace;
- this.hashCode = 31 * this.hashCode + endpointDescription.hashCode();
- this.hashCode = 31 * this.hashCode + discoveryNamespace.hashCode();
- }
-
- public boolean equals(Object other) {
- if (other == null)
- return false;
- if (!(other instanceof ServiceInfoKey))
- return false;
- ServiceInfoKey otherKey = (ServiceInfoKey) other;
- return (this.endpointDescription
- .equals(otherKey.endpointDescription) && this.discoveryNamespace
- .equals(otherKey.discoveryNamespace));
- }
-
- public int hashCode() {
- return hashCode;
- }
- }
-
- public IServiceInfo createServiceInfo(IDiscoveryAdvertiser advertiser,
- EndpointDescription endpointDescription) {
- try {
- Namespace advertiserNamespace = advertiser.getServicesNamespace();
- ServiceInfoKey key = new ServiceInfoKey(endpointDescription,
- advertiserNamespace);
- IServiceInfo existingServiceInfo = null;
- synchronized (serviceInfos) {
- existingServiceInfo = serviceInfos.get(key);
- // If it's already there, then we return null
- if (existingServiceInfo != null)
- return null;
- IServiceTypeID serviceTypeID = createServiceTypeID(
- endpointDescription, advertiser);
- String serviceName = createServiceName(endpointDescription,
- advertiser, serviceTypeID);
- URI uri = createURI(endpointDescription, advertiser,
- serviceTypeID, serviceName);
- IServiceProperties serviceProperties = createServiceProperties(
- endpointDescription, advertiser, serviceTypeID,
- serviceName, uri);
- IServiceInfo newServiceInfo = createServiceInfo(uri,
- serviceName, serviceTypeID, serviceProperties);
- // put into map using key
- serviceInfos.put(key, newServiceInfo);
- return newServiceInfo;
- }
- } catch (Exception e) {
- logError(
- "createServiceInfoForDiscovery", //$NON-NLS-1$
- "Exception creating service info for endpointDescription=" //$NON-NLS-1$
- + endpointDescription + ",advertiser=" + advertiser, //$NON-NLS-1$
- e);
- return null;
- }
- }
-
- protected IServiceInfo createServiceInfo(URI uri, String serviceName,
- IServiceTypeID serviceTypeID, IServiceProperties serviceProperties) {
- return new ServiceInfo(uri, serviceName, serviceTypeID,
- serviceProperties);
- }
-
- protected IServiceProperties createServiceProperties(
- EndpointDescription endpointDescription,
- IDiscoveryAdvertiser advertiser, IServiceTypeID serviceTypeID,
- String serviceName, URI uri) {
- ServiceProperties result = new ServiceProperties();
- encodeServiceProperties(endpointDescription, result);
- return result;
- }
-
- protected URI createURI(EndpointDescription endpointDescription,
- IDiscoveryAdvertiser advertiser, IServiceTypeID serviceTypeID,
- String serviceName) throws URISyntaxException {
- String path = "/" + serviceName; //$NON-NLS-1$
- String str = endpointDescription.getId();
- URI uri = null;
- while (true) {
- try {
- uri = new URI(str);
- if (uri.getHost() != null) {
- break;
- } else {
- final String rawSchemeSpecificPart = uri
- .getRawSchemeSpecificPart();
- // make sure we break eventually
- if (str.equals(rawSchemeSpecificPart)) {
- uri = null;
- break;
- } else {
- str = rawSchemeSpecificPart;
- }
- }
- } catch (URISyntaxException e) {
- uri = null;
- break;
- }
- }
- String scheme = RemoteConstants.DISCOVERY_SERVICE_TYPE;
- int port = 32565;
- if (uri != null) {
- port = uri.getPort();
- if (port == -1)
- port = 32565;
- }
- String host = null;
- if (uri != null) {
- host = uri.getHost();
- } else {
- try {
- host = InetAddress.getLocalHost().getHostAddress();
- } catch (Exception e) {
- logWarning(
- "createURI", //$NON-NLS-1$
- "failed to get local host adress, falling back to \'localhost\'.", e); //$NON-NLS-1$
- host = "localhost"; //$NON-NLS-1$
- }
- }
- return new URI(scheme, null, host, port, path, null, null);
- }
-
- protected String createServiceName(EndpointDescription endpointDescription,
- IDiscoveryAdvertiser advertiser, IServiceTypeID serviceTypeID) {
- // First create unique default name
- String defaultServiceName = createDefaultServiceName(
- endpointDescription, advertiser, serviceTypeID);
- // Look for service name that was explicitly set
- String serviceName = PropertiesUtil.getStringWithDefault(
- endpointDescription.getProperties(),
- RemoteConstants.DISCOVERY_SERVICE_NAME, defaultServiceName);
- return serviceName;
- }
-
- protected String createDefaultServiceName(
- EndpointDescription endpointDescription,
- IDiscoveryAdvertiser advertiser, IServiceTypeID serviceTypeID) {
- return RemoteConstants.DISCOVERY_DEFAULT_SERVICE_NAME_PREFIX
- + IDFactory.getDefault().createGUID().getName();
- }
-
- protected IServiceTypeID createServiceTypeID(
- EndpointDescription endpointDescription,
- IDiscoveryAdvertiser advertiser) {
- Map props = endpointDescription.getProperties();
- String[] scopes = PropertiesUtil.getStringArrayWithDefault(props,
- RemoteConstants.DISCOVERY_SCOPE, IServiceTypeID.DEFAULT_SCOPE);
- String[] protocols = PropertiesUtil.getStringArrayWithDefault(props,
- RemoteConstants.DISCOVERY_PROTOCOLS,
- IServiceTypeID.DEFAULT_SCOPE);
- String namingAuthority = PropertiesUtil.getStringWithDefault(props,
- RemoteConstants.DISCOVERY_NAMING_AUTHORITY,
- IServiceTypeID.DEFAULT_NA);
- return ServiceIDFactory.getDefault().createServiceTypeID(
- advertiser.getServicesNamespace(),
- new String[] { RemoteConstants.DISCOVERY_SERVICE_TYPE },
- scopes, protocols, namingAuthority);
- }
-
- public IServiceInfo removeServiceInfo(IDiscoveryAdvertiser advertiser,
- EndpointDescription endpointDescription) {
- Namespace advertiserNamespace = advertiser.getServicesNamespace();
- ServiceInfoKey key = new ServiceInfoKey(endpointDescription,
- advertiserNamespace);
- synchronized (serviceInfos) {
- return serviceInfos.remove(key);
- }
- }
-
- public void close() {
- removeAllServiceInfos();
- super.close();
- }
-
- private void removeAllServiceInfos() {
- synchronized (serviceInfos) {
- serviceInfos.clear();
- }
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 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.osgi.services.remoteserviceadmin;
+
+import java.net.InetAddress;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.ecf.core.identity.IDFactory;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.discovery.IServiceProperties;
+import org.eclipse.ecf.discovery.ServiceInfo;
+import org.eclipse.ecf.discovery.ServiceProperties;
+import org.eclipse.ecf.discovery.identity.IServiceTypeID;
+import org.eclipse.ecf.discovery.identity.ServiceIDFactory;
+import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil;
+
+/**
+ * Default implementation of {@link IServiceInfoFactory}.
+ *
+ */
+public class ServiceInfoFactory extends AbstractMetadataFactory implements
+ IServiceInfoFactory {
+
+ protected Map<ServiceInfoKey, IServiceInfo> serviceInfos = new HashMap();
+
+ protected class ServiceInfoKey {
+ private EndpointDescription endpointDescription;
+ private Namespace discoveryNamespace;
+ private int hashCode = 7;
+
+ public ServiceInfoKey(EndpointDescription endpointDescription,
+ Namespace discoveryNamespace) {
+ this.endpointDescription = endpointDescription;
+ this.discoveryNamespace = discoveryNamespace;
+ this.hashCode = 31 * this.hashCode + endpointDescription.hashCode();
+ this.hashCode = 31 * this.hashCode + discoveryNamespace.hashCode();
+ }
+
+ public boolean equals(Object other) {
+ if (other == null)
+ return false;
+ if (!(other instanceof ServiceInfoKey))
+ return false;
+ ServiceInfoKey otherKey = (ServiceInfoKey) other;
+ return (this.endpointDescription
+ .equals(otherKey.endpointDescription) && this.discoveryNamespace
+ .equals(otherKey.discoveryNamespace));
+ }
+
+ public int hashCode() {
+ return hashCode;
+ }
+ }
+
+ public IServiceInfo createServiceInfo(IDiscoveryAdvertiser advertiser,
+ EndpointDescription endpointDescription) {
+ try {
+ Namespace advertiserNamespace = advertiser.getServicesNamespace();
+ ServiceInfoKey key = new ServiceInfoKey(endpointDescription,
+ advertiserNamespace);
+ IServiceInfo existingServiceInfo = null;
+ synchronized (serviceInfos) {
+ existingServiceInfo = serviceInfos.get(key);
+ // If it's already there, then we return null
+ if (existingServiceInfo != null)
+ return null;
+ IServiceTypeID serviceTypeID = createServiceTypeID(
+ endpointDescription, advertiser);
+ String serviceName = createServiceName(endpointDescription,
+ advertiser, serviceTypeID);
+ URI uri = createURI(endpointDescription, advertiser,
+ serviceTypeID, serviceName);
+ IServiceProperties serviceProperties = createServiceProperties(
+ endpointDescription, advertiser, serviceTypeID,
+ serviceName, uri);
+ IServiceInfo newServiceInfo = createServiceInfo(uri,
+ serviceName, serviceTypeID, serviceProperties);
+ // put into map using key
+ serviceInfos.put(key, newServiceInfo);
+ return newServiceInfo;
+ }
+ } catch (Exception e) {
+ logError(
+ "createServiceInfoForDiscovery", //$NON-NLS-1$
+ "Exception creating service info for endpointDescription=" //$NON-NLS-1$
+ + endpointDescription + ",advertiser=" + advertiser, //$NON-NLS-1$
+ e);
+ return null;
+ }
+ }
+
+ protected IServiceInfo createServiceInfo(URI uri, String serviceName,
+ IServiceTypeID serviceTypeID, IServiceProperties serviceProperties) {
+ return new ServiceInfo(uri, serviceName, serviceTypeID,
+ serviceProperties);
+ }
+
+ protected IServiceProperties createServiceProperties(
+ EndpointDescription endpointDescription,
+ IDiscoveryAdvertiser advertiser, IServiceTypeID serviceTypeID,
+ String serviceName, URI uri) {
+ ServiceProperties result = new ServiceProperties();
+ encodeServiceProperties(endpointDescription, result);
+ return result;
+ }
+
+ protected URI createURI(EndpointDescription endpointDescription,
+ IDiscoveryAdvertiser advertiser, IServiceTypeID serviceTypeID,
+ String serviceName) throws URISyntaxException {
+ String path = "/" + serviceName; //$NON-NLS-1$
+ String str = endpointDescription.getId();
+ URI uri = null;
+ while (true) {
+ try {
+ uri = new URI(str);
+ if (uri.getHost() != null) {
+ break;
+ } else {
+ final String rawSchemeSpecificPart = uri
+ .getRawSchemeSpecificPart();
+ // make sure we break eventually
+ if (str.equals(rawSchemeSpecificPart)) {
+ uri = null;
+ break;
+ } else {
+ str = rawSchemeSpecificPart;
+ }
+ }
+ } catch (URISyntaxException e) {
+ uri = null;
+ break;
+ }
+ }
+ String scheme = RemoteConstants.DISCOVERY_SERVICE_TYPE;
+ int port = 32565;
+ if (uri != null) {
+ port = uri.getPort();
+ if (port == -1)
+ port = 32565;
+ }
+ String host = null;
+ if (uri != null) {
+ host = uri.getHost();
+ } else {
+ try {
+ host = InetAddress.getLocalHost().getHostAddress();
+ } catch (Exception e) {
+ logWarning(
+ "createURI", //$NON-NLS-1$
+ "failed to get local host adress, falling back to \'localhost\'.", e); //$NON-NLS-1$
+ host = "localhost"; //$NON-NLS-1$
+ }
+ }
+ return new URI(scheme, null, host, port, path, null, null);
+ }
+
+ protected String createServiceName(EndpointDescription endpointDescription,
+ IDiscoveryAdvertiser advertiser, IServiceTypeID serviceTypeID) {
+ // First create unique default name
+ String defaultServiceName = createDefaultServiceName(
+ endpointDescription, advertiser, serviceTypeID);
+ // Look for service name that was explicitly set
+ String serviceName = PropertiesUtil.getStringWithDefault(
+ endpointDescription.getProperties(),
+ RemoteConstants.DISCOVERY_SERVICE_NAME, defaultServiceName);
+ return serviceName;
+ }
+
+ protected String createDefaultServiceName(
+ EndpointDescription endpointDescription,
+ IDiscoveryAdvertiser advertiser, IServiceTypeID serviceTypeID) {
+ return RemoteConstants.DISCOVERY_DEFAULT_SERVICE_NAME_PREFIX
+ + IDFactory.getDefault().createGUID().getName();
+ }
+
+ protected IServiceTypeID createServiceTypeID(
+ EndpointDescription endpointDescription,
+ IDiscoveryAdvertiser advertiser) {
+ Map props = endpointDescription.getProperties();
+ String[] scopes = PropertiesUtil.getStringArrayWithDefault(props,
+ RemoteConstants.DISCOVERY_SCOPE, IServiceTypeID.DEFAULT_SCOPE);
+ String[] protocols = PropertiesUtil.getStringArrayWithDefault(props,
+ RemoteConstants.DISCOVERY_PROTOCOLS,
+ IServiceTypeID.DEFAULT_SCOPE);
+ String namingAuthority = PropertiesUtil.getStringWithDefault(props,
+ RemoteConstants.DISCOVERY_NAMING_AUTHORITY,
+ IServiceTypeID.DEFAULT_NA);
+ return ServiceIDFactory.getDefault().createServiceTypeID(
+ advertiser.getServicesNamespace(),
+ new String[] { RemoteConstants.DISCOVERY_SERVICE_TYPE },
+ scopes, protocols, namingAuthority);
+ }
+
+ public IServiceInfo removeServiceInfo(IDiscoveryAdvertiser advertiser,
+ EndpointDescription endpointDescription) {
+ Namespace advertiserNamespace = advertiser.getServicesNamespace();
+ ServiceInfoKey key = new ServiceInfoKey(endpointDescription,
+ advertiserNamespace);
+ synchronized (serviceInfos) {
+ return serviceInfos.remove(key);
+ }
+ }
+
+ public void close() {
+ removeAllServiceInfos();
+ super.close();
+ }
+
+ private void removeAllServiceInfos() {
+ synchronized (serviceInfos) {
+ serviceInfos.clear();
+ }
+ }
+}
diff --git a/osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.classpath b/osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.classpath
index 14619a2c1..80407c8d4 100644
--- a/osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.classpath
+++ b/osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry path="" kind="lib" exported="true" sourcepath="src.zip"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry path="" kind="lib" exported="true" sourcepath="src.zip"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs b/osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
index 8c13cf438..928b60522 100644
--- a/osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
+++ b/osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
@@ -1,83 +1,83 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.core.prefs b/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.core.prefs
index 7bc4f35c1..0acef2c4e 100644
--- a/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.core.prefs
+++ b/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.core.prefs
@@ -1,100 +1,100 @@
-#Fri Oct 15 17:32:27 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Fri Oct 15 17:32:27 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.3
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.launching.prefs b/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.launching.prefs
index c5b0d9304..4fcabfc80 100644
--- a/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.launching.prefs
+++ b/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.jdt.launching.prefs
@@ -1,3 +1,3 @@
-#Fri Oct 15 17:32:24 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
+#Fri Oct 15 17:32:24 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.pde.prefs b/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.pde.prefs
index 8e7b248c4..14abb2f89 100644
--- a/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.pde.prefs
+++ b/protocols/bundles/ch.ethz.iks.r_osgi.remote/.settings/org.eclipse.pde.prefs
@@ -1,33 +1,33 @@
-#Fri Oct 15 17:32:28 PDT 2010
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=2
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=0
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
+#Fri Oct 15 17:32:28 PDT 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=2
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=0
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/protocols/bundles/ch.ethz.iks.slp/.checkstyle b/protocols/bundles/ch.ethz.iks.slp/.checkstyle
index 041374e14..b2c0bc484 100644
--- a/protocols/bundles/ch.ethz.iks.slp/.checkstyle
+++ b/protocols/bundles/ch.ethz.iks.slp/.checkstyle
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<fileset-config file-format-version="1.2.0" simple-config="true">
- <fileset name="Alle" enabled="true" check-config-name="Sun Checks (Eclipse)" local="false">
- <file-match-pattern match-pattern="." include-pattern="true"/>
- </fileset>
-</fileset-config>
+<?xml version="1.0" encoding="UTF-8"?>
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="Alle" enabled="true" check-config-name="Sun Checks (Eclipse)" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+</fileset-config>
diff --git a/protocols/bundles/ch.ethz.iks.slp/.settings/org.eclipse.wst.validation.prefs b/protocols/bundles/ch.ethz.iks.slp/.settings/org.eclipse.wst.validation.prefs
index 43dc60c08..5d557e867 100644
--- a/protocols/bundles/ch.ethz.iks.slp/.settings/org.eclipse.wst.validation.prefs
+++ b/protocols/bundles/ch.ethz.iks.slp/.settings/org.eclipse.wst.validation.prefs
@@ -1,6 +1,6 @@
-#Wed May 31 17:52:13 CEST 2006
-DELEGATES_PREFERENCE=delegateValidatorListorg.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator\=org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator\=org.eclipse.wst.wsdl.validation.internal.eclipse.Validator;
-USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.jst.jsp.core.internal.validation.JSPJavaValidator;org.eclipse.jst.jsp.core.internal.validation.JSPELValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.jst.jsp.core.internal.validation.JSPDirectiveValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;
-USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.jst.jsp.core.internal.validation.JSPJavaValidator;org.eclipse.jst.jsp.core.internal.validation.JSPELValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.jst.jsp.core.internal.validation.JSPDirectiveValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;
-USER_PREFERENCE=overrideGlobalPreferencesfalse
-eclipse.preferences.version=1
+#Wed May 31 17:52:13 CEST 2006
+DELEGATES_PREFERENCE=delegateValidatorListorg.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator\=org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator\=org.eclipse.wst.wsdl.validation.internal.eclipse.Validator;
+USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.jst.jsp.core.internal.validation.JSPJavaValidator;org.eclipse.jst.jsp.core.internal.validation.JSPELValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.jst.jsp.core.internal.validation.JSPDirectiveValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;
+USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.jst.jsp.core.internal.validation.JSPJavaValidator;org.eclipse.jst.jsp.core.internal.validation.JSPELValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.jst.jsp.core.internal.validation.JSPDirectiveValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;
+USER_PREFERENCE=overrideGlobalPreferencesfalse
+eclipse.preferences.version=1
diff --git a/protocols/bundles/ch.ethz.iks.slp/maven-site-jslp.vm b/protocols/bundles/ch.ethz.iks.slp/maven-site-jslp.vm
index 7b1e6c351..fab891279 100644
--- a/protocols/bundles/ch.ethz.iks.slp/maven-site-jslp.vm
+++ b/protocols/bundles/ch.ethz.iks.slp/maven-site-jslp.vm
@@ -1,353 +1,353 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-#macro ( banner $banner $id )
- #if ( $banner )
- #if( $banner.href )
- <a href="$banner.href" id="$id">
- #else
- <span id="$id">
- #end
-
- #if( $banner.src )
- #set ( $src = $banner.src )
- #if ( ! ( $src.toLowerCase().startsWith("http") || $src.toLowerCase().startsWith("https") ) )
- #set ( $src = $PathTool.calculateLink( $src, $relativePath ) )
- #set ( $src = $src.replaceAll( "\\", "/" ) )
- #end
- #if ( $banner.alt )
- #set ( $alt = $banner.alt )
- #else
- #set ( $alt = "" )
- #end
- <img src="$src" alt="$alt" />
- #else
- $banner.name
- #end
-
- #if( $banner.href )
- </a>
- #else
- </span>
- #end
- #end
-#end
-
-#macro ( links $links )
- #set ( $counter = 0 )
- #foreach( $item in $links )
- #set ( $counter = $counter + 1 )
- #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
- #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) )
- <a href="$currentItemHref">$item.name</a>
- #if ( $links.size() > $counter )
- |
- #end
- #end
-#end
-
-#macro ( breadcrumbs $breadcrumbs )
- #set ( $counter = 0 )
- #foreach( $item in $breadcrumbs )
- #set ( $counter = $counter + 1 )
- #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
- #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) )
-
- #if ( $currentItemHref == $alignedFileName || $currentItemHref == "" )
- $item.name
- #else
- <a href="$currentItemHref">$item.name</a>
- #end
- #if ( $breadcrumbs.size() > $counter )
- &gt;
- #end
- #end
-#end
-
-#macro ( displayTree $display $item )
- #if ( $item && $item.items && $item.items.size() > 0 )
- #foreach( $subitem in $item.items )
- #set ( $subitemHref = $PathTool.calculateLink( $subitem.href, $relativePath ) )
- #set ( $subitemHref = $subitemHref.replaceAll( "\\", "/" ) )
-
- #if ( $alignedFileName == $subitemHref )
- #set ( $display = true )
- #end
-
- #displayTree( $display $subitem )
- #end
- #end
-#end
-
-#macro ( menuItem $item )
- #set ( $collapse = "none" )
- #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
- #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) )
-
- #if ( $item && $item.items && $item.items.size() > 0 )
- #if ( $item.collapse == false )
- #set ( $collapse = "expanded" )
- #else
- ## By default collapsed
- #set ( $collapse = "collapsed" )
- #end
-
- #set ( $display = false )
- #displayTree( $display $item )
-
- #if ( $alignedFileName == $currentItemHref || $display )
- #set ( $collapse = "expanded" )
- #end
- #end
- <li class="$collapse">
- #if ( $item.img )
- #if ( ! ( $item.img.toLowerCase().startsWith("http") || $item.img.toLowerCase().startsWith("https") ) )
- #set ( $src = $PathTool.calculateLink( $item.img, $relativePath ) )
- #set ( $src = $item.img.replaceAll( "\\", "/" ) )
- <img src="$src"/>
- #else
- <img src="$item.img" align="absbottom" style="border-width: 0"/>
- #end
- #end
- #if ( $alignedFileName == $currentItemHref )
- <strong>$item.name</strong>
- #else
- <a href="$currentItemHref">$item.name</a>
- #end
- #if ( $item && $item.items && $item.items.size() > 0 )
- #if ( $collapse == "expanded" )
- <ul>
- #foreach( $subitem in $item.items )
- #menuItem( $subitem )
- #end
- </ul>
- #end
- #end
- </li>
-#end
-
-#macro ( mainMenu $menus )
- #foreach( $menu in $menus )
- #if ( $menu.name )
- <h5>$menu.name</h5>
- #end
- <ul>
- #foreach( $item in $menu.items )
- #menuItem( $item )
- #end
- </ul>
- #end
-#end
-
-#macro ( copyright )
- #if ( $project )
- #set ( $currentYear = ${currentDate.year} + 1900 )
-
- #if ( ${project.inceptionYear} && ( ${project.inceptionYear} != ${currentYear.toString()} ) )
- ${project.inceptionYear}-${currentYear}
- #else
- ${currentYear}
- #end
-
- #if ( ${project.organization} && ${project.organization.name} )
- ${project.organization.name}
- #end
- #end
-#end
-
-#macro ( publishDate $position $publishDate $version )
- #if ( $publishDate && $publishDate.format )
- #set ( $format = $publishDate.format )
- #else
- #set ( $format = "MM/dd/yyyy" )
- #end
-
- $dateFormat.applyPattern( $format )
-
- #set ( $dateToday = $dateFormat.format( $currentDate ) )
-
- #if ( $publishDate && $publishDate.position )
- #set ( $datePosition = $publishDate.position )
- #else
- #set ( $datePosition = "left" )
- #end
-
- #if ( $version )
- #if ( $version.position )
- #set ( $versionPosition = $version.position )
- #else
- #set ( $versionPosition = "left" )
- #end
- #end
-
- #set ( $breadcrumbs = $decoration.body.breadcrumbs )
-
- #if ( $datePosition.equalsIgnoreCase( $position ) )
- #if ( ( $datePosition.equalsIgnoreCase( "right" ) ) || ( $datePosition.equalsIgnoreCase( "bottom" ) ) )
- &nbsp;| $i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday
- #if ( $versionPosition.equalsIgnoreCase( $position ) )
- &nbsp;| $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
- #end
- #elseif ( ( $datePosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $datePosition.equalsIgnoreCase( "navigation-top" ) ) )
- <div id="lastPublished">
- $i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday
- #if ( $versionPosition.equalsIgnoreCase( $position ) )
- &nbsp;| $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
- #end
- </div>
- #elseif ( $datePosition.equalsIgnoreCase("left") )
- <div class="xleft">
- $i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday
- #if ( $versionPosition.equalsIgnoreCase( $position ) )
- &nbsp;| $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
- #end
- #if ( $breadcrumbs && $breadcrumbs.size() > 0 )
- | #breadcrumbs( $breadcrumbs )
- #end
- </div>
- #end
- #elseif ( $versionPosition.equalsIgnoreCase( $position ) )
- #if ( ( $versionPosition.equalsIgnoreCase( "right" ) ) || ( $versionPosition.equalsIgnoreCase( "bottom" ) ) )
- &nbsp;| $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
- #elseif ( ( $versionPosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $versionPosition.equalsIgnoreCase( "navigation-top" ) ) )
- <div id="lastPublished">
- $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
- </div>
- #elseif ( $versionPosition.equalsIgnoreCase("left") )
- <div class="xleft">
- $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
- #if ( $breadcrumbs && $breadcrumbs.size() > 0 )
- | #breadcrumbs( $breadcrumbs )
- #end
- </div>
- #end
- #elseif ( $position.equalsIgnoreCase( "left" ) )
- #if ( $breadcrumbs && $breadcrumbs.size() > 0 )
- <div class="xleft">
- #breadcrumbs( $breadcrumbs )
- </div>
- #end
- #end
-#end
-
-#macro ( poweredByLogo $poweredBy )
- #if( $poweredBy )
- #foreach ($item in $poweredBy)
- #if( $item.href )
- #set ( $href = $PathTool.calculateLink( $item.href, $relativePath ) )
- #set ( $href = $href.replaceAll( "\\", "/" ) )
- #else
- #set ( $href="http://maven.apache.org/" )
- #end
-
- #if( $item.name )
- #set ( $name = $item.name )
- #else
- #set ( $name = $i18n.getString( "site-renderer", $locale, "template.builtby" ) )
- #set ( $name = "${name} Maven" )
- #end
-
- #if( $item.img )
- #set ( $img = $item.img )
- #else
- #set ( $img = "images/maven-feather.png" )
- #end
-
- <a href="$href" title="$name" id="poweredBy">
- #set ( $img = $PathTool.calculateLink( $img, $relativePath ) )
- #set ( $img = $img.replaceAll( "\\", "/" ) )
- <img alt="$name" src="$img" />
- </a>
- #end
- #if( $poweredBy.isEmpty() )
- <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" id="poweredBy">
- <img alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/maven-feather.png"></img>
- </a>
- <center>
- <a href="http://sourceforge.net/projects/jslp">
- <img src="http://sourceforge.net/sflogo.php?group_id=151721&amp;type=3" border="0" alt="sf logo"/>
- </a>
- </center>
-
-<!-- Start of StatCounter Code -->
-<script type="text/javascript">
-<!--
-var sc_project=1666943;
-var sc_invisible=1;
-var sc_partition=11;
-var sc_security="1d05fd8a";
-//-->
-</script>
-
-<script type="text/javascript" src="http://www.statcounter.com/counter/counter_xhtml.js"></script><noscript><div class="statcounter"><a class="statcounter" href="http://www.statcounter.com/"><img class="statcounter" src="http://c12.statcounter.com/counter.php?sc_project=1666943&java=0&security=1d05fd8a&invisible=1" alt="counter easy hit" /></a></div></noscript>
-<!-- End of StatCounter Code -->
-
- #end
- #else
- <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" id="poweredBy">
- <img alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/maven-feather.png"></img>
- </a>
- #end
-#end
-
-<html>
- <head>
- <title>$title</title>
- <style type="text/css" media="all">
- @import url("$relativePath/css/maven-base.css");
- @import url("$relativePath/css/maven-theme.css");
- @import url("$relativePath/css/site.css");
- </style>
- <link rel="stylesheet" href="$relativePath/css/print.css" type="text/css" media="print" />
- #foreach( $author in $authors )
- <meta name="author" content="$author" />
- #end
- <meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" />
- #if ( $decoration.body.head )
- #foreach( $item in $decoration.body.head.getChildren() )
- #if ( $item.name == "script" )
- $item.toUnescapedString()
- #else
- $item.toString()
- #end
- #end
- #end
- </head>
- <body class="composite">
- <div id="banner">
- #banner( $decoration.bannerLeft "bannerLeft" )
- #banner( $decoration.bannerRight "bannerRight" )
- <div class="clear">
- <hr/>
- </div>
- </div>
- <div id="breadcrumbs">
- #publishDate( "left" $decoration.publishDate $decoration.version )
- <div class="xright">#links( $decoration.body.links )#publishDate( "right" $decoration.publishDate $decoration.version )</div>
- <div class="clear">
- <hr/>
- </div>
- </div>
- <div id="leftColumn">
- <div id="navcolumn">
- #publishDate( "navigation-top" $decoration.publishDate $decoration.version )
- #mainMenu( $decoration.body.menus )
- #poweredByLogo( $decoration.poweredBy )
- #publishDate( "navigation-bottom" $decoration.publishDate $decoration.version )
- </div>
- </div>
- <div id="bodyColumn">
- <div id="contentBox">
- $bodyContent
- </div>
- </div>
- <div class="clear">
- <hr/>
- </div>
- <div id="footer">
- <div class="xright">&#169;#copyright()#publishDate( "bottom" $decoration.publishDate $decoration.version )</div>
- <div class="clear">
- <hr/>
- </div>
- </div>
- </body>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+#macro ( banner $banner $id )
+ #if ( $banner )
+ #if( $banner.href )
+ <a href="$banner.href" id="$id">
+ #else
+ <span id="$id">
+ #end
+
+ #if( $banner.src )
+ #set ( $src = $banner.src )
+ #if ( ! ( $src.toLowerCase().startsWith("http") || $src.toLowerCase().startsWith("https") ) )
+ #set ( $src = $PathTool.calculateLink( $src, $relativePath ) )
+ #set ( $src = $src.replaceAll( "\\", "/" ) )
+ #end
+ #if ( $banner.alt )
+ #set ( $alt = $banner.alt )
+ #else
+ #set ( $alt = "" )
+ #end
+ <img src="$src" alt="$alt" />
+ #else
+ $banner.name
+ #end
+
+ #if( $banner.href )
+ </a>
+ #else
+ </span>
+ #end
+ #end
+#end
+
+#macro ( links $links )
+ #set ( $counter = 0 )
+ #foreach( $item in $links )
+ #set ( $counter = $counter + 1 )
+ #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+ #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) )
+ <a href="$currentItemHref">$item.name</a>
+ #if ( $links.size() > $counter )
+ |
+ #end
+ #end
+#end
+
+#macro ( breadcrumbs $breadcrumbs )
+ #set ( $counter = 0 )
+ #foreach( $item in $breadcrumbs )
+ #set ( $counter = $counter + 1 )
+ #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+ #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) )
+
+ #if ( $currentItemHref == $alignedFileName || $currentItemHref == "" )
+ $item.name
+ #else
+ <a href="$currentItemHref">$item.name</a>
+ #end
+ #if ( $breadcrumbs.size() > $counter )
+ &gt;
+ #end
+ #end
+#end
+
+#macro ( displayTree $display $item )
+ #if ( $item && $item.items && $item.items.size() > 0 )
+ #foreach( $subitem in $item.items )
+ #set ( $subitemHref = $PathTool.calculateLink( $subitem.href, $relativePath ) )
+ #set ( $subitemHref = $subitemHref.replaceAll( "\\", "/" ) )
+
+ #if ( $alignedFileName == $subitemHref )
+ #set ( $display = true )
+ #end
+
+ #displayTree( $display $subitem )
+ #end
+ #end
+#end
+
+#macro ( menuItem $item )
+ #set ( $collapse = "none" )
+ #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+ #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) )
+
+ #if ( $item && $item.items && $item.items.size() > 0 )
+ #if ( $item.collapse == false )
+ #set ( $collapse = "expanded" )
+ #else
+ ## By default collapsed
+ #set ( $collapse = "collapsed" )
+ #end
+
+ #set ( $display = false )
+ #displayTree( $display $item )
+
+ #if ( $alignedFileName == $currentItemHref || $display )
+ #set ( $collapse = "expanded" )
+ #end
+ #end
+ <li class="$collapse">
+ #if ( $item.img )
+ #if ( ! ( $item.img.toLowerCase().startsWith("http") || $item.img.toLowerCase().startsWith("https") ) )
+ #set ( $src = $PathTool.calculateLink( $item.img, $relativePath ) )
+ #set ( $src = $item.img.replaceAll( "\\", "/" ) )
+ <img src="$src"/>
+ #else
+ <img src="$item.img" align="absbottom" style="border-width: 0"/>
+ #end
+ #end
+ #if ( $alignedFileName == $currentItemHref )
+ <strong>$item.name</strong>
+ #else
+ <a href="$currentItemHref">$item.name</a>
+ #end
+ #if ( $item && $item.items && $item.items.size() > 0 )
+ #if ( $collapse == "expanded" )
+ <ul>
+ #foreach( $subitem in $item.items )
+ #menuItem( $subitem )
+ #end
+ </ul>
+ #end
+ #end
+ </li>
+#end
+
+#macro ( mainMenu $menus )
+ #foreach( $menu in $menus )
+ #if ( $menu.name )
+ <h5>$menu.name</h5>
+ #end
+ <ul>
+ #foreach( $item in $menu.items )
+ #menuItem( $item )
+ #end
+ </ul>
+ #end
+#end
+
+#macro ( copyright )
+ #if ( $project )
+ #set ( $currentYear = ${currentDate.year} + 1900 )
+
+ #if ( ${project.inceptionYear} && ( ${project.inceptionYear} != ${currentYear.toString()} ) )
+ ${project.inceptionYear}-${currentYear}
+ #else
+ ${currentYear}
+ #end
+
+ #if ( ${project.organization} && ${project.organization.name} )
+ ${project.organization.name}
+ #end
+ #end
+#end
+
+#macro ( publishDate $position $publishDate $version )
+ #if ( $publishDate && $publishDate.format )
+ #set ( $format = $publishDate.format )
+ #else
+ #set ( $format = "MM/dd/yyyy" )
+ #end
+
+ $dateFormat.applyPattern( $format )
+
+ #set ( $dateToday = $dateFormat.format( $currentDate ) )
+
+ #if ( $publishDate && $publishDate.position )
+ #set ( $datePosition = $publishDate.position )
+ #else
+ #set ( $datePosition = "left" )
+ #end
+
+ #if ( $version )
+ #if ( $version.position )
+ #set ( $versionPosition = $version.position )
+ #else
+ #set ( $versionPosition = "left" )
+ #end
+ #end
+
+ #set ( $breadcrumbs = $decoration.body.breadcrumbs )
+
+ #if ( $datePosition.equalsIgnoreCase( $position ) )
+ #if ( ( $datePosition.equalsIgnoreCase( "right" ) ) || ( $datePosition.equalsIgnoreCase( "bottom" ) ) )
+ &nbsp;| $i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday
+ #if ( $versionPosition.equalsIgnoreCase( $position ) )
+ &nbsp;| $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
+ #end
+ #elseif ( ( $datePosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $datePosition.equalsIgnoreCase( "navigation-top" ) ) )
+ <div id="lastPublished">
+ $i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday
+ #if ( $versionPosition.equalsIgnoreCase( $position ) )
+ &nbsp;| $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
+ #end
+ </div>
+ #elseif ( $datePosition.equalsIgnoreCase("left") )
+ <div class="xleft">
+ $i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday
+ #if ( $versionPosition.equalsIgnoreCase( $position ) )
+ &nbsp;| $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
+ #end
+ #if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+ | #breadcrumbs( $breadcrumbs )
+ #end
+ </div>
+ #end
+ #elseif ( $versionPosition.equalsIgnoreCase( $position ) )
+ #if ( ( $versionPosition.equalsIgnoreCase( "right" ) ) || ( $versionPosition.equalsIgnoreCase( "bottom" ) ) )
+ &nbsp;| $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
+ #elseif ( ( $versionPosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $versionPosition.equalsIgnoreCase( "navigation-top" ) ) )
+ <div id="lastPublished">
+ $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
+ </div>
+ #elseif ( $versionPosition.equalsIgnoreCase("left") )
+ <div class="xleft">
+ $i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}
+ #if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+ | #breadcrumbs( $breadcrumbs )
+ #end
+ </div>
+ #end
+ #elseif ( $position.equalsIgnoreCase( "left" ) )
+ #if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+ <div class="xleft">
+ #breadcrumbs( $breadcrumbs )
+ </div>
+ #end
+ #end
+#end
+
+#macro ( poweredByLogo $poweredBy )
+ #if( $poweredBy )
+ #foreach ($item in $poweredBy)
+ #if( $item.href )
+ #set ( $href = $PathTool.calculateLink( $item.href, $relativePath ) )
+ #set ( $href = $href.replaceAll( "\\", "/" ) )
+ #else
+ #set ( $href="http://maven.apache.org/" )
+ #end
+
+ #if( $item.name )
+ #set ( $name = $item.name )
+ #else
+ #set ( $name = $i18n.getString( "site-renderer", $locale, "template.builtby" ) )
+ #set ( $name = "${name} Maven" )
+ #end
+
+ #if( $item.img )
+ #set ( $img = $item.img )
+ #else
+ #set ( $img = "images/maven-feather.png" )
+ #end
+
+ <a href="$href" title="$name" id="poweredBy">
+ #set ( $img = $PathTool.calculateLink( $img, $relativePath ) )
+ #set ( $img = $img.replaceAll( "\\", "/" ) )
+ <img alt="$name" src="$img" />
+ </a>
+ #end
+ #if( $poweredBy.isEmpty() )
+ <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" id="poweredBy">
+ <img alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/maven-feather.png"></img>
+ </a>
+ <center>
+ <a href="http://sourceforge.net/projects/jslp">
+ <img src="http://sourceforge.net/sflogo.php?group_id=151721&amp;type=3" border="0" alt="sf logo"/>
+ </a>
+ </center>
+
+<!-- Start of StatCounter Code -->
+<script type="text/javascript">
+<!--
+var sc_project=1666943;
+var sc_invisible=1;
+var sc_partition=11;
+var sc_security="1d05fd8a";
+//-->
+</script>
+
+<script type="text/javascript" src="http://www.statcounter.com/counter/counter_xhtml.js"></script><noscript><div class="statcounter"><a class="statcounter" href="http://www.statcounter.com/"><img class="statcounter" src="http://c12.statcounter.com/counter.php?sc_project=1666943&java=0&security=1d05fd8a&invisible=1" alt="counter easy hit" /></a></div></noscript>
+<!-- End of StatCounter Code -->
+
+ #end
+ #else
+ <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" id="poweredBy">
+ <img alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/maven-feather.png"></img>
+ </a>
+ #end
+#end
+
+<html>
+ <head>
+ <title>$title</title>
+ <style type="text/css" media="all">
+ @import url("$relativePath/css/maven-base.css");
+ @import url("$relativePath/css/maven-theme.css");
+ @import url("$relativePath/css/site.css");
+ </style>
+ <link rel="stylesheet" href="$relativePath/css/print.css" type="text/css" media="print" />
+ #foreach( $author in $authors )
+ <meta name="author" content="$author" />
+ #end
+ <meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" />
+ #if ( $decoration.body.head )
+ #foreach( $item in $decoration.body.head.getChildren() )
+ #if ( $item.name == "script" )
+ $item.toUnescapedString()
+ #else
+ $item.toString()
+ #end
+ #end
+ #end
+ </head>
+ <body class="composite">
+ <div id="banner">
+ #banner( $decoration.bannerLeft "bannerLeft" )
+ #banner( $decoration.bannerRight "bannerRight" )
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+ #publishDate( "left" $decoration.publishDate $decoration.version )
+ <div class="xright">#links( $decoration.body.links )#publishDate( "right" $decoration.publishDate $decoration.version )</div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+ #publishDate( "navigation-top" $decoration.publishDate $decoration.version )
+ #mainMenu( $decoration.body.menus )
+ #poweredByLogo( $decoration.poweredBy )
+ #publishDate( "navigation-bottom" $decoration.publishDate $decoration.version )
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+ $bodyContent
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">&#169;#copyright()#publishDate( "bottom" $decoration.publishDate $decoration.version )</div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
</html> \ No newline at end of file
diff --git a/protocols/bundles/ch.ethz.iks.slp/runtimeTests/META-INF/MANIFEST.MF b/protocols/bundles/ch.ethz.iks.slp/runtimeTests/META-INF/MANIFEST.MF
index 5835fa47b..50fca9986 100644
--- a/protocols/bundles/ch.ethz.iks.slp/runtimeTests/META-INF/MANIFEST.MF
+++ b/protocols/bundles/ch.ethz.iks.slp/runtimeTests/META-INF/MANIFEST.MF
@@ -1,20 +1,20 @@
-Manifest-Version: 1.0
-Export-Package: ch.ethz.iks.slp.test;uses:="ch.ethz.iks.slp,junit.fram
- ework,org.osgi.framework,junit.textui"
-Private-Package: ch.ethz.iks.slp.test
-Built-By: markus
-Tool: Bnd-0.0.357
-Bundle-Name: jslp-test
-Created-By: Apache Maven Bundle Plugin
-Bundle-Vendor: Jan S. Rellermeyer, IKS, ETH Zurich
-Build-Jdk: 1.6.0_16
-Bundle-Version: 1.1.0.qualifier
-Bnd-LastModified: 1258568231718
-Bundle-Activator: ch.ethz.iks.slp.test.TestActivator
-Bundle-SymbolicName: ch.ethz.iks.slp.test
-Import-Package: ch.ethz.iks.slp;version="1.0",
- junit.framework,
- junit.textui,
- org.apache.tools.ant.taskdefs.optional.junit,
- org.osgi.framework;version="1.2"
-
+Manifest-Version: 1.0
+Export-Package: ch.ethz.iks.slp.test;uses:="ch.ethz.iks.slp,junit.fram
+ ework,org.osgi.framework,junit.textui"
+Private-Package: ch.ethz.iks.slp.test
+Built-By: markus
+Tool: Bnd-0.0.357
+Bundle-Name: jslp-test
+Created-By: Apache Maven Bundle Plugin
+Bundle-Vendor: Jan S. Rellermeyer, IKS, ETH Zurich
+Build-Jdk: 1.6.0_16
+Bundle-Version: 1.1.0.qualifier
+Bnd-LastModified: 1258568231718
+Bundle-Activator: ch.ethz.iks.slp.test.TestActivator
+Bundle-SymbolicName: ch.ethz.iks.slp.test
+Import-Package: ch.ethz.iks.slp;version="1.0",
+ junit.framework,
+ junit.textui,
+ org.apache.tools.ant.taskdefs.optional.junit,
+ org.osgi.framework;version="1.2"
+
diff --git a/protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/SelfDiscoveryTest.java b/protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/SelfDiscoveryTest.java
index b24550cbe..baf99def5 100644
--- a/protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/SelfDiscoveryTest.java
+++ b/protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/SelfDiscoveryTest.java
@@ -1,160 +1,160 @@
-/*******************************************************************************
- * Copyright (c) 2008 Versant Corp.
- * 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:
- * Markus Kuppe (mkuppe <at> versant <dot> com) - initial API and implementation
- ******************************************************************************/
-package ch.ethz.iks.slp.test;
-
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import ch.ethz.iks.slp.ServiceLocationEnumeration;
-import ch.ethz.iks.slp.ServiceLocationException;
-import ch.ethz.iks.slp.ServiceType;
-import ch.ethz.iks.slp.ServiceURL;
-
-public class SelfDiscoveryTest extends TestCase {
-
- private final String HOST_AND_PORT = System.getProperty("net.slp.tests.hostAndPort", "gantenbein:123");
- private ServiceURL service;
- private Dictionary properties;
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- public void setUp() throws InterruptedException {
- try {
- service = new ServiceURL("service:osgi://" + HOST_AND_PORT, 10800);
- int i = 0;
- properties = new Hashtable();
- properties.put("attr", Boolean.FALSE);
- properties.put("attr" + i++, "value");
- properties.put("attr" + i++, "foo,bar");
- properties.put("attr" + i++, "foo:bar");
- properties.put("attr" + i++, "foo bar");
- TestActivator.advertiser.register(service, properties);
- } catch (ServiceLocationException e) {
- Assert.fail(e.getMessage());
- e.printStackTrace();
- }
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- public void tearDown() throws InterruptedException {
- try {
- TestActivator.advertiser.deregister(service);
- } catch (ServiceLocationException e) {
- Assert.fail(e.getMessage());
- e.printStackTrace();
- }
- }
-
- /**
- * Test method for
- * {@link ch.ethz.iks.slp.Locator}.
- */
- public void testService() throws Exception {
- int count = 0;
- for (ServiceLocationEnumeration services = TestActivator.locator
- .findServices(new ServiceType("service:osgi"), null, null); services
- .hasMoreElements();) {
- assertEquals(services.next().toString(),
- "service:osgi://" + HOST_AND_PORT);
- count++;
- }
- assertEquals(1, count);
- }
-
- /**
- * Test method for
- * {@link ch.ethz.iks.slp.Locator}.
- */
- public void testAttributes() throws Exception {
- int count = 0;
-
- // not fast but DRY
- outter:
- for (ServiceLocationEnumeration attributes = TestActivator.locator
- .findAttributes(new ServiceType("service:osgi"), null, null); attributes
- .hasMoreElements();) {
- final String attribute = attributes.next().toString();
-
- // inner loop over the dict
- Enumeration elements = properties.keys();
- for(;elements.hasMoreElements();) {
- String key= elements.nextElement().toString();
- String value = properties.get(key).toString();
- if(attribute.equals(("(" + key + "=" + value + ")"))) {
- count++;
- continue outter;
- }
- }
- fail(attribute + " not found in reference " + properties.toString());
- }
- assertEquals(properties.size(), count);
- }
-
- /**
- * Test method for
- * {@link ch.ethz.iks.slp.Locator}.
- */
- public void testFilter() throws Exception {
- int count = 0;
- for (ServiceLocationEnumeration services = TestActivator.locator
- .findServices(new ServiceType("service:osgi"), null,
- "(attr=false)"); services.hasMoreElements();) {
- assertEquals(services.next().toString(),
- "service:osgi://" + HOST_AND_PORT);
- count++;
- }
- assertEquals(1, count);
- }
-
- /**
- * Test method for
- * {@link ch.ethz.iks.slp.Locator}.
- */
- public void testFilterWithWildcard() throws Exception {
- int count = 0;
- for (ServiceLocationEnumeration services = TestActivator.locator
- .findServices(new ServiceType("service:osgi"), null, "(attr=*)"); services
- .hasMoreElements();) {
- assertEquals(services.next().toString(),
- "service:osgi://" + HOST_AND_PORT);
- count++;
- }
- assertEquals(1, count);
- }
-
-
- /**
- * Test method for
- * {@link ch.ethz.iks.slp.Locator}.
- *
- * [1] http://www.faqs.org/rfcs/rfc1960.html
- * Cite: If a <value> must contain one of the characters '*' or '(' or ')', these
- * characters should be escaped by preceding them with the backslash '\' character.
- */
- public void testFilterWithBrokenParenthesis() throws Exception {
- try {
- // correct filter is (service-type=\(service:osgi\))
- TestActivator.locator.findServices(new ServiceType("service:osgi"), null,
- "(service-type=(service:osgi))");
- } catch (ServiceLocationException e) {
- if(e.getErrorCode() == 20) {
- return;
- }
- }
- fail();
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2008 Versant Corp.
+ * 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:
+ * Markus Kuppe (mkuppe <at> versant <dot> com) - initial API and implementation
+ ******************************************************************************/
+package ch.ethz.iks.slp.test;
+
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import ch.ethz.iks.slp.ServiceLocationEnumeration;
+import ch.ethz.iks.slp.ServiceLocationException;
+import ch.ethz.iks.slp.ServiceType;
+import ch.ethz.iks.slp.ServiceURL;
+
+public class SelfDiscoveryTest extends TestCase {
+
+ private final String HOST_AND_PORT = System.getProperty("net.slp.tests.hostAndPort", "gantenbein:123");
+ private ServiceURL service;
+ private Dictionary properties;
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ public void setUp() throws InterruptedException {
+ try {
+ service = new ServiceURL("service:osgi://" + HOST_AND_PORT, 10800);
+ int i = 0;
+ properties = new Hashtable();
+ properties.put("attr", Boolean.FALSE);
+ properties.put("attr" + i++, "value");
+ properties.put("attr" + i++, "foo,bar");
+ properties.put("attr" + i++, "foo:bar");
+ properties.put("attr" + i++, "foo bar");
+ TestActivator.advertiser.register(service, properties);
+ } catch (ServiceLocationException e) {
+ Assert.fail(e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ public void tearDown() throws InterruptedException {
+ try {
+ TestActivator.advertiser.deregister(service);
+ } catch (ServiceLocationException e) {
+ Assert.fail(e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Test method for
+ * {@link ch.ethz.iks.slp.Locator}.
+ */
+ public void testService() throws Exception {
+ int count = 0;
+ for (ServiceLocationEnumeration services = TestActivator.locator
+ .findServices(new ServiceType("service:osgi"), null, null); services
+ .hasMoreElements();) {
+ assertEquals(services.next().toString(),
+ "service:osgi://" + HOST_AND_PORT);
+ count++;
+ }
+ assertEquals(1, count);
+ }
+
+ /**
+ * Test method for
+ * {@link ch.ethz.iks.slp.Locator}.
+ */
+ public void testAttributes() throws Exception {
+ int count = 0;
+
+ // not fast but DRY
+ outter:
+ for (ServiceLocationEnumeration attributes = TestActivator.locator
+ .findAttributes(new ServiceType("service:osgi"), null, null); attributes
+ .hasMoreElements();) {
+ final String attribute = attributes.next().toString();
+
+ // inner loop over the dict
+ Enumeration elements = properties.keys();
+ for(;elements.hasMoreElements();) {
+ String key= elements.nextElement().toString();
+ String value = properties.get(key).toString();
+ if(attribute.equals(("(" + key + "=" + value + ")"))) {
+ count++;
+ continue outter;
+ }
+ }
+ fail(attribute + " not found in reference " + properties.toString());
+ }
+ assertEquals(properties.size(), count);
+ }
+
+ /**
+ * Test method for
+ * {@link ch.ethz.iks.slp.Locator}.
+ */
+ public void testFilter() throws Exception {
+ int count = 0;
+ for (ServiceLocationEnumeration services = TestActivator.locator
+ .findServices(new ServiceType("service:osgi"), null,
+ "(attr=false)"); services.hasMoreElements();) {
+ assertEquals(services.next().toString(),
+ "service:osgi://" + HOST_AND_PORT);
+ count++;
+ }
+ assertEquals(1, count);
+ }
+
+ /**
+ * Test method for
+ * {@link ch.ethz.iks.slp.Locator}.
+ */
+ public void testFilterWithWildcard() throws Exception {
+ int count = 0;
+ for (ServiceLocationEnumeration services = TestActivator.locator
+ .findServices(new ServiceType("service:osgi"), null, "(attr=*)"); services
+ .hasMoreElements();) {
+ assertEquals(services.next().toString(),
+ "service:osgi://" + HOST_AND_PORT);
+ count++;
+ }
+ assertEquals(1, count);
+ }
+
+
+ /**
+ * Test method for
+ * {@link ch.ethz.iks.slp.Locator}.
+ *
+ * [1] http://www.faqs.org/rfcs/rfc1960.html
+ * Cite: If a <value> must contain one of the characters '*' or '(' or ')', these
+ * characters should be escaped by preceding them with the backslash '\' character.
+ */
+ public void testFilterWithBrokenParenthesis() throws Exception {
+ try {
+ // correct filter is (service-type=\(service:osgi\))
+ TestActivator.locator.findServices(new ServiceType("service:osgi"), null,
+ "(service-type=(service:osgi))");
+ } catch (ServiceLocationException e) {
+ if(e.getErrorCode() == 20) {
+ return;
+ }
+ }
+ fail();
+ }
+}
diff --git a/protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/TestActivator.java b/protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/TestActivator.java
index b75f27c21..c17c1e1a5 100644
--- a/protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/TestActivator.java
+++ b/protocols/bundles/ch.ethz.iks.slp/runtimeTests/src/main/java/ch/ethz/iks/slp/test/TestActivator.java
@@ -1,162 +1,162 @@
-/****************************************************************************
- * Copyright (c) 2005, 2010 Jan S. Rellermeyer, Systems Group,
- * Department of Computer Science, ETH Zurich 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:
- * Jan S. Rellermeyer - initial API and implementation
- * Markus Alexander Kuppe - enhancements and bug fixes
- *
-*****************************************************************************/
-package ch.ethz.iks.slp.test;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-import junit.framework.TestFailure;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter;
-import org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter;
-import org.apache.tools.ant.taskdefs.optional.junit.JUnitTest;
-import org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-import ch.ethz.iks.slp.Advertiser;
-import ch.ethz.iks.slp.Locator;
-
-public class TestActivator implements BundleActivator {
- protected String outputDirectory = System.getProperty("test.result.output.dir", System.getProperty("user.dir"));
-
- static Advertiser advertiser;
- static Locator locator;
-
- public void start(BundleContext context) throws Exception {
- ServiceReference advertiserRef = null;
- try {
- ServiceReference[] aSrefs = context
- .getServiceReferences(Advertiser.class.getName(), null);
- for (int i = 0; i < aSrefs.length; i++) {
- ServiceReference serviceReference = aSrefs[i];
- String version = (String) serviceReference.getBundle().getHeaders().get("Bundle-Version");
- if(version.equals(System.getProperty("net.slp.versionUnderTest"))) {
- advertiserRef = serviceReference;
- } else {
- context.getService(serviceReference);
- }
- }
-
- advertiser = (Advertiser) context.getService(advertiserRef);
- locator = (Locator) context.getService(context
- .getServiceReference(Locator.class.getName()));
- } catch (Exception e) {
- System.exit(1);
- }
-
- startTests();
- }
-
- protected void startTests() {
- final TestSuite suite = new TestSuite();
- final TestResult result = new TestResult();
-
- final JUnitTest jUnitTest = new JUnitTest("ch.ethz.iks.slp.test");
- jUnitTest.setProperties(System.getProperties());
-
- // create the xml result formatter
- final JUnitResultFormatter xmlResultFormatter = new XMLJUnitResultFormatter();
- final File file = new File(outputDirectory, "TEST-ch.ethz.iks.slp.test" + ".xml");
- try {
- xmlResultFormatter.setOutput(new FileOutputStream(file));
- } catch (FileNotFoundException e) {
- // may never happen
- e.printStackTrace();
- }
- result.addListener(xmlResultFormatter);
- // create a result formatter that prints to the console
- final JUnitResultFormatter consoleResultFormatter = new BriefJUnitResultFormatter();
- consoleResultFormatter.setOutput(System.out);
- result.addListener(consoleResultFormatter);
-
- // add the actual tests to the test suite
- Collection collection = new ArrayList();
- collection.add(SelfDiscoveryTest.class);
- for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
- Class clazz = (Class) iterator.next();
- // run all methods starting with "test*"
- Method[] methods = clazz.getMethods();
- for (int i = 0; i < methods.length; i++) {
- if (methods[i].getName().startsWith("test")) {
- TestCase testCase;
- try {
- testCase = (TestCase) clazz.newInstance();
- testCase.setName(methods[i].getName());
- suite.addTest(testCase);
- } catch (InstantiationException e) {
- // may never happen
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // may never happen
- e.printStackTrace();
- }
- }
- }
- }
-
- // prepare to run tests
- final long start = System.currentTimeMillis();
- xmlResultFormatter.startTestSuite(jUnitTest);
- consoleResultFormatter.startTestSuite(jUnitTest);
-
- // run tests
- suite.run(result);
-
- // write stats and close reultformatter
- jUnitTest.setCounts(result.runCount(), result.failureCount(), result.errorCount());
- jUnitTest.setRunTime(System.currentTimeMillis() - start);
- xmlResultFormatter.endTestSuite(jUnitTest);
- consoleResultFormatter.endTestSuite(jUnitTest);
-
- // print success of failure
- if (result.wasSuccessful()) {
- System.exit(0);
- } else {
- if (result.errorCount() > 0) {
- System.err.println("Errors:");
- for (Enumeration errors = result.errors(); errors
- .hasMoreElements();) {
- TestFailure error = (TestFailure) errors.nextElement();
- System.err.println(error.trace());
- }
- }
- if (result.failureCount() > 0) {
- System.err.println("Failures:");
- for (Enumeration failures = result.failures(); failures
- .hasMoreElements();) {
- TestFailure failure = (TestFailure) failures.nextElement();
- System.err.println(failure.trace());
- }
- }
- System.exit(1);
- };
- }
-
- public void stop(BundleContext context) throws Exception {
- advertiser = null;
- locator = null;
- }
-
-}
+/****************************************************************************
+ * Copyright (c) 2005, 2010 Jan S. Rellermeyer, Systems Group,
+ * Department of Computer Science, ETH Zurich 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:
+ * Jan S. Rellermeyer - initial API and implementation
+ * Markus Alexander Kuppe - enhancements and bug fixes
+ *
+*****************************************************************************/
+package ch.ethz.iks.slp.test;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+import junit.framework.TestFailure;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter;
+import org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter;
+import org.apache.tools.ant.taskdefs.optional.junit.JUnitTest;
+import org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+import ch.ethz.iks.slp.Advertiser;
+import ch.ethz.iks.slp.Locator;
+
+public class TestActivator implements BundleActivator {
+ protected String outputDirectory = System.getProperty("test.result.output.dir", System.getProperty("user.dir"));
+
+ static Advertiser advertiser;
+ static Locator locator;
+
+ public void start(BundleContext context) throws Exception {
+ ServiceReference advertiserRef = null;
+ try {
+ ServiceReference[] aSrefs = context
+ .getServiceReferences(Advertiser.class.getName(), null);
+ for (int i = 0; i < aSrefs.length; i++) {
+ ServiceReference serviceReference = aSrefs[i];
+ String version = (String) serviceReference.getBundle().getHeaders().get("Bundle-Version");
+ if(version.equals(System.getProperty("net.slp.versionUnderTest"))) {
+ advertiserRef = serviceReference;
+ } else {
+ context.getService(serviceReference);
+ }
+ }
+
+ advertiser = (Advertiser) context.getService(advertiserRef);
+ locator = (Locator) context.getService(context
+ .getServiceReference(Locator.class.getName()));
+ } catch (Exception e) {
+ System.exit(1);
+ }
+
+ startTests();
+ }
+
+ protected void startTests() {
+ final TestSuite suite = new TestSuite();
+ final TestResult result = new TestResult();
+
+ final JUnitTest jUnitTest = new JUnitTest("ch.ethz.iks.slp.test");
+ jUnitTest.setProperties(System.getProperties());
+
+ // create the xml result formatter
+ final JUnitResultFormatter xmlResultFormatter = new XMLJUnitResultFormatter();
+ final File file = new File(outputDirectory, "TEST-ch.ethz.iks.slp.test" + ".xml");
+ try {
+ xmlResultFormatter.setOutput(new FileOutputStream(file));
+ } catch (FileNotFoundException e) {
+ // may never happen
+ e.printStackTrace();
+ }
+ result.addListener(xmlResultFormatter);
+ // create a result formatter that prints to the console
+ final JUnitResultFormatter consoleResultFormatter = new BriefJUnitResultFormatter();
+ consoleResultFormatter.setOutput(System.out);
+ result.addListener(consoleResultFormatter);
+
+ // add the actual tests to the test suite
+ Collection collection = new ArrayList();
+ collection.add(SelfDiscoveryTest.class);
+ for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
+ Class clazz = (Class) iterator.next();
+ // run all methods starting with "test*"
+ Method[] methods = clazz.getMethods();
+ for (int i = 0; i < methods.length; i++) {
+ if (methods[i].getName().startsWith("test")) {
+ TestCase testCase;
+ try {
+ testCase = (TestCase) clazz.newInstance();
+ testCase.setName(methods[i].getName());
+ suite.addTest(testCase);
+ } catch (InstantiationException e) {
+ // may never happen
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // may never happen
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ // prepare to run tests
+ final long start = System.currentTimeMillis();
+ xmlResultFormatter.startTestSuite(jUnitTest);
+ consoleResultFormatter.startTestSuite(jUnitTest);
+
+ // run tests
+ suite.run(result);
+
+ // write stats and close reultformatter
+ jUnitTest.setCounts(result.runCount(), result.failureCount(), result.errorCount());
+ jUnitTest.setRunTime(System.currentTimeMillis() - start);
+ xmlResultFormatter.endTestSuite(jUnitTest);
+ consoleResultFormatter.endTestSuite(jUnitTest);
+
+ // print success of failure
+ if (result.wasSuccessful()) {
+ System.exit(0);
+ } else {
+ if (result.errorCount() > 0) {
+ System.err.println("Errors:");
+ for (Enumeration errors = result.errors(); errors
+ .hasMoreElements();) {
+ TestFailure error = (TestFailure) errors.nextElement();
+ System.err.println(error.trace());
+ }
+ }
+ if (result.failureCount() > 0) {
+ System.err.println("Failures:");
+ for (Enumeration failures = result.failures(); failures
+ .hasMoreElements();) {
+ TestFailure failure = (TestFailure) failures.nextElement();
+ System.err.println(failure.trace());
+ }
+ }
+ System.exit(1);
+ };
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ advertiser = null;
+ locator = null;
+ }
+
+}
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/impl/package.html b/protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/impl/package.html
index f3b5b7000..48357b9c5 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/impl/package.html
+++ b/protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/impl/package.html
@@ -1,3 +1,3 @@
-<body>
-This package contains all the implementation classes of jSLP.
+<body>
+This package contains all the implementation classes of jSLP.
</body> \ No newline at end of file
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/package.html b/protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/package.html
index d63f25091..1eb1229f0 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/package.html
+++ b/protocols/bundles/ch.ethz.iks.slp/src/main/java/ch/ethz/iks/slp/package.html
@@ -1,3 +1,3 @@
-<body>
-The user interface of the SLP framework. The ServiceLocationManager is used to retrieve a Advertiser instance for registering services or to get a Locator that allows to find services.
+<body>
+The user interface of the SLP framework. The ServiceLocationManager is used to retrieve a Advertiser instance for registering services or to get a Locator that allows to find services.
</body> \ No newline at end of file
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/main/resources/LICENSE.txt b/protocols/bundles/ch.ethz.iks.slp/src/main/resources/LICENSE.txt
index 553e542cb..9646c2873 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/main/resources/LICENSE.txt
+++ b/protocols/bundles/ch.ethz.iks.slp/src/main/resources/LICENSE.txt
@@ -1,27 +1,27 @@
-Copyright (c) 2005-2007, Jan S. Rellermeyer
- Information and Communication Research Group (IKS),
- Swiss Federal Institute of Technology (ETH Zurich)
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- - Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- - Neither the name of ETH Zurich nor the names of its contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+Copyright (c) 2005-2007, Jan S. Rellermeyer
+ Information and Communication Research Group (IKS),
+ Swiss Federal Institute of Technology (ETH Zurich)
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of ETH Zurich nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/index.xml b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/index.xml
index 603a8809c..ed40c2d3f 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/index.xml
+++ b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/index.xml
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<document>
- <properties>
- <title>jSLP-OSGi - Java SLP (Service Location Protocol) Implementation for OSGi. jSLP-OSGi Overview</title>
- <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
- </properties>
-
- <meta name="keyword" content="Java, SLP, jSLP, Service Location Protocol, OSGi"/>
- <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative)."/>
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="robots" content="index, follow"/>
-
-<body>
- <section name="jSLP-OSGi">
- <p>
- jSLP OSGi is designed to enable SLP service discovery on OSGi platforms. Bundles can get <code>Locator</code> and
- <code>Advertiser</code> instances to find other services in the Network. The OSGi version has a smaller footprint
- than the jSLP standalone version because it uses the framework <code>Filter</code> and instead of using commons-logging,
- it makes use of the OSGi <code>org.osgi.service.log</code> logger. The OSGi version of jSLP registers the
- <code>ServiceLocationManager</code> as a ServiceFactory for <code>ch.ethz.iks.slp.Advertiser</code> and
- <code>ch.ethz.iks.slp.Locator</code> services. <br/>
- Since OSGi does not provide any general way to parametrize ServiceFactories, both <code>Locator</code> and
- <code>Advertiser</code> have an additional <code>void setLocale(Locale locale)</code> method to set the locale
- after having retrieved the service object. <br/>
- For details, see the <a href="userguide.html">Getting Started</a>.
- </p>
- </section>
-</body>
-</document>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document>
+ <properties>
+ <title>jSLP-OSGi - Java SLP (Service Location Protocol) Implementation for OSGi. jSLP-OSGi Overview</title>
+ <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
+ </properties>
+
+ <meta name="keyword" content="Java, SLP, jSLP, Service Location Protocol, OSGi"/>
+ <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative)."/>
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="robots" content="index, follow"/>
+
+<body>
+ <section name="jSLP-OSGi">
+ <p>
+ jSLP OSGi is designed to enable SLP service discovery on OSGi platforms. Bundles can get <code>Locator</code> and
+ <code>Advertiser</code> instances to find other services in the Network. The OSGi version has a smaller footprint
+ than the jSLP standalone version because it uses the framework <code>Filter</code> and instead of using commons-logging,
+ it makes use of the OSGi <code>org.osgi.service.log</code> logger. The OSGi version of jSLP registers the
+ <code>ServiceLocationManager</code> as a ServiceFactory for <code>ch.ethz.iks.slp.Advertiser</code> and
+ <code>ch.ethz.iks.slp.Locator</code> services. <br/>
+ Since OSGi does not provide any general way to parametrize ServiceFactories, both <code>Locator</code> and
+ <code>Advertiser</code> have an additional <code>void setLocale(Locale locale)</code> method to set the locale
+ after having retrieved the service object. <br/>
+ For details, see the <a href="userguide.html">Getting Started</a>.
+ </p>
+ </section>
+</body>
+</document>
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/userguide.xml b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/userguide.xml
index 6795801fc..e2407967a 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/userguide.xml
+++ b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP-OSGi/userguide.xml
@@ -1,97 +1,97 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<document>
- <properties>
- <title>jSLP-OSGi - Java SLP (Service Location Protocol) Implementation for OSGi. Getting started with jSLP-OSGi</title>
- <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
- </properties>
-
- <meta name="keyword" content="Java, SLP, jSLP, Service Location Protocol, OSGi, Userguide"/>
- <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative)."/>
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="robots" content="index, follow"/>
-
-<body>
-
- <section name="Getting started with jSLP-OSGi">
- <p>
- jSLP OSGi registers <code>ch.ethz.iks.slp.ServiceLocationManager</code> as <code>ServiceFactory</code>.
- The registered services are <code>ch.ethz.iks.slp.Advertiser</code> and <code>ch.ethz.iks.slp.Locator</code>
- and every bundle requesting one of the services will get their own instance. Since requests for
- <code>ServiceReferences</code> cannot pass parameters to the <code>ServiceFactory</code>,
- the <code>Advertiser</code> and <code>Locator</code> instances will be created with the empty default
- <code>Locale</code> and both classes have a setter method <code>.setLocale(Locale locale)</code> to change
- the locale at runtime (this differs from the jSLP standalone version).
- </p>
- <p>
- The following example shows how to get <code>Advertiser</code> and <code>Locator</code> instances and use them:
-<source>
-public class SLPTestBundle implements BundleActivator {
-
- public void start(BundleContext context) throws Exception {
-
- ServiceReference advRef = context.getServiceReference("ch.ethz.iks.slp.Advertiser");
- ServiceReference locRef = context.getServiceReference("ch.ethz.iks.slp.Locator");
-
- if (advRef != null) {
- System.out.println("Got reference for Advertiser");
- Advertiser advertiser = (Advertiser) context.getService(advRef);
-
- advertiser.register(new ServiceURL("service:osgi:test://192.168.24.118", 20), null);
- }
-
- if (locRef != null) {
- System.out.println("Got reference for Locator");
- Locator locator = (Locator) context.getService(locRef);
-
- ServiceLocationEnumeration slenum = locator.findServices(new ServiceType("service:osgi"), null, null);
- System.out.println("RESULT:");
- while (slenum.hasMoreElements()) {
- System.out.println(slenum.nextElement());
- }
- }
- }
-
-
- public void stop(BundleContext context) throws Exception {
-
- }
-
-}
-</source>
- </p>
- <p>
- jSLP OSGi does not require <code>org.osgi.service.log</code> to run but if a bundle is present that provides this service,
- jSLP OSGi makes use of it. If the service is not present, trace options passed by properties have no effect. jSLP-OSGi has
- been successfully tested with <a href="http://flowsgi.inf.ethz.ch/concierge.html">Concierge OSGi</a>,
- <a href="http://www.knopflerfish.org">Knopflerfish</a>, <a href="http://oscar.objectweb.org">Oscar</a> and
- <a href="http://www.eclipse.org/equinox/">Eclipse Equinox</a>.
- </p>
- <p>
- For developing Eclipse Plugins, it is recommended to checkout the jSLP-OSGi project from the
- <a href="source-repository.html">subversion repository</a>. This project is already an Eclipse Plugin and
- can be used as dependency for your own project. Unfortunately, Eclipse does not show the exception that is thrown
- when jSLP runs on a linux box as non-root user and it tries to open port 427. Instead, it will print a plain
- <code>ExceptionInInitializer</code>. The result is a general unavailability of the requested Locator or Advertiser instance.
- </p>
- <p>
- Furthermore, Eclipse uses a resolving and starting strategy which is different from traditional OSGi. jSLP has
- <code>Eclipse-LazyStart</code> set so it is started whenever a class from the bundle is accessed. This somewhat collides
- with the OSGi service model where bundles are completely decoupled. So in the above example, jSLP as a Plugin is never
- started and no Advertiser or Locator instance can be retrieved. To prevent this, simple use
-<source>
- ServiceReference advRef = context.getServiceReference(Advertiser.class.getName());
-</source>
- The call to the static field <code>class</code> will force the resolving of <code>ch.ethz.slp.Advertiser</code>,
- the Plugin will be started and thus the ServiceFactory registered with the OSGi registry. (The same indeed works
- for the Locator)
- </p>
- <p>
- For debugging, jSLP-OSGi features the <code>ch.ethz.iks.slp.debug</code> property. If set to <code>true</code>
- and a LogService is present, jSLP-OSGi prints additional information about internal state changes which makes it
- easier to debug applications.
- </p>
- </section>
-
-</body>
-</document>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document>
+ <properties>
+ <title>jSLP-OSGi - Java SLP (Service Location Protocol) Implementation for OSGi. Getting started with jSLP-OSGi</title>
+ <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
+ </properties>
+
+ <meta name="keyword" content="Java, SLP, jSLP, Service Location Protocol, OSGi, Userguide"/>
+ <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative)."/>
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="robots" content="index, follow"/>
+
+<body>
+
+ <section name="Getting started with jSLP-OSGi">
+ <p>
+ jSLP OSGi registers <code>ch.ethz.iks.slp.ServiceLocationManager</code> as <code>ServiceFactory</code>.
+ The registered services are <code>ch.ethz.iks.slp.Advertiser</code> and <code>ch.ethz.iks.slp.Locator</code>
+ and every bundle requesting one of the services will get their own instance. Since requests for
+ <code>ServiceReferences</code> cannot pass parameters to the <code>ServiceFactory</code>,
+ the <code>Advertiser</code> and <code>Locator</code> instances will be created with the empty default
+ <code>Locale</code> and both classes have a setter method <code>.setLocale(Locale locale)</code> to change
+ the locale at runtime (this differs from the jSLP standalone version).
+ </p>
+ <p>
+ The following example shows how to get <code>Advertiser</code> and <code>Locator</code> instances and use them:
+<source>
+public class SLPTestBundle implements BundleActivator {
+
+ public void start(BundleContext context) throws Exception {
+
+ ServiceReference advRef = context.getServiceReference("ch.ethz.iks.slp.Advertiser");
+ ServiceReference locRef = context.getServiceReference("ch.ethz.iks.slp.Locator");
+
+ if (advRef != null) {
+ System.out.println("Got reference for Advertiser");
+ Advertiser advertiser = (Advertiser) context.getService(advRef);
+
+ advertiser.register(new ServiceURL("service:osgi:test://192.168.24.118", 20), null);
+ }
+
+ if (locRef != null) {
+ System.out.println("Got reference for Locator");
+ Locator locator = (Locator) context.getService(locRef);
+
+ ServiceLocationEnumeration slenum = locator.findServices(new ServiceType("service:osgi"), null, null);
+ System.out.println("RESULT:");
+ while (slenum.hasMoreElements()) {
+ System.out.println(slenum.nextElement());
+ }
+ }
+ }
+
+
+ public void stop(BundleContext context) throws Exception {
+
+ }
+
+}
+</source>
+ </p>
+ <p>
+ jSLP OSGi does not require <code>org.osgi.service.log</code> to run but if a bundle is present that provides this service,
+ jSLP OSGi makes use of it. If the service is not present, trace options passed by properties have no effect. jSLP-OSGi has
+ been successfully tested with <a href="http://flowsgi.inf.ethz.ch/concierge.html">Concierge OSGi</a>,
+ <a href="http://www.knopflerfish.org">Knopflerfish</a>, <a href="http://oscar.objectweb.org">Oscar</a> and
+ <a href="http://www.eclipse.org/equinox/">Eclipse Equinox</a>.
+ </p>
+ <p>
+ For developing Eclipse Plugins, it is recommended to checkout the jSLP-OSGi project from the
+ <a href="source-repository.html">subversion repository</a>. This project is already an Eclipse Plugin and
+ can be used as dependency for your own project. Unfortunately, Eclipse does not show the exception that is thrown
+ when jSLP runs on a linux box as non-root user and it tries to open port 427. Instead, it will print a plain
+ <code>ExceptionInInitializer</code>. The result is a general unavailability of the requested Locator or Advertiser instance.
+ </p>
+ <p>
+ Furthermore, Eclipse uses a resolving and starting strategy which is different from traditional OSGi. jSLP has
+ <code>Eclipse-LazyStart</code> set so it is started whenever a class from the bundle is accessed. This somewhat collides
+ with the OSGi service model where bundles are completely decoupled. So in the above example, jSLP as a Plugin is never
+ started and no Advertiser or Locator instance can be retrieved. To prevent this, simple use
+<source>
+ ServiceReference advRef = context.getServiceReference(Advertiser.class.getName());
+</source>
+ The call to the static field <code>class</code> will force the resolving of <code>ch.ethz.slp.Advertiser</code>,
+ the Plugin will be started and thus the ServiceFactory registered with the OSGi registry. (The same indeed works
+ for the Locator)
+ </p>
+ <p>
+ For debugging, jSLP-OSGi features the <code>ch.ethz.iks.slp.debug</code> property. If set to <code>true</code>
+ and a LogService is present, jSLP-OSGi prints additional information about internal state changes which makes it
+ easier to debug applications.
+ </p>
+ </section>
+
+</body>
+</document>
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/index.xml b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/index.xml
index 05d4dcac8..45c81238c 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/index.xml
+++ b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/index.xml
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<document>
- <properties>
- <title>jSLP - Java SLP (Service Location Protocol) Implementation. jSLP Overview</title>
- <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
- </properties>
-
- <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, RFC 2608, RFC 2614"/>
- <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). It runs on small and embedded devices and can run under J2SE as well as J2ME CDC and Personal Profile."/>
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="robots" content="index, follow"/>
-
-<body>
-
- <section name="jSLP">
- <p>
- jSLP is the standalone version. It requires <a href="http://jakarta.apache.org/commons/logging/">commons-logging</a> to be in classpath. For example code and setup instructions, see <a href="userguide.html">Getting Started</a>.
- </p>
- </section>
- <section name="jSLP Features">
- <p>
- jSLP implements all required features of RFC 2608 for SA and UA, that includes accepting incoming message both via TCP and UDP. Implemented optional features are Attribute Requests, Authentication Blocks and User Defined Scopes.
- </p>
- </section>
-
- <section name="Divergence from RFC 2608">
- <p>
- The only divergence from RFC 2608 is the use of LDAP filters. RFC 2608 proposes RFC 2254 LDAP v3 filters whereas jSLP uses RFC 1960 LDAP filters. The difference between the two standards is the support for Extensible Matches that RFC 1960 does not provide. However, Extensible Matching is closely related to LDAP trees and does not really apply to systems like jSLP.
- </p>
- <p>
- With version 0.7.x, jSLP allows an additional feature that is not directly intended by RFC 2608: The definition of a protocol for service access. RFC 2608 only allows to specify the transport. However, in some cases, it is required to also specify a protocol to allow for services that can be accessed by different protocols. jSLP allows service urls like:
- <code>
- service:test:myservice://http://myhost:8080
- </code>
- where http is the protocol to access the service. Since the OpenSLP DA does not check the URL part any further, this does not preserve full interoperability with existing SLP solutions.
- </p>
- </section>
-
- <section name="Divergence from RFC 2614">
- <p>
- The major divergence from RFC 2614 is the use of Java Collection Framework by jSLP while RFC 2614 uses <code>Vector</code> elements for passing scope or tag lists.
- <br/> Second, RFC 2614 proposes a class named <code>ServiceLocationAttribute</code> to store attributes and passes attributes as String lists of key/value pairs. jSLP has been designed to be close to OSGi in order to provide best integration, so it uses <code>Dictionary</code> instances for storing and passing attributes. There is a little inconsistency in using <code>Dictionary</code> instead of <code>Map</code> but OSGi uses this format.
- <br/>jSLP adds support for User Defined Scopes to the API, additionally to the standard method for registering a service, it provides a method where a List of scopes can be passed to select the service scopes at runtime.
- <br/>Currently, incremental service registration is not yet implemented.
- </p>
-
- </section>
-
- <section name="Java VM requirements">
- jSLP has been designed to run on servers or desktop machines as well as on small and embedded devices. It has a very small memory and storage
- footprint and runs on Java 1.2 compatible virtual machine or above. <br/>
- Successful tests have been performed on Sun J2SE 1.4.2 and J2SE 1.5, J2SE 1.6, Sun J2ME Personal Profile cvm on Sharp Zaurus, SableVM on iPAQ Linux Familiar, JamVM on iPAQ Linux Familiar, IBM J9 on iPAQ Windows PocketPC, IBM J9 on a Nokia 9300i smartphone, JamVM on a LinkSys NSLU2 (Slug) and an Intel iMote2 sensor network node with a blackdown VM.
- </section>
-
-</body>
-</document>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document>
+ <properties>
+ <title>jSLP - Java SLP (Service Location Protocol) Implementation. jSLP Overview</title>
+ <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
+ </properties>
+
+ <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, RFC 2608, RFC 2614"/>
+ <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). It runs on small and embedded devices and can run under J2SE as well as J2ME CDC and Personal Profile."/>
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="robots" content="index, follow"/>
+
+<body>
+
+ <section name="jSLP">
+ <p>
+ jSLP is the standalone version. It requires <a href="http://jakarta.apache.org/commons/logging/">commons-logging</a> to be in classpath. For example code and setup instructions, see <a href="userguide.html">Getting Started</a>.
+ </p>
+ </section>
+ <section name="jSLP Features">
+ <p>
+ jSLP implements all required features of RFC 2608 for SA and UA, that includes accepting incoming message both via TCP and UDP. Implemented optional features are Attribute Requests, Authentication Blocks and User Defined Scopes.
+ </p>
+ </section>
+
+ <section name="Divergence from RFC 2608">
+ <p>
+ The only divergence from RFC 2608 is the use of LDAP filters. RFC 2608 proposes RFC 2254 LDAP v3 filters whereas jSLP uses RFC 1960 LDAP filters. The difference between the two standards is the support for Extensible Matches that RFC 1960 does not provide. However, Extensible Matching is closely related to LDAP trees and does not really apply to systems like jSLP.
+ </p>
+ <p>
+ With version 0.7.x, jSLP allows an additional feature that is not directly intended by RFC 2608: The definition of a protocol for service access. RFC 2608 only allows to specify the transport. However, in some cases, it is required to also specify a protocol to allow for services that can be accessed by different protocols. jSLP allows service urls like:
+ <code>
+ service:test:myservice://http://myhost:8080
+ </code>
+ where http is the protocol to access the service. Since the OpenSLP DA does not check the URL part any further, this does not preserve full interoperability with existing SLP solutions.
+ </p>
+ </section>
+
+ <section name="Divergence from RFC 2614">
+ <p>
+ The major divergence from RFC 2614 is the use of Java Collection Framework by jSLP while RFC 2614 uses <code>Vector</code> elements for passing scope or tag lists.
+ <br/> Second, RFC 2614 proposes a class named <code>ServiceLocationAttribute</code> to store attributes and passes attributes as String lists of key/value pairs. jSLP has been designed to be close to OSGi in order to provide best integration, so it uses <code>Dictionary</code> instances for storing and passing attributes. There is a little inconsistency in using <code>Dictionary</code> instead of <code>Map</code> but OSGi uses this format.
+ <br/>jSLP adds support for User Defined Scopes to the API, additionally to the standard method for registering a service, it provides a method where a List of scopes can be passed to select the service scopes at runtime.
+ <br/>Currently, incremental service registration is not yet implemented.
+ </p>
+
+ </section>
+
+ <section name="Java VM requirements">
+ jSLP has been designed to run on servers or desktop machines as well as on small and embedded devices. It has a very small memory and storage
+ footprint and runs on Java 1.2 compatible virtual machine or above. <br/>
+ Successful tests have been performed on Sun J2SE 1.4.2 and J2SE 1.5, J2SE 1.6, Sun J2ME Personal Profile cvm on Sharp Zaurus, SableVM on iPAQ Linux Familiar, JamVM on iPAQ Linux Familiar, IBM J9 on iPAQ Windows PocketPC, IBM J9 on a Nokia 9300i smartphone, JamVM on a LinkSys NSLU2 (Slug) and an Intel iMote2 sensor network node with a blackdown VM.
+ </section>
+
+</body>
+</document>
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/modularity.xml b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/modularity.xml
index 5a09fd33d..ca54fcc6e 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/modularity.xml
+++ b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/modularity.xml
@@ -1,49 +1,49 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<document>
- <properties>
- <title>jSLP - Java SLP (Service Location Protocol) Implementation. Modularity in jSLP > 0.6</title>
- <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
- </properties>
-
- <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, Userguide, User Guide, OpenSLP, Modularity, SA, UA"/>
- <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). Modularity in jSLP 0.6:"/>
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="robots" content="index, follow"/>
-
-<body>
-
- <section name="jSLP Modularity">
- <p>
- jSLP can be used to build custom configurations for SLP peers. It is possible to use UA or SA functionalities only and leave out some classes to reduce the file footprint.
- </p>
- </section>
-
- <section name="SA only configurations">
- <p>
- If the configuration has to support SA functionalities only, the <code>ch.ethz.iks.slp.impl.LocatorImpl</code> class is not required. Since the core has only dynamic dependencies to this class,
- it can be omitted without any further modifications. Calls of <code>ch.ethz.iks.slp.ServiceLocationManager.getLocator</code> will throw a ServiceLocationException of type
- <code>ServiceLocationException.NOT_IMPLEMENTED</code>. Depending on the setup, the <code>ch.ethz.iks.slp.impl.SLPDaemonImpl</code> class is also not required, see section below.
- </p>
- </section>
-
- <section name="UA only configurations">
- <p>
- Configurations that only serve as a SLP client can omit the <code>ch.ethz.iks.slp.impl.AdvertiserImpl</code> class and the <code>ch.ethz.iks.slp.impl.SLPDaemon</code> class without further
- implications. Calls of <code>ch.ethz.iks.slp.ServiceLocationManager.getAdvertiser</code> will throw a ServiceLocationException of type
- <code>ServiceLocationException.NOT_IMPLEMENTED</code>.
- </p>
- </section>
-
- <section name="Configurations without the SLPDaemon">
- <p>
- jSLP is able to run on different VMs on the same machine. Every separated instance of jSLP checks, if a SLP daemon is running on port 427 on the machine. If this is
- the case, no new instance of SLPDaemon is created. Therefore, if it can be assured that another process has already started a deamon, the class <code>ch.ethz.iks.slp.impl.SLPDaemonImpl</code>
- does not have to be provided by subsequent instances on different VMs. The same applies for the situation where a OpenSLP slpd is running on the machine. <br/>
- The daemon is required for SA functionalities only. It contains a service registry for the case where no DA of the designated scope is available within the network and
- answers requests that arrive by multicast. It should thus be assured that the instance running the daemon does not terminate prior to other existing SA-enabled instances running on different VMs.
- </p>
- </section>
-
-</body>
-</document>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document>
+ <properties>
+ <title>jSLP - Java SLP (Service Location Protocol) Implementation. Modularity in jSLP > 0.6</title>
+ <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
+ </properties>
+
+ <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, Userguide, User Guide, OpenSLP, Modularity, SA, UA"/>
+ <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). Modularity in jSLP 0.6:"/>
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="robots" content="index, follow"/>
+
+<body>
+
+ <section name="jSLP Modularity">
+ <p>
+ jSLP can be used to build custom configurations for SLP peers. It is possible to use UA or SA functionalities only and leave out some classes to reduce the file footprint.
+ </p>
+ </section>
+
+ <section name="SA only configurations">
+ <p>
+ If the configuration has to support SA functionalities only, the <code>ch.ethz.iks.slp.impl.LocatorImpl</code> class is not required. Since the core has only dynamic dependencies to this class,
+ it can be omitted without any further modifications. Calls of <code>ch.ethz.iks.slp.ServiceLocationManager.getLocator</code> will throw a ServiceLocationException of type
+ <code>ServiceLocationException.NOT_IMPLEMENTED</code>. Depending on the setup, the <code>ch.ethz.iks.slp.impl.SLPDaemonImpl</code> class is also not required, see section below.
+ </p>
+ </section>
+
+ <section name="UA only configurations">
+ <p>
+ Configurations that only serve as a SLP client can omit the <code>ch.ethz.iks.slp.impl.AdvertiserImpl</code> class and the <code>ch.ethz.iks.slp.impl.SLPDaemon</code> class without further
+ implications. Calls of <code>ch.ethz.iks.slp.ServiceLocationManager.getAdvertiser</code> will throw a ServiceLocationException of type
+ <code>ServiceLocationException.NOT_IMPLEMENTED</code>.
+ </p>
+ </section>
+
+ <section name="Configurations without the SLPDaemon">
+ <p>
+ jSLP is able to run on different VMs on the same machine. Every separated instance of jSLP checks, if a SLP daemon is running on port 427 on the machine. If this is
+ the case, no new instance of SLPDaemon is created. Therefore, if it can be assured that another process has already started a deamon, the class <code>ch.ethz.iks.slp.impl.SLPDaemonImpl</code>
+ does not have to be provided by subsequent instances on different VMs. The same applies for the situation where a OpenSLP slpd is running on the machine. <br/>
+ The daemon is required for SA functionalities only. It contains a service registry for the case where no DA of the designated scope is available within the network and
+ answers requests that arrive by multicast. It should thus be assured that the instance running the daemon does not terminate prior to other existing SA-enabled instances running on different VMs.
+ </p>
+ </section>
+
+</body>
+</document>
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/userguide.xml b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/userguide.xml
index 1bfe0988b..9139c4a60 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/userguide.xml
+++ b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/jSLP/userguide.xml
@@ -1,145 +1,145 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<document>
- <properties>
- <title>jSLP - Java SLP (Service Location Protocol) Implementation. Getting started with jSLP</title>
- <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
- </properties>
-
- <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, Userguide, User Guide, OpenSLP, security, PEM, DER, private key, public key"/>
- <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). Getting started with jSLP:"/>
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="robots" content="index, follow"/>
-
-<body>
-
- <section name="Getting started with jSLP">
- <p>
- First, download the current 1.0_RC1 release of jSLP and a current release of commons-logging.
- Similar to RFC 2614, jSLP separates the UA and SA functionalities into two different classes,
- location of services is provided by <code>ch.ethz.iks.slp.Locator</code>, registration of services
- by <code>ch.ethz.iks.slp.Advertiser</code>. The starting point of interacting with jSLP is to get
- an instance of one of the classes (or both) via the static methods of
- <code>ch.ethz.iks.slp.ServiceLocationManager</code>.
- </p>
- </section>
-
-
- <section name="Understanding, what's going on">
- <p>
- jSLP can either operate stand-alone (in peer-to-peer mode), or with a dedicated SLP Directory
- Agent in the network. In the first case, jSLP uses multicast convergence to query the local
- subnet for peers that offer requested services. In the latter case, the central Directory Agent
- maintains all registered services and answers requests.
- </p>
- <p>
- The SLP protocol is self-adaptive in the sense that whenever a Directory Agent is present
- (and matches the scope), it is exclusively used. Otherwise, multicast convergence is used.
- jSLP fully complies to this behavior.
- </p>
- <p>
- By default, the SLP protocol uses the standardized port 427 for communication. This, however,
- requires to run jSLP as <i>root</i> on Linux/Unix platforms. In some situations, where a closed
- world can be assumed and interoperability with other SLP peers is not relevant, it might be more
- convenient to run jSLP on a port > 1024 to allow it to run from an ordinary user account. This is
- possible from jSLP release 0.7.x by setting <i>net.slp.port</i> to a target port.
- </p>
- <p>
- jSLP is designed to be accessible from multiple instances of Java running on the same machine.
- Be aware, that always the first instance started holds the Java part that corresponds to the Deaemon.
- If this instance is shut down, also the registrations are lost. To prevent this, use a DA in the
- network of make sure that this first instance runs continously. (In general, this is the behavior of slpd).
- </p>
- </section>
- <section name="Register a service">
- <p>
- The following example shows how to register a service with jSLP:
-
-<source>
-// get Advertiser instance
-Advertiser advertiser = ServiceLocationManager.getAdvertiser(new Locale("en"));
-
-// the service has lifetime 60, that means it will only persist for one minute
-ServiceURL myService = new ServiceURL("service:test:myService://my.host.ch", 60);
-
-// some attributes for the service
-Hashtable attributes = new Hashtable();
-attributes.put("persistent", Boolean.TRUE);
-attributes.put("cool", "yes");
-attributes.put("max-connections", new Integer(5));
-
-advertiser.register(myService, attributes);
-</source>
-
- Please note that a service is always registered with a lifetime, that means the service registration will
- expire after [lifetime] seconds unless set to ServiceURL.LIFETIME_PERMANENT. In this case, the service
- will never expire but the registering applications should take care about unregistering the service
- when it terminates to avoid stale service registrations.
- </p>
- </section>
-
- <section name="Locate a service">
- <p>
- The next example shows how to locate a service in the network:
-
-<source>
-// get Locator instance
-Locator locator = ServiceLocationManager.getLocator(new Locale("en"));
-
-// find all services of type "test" that have attribute "cool=yes"
-ServiceLocationEnumeration sle = locator.findServices(new ServiceType("service:test")
- , null, "(cool=yes)");
-
-// iterate over the results
-while (sle.hasMoreElements()) {
- ServiceURL foundService = (ServiceURL) sle.nextElement();
- System.out.println(foundService);
-}
-</source>
-
- Services can also be found by ServiceURL. The attribute filter may be everything compliant to
- <a href="http://www.faqs.org/rfcs/rfc1960.html">RFC 1960</a> (String Representation of LDAP Filters),
- so a valid filter could also be:
- <code>(&amp;(resolution>=600)(|(format=a4)(format=usLetter)))</code>.
- jSLP supports service, attribute requests and service type requests (with revision 0.6).
- </p>
- </section>
-
- <section name="See, what's going on">
- <p>
- The following lines added to your VM's command line can help to see and understand what is going on on the
- level of messages and registrations:
-<code>
- -Dorg.apache.commons.logging.log=org.apache.commons.logging.impl.SimpleLog
- -Dorg.apache.commons.logging.simplelog.defaultlog=trace
- -Dnet.slp.traceMsg=true
- -Dnet.slp.traceReg=true
-</code>
- </p>
- </section>
-
- <section name="Troubleshooting">
- <p>
- There are two common problems that might prevent jSLP from working correctly:
- <ul>
- <li><b>jSLP cannot open the port 427</b>: Either run jSLP as root, or change the port, if
- this is acceptable for your setup.</li>
- <li><b>jSLP cannot find your OpenSLP DA</b>: First, ensure that your OpenSLP DA is in the
- same subnet as your jSLP client is and that it is actually running in DA mode. Check
- <code>/var/log/slpd.log</code> for the agent URL, it should read something like
- <code>service:directory-agent://URL</code>. If your OpenSLP DA is running as an SA although
- you configured it to be a DA, it is a hostname lookup problem. OpenSLP will refuse to run
- as a DA if it cannot find out your host name. Make sure that your /etc/hosts contains an
- entry that maps your hostname to the actual IP address and that your machine has a hostname
- set. As long as the result of OpenSLP's effort to find out the machines canonical host name
- is 127.X, it will silently switch to SA mode (one could argue that this is not a nice behavior
- but it is implemented this way).</li>
- <li><b>jSLP cannot detect the local host address on Linux</b>: First, try to set your
- <code>/etc/hosts</code>, etc. If you cannot do this, you can manually influence the interfaces
- by setting <i>net.slp.interfaces</i>. The first entry will determine on which network interface
- jSLP sends outgoing messages. See the properties for details.</li>
- </ul>
- </p>
- </section>
-</body>
-</document>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document>
+ <properties>
+ <title>jSLP - Java SLP (Service Location Protocol) Implementation. Getting started with jSLP</title>
+ <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
+ </properties>
+
+ <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, Userguide, User Guide, OpenSLP, security, PEM, DER, private key, public key"/>
+ <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). Getting started with jSLP:"/>
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="robots" content="index, follow"/>
+
+<body>
+
+ <section name="Getting started with jSLP">
+ <p>
+ First, download the current 1.0_RC1 release of jSLP and a current release of commons-logging.
+ Similar to RFC 2614, jSLP separates the UA and SA functionalities into two different classes,
+ location of services is provided by <code>ch.ethz.iks.slp.Locator</code>, registration of services
+ by <code>ch.ethz.iks.slp.Advertiser</code>. The starting point of interacting with jSLP is to get
+ an instance of one of the classes (or both) via the static methods of
+ <code>ch.ethz.iks.slp.ServiceLocationManager</code>.
+ </p>
+ </section>
+
+
+ <section name="Understanding, what's going on">
+ <p>
+ jSLP can either operate stand-alone (in peer-to-peer mode), or with a dedicated SLP Directory
+ Agent in the network. In the first case, jSLP uses multicast convergence to query the local
+ subnet for peers that offer requested services. In the latter case, the central Directory Agent
+ maintains all registered services and answers requests.
+ </p>
+ <p>
+ The SLP protocol is self-adaptive in the sense that whenever a Directory Agent is present
+ (and matches the scope), it is exclusively used. Otherwise, multicast convergence is used.
+ jSLP fully complies to this behavior.
+ </p>
+ <p>
+ By default, the SLP protocol uses the standardized port 427 for communication. This, however,
+ requires to run jSLP as <i>root</i> on Linux/Unix platforms. In some situations, where a closed
+ world can be assumed and interoperability with other SLP peers is not relevant, it might be more
+ convenient to run jSLP on a port > 1024 to allow it to run from an ordinary user account. This is
+ possible from jSLP release 0.7.x by setting <i>net.slp.port</i> to a target port.
+ </p>
+ <p>
+ jSLP is designed to be accessible from multiple instances of Java running on the same machine.
+ Be aware, that always the first instance started holds the Java part that corresponds to the Deaemon.
+ If this instance is shut down, also the registrations are lost. To prevent this, use a DA in the
+ network of make sure that this first instance runs continously. (In general, this is the behavior of slpd).
+ </p>
+ </section>
+ <section name="Register a service">
+ <p>
+ The following example shows how to register a service with jSLP:
+
+<source>
+// get Advertiser instance
+Advertiser advertiser = ServiceLocationManager.getAdvertiser(new Locale("en"));
+
+// the service has lifetime 60, that means it will only persist for one minute
+ServiceURL myService = new ServiceURL("service:test:myService://my.host.ch", 60);
+
+// some attributes for the service
+Hashtable attributes = new Hashtable();
+attributes.put("persistent", Boolean.TRUE);
+attributes.put("cool", "yes");
+attributes.put("max-connections", new Integer(5));
+
+advertiser.register(myService, attributes);
+</source>
+
+ Please note that a service is always registered with a lifetime, that means the service registration will
+ expire after [lifetime] seconds unless set to ServiceURL.LIFETIME_PERMANENT. In this case, the service
+ will never expire but the registering applications should take care about unregistering the service
+ when it terminates to avoid stale service registrations.
+ </p>
+ </section>
+
+ <section name="Locate a service">
+ <p>
+ The next example shows how to locate a service in the network:
+
+<source>
+// get Locator instance
+Locator locator = ServiceLocationManager.getLocator(new Locale("en"));
+
+// find all services of type "test" that have attribute "cool=yes"
+ServiceLocationEnumeration sle = locator.findServices(new ServiceType("service:test")
+ , null, "(cool=yes)");
+
+// iterate over the results
+while (sle.hasMoreElements()) {
+ ServiceURL foundService = (ServiceURL) sle.nextElement();
+ System.out.println(foundService);
+}
+</source>
+
+ Services can also be found by ServiceURL. The attribute filter may be everything compliant to
+ <a href="http://www.faqs.org/rfcs/rfc1960.html">RFC 1960</a> (String Representation of LDAP Filters),
+ so a valid filter could also be:
+ <code>(&amp;(resolution>=600)(|(format=a4)(format=usLetter)))</code>.
+ jSLP supports service, attribute requests and service type requests (with revision 0.6).
+ </p>
+ </section>
+
+ <section name="See, what's going on">
+ <p>
+ The following lines added to your VM's command line can help to see and understand what is going on on the
+ level of messages and registrations:
+<code>
+ -Dorg.apache.commons.logging.log=org.apache.commons.logging.impl.SimpleLog
+ -Dorg.apache.commons.logging.simplelog.defaultlog=trace
+ -Dnet.slp.traceMsg=true
+ -Dnet.slp.traceReg=true
+</code>
+ </p>
+ </section>
+
+ <section name="Troubleshooting">
+ <p>
+ There are two common problems that might prevent jSLP from working correctly:
+ <ul>
+ <li><b>jSLP cannot open the port 427</b>: Either run jSLP as root, or change the port, if
+ this is acceptable for your setup.</li>
+ <li><b>jSLP cannot find your OpenSLP DA</b>: First, ensure that your OpenSLP DA is in the
+ same subnet as your jSLP client is and that it is actually running in DA mode. Check
+ <code>/var/log/slpd.log</code> for the agent URL, it should read something like
+ <code>service:directory-agent://URL</code>. If your OpenSLP DA is running as an SA although
+ you configured it to be a DA, it is a hostname lookup problem. OpenSLP will refuse to run
+ as a DA if it cannot find out your host name. Make sure that your /etc/hosts contains an
+ entry that maps your hostname to the actual IP address and that your machine has a hostname
+ set. As long as the result of OpenSLP's effort to find out the machines canonical host name
+ is 127.X, it will silently switch to SA mode (one could argue that this is not a nice behavior
+ but it is implemented this way).</li>
+ <li><b>jSLP cannot detect the local host address on Linux</b>: First, try to set your
+ <code>/etc/hosts</code>, etc. If you cannot do this, you can manually influence the interfaces
+ by setting <i>net.slp.interfaces</i>. The first entry will determine on which network interface
+ jSLP sends outgoing messages. See the properties for details.</li>
+ </ul>
+ </p>
+ </section>
+</body>
+</document>
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/properties.xml b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/properties.xml
index b8ea663be..f373d7abb 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/properties.xml
+++ b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/properties.xml
@@ -1,130 +1,130 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<document>
- <properties>
- <title>jSLP - Java SLP (Service Location Protocol) Implementation. jSLP Properties</title>
- <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
- </properties>
- <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, Properties, OpenSLP, security, PEM, DER, private key, public key"/>
- <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative)."/>
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="robots" content="index, follow"/>
-
-<body>
- <section name="jSLP properties">
- <p>
- Currently, jSLP supports the following properties:
- <table>
- <tr>
- <th>Attribute</th>
- <th>Default</th>
- <th>Comment</th>
- </tr>
- <tr>
- <td><code>net.slp.interfaces</code></td>
- <td><i>none</i></td>
- <td>Comma separated list of IP addresses of the interfaces on which jSLP should listen for SLP messages. Currently, jSLP only listens to the first address. You might have to set this property on multi-homed machines and on linux if your JVM thinks your machine's IP is 127.0.0.1</td>
- </tr>
- <tr>
- <td><code>net.slp.port</code></td>
- <td><i>none</i></td>
- <td>number that denotes the (non-standard) port where jSLP is going to operate on. Note that this prevents interoperability with other SLP entities running on the standard port, if multicast convergence is used.</td>
- </tr>
- <tr>
- <td><code>net.slp.useScopes</code></td>
- <td>default</td>
- <td>predefined scopes for the SA</td>
- </tr>
- <tr>
- <td><code>net.slp.DAAddresses</code></td>
- <td><i>none</i></td>
- <td>predefined DA addresses</td>
- </tr>
- <tr>
- <td><code>net.slp.noDADiscovery</code></td>
- <td><i>false</i></td>
- <td>perform no active or passive DA discovery. Only valid if <i>net.slp.DAAddresses</i> are defined.</td>
- </tr>
- <tr>
- <td><code>net.slp.waitTime</code></td>
- <td>1000</td>
- <td>wait time for initial DA discovery etc.</td>
- </tr>
- <tr>
- <td><code>net.slp.traceDATraffic</code></td>
- <td>false</td>
- <td>trace traffic to DA</td>
- </tr>
- <tr>
- <td><code>net.slp.traceMsg</code></td>
- <td>false</td>
- <td>trace messages</td>
- </tr>
- <tr>
- <td><code>net.slp.traceDrop</code></td>
- <td>false</td>
- <td>trace dropped messages</td>
- </tr>
- <tr>
- <td><code>net.slp.traceReg</code></td>
- <td>false</td>
- <td>trace registrations / deregistrations</td>
- </tr>
- <tr>
- <td><code>net.slp.multicastTTL</code></td>
- <td>255</td>
- <td>TTL for multicast messages. <i>Note: decreasing this value will lead to localized query results and peers at different locations in the network might get different results</i></td>
- </tr>
- <tr>
- <td><code>net.slp.multicastMaximumWait</code></td>
- <td>15000</td>
- <td>total timeout for multicast convergence in mSec.</td>
- </tr>
- <tr>
- <td><code>net.slp.multicastTimeouts</code></td>
- <td>500,750,1000,1500,2000,3000</td>
- <td>timeouts for the rounds during multicast convergence. <i>Note that the number of timeouts affects the maximum total number of rounds for multicast convergence.</i></td>
- </tr>
- <tr>
- <td><code>net.slp.datagramMaximumWait</code></td>
- <td>5000</td>
- <td>Number of mSecs until jSLP stops waiting for a reply to a UDP request message and timeframe for retransmissions of failed UDP messages.</td>
- </tr>
- <tr>
- <td><code>net.slp.datagramTimeouts</code></td>
- <td>3000,3000,3000,3000,3000</td>
- <td>timeouts for the retransmissions of failed UDP messages. <i>Note that the number of timeouts does NOT affect the maximum number of retransmissions. This number is limited by <code>net.slp.datagramMaximumWait</code></i>.</td>
- </tr>
- <tr>
- <td><code>net.slp.MTU</code></td>
- <td>1400</td>
- <td>maximum size of a UDP datagram in Bytes</td>
- </tr>
- <tr>
- <td><code>net.slp.securityEnabled</code></td>
- <td>false</td>
- <td>enable security</td>
- </tr>
- <tr>
- <td><code>net.slp.spi</code></td>
- <td><i>none</i></td>
- <td>a comma separated list of SPIs to use if security is enabled.</td>
- </tr>
- <tr>
- <td><code>net.slp.privateKey.<i>SPI</i></code></td>
- <td><i>none</i></td>
- <td>the location of the private key in DER format for SPI <i>SPI</i></td>
- </tr>
- <tr>
- <td><code>net.slp.publicKey.<i>SPI</i></code></td>
- <td><i>none</i></td>
- <td>the location of the public key in DER format for SPI <i>SPI</i></td>
- </tr>
- </table>
- </p>
- <p>
- jSLP expects the properties to be either passed by system environment (that means as -D<i>property</i>=<i>value</i> parameter for the VM) or in a file called jslp.properties. Please note that for tracing messages etc., you also have to configure your logger to output trace messages.
- </p>
- </section>
-</body>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document>
+ <properties>
+ <title>jSLP - Java SLP (Service Location Protocol) Implementation. jSLP Properties</title>
+ <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
+ </properties>
+ <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, Properties, OpenSLP, security, PEM, DER, private key, public key"/>
+ <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative)."/>
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="robots" content="index, follow"/>
+
+<body>
+ <section name="jSLP properties">
+ <p>
+ Currently, jSLP supports the following properties:
+ <table>
+ <tr>
+ <th>Attribute</th>
+ <th>Default</th>
+ <th>Comment</th>
+ </tr>
+ <tr>
+ <td><code>net.slp.interfaces</code></td>
+ <td><i>none</i></td>
+ <td>Comma separated list of IP addresses of the interfaces on which jSLP should listen for SLP messages. Currently, jSLP only listens to the first address. You might have to set this property on multi-homed machines and on linux if your JVM thinks your machine's IP is 127.0.0.1</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.port</code></td>
+ <td><i>none</i></td>
+ <td>number that denotes the (non-standard) port where jSLP is going to operate on. Note that this prevents interoperability with other SLP entities running on the standard port, if multicast convergence is used.</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.useScopes</code></td>
+ <td>default</td>
+ <td>predefined scopes for the SA</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.DAAddresses</code></td>
+ <td><i>none</i></td>
+ <td>predefined DA addresses</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.noDADiscovery</code></td>
+ <td><i>false</i></td>
+ <td>perform no active or passive DA discovery. Only valid if <i>net.slp.DAAddresses</i> are defined.</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.waitTime</code></td>
+ <td>1000</td>
+ <td>wait time for initial DA discovery etc.</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.traceDATraffic</code></td>
+ <td>false</td>
+ <td>trace traffic to DA</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.traceMsg</code></td>
+ <td>false</td>
+ <td>trace messages</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.traceDrop</code></td>
+ <td>false</td>
+ <td>trace dropped messages</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.traceReg</code></td>
+ <td>false</td>
+ <td>trace registrations / deregistrations</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.multicastTTL</code></td>
+ <td>255</td>
+ <td>TTL for multicast messages. <i>Note: decreasing this value will lead to localized query results and peers at different locations in the network might get different results</i></td>
+ </tr>
+ <tr>
+ <td><code>net.slp.multicastMaximumWait</code></td>
+ <td>15000</td>
+ <td>total timeout for multicast convergence in mSec.</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.multicastTimeouts</code></td>
+ <td>500,750,1000,1500,2000,3000</td>
+ <td>timeouts for the rounds during multicast convergence. <i>Note that the number of timeouts affects the maximum total number of rounds for multicast convergence.</i></td>
+ </tr>
+ <tr>
+ <td><code>net.slp.datagramMaximumWait</code></td>
+ <td>5000</td>
+ <td>Number of mSecs until jSLP stops waiting for a reply to a UDP request message and timeframe for retransmissions of failed UDP messages.</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.datagramTimeouts</code></td>
+ <td>3000,3000,3000,3000,3000</td>
+ <td>timeouts for the retransmissions of failed UDP messages. <i>Note that the number of timeouts does NOT affect the maximum number of retransmissions. This number is limited by <code>net.slp.datagramMaximumWait</code></i>.</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.MTU</code></td>
+ <td>1400</td>
+ <td>maximum size of a UDP datagram in Bytes</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.securityEnabled</code></td>
+ <td>false</td>
+ <td>enable security</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.spi</code></td>
+ <td><i>none</i></td>
+ <td>a comma separated list of SPIs to use if security is enabled.</td>
+ </tr>
+ <tr>
+ <td><code>net.slp.privateKey.<i>SPI</i></code></td>
+ <td><i>none</i></td>
+ <td>the location of the private key in DER format for SPI <i>SPI</i></td>
+ </tr>
+ <tr>
+ <td><code>net.slp.publicKey.<i>SPI</i></code></td>
+ <td><i>none</i></td>
+ <td>the location of the public key in DER format for SPI <i>SPI</i></td>
+ </tr>
+ </table>
+ </p>
+ <p>
+ jSLP expects the properties to be either passed by system environment (that means as -D<i>property</i>=<i>value</i> parameter for the VM) or in a file called jslp.properties. Please note that for tracing messages etc., you also have to configure your logger to output trace messages.
+ </p>
+ </section>
+</body>
</document> \ No newline at end of file
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/security.xml b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/security.xml
index c516141c6..011fb061b 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/security.xml
+++ b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/security.xml
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<document>
- <properties>
- <title>jSLP - Java SLP (Service Location Protocol) Implementation. Enabling SLP Security</title>
- <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
- </properties>
-
- <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, OpenSLP, security, PEM, DER, private key, public key"/>
- <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). The following example shows how to enable security and generate public and private key that can also be used for OpenSLP and for interaction with a Directory Agent (DA)."/>
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="robots" content="index, follow"/>
-
-<body>
- <section name="Enabling security">
- <p>
- jSLP uses the standard SLP security mechanism with SPIs and Authentication Blocks. To enable security, one has to create a public / private key pair to use with the jSLP peers. This can be done by using <a href="http://www.openssl.org">OpenSSL</a>. Generally, jSLP supports BSD 0x0002, DSA keys. Java requires the keys to be in <i>DER</i> format. In the Unix world, the <i>PEM</i> format is more common but every <i>PEM</i> encoded key can be transformed into a <i>DER</i> key by performing the last step of the example below. This is particularly required if there are already security enabled OpenSLP DAs in the network and jSLP peers need to access their services.
-<br/><br/>
-The following example creates a public / private key pair that can be used with jSLP and OpenSLP Directory Agents:
-<br/><br/>
-First, create a new private key in PEM format and remove the passphrase:
-<source>
-openssl dsaparam -out dsap.pem 1024
-openssl gendsa -des -out private_key_with_pw.pem dsap.pem
-openssl dsa -in private_key:with_pw.pem -out private_key.pem
-</source>
-<br/>
-Then, create a public key from the private key:
-<source>
-openssl dsa -in private_key.pem -pubout -out public_key.pem
-</source>
-<br/>
-These keys can be used with OpenSLP, for Java, we need to convert them to DER format:
-<source>
-openssl dsa -in public_key.pem -inform PEM -pubin -outform DER -out public_key.der
-openssl pkcs8 -nocrypt -in private_key.pem -inform PEM -topk8 -outform DER -out private_key.der
-</source>
- <br/>
- The DER format keys can be used with jSLP. One has to define an SPI which is in an identifier for a public/private key pair. <br/>
- We set <code>net.slp.spi</code> to e.g., <i>mySlp</i> and register the keys by setting <code>net.slp.privateKey.mySlp</code> and <code>net.slp.publicKey.mySlp</code> to the files where your DER keys are stored. Don't forget to set <code>net.slp.securityEnabled</code> to true and the jSLP peer will use security. If OpenSLP DAs are used, register the PEM format keys with the DA or the jSLP peer will not be able to communicate with the DA.
- </p>
- </section>
-</body>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document>
+ <properties>
+ <title>jSLP - Java SLP (Service Location Protocol) Implementation. Enabling SLP Security</title>
+ <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
+ </properties>
+
+ <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, OpenSLP, security, PEM, DER, private key, public key"/>
+ <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). The following example shows how to enable security and generate public and private key that can also be used for OpenSLP and for interaction with a Directory Agent (DA)."/>
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="robots" content="index, follow"/>
+
+<body>
+ <section name="Enabling security">
+ <p>
+ jSLP uses the standard SLP security mechanism with SPIs and Authentication Blocks. To enable security, one has to create a public / private key pair to use with the jSLP peers. This can be done by using <a href="http://www.openssl.org">OpenSSL</a>. Generally, jSLP supports BSD 0x0002, DSA keys. Java requires the keys to be in <i>DER</i> format. In the Unix world, the <i>PEM</i> format is more common but every <i>PEM</i> encoded key can be transformed into a <i>DER</i> key by performing the last step of the example below. This is particularly required if there are already security enabled OpenSLP DAs in the network and jSLP peers need to access their services.
+<br/><br/>
+The following example creates a public / private key pair that can be used with jSLP and OpenSLP Directory Agents:
+<br/><br/>
+First, create a new private key in PEM format and remove the passphrase:
+<source>
+openssl dsaparam -out dsap.pem 1024
+openssl gendsa -des -out private_key_with_pw.pem dsap.pem
+openssl dsa -in private_key:with_pw.pem -out private_key.pem
+</source>
+<br/>
+Then, create a public key from the private key:
+<source>
+openssl dsa -in private_key.pem -pubout -out public_key.pem
+</source>
+<br/>
+These keys can be used with OpenSLP, for Java, we need to convert them to DER format:
+<source>
+openssl dsa -in public_key.pem -inform PEM -pubin -outform DER -out public_key.der
+openssl pkcs8 -nocrypt -in private_key.pem -inform PEM -topk8 -outform DER -out private_key.der
+</source>
+ <br/>
+ The DER format keys can be used with jSLP. One has to define an SPI which is in an identifier for a public/private key pair. <br/>
+ We set <code>net.slp.spi</code> to e.g., <i>mySlp</i> and register the keys by setting <code>net.slp.privateKey.mySlp</code> and <code>net.slp.publicKey.mySlp</code> to the files where your DER keys are stored. Don't forget to set <code>net.slp.securityEnabled</code> to true and the jSLP peer will use security. If OpenSLP DAs are used, register the PEM format keys with the DA or the jSLP peer will not be able to communicate with the DA.
+ </p>
+ </section>
+</body>
</document> \ No newline at end of file
diff --git a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/using.xml b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/using.xml
index 1f2d66446..dce121731 100644
--- a/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/using.xml
+++ b/protocols/bundles/ch.ethz.iks.slp/src/site/xdoc/using.xml
@@ -1,56 +1,56 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<document>
- <properties>
- <title>jSLP - Java SLP (Service Location Protocol) Implementation. Projects Using jSLP</title>
- <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
- </properties>
-
- <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, OSGi, projects using, flowSGi, collaborative, middleware"/>
- <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). The following projects are using jSLP:"/>
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="robots" content="index, follow"/>
-
-<body>
- <section name="Projects using jSLP">
- <p>
- <table>
- <tr>
- <th>Project</th>
- <th>Description</th>
- <th>Link</th>
- </tr>
- <tr>
- <td>Adaptec iSCSI Management</td>
- <td>Adaptec is in the storage management business. We have a storage management configuration utility based on a client/server model which is implemented in Java. As such it is portable to all of the OS platforms we support. We are developing an auto discovery feature to clients to automatically discover servers. Since iSCSI already uses SLP and we support a great many iSCSI devices, it seemed like a good idea to at least explore the idea of basing the auto discovery feature on SLP using jslp. Presently the auto discovery feature (using jslp) is being exercised by a network of several dozen servers.</td>
- <td><a href="http://www.adaptec.com">Adaptec</a></td>
- </tr>
- <tr>
- <td>R-OSGi</td>
- <td>Remote service extension for OSGi</td>
- <td><a href="http://sourceforge.net/projects/r-osgi">R-OSGi website</a></td>
- </tr>
- <tr>
- <td>flowSGi</td>
- <td>Collaborative middleware for mobile devices based on OSGi</td>
- <td><a href="http://flowsgi.inf.ethz.ch">flowSGi website</a></td>
- </tr>
- <tr>
- <td>VoiceHoc</td>
- <td>VoiceHoc is a platform for running out-of-the-box SIP-based VoIP applications transparently in Mobile Ad Hoc Networks (MANETs) and heterogneous Internet-connected MANETs. VoiceHoc adopts a fully decentralized SIP infrastructure which makes use of D-SLP, an efficient service discovery mechanism in MANETs. D-SLP provides a regular SLP interface over TCP and UDP for service discovery, but exploits the underlying MANET routing protocol to piggyback the service information during the route setup. Mostly, the problem with these systems is that they are routing dependent. The very benefit of D-SLP however, is that it allows handlers for specific MANET routing protocols to be loaded like plugins. <br/> (Current research project of Patrick Stuedi, ETH Zurich)</td>
- <td></td>
- </tr>
- <tr>
- <td>Eclipse ECF</td>
- <td>The Eclipse Communication Framework (ECF) uses jSLP as a provider for the Discovery API.</td>
- <td>http://www.eclipse.org/ecf</td>
- </tr>
- </table>
- </p>
-
- <p>
- If you use jSLP in your project, please let us know and send an <a href="mailto:rjan@users.sourceforge.net">email</a>.
- </p>
- </section>
-</body>
-</document>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document>
+ <properties>
+ <title>jSLP - Java SLP (Service Location Protocol) Implementation. Projects Using jSLP</title>
+ <author email="rellermeyer_AT_inf.ethz.ch">Jan S. Rellermeyer</author>
+ </properties>
+
+ <meta name="keyword" content="Java, SLP, slp, Service Location Protocol, jSLP, jslp, OSGi, projects using, flowSGi, collaborative, middleware"/>
+ <meta name="description" content="jSLP is a pure Java implementation of RFC 2608 (SLP, Service Location Protocol, Version 2) with a RFC 2614 style API. It can be both SLP UserAgent (UA) and ServiceAgent (SA). jSLP-OSGi integrates SLP with OSGi (Open Service Gateway Initiative). The following projects are using jSLP:"/>
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="robots" content="index, follow"/>
+
+<body>
+ <section name="Projects using jSLP">
+ <p>
+ <table>
+ <tr>
+ <th>Project</th>
+ <th>Description</th>
+ <th>Link</th>
+ </tr>
+ <tr>
+ <td>Adaptec iSCSI Management</td>
+ <td>Adaptec is in the storage management business. We have a storage management configuration utility based on a client/server model which is implemented in Java. As such it is portable to all of the OS platforms we support. We are developing an auto discovery feature to clients to automatically discover servers. Since iSCSI already uses SLP and we support a great many iSCSI devices, it seemed like a good idea to at least explore the idea of basing the auto discovery feature on SLP using jslp. Presently the auto discovery feature (using jslp) is being exercised by a network of several dozen servers.</td>
+ <td><a href="http://www.adaptec.com">Adaptec</a></td>
+ </tr>
+ <tr>
+ <td>R-OSGi</td>
+ <td>Remote service extension for OSGi</td>
+ <td><a href="http://sourceforge.net/projects/r-osgi">R-OSGi website</a></td>
+ </tr>
+ <tr>
+ <td>flowSGi</td>
+ <td>Collaborative middleware for mobile devices based on OSGi</td>
+ <td><a href="http://flowsgi.inf.ethz.ch">flowSGi website</a></td>
+ </tr>
+ <tr>
+ <td>VoiceHoc</td>
+ <td>VoiceHoc is a platform for running out-of-the-box SIP-based VoIP applications transparently in Mobile Ad Hoc Networks (MANETs) and heterogneous Internet-connected MANETs. VoiceHoc adopts a fully decentralized SIP infrastructure which makes use of D-SLP, an efficient service discovery mechanism in MANETs. D-SLP provides a regular SLP interface over TCP and UDP for service discovery, but exploits the underlying MANET routing protocol to piggyback the service information during the route setup. Mostly, the problem with these systems is that they are routing dependent. The very benefit of D-SLP however, is that it allows handlers for specific MANET routing protocols to be loaded like plugins. <br/> (Current research project of Patrick Stuedi, ETH Zurich)</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Eclipse ECF</td>
+ <td>The Eclipse Communication Framework (ECF) uses jSLP as a provider for the Discovery API.</td>
+ <td>http://www.eclipse.org/ecf</td>
+ </tr>
+ </table>
+ </p>
+
+ <p>
+ If you use jSLP in your project, please let us know and send an <a href="mailto:rjan@users.sourceforge.net">email</a>.
+ </p>
+ </section>
+</body>
+</document>
diff --git a/protocols/bundles/org.eclipse.ecf.protocol.bittorrent/.settings/org.eclipse.jdt.ui.prefs b/protocols/bundles/org.eclipse.ecf.protocol.bittorrent/.settings/org.eclipse.jdt.ui.prefs
index b29c172b9..a64600f64 100644
--- a/protocols/bundles/org.eclipse.ecf.protocol.bittorrent/.settings/org.eclipse.jdt.ui.prefs
+++ b/protocols/bundles/org.eclipse.ecf.protocol.bittorrent/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,3 @@
-#Fri May 19 10:52:32 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
+#Fri May 19 10:52:32 EDT 2006
+eclipse.preferences.version=1
+internal.default.compliance=default
diff --git a/protocols/bundles/org.eclipse.ecf.protocol.bittorrent/about.html b/protocols/bundles/org.eclipse.ecf.protocol.bittorrent/about.html
index 8f7767892..2779fc4f6 100644
--- a/protocols/bundles/org.eclipse.ecf.protocol.bittorrent/about.html
+++ b/protocols/bundles/org.eclipse.ecf.protocol.bittorrent/about.html
@@ -1,29 +1,29 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 2, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
+
diff --git a/protocols/bundles/org.eclipse.ecf.protocol.msn/.classpath b/protocols/bundles/org.eclipse.ecf.protocol.msn/.classpath
index d62b365d0..6f3b481ac 100644
--- a/protocols/bundles/org.eclipse.ecf.protocol.msn/.classpath
+++ b/protocols/bundles/org.eclipse.ecf.protocol.msn/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/protocols/bundles/org.eclipse.ecf.protocol.msn/.settings/org.eclipse.jdt.core.prefs b/protocols/bundles/org.eclipse.ecf.protocol.msn/.settings/org.eclipse.jdt.core.prefs
index 091d8bfa1..81cc60651 100644
--- a/protocols/bundles/org.eclipse.ecf.protocol.msn/.settings/org.eclipse.jdt.core.prefs
+++ b/protocols/bundles/org.eclipse.ecf.protocol.msn/.settings/org.eclipse.jdt.core.prefs
@@ -1,349 +1,349 @@
-#Fri Oct 15 17:07:16 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Fri Oct 15 17:07:16 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs
index 9e50486b3..04d69e710 100644
--- a/providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs
@@ -1,354 +1,354 @@
-#Mon May 09 12:40:02 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Mon May 09 12:40:02 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties b/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties
index 045d27cdf..7799cfdf0 100644
--- a/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties
+++ b/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties
@@ -1,10 +1,10 @@
-############################################################################
-# Copyright (c) 2011 Composent Inc., IBM Corp. 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 Discovery DNSSD Provider
-pluginProvider=Eclipse.org - ECF
+############################################################################
+# Copyright (c) 2011 Composent Inc., IBM Corp. 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 Discovery DNSSD Provider
+pluginProvider=Eclipse.org - ECF
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs
index ab935311a..9917f9f36 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath
index 731ea5fad..2fbb7a23e 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs
index 02e96548d..dbfc74a05 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Ignore
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Ignore
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java
index 70b76860d..850d79dca 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java
@@ -1,172 +1,172 @@
-/*******************************************************************************
-* Copyright (c) 2011 IBM, 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:
-* IBM Corporation - initial API and implementation
-******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient;
-
-import java.util.Map;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpConnectionManager;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions;
-import org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientOptions;
-
-public class ConnectionManagerHelper {
-
- public static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_CONNECTION_TIMEOUT;
- public static final int DEFAULT_READ_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_READ_TIMEOUT;
-
- private MultiThreadedHttpConnectionManager connectionManager;
-
- public ConnectionManagerHelper() {
- // Nothing
- }
-
- private static int getIntegerProperty(String prop, int intDefault) {
- int retVal = intDefault;
- String systemProp = System.getProperty(prop);
- if (systemProp != null) {
- try {
- retVal = Integer.parseInt(systemProp);
- } catch (NumberFormatException e) {
- Trace.trace(Activator.PLUGIN_ID, "Bad value for property '" + prop + "' : " + e + ". Using default value " + intDefault + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- }
- }
- return retVal;
- }
-
- private static long getLongProperty(String prop, long longDefault) {
- long retVal = longDefault;
- String systemProp = System.getProperty(prop);
- if (systemProp != null) {
- try {
- retVal = Long.parseLong(systemProp);
- } catch (NumberFormatException e) {
- Trace.trace(Activator.PLUGIN_ID, "Bad value for property '" + prop + "' : " + e + ". Using default value " + longDefault + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- }
- }
- return retVal;
- }
-
- private static boolean shouldReuseConnectionsOption() {
- boolean retVal = ConnectionOptions.REUSE_CONNECTIONS_DEFAULT;
- String systemProp = System.getProperty(ConnectionOptions.PROP_REUSE_CONNECTIONS);
- if (systemProp != null) {
- retVal = Boolean.valueOf(systemProp).booleanValue();
- }
- return retVal;
- }
-
- public static int getConnectTimeout(final Map options) {
- int result = DEFAULT_CONNECTION_TIMEOUT;
- Map localOptions = options;
- if (localOptions != null) {
- // See if the connect timeout option is present, if so set
- Object o = localOptions.get(IRetrieveFileTransferOptions.CONNECT_TIMEOUT);
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- return result;
- }
- o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout"); //$NON-NLS-1$
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- }
- }
- return result;
- }
-
- public static int getSocketReadTimeout(Map options) {
- int result = DEFAULT_READ_TIMEOUT;
- Map localOptions = options;
- if (localOptions != null) {
- // See if the connect timeout option is present, if so set
- Object o = localOptions.get(IRetrieveFileTransferOptions.READ_TIMEOUT);
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- return result;
- }
- o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout"); //$NON-NLS-1$
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- }
- }
- return result;
- }
-
- public synchronized void initConnectionManager(HttpClient httpClient, Map options) {
- if (!shouldReuseConnectionsOption()) {
- Trace.trace(Activator.PLUGIN_ID, "Connections are not reused. To reuse connections set system property '" + ConnectionOptions.PROP_REUSE_CONNECTIONS + "' to true."); //$NON-NLS-1$ //$NON-NLS-2$
- initParameters(httpClient, new MultiThreadedHttpConnectionManager(), false, options);
- return;
- }
- if (connectionManager == null) {
- connectionManager = new MultiThreadedHttpConnectionManager();
- Trace.trace(Activator.PLUGIN_ID, "Created shared connection manager."); //$NON-NLS-1$
- } else {
- Trace.trace(Activator.PLUGIN_ID, "Reusing shared connection manager."); //$NON-NLS-1$
- }
- initParameters(httpClient, connectionManager, true, options);
- }
-
- private static void initParameters(HttpClient httpClient, HttpConnectionManager cm, boolean cmIsShared, Map options) {
-
- if (cmIsShared) {
- long closeIdlePeriod = getLongProperty(ConnectionOptions.PROP_POOL_CLOSE_IDLE_PERIOD, ConnectionOptions.POOL_CLOSE_IDLE_PERIOD_DEFAULT);
- if (closeIdlePeriod > 0) {
- Trace.trace(Activator.PLUGIN_ID, "Closing connections which were idle at least " + closeIdlePeriod + " milliseconds."); //$NON-NLS-1$ //$NON-NLS-2$
- cm.closeIdleConnections(closeIdlePeriod);
- }
- }
-
- // HttpClient parameters can be traced independently
- httpClient.setHttpConnectionManager(cm);
- int readTimeout = getSocketReadTimeout(options);
- cm.getParams().setSoTimeout(readTimeout);
- int connectTimeout = getConnectTimeout(options);
- cm.getParams().setConnectionTimeout(connectTimeout);
-
- if (cmIsShared) {
- HttpConnectionManagerParams cmParams = cm.getParams();
- int maxHostConnections = getIntegerProperty(ConnectionOptions.PROP_MAX_CONNECTIONS_PER_HOST, ConnectionOptions.MAX_CONNECTIONS_PER_HOST_DEFAULT);
- int maxTotalConnections = getIntegerProperty(ConnectionOptions.PROP_MAX_TOTAL_CONNECTIONS, ConnectionOptions.MAX_TOTAL_CONNECTIONS_DEFAULT);
-
- cmParams.setDefaultMaxConnectionsPerHost(maxHostConnections);
- cmParams.setMaxTotalConnections(maxTotalConnections);
- long connectionManagerTimeout = getLongProperty(ConnectionOptions.PROP_POOL_CONNECTION_TIMEOUT, ConnectionOptions.POOL_CONNECTION_TIMEOUT_DEFAULT);
- httpClient.getParams().setConnectionManagerTimeout(connectionManagerTimeout);
- }
- }
-
- public synchronized void shutdown() {
- if (connectionManager != null) {
- connectionManager.shutdown();
- connectionManager = null;
- }
- }
-
-}
+/*******************************************************************************
+* Copyright (c) 2011 IBM, 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:
+* IBM Corporation - initial API and implementation
+******************************************************************************/
+
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient;
+
+import java.util.Map;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpConnectionManager;
+import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
+import org.eclipse.ecf.core.util.Trace;
+import org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions;
+import org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientOptions;
+
+public class ConnectionManagerHelper {
+
+ public static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_CONNECTION_TIMEOUT;
+ public static final int DEFAULT_READ_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_READ_TIMEOUT;
+
+ private MultiThreadedHttpConnectionManager connectionManager;
+
+ public ConnectionManagerHelper() {
+ // Nothing
+ }
+
+ private static int getIntegerProperty(String prop, int intDefault) {
+ int retVal = intDefault;
+ String systemProp = System.getProperty(prop);
+ if (systemProp != null) {
+ try {
+ retVal = Integer.parseInt(systemProp);
+ } catch (NumberFormatException e) {
+ Trace.trace(Activator.PLUGIN_ID, "Bad value for property '" + prop + "' : " + e + ". Using default value " + intDefault + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ }
+ }
+ return retVal;
+ }
+
+ private static long getLongProperty(String prop, long longDefault) {
+ long retVal = longDefault;
+ String systemProp = System.getProperty(prop);
+ if (systemProp != null) {
+ try {
+ retVal = Long.parseLong(systemProp);
+ } catch (NumberFormatException e) {
+ Trace.trace(Activator.PLUGIN_ID, "Bad value for property '" + prop + "' : " + e + ". Using default value " + longDefault + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ }
+ }
+ return retVal;
+ }
+
+ private static boolean shouldReuseConnectionsOption() {
+ boolean retVal = ConnectionOptions.REUSE_CONNECTIONS_DEFAULT;
+ String systemProp = System.getProperty(ConnectionOptions.PROP_REUSE_CONNECTIONS);
+ if (systemProp != null) {
+ retVal = Boolean.valueOf(systemProp).booleanValue();
+ }
+ return retVal;
+ }
+
+ public static int getConnectTimeout(final Map options) {
+ int result = DEFAULT_CONNECTION_TIMEOUT;
+ Map localOptions = options;
+ if (localOptions != null) {
+ // See if the connect timeout option is present, if so set
+ Object o = localOptions.get(IRetrieveFileTransferOptions.CONNECT_TIMEOUT);
+ if (o != null) {
+ if (o instanceof Integer) {
+ result = ((Integer) o).intValue();
+ } else if (o instanceof String) {
+ result = new Integer(((String) o)).intValue();
+ }
+ return result;
+ }
+ o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout"); //$NON-NLS-1$
+ if (o != null) {
+ if (o instanceof Integer) {
+ result = ((Integer) o).intValue();
+ } else if (o instanceof String) {
+ result = new Integer(((String) o)).intValue();
+ }
+ }
+ }
+ return result;
+ }
+
+ public static int getSocketReadTimeout(Map options) {
+ int result = DEFAULT_READ_TIMEOUT;
+ Map localOptions = options;
+ if (localOptions != null) {
+ // See if the connect timeout option is present, if so set
+ Object o = localOptions.get(IRetrieveFileTransferOptions.READ_TIMEOUT);
+ if (o != null) {
+ if (o instanceof Integer) {
+ result = ((Integer) o).intValue();
+ } else if (o instanceof String) {
+ result = new Integer(((String) o)).intValue();
+ }
+ return result;
+ }
+ o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout"); //$NON-NLS-1$
+ if (o != null) {
+ if (o instanceof Integer) {
+ result = ((Integer) o).intValue();
+ } else if (o instanceof String) {
+ result = new Integer(((String) o)).intValue();
+ }
+ }
+ }
+ return result;
+ }
+
+ public synchronized void initConnectionManager(HttpClient httpClient, Map options) {
+ if (!shouldReuseConnectionsOption()) {
+ Trace.trace(Activator.PLUGIN_ID, "Connections are not reused. To reuse connections set system property '" + ConnectionOptions.PROP_REUSE_CONNECTIONS + "' to true."); //$NON-NLS-1$ //$NON-NLS-2$
+ initParameters(httpClient, new MultiThreadedHttpConnectionManager(), false, options);
+ return;
+ }
+ if (connectionManager == null) {
+ connectionManager = new MultiThreadedHttpConnectionManager();
+ Trace.trace(Activator.PLUGIN_ID, "Created shared connection manager."); //$NON-NLS-1$
+ } else {
+ Trace.trace(Activator.PLUGIN_ID, "Reusing shared connection manager."); //$NON-NLS-1$
+ }
+ initParameters(httpClient, connectionManager, true, options);
+ }
+
+ private static void initParameters(HttpClient httpClient, HttpConnectionManager cm, boolean cmIsShared, Map options) {
+
+ if (cmIsShared) {
+ long closeIdlePeriod = getLongProperty(ConnectionOptions.PROP_POOL_CLOSE_IDLE_PERIOD, ConnectionOptions.POOL_CLOSE_IDLE_PERIOD_DEFAULT);
+ if (closeIdlePeriod > 0) {
+ Trace.trace(Activator.PLUGIN_ID, "Closing connections which were idle at least " + closeIdlePeriod + " milliseconds."); //$NON-NLS-1$ //$NON-NLS-2$
+ cm.closeIdleConnections(closeIdlePeriod);
+ }
+ }
+
+ // HttpClient parameters can be traced independently
+ httpClient.setHttpConnectionManager(cm);
+ int readTimeout = getSocketReadTimeout(options);
+ cm.getParams().setSoTimeout(readTimeout);
+ int connectTimeout = getConnectTimeout(options);
+ cm.getParams().setConnectionTimeout(connectTimeout);
+
+ if (cmIsShared) {
+ HttpConnectionManagerParams cmParams = cm.getParams();
+ int maxHostConnections = getIntegerProperty(ConnectionOptions.PROP_MAX_CONNECTIONS_PER_HOST, ConnectionOptions.MAX_CONNECTIONS_PER_HOST_DEFAULT);
+ int maxTotalConnections = getIntegerProperty(ConnectionOptions.PROP_MAX_TOTAL_CONNECTIONS, ConnectionOptions.MAX_TOTAL_CONNECTIONS_DEFAULT);
+
+ cmParams.setDefaultMaxConnectionsPerHost(maxHostConnections);
+ cmParams.setMaxTotalConnections(maxTotalConnections);
+ long connectionManagerTimeout = getLongProperty(ConnectionOptions.PROP_POOL_CONNECTION_TIMEOUT, ConnectionOptions.POOL_CONNECTION_TIMEOUT_DEFAULT);
+ httpClient.getParams().setConnectionManagerTimeout(connectionManagerTimeout);
+ }
+ }
+
+ public synchronized void shutdown() {
+ if (connectionManager != null) {
+ connectionManager.shutdown();
+ connectionManager = null;
+ }
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java
index 500e23ddf..f16372130 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java
@@ -1,127 +1,127 @@
-/*******************************************************************************
-* Copyright (c) 2011 IBM, 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:
-* IBM Corporation - initial API and implementation
-******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient;
-
-/**
- * Options to enable reusing socket connections.
- * <p>
- * System property {@link #PROP_REUSE_CONNECTIONS} determines whether this file transfer
- * provider reuses connections.
- * </p> <p>
- * Without connection reuse each transfer or browse operations uses its
- * own connection independent connection. As a result no connections are reused.
- * </p>
- * <p> With connection reuse enable a single connection pool is used. Details
- * of its behavior can be further customized with the following system properties:
- * <ul>
- * <li>{@link #PROP_MAX_TOTAL_CONNECTIONS}</li>
- * <li>{@link #PROP_MAX_CONNECTIONS_PER_HOST}</li>
- * <li>{@link #PROP_POOL_CONNECTION_TIMEOUT}</li>
- * <li>{@link #PROP_POOL_CLOSE_IDLE_PERIOD}</li>
- * </ul>
- * Changing this and any of the other system properties does not affect connections
- * already made.
- * </p>
- * @since 4.0.1
- */
-public interface ConnectionOptions {
- /**
- * System property name to enable connection reuse for this provider.
- * <p>
- * The boolean value of this system property determines connection reuse.
- * The default value of this property is {@value #REUSE_CONNECTIONS_DEFAULT} as
- * defined by {@link #REUSE_CONNECTIONS_DEFAULT}. </p>
- */
- public String PROP_REUSE_CONNECTIONS = "org.eclipse.ecf.provider.filetransfer.httpclient.reuseConnections.enabled"; //$NON-NLS-1$
- public boolean REUSE_CONNECTIONS_DEFAULT = true;
-
- /**
- * System property name to specify maximum number of total connections in connection reuse mode.
- * <p>
- * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
- * </p><p>
- * The default value of this property is {@value #MAX_TOTAL_CONNECTIONS_DEFAULT} as
- * defined by {@link #MAX_TOTAL_CONNECTIONS_DEFAULT}. </p>
- * <p>
- * When the maximum number of connections are being used simultaneously another connection request
- * waits until a connection becomes available to the connection pool. The maximum wait time can
- * be adjusted using {@link #PROP_POOL_CONNECTION_TIMEOUT}.
- * </p><p>
- * </p>
- */
- public String PROP_MAX_TOTAL_CONNECTIONS = "org.eclipse.ecf.provider.filetransfer.httpclient.maxConnectionsTotal"; //$NON-NLS-1$
- public int MAX_TOTAL_CONNECTIONS_DEFAULT = 200; // HttpClient default is 20.
-
- /**
- * System property name to specify maximum number of connections per host in connection reuse mode.
- * <p>
- * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
- * </p><p>
- * The default value of this property is {@value #MAX_CONNECTIONS_PER_HOST_DEFAULT} as
- * defined by {@link #MAX_CONNECTIONS_PER_HOST_DEFAULT}. </p>
- * <p>
- * When the maximum number of connections are being used simultaneously another connection request
- * waits until a connection becomes available to the connection pool. The maximum wait time can
- * be adjusted using {@link #PROP_POOL_CONNECTION_TIMEOUT}.
- * </p><p>
- * </p>
- */
- public String PROP_MAX_CONNECTIONS_PER_HOST = "org.eclipse.ecf.provider.filetransfer.httpclient.maxConnectionsPerHost"; //$NON-NLS-1$
- public int MAX_CONNECTIONS_PER_HOST_DEFAULT = 4; // HttpClient default is 2.
-
- /**
- * Property for connection pool timeout.
- * <p>
- * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
- * </p><p>
- * This is the name for a system property to change the timeout value for a
- * caller waits until a connection becomes available in the connection pool.
- * </p>
- * <p>
- * The value is a long value and its unit is milliseconds.
- * With the value 0 no timeouts are used so that the caller waits until a connection becomes available.
- * </p><p>
- * The default value of this property is {@value #POOL_CONNECTION_TIMEOUT_DEFAULT} as
- * defined by {@link #POOL_CONNECTION_TIMEOUT_DEFAULT}. </p>
- * </p>
- */
- public String PROP_POOL_CONNECTION_TIMEOUT = "org.eclipse.ecf.provider.filetransfer.httpclient.poolConnectionTimeout"; //$NON-NLS-1$
-
- public long POOL_CONNECTION_TIMEOUT_DEFAULT = 0;
-
- /**
- * Property to set period after which idle connections are closed.
- * <p>
- * This setting only applies when reusing connection is enabled (see {@link #PROP_REUSE_CONNECTIONS}.
- * <p></p>
- * This is the name for a system property to change the time period after
- * which an idle connection can be closed by the ECF HttpClient based provider.
- * Currently idle connections are only closed when another transfer is made.
- * </p>
- * <p>
- * The value is a long value and its unit is milliseconds.
- * When the value is 0 (or negative) idle connections are never closed except on shutdown.
- * </p><p>
- * The default is {@value #POOL_CLOSE_IDLE_PERIOD_DEFAULT} as
- * defined by {@link #POOL_CLOSE_IDLE_PERIOD_DEFAULT}.
- * </p>
- */
- public String PROP_POOL_CLOSE_IDLE_PERIOD = "org.eclipse.ecf.provider.filetransfer.httpclient.poolCloseIdle"; //$NON-NLS-1$
-
- /**
- * Default period before idle connections are closed.
- * <p>
- * The default period after which idle connections can be closed is 3 minutes.
- * </p>
- */
- public long POOL_CLOSE_IDLE_PERIOD_DEFAULT = 3 * 60 * 1000;
-
-}
+/*******************************************************************************
+* Copyright (c) 2011 IBM, 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:
+* IBM Corporation - initial API and implementation
+******************************************************************************/
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient;
+
+/**
+ * Options to enable reusing socket connections.
+ * <p>
+ * System property {@link #PROP_REUSE_CONNECTIONS} determines whether this file transfer
+ * provider reuses connections.
+ * </p> <p>
+ * Without connection reuse each transfer or browse operations uses its
+ * own connection independent connection. As a result no connections are reused.
+ * </p>
+ * <p> With connection reuse enable a single connection pool is used. Details
+ * of its behavior can be further customized with the following system properties:
+ * <ul>
+ * <li>{@link #PROP_MAX_TOTAL_CONNECTIONS}</li>
+ * <li>{@link #PROP_MAX_CONNECTIONS_PER_HOST}</li>
+ * <li>{@link #PROP_POOL_CONNECTION_TIMEOUT}</li>
+ * <li>{@link #PROP_POOL_CLOSE_IDLE_PERIOD}</li>
+ * </ul>
+ * Changing this and any of the other system properties does not affect connections
+ * already made.
+ * </p>
+ * @since 4.0.1
+ */
+public interface ConnectionOptions {
+ /**
+ * System property name to enable connection reuse for this provider.
+ * <p>
+ * The boolean value of this system property determines connection reuse.
+ * The default value of this property is {@value #REUSE_CONNECTIONS_DEFAULT} as
+ * defined by {@link #REUSE_CONNECTIONS_DEFAULT}. </p>
+ */
+ public String PROP_REUSE_CONNECTIONS = "org.eclipse.ecf.provider.filetransfer.httpclient.reuseConnections.enabled"; //$NON-NLS-1$
+ public boolean REUSE_CONNECTIONS_DEFAULT = true;
+
+ /**
+ * System property name to specify maximum number of total connections in connection reuse mode.
+ * <p>
+ * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
+ * </p><p>
+ * The default value of this property is {@value #MAX_TOTAL_CONNECTIONS_DEFAULT} as
+ * defined by {@link #MAX_TOTAL_CONNECTIONS_DEFAULT}. </p>
+ * <p>
+ * When the maximum number of connections are being used simultaneously another connection request
+ * waits until a connection becomes available to the connection pool. The maximum wait time can
+ * be adjusted using {@link #PROP_POOL_CONNECTION_TIMEOUT}.
+ * </p><p>
+ * </p>
+ */
+ public String PROP_MAX_TOTAL_CONNECTIONS = "org.eclipse.ecf.provider.filetransfer.httpclient.maxConnectionsTotal"; //$NON-NLS-1$
+ public int MAX_TOTAL_CONNECTIONS_DEFAULT = 200; // HttpClient default is 20.
+
+ /**
+ * System property name to specify maximum number of connections per host in connection reuse mode.
+ * <p>
+ * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
+ * </p><p>
+ * The default value of this property is {@value #MAX_CONNECTIONS_PER_HOST_DEFAULT} as
+ * defined by {@link #MAX_CONNECTIONS_PER_HOST_DEFAULT}. </p>
+ * <p>
+ * When the maximum number of connections are being used simultaneously another connection request
+ * waits until a connection becomes available to the connection pool. The maximum wait time can
+ * be adjusted using {@link #PROP_POOL_CONNECTION_TIMEOUT}.
+ * </p><p>
+ * </p>
+ */
+ public String PROP_MAX_CONNECTIONS_PER_HOST = "org.eclipse.ecf.provider.filetransfer.httpclient.maxConnectionsPerHost"; //$NON-NLS-1$
+ public int MAX_CONNECTIONS_PER_HOST_DEFAULT = 4; // HttpClient default is 2.
+
+ /**
+ * Property for connection pool timeout.
+ * <p>
+ * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
+ * </p><p>
+ * This is the name for a system property to change the timeout value for a
+ * caller waits until a connection becomes available in the connection pool.
+ * </p>
+ * <p>
+ * The value is a long value and its unit is milliseconds.
+ * With the value 0 no timeouts are used so that the caller waits until a connection becomes available.
+ * </p><p>
+ * The default value of this property is {@value #POOL_CONNECTION_TIMEOUT_DEFAULT} as
+ * defined by {@link #POOL_CONNECTION_TIMEOUT_DEFAULT}. </p>
+ * </p>
+ */
+ public String PROP_POOL_CONNECTION_TIMEOUT = "org.eclipse.ecf.provider.filetransfer.httpclient.poolConnectionTimeout"; //$NON-NLS-1$
+
+ public long POOL_CONNECTION_TIMEOUT_DEFAULT = 0;
+
+ /**
+ * Property to set period after which idle connections are closed.
+ * <p>
+ * This setting only applies when reusing connection is enabled (see {@link #PROP_REUSE_CONNECTIONS}.
+ * <p></p>
+ * This is the name for a system property to change the time period after
+ * which an idle connection can be closed by the ECF HttpClient based provider.
+ * Currently idle connections are only closed when another transfer is made.
+ * </p>
+ * <p>
+ * The value is a long value and its unit is milliseconds.
+ * When the value is 0 (or negative) idle connections are never closed except on shutdown.
+ * </p><p>
+ * The default is {@value #POOL_CLOSE_IDLE_PERIOD_DEFAULT} as
+ * defined by {@link #POOL_CLOSE_IDLE_PERIOD_DEFAULT}.
+ * </p>
+ */
+ public String PROP_POOL_CLOSE_IDLE_PERIOD = "org.eclipse.ecf.provider.filetransfer.httpclient.poolCloseIdle"; //$NON-NLS-1$
+
+ /**
+ * Default period before idle connections are closed.
+ * <p>
+ * The default period after which idle connections can be closed is 3 minutes.
+ * </p>
+ */
+ public long POOL_CLOSE_IDLE_PERIOD_DEFAULT = 3 * 60 * 1000;
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath
index 2d1a4302f..64c5e31b7 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project
index 18e8c7697..f3f36a44d 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.provider.filetransfer.httpclient4.ssl</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.provider.filetransfer.httpclient4.ssl</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs
index 44217f8c0..af0f20f97 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs
index b7e72d019..f29e940a0 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs
@@ -1,3 +1,3 @@
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties
index 41eb6ade2..34d2e4d2d 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties
@@ -1,4 +1,4 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath
index 2d1a4302f..64c5e31b7 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore
index 092357e47..ba077a403 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore
@@ -1 +1 @@
-bin
+bin
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options
index 367808d47..788d4dfef 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options
@@ -1,16 +1,16 @@
-# Debugging options for the org.eclipse.ecf.provider.filetransfer.httpclient4 plug-in
-
-# Turn on general debugging for the org.eclipse.ecf.provider.filetransfer.httpclient4 plug-in
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug=false
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/filter = *
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/flag = false
-
-# Trace when exceptions are caught
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/catching=false
-# Trace when exceptions are thrown
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/throwing=false
-
-# Trace when methods are entered
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/entering=false
-# Trace when methods are exited
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/exiting=false
+# Debugging options for the org.eclipse.ecf.provider.filetransfer.httpclient4 plug-in
+
+# Turn on general debugging for the org.eclipse.ecf.provider.filetransfer.httpclient4 plug-in
+org.eclipse.ecf.provider.filetransfer.httpclient4/debug=false
+org.eclipse.ecf.provider.filetransfer.httpclient4/debug/filter = *
+org.eclipse.ecf.provider.filetransfer.httpclient4/debug/flag = false
+
+# Trace when exceptions are caught
+org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/catching=false
+# Trace when exceptions are thrown
+org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/throwing=false
+
+# Trace when methods are entered
+org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/entering=false
+# Trace when methods are exited
+org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/exiting=false
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project
index 7e8e9ffb3..1744ced01 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.provider.filetransfer.httpclient4</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.provider.filetransfer.httpclient4</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs
index 57766aa3f..72b35914f 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs
@@ -1,350 +1,350 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs
index 4249b08a3..c7eda7aff 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs
@@ -1,3 +1,3 @@
-#Tue Feb 03 16:03:47 PST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
+#Tue Feb 03 16:03:47 PST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs
index 8af75409d..9e5e00ded 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs
@@ -1,61 +1,61 @@
-#Thu Mar 12 11:02:43 PDT 2009
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-internal.default.compliance=user
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=
-org.eclipse.jdt.ui.ondemandthreshold=100
-org.eclipse.jdt.ui.staticondemandthreshold=99
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+#Thu Mar 12 11:02:43 PDT 2009
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_core
+formatter_settings_version=11
+internal.default.compliance=user
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=
+org.eclipse.jdt.ui.ondemandthreshold=100
+org.eclipse.jdt.ui.staticondemandthreshold=99
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=false
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs
index 9cff9c907..e11a1c57c 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Ignore
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Ignore
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs
index 6d29c5fef..05ef9da1a 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs
@@ -1,27 +1,27 @@
-#Fri Jan 29 14:33:19 PST 2010
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=2
-compilers.p.build.missing.output=2
-compilers.p.deprecated=1
-compilers.p.discouraged-class=0
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
+#Fri Jan 29 14:33:19 PST 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=2
+compilers.p.build.missing.output=2
+compilers.p.deprecated=1
+compilers.p.discouraged-class=0
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+compilers.use-project=true
+eclipse.preferences.version=1
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF
index a82e21971..2effb9a08 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF
@@ -1,36 +1,36 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin.name
-Bundle-SymbolicName: org.eclipse.ecf.provider.filetransfer.httpclient4;singleton:=true
-Bundle-Version: 1.0.200.qualifier
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.ecf.provider.filetransfer,
- org.eclipse.ecf,
- org.eclipse.ecf.filetransfer,
- org.apache.httpcomponents.httpclient;bundle-version="4.1.0",
- org.eclipse.osgi,
- org.apache.commons.logging;bundle-version="1.1.1"
-Eclipse-LazyStart: true
-Import-Package: org.apache.http;version="4.1.0",
- org.apache.http.entity;version="4.1.0",
- org.apache.http.impl;version="4.1.0",
- org.apache.http.impl.entity;version="4.1.0",
- org.apache.http.impl.io;version="4.1.0",
- org.apache.http.io;version="4.1.0",
- org.apache.http.message;version="4.1.0",
- org.apache.http.params;version="4.1.0",
- org.apache.http.protocol;version="4.1.0",
- org.apache.http.util;version="4.1.0",
- org.eclipse.core.runtime.jobs,
- org.eclipse.osgi.util;version="1.0.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.log;version="1.3.0",
- org.osgi.service.url;version="1.0.0",
- org.osgi.util.tracker;version="1.3.2"
-Export-Package: org.eclipse.ecf.internal.provider.filetransfer.httpclient4;x-internal:=true,
- org.eclipse.ecf.provider.filetransfer.httpclient4
-Bundle-Vendor: %plugin.provider
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-ActivationPolicy: lazy
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %plugin.name
+Bundle-SymbolicName: org.eclipse.ecf.provider.filetransfer.httpclient4;singleton:=true
+Bundle-Version: 1.0.200.qualifier
+Bundle-Localization: plugin
+Bundle-Activator: org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator
+Require-Bundle: org.eclipse.equinox.common,
+ org.eclipse.ecf.provider.filetransfer,
+ org.eclipse.ecf,
+ org.eclipse.ecf.filetransfer,
+ org.apache.httpcomponents.httpclient;bundle-version="4.1.0",
+ org.eclipse.osgi,
+ org.apache.commons.logging;bundle-version="1.1.1"
+Eclipse-LazyStart: true
+Import-Package: org.apache.http;version="4.1.0",
+ org.apache.http.entity;version="4.1.0",
+ org.apache.http.impl;version="4.1.0",
+ org.apache.http.impl.entity;version="4.1.0",
+ org.apache.http.impl.io;version="4.1.0",
+ org.apache.http.io;version="4.1.0",
+ org.apache.http.message;version="4.1.0",
+ org.apache.http.params;version="4.1.0",
+ org.apache.http.protocol;version="4.1.0",
+ org.apache.http.util;version="4.1.0",
+ org.eclipse.core.runtime.jobs,
+ org.eclipse.osgi.util;version="1.0.0",
+ org.osgi.framework;version="1.3.0",
+ org.osgi.service.log;version="1.3.0",
+ org.osgi.service.url;version="1.0.0",
+ org.osgi.util.tracker;version="1.3.2"
+Export-Package: org.eclipse.ecf.internal.provider.filetransfer.httpclient4;x-internal:=true,
+ org.eclipse.ecf.provider.filetransfer.httpclient4
+Bundle-Vendor: %plugin.provider
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html
index f96588935..c0dea18c5 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html
@@ -1,265 +1,265 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
- <h3>About This Content</h3>
-
- <p>May 4, 2012</p>
- <h3>License</h3>
-
- <p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).
- Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
- Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
- at <a href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
- <p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
- being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
- <h3>Third Party Content</h3>
- <p>The Content includes items that have been sourced from third parties as set out below. If you
- did not receive this Content directly from the Eclipse Foundation, the following is provided
- for informational purposes only, and you should look to the Redistributor's license for
- terms and conditions of use.</p>
-
-<h4>Apache HttpComponents v4.1.2</h4>
-
-<p>This plugin is based on software developed by the Apache HttpComponents project at <a href="http://hc.apache.org/">http://hc.apache.org/</a>.
-A copy of this library is distributed within this plugin and
-therefore this plugin is subject to the Apache License version 2.0, a copy of the license is contained
-in the file <a href="asl-v20.txt">asl-v20.txt</a> and
-at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
-</p>
-
-<h4>Apache Commons Logging v1.1.1</h4>
-
-<p>This plugin is based on software developed by the Apache Commons Codec project at <a href="http://jakarta.apache.org/commons/logging/">http://jakarta.apache.org/commons/logging/</a>.
-A copy of this library is distributed within this plugin and
-therefore this plugin is subject to the Apache License version 2.0, a copy of the license is contained
-in the file <a href="asl-v20.txt">asl-v20.txt</a> and
-at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
-</p>
-
-<p>Your use of the this plugin and the components listed above is subject to the terms and conditions of the Apache License v2.0
-which is available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
-</p>
-<p>
-More specifically:</p>
-
-<p></p>
-
-<pre>
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-</pre>
-
-</body>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+ <h3>About This Content</h3>
+
+ <p>May 4, 2012</p>
+ <h3>License</h3>
+
+ <p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).
+ Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
+ Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+ at <a href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+ <p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+ being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+ <h3>Third Party Content</h3>
+ <p>The Content includes items that have been sourced from third parties as set out below. If you
+ did not receive this Content directly from the Eclipse Foundation, the following is provided
+ for informational purposes only, and you should look to the Redistributor's license for
+ terms and conditions of use.</p>
+
+<h4>Apache HttpComponents v4.1.2</h4>
+
+<p>This plugin is based on software developed by the Apache HttpComponents project at <a href="http://hc.apache.org/">http://hc.apache.org/</a>.
+A copy of this library is distributed within this plugin and
+therefore this plugin is subject to the Apache License version 2.0, a copy of the license is contained
+in the file <a href="asl-v20.txt">asl-v20.txt</a> and
+at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
+</p>
+
+<h4>Apache Commons Logging v1.1.1</h4>
+
+<p>This plugin is based on software developed by the Apache Commons Codec project at <a href="http://jakarta.apache.org/commons/logging/">http://jakarta.apache.org/commons/logging/</a>.
+A copy of this library is distributed within this plugin and
+therefore this plugin is subject to the Apache License version 2.0, a copy of the license is contained
+in the file <a href="asl-v20.txt">asl-v20.txt</a> and
+at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
+</p>
+
+<p>Your use of the this plugin and the components listed above is subject to the terms and conditions of the Apache License v2.0
+which is available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
+</p>
+<p>
+More specifically:</p>
+
+<p></p>
+
+<pre>
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+</pre>
+
+</body>
</html> \ No newline at end of file
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt
index 75b52484e..d64569567 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt
@@ -1,202 +1,202 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties
index 00bfa9051..1eb488bd4 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties
@@ -1,11 +1,11 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- about.html,\
- plugin.properties,\
- asl-v20.txt
-src.includes = about.html,\
- asl-v20.txt
-jre.compilation.profile = J2SE-1.4
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html,\
+ plugin.properties,\
+ asl-v20.txt
+src.includes = about.html,\
+ asl-v20.txt
+jre.compilation.profile = J2SE-1.4
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties
index c7379d0e8..a06c59005 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties
@@ -1,11 +1,11 @@
-############################################################################
-# Copyright (c) 2007 Composent Inc., IBM Corp. 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
-#
-############################################################################
-plugin.name=ECF HttpComponents Filetransfer Provider
-plugin.provider=Eclipse.org - ECF
-
+############################################################################
+# Copyright (c) 2007 Composent Inc., IBM Corp. 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
+#
+############################################################################
+plugin.name=ECF HttpComponents Filetransfer Provider
+plugin.provider=Eclipse.org - ECF
+
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml
index a526acea6..00de94566 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml
@@ -1,32 +1,32 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
- <extension
- point="org.eclipse.ecf.provider.filetransfer.retrieveFileTransferProtocolFactory">
- <retrieveFileTransferProtocolFactory
- class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransferFactory"
- protocol="http"
- priority="45">
- </retrieveFileTransferProtocolFactory>
- <retrieveFileTransferProtocolFactory
- class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransferFactory"
- protocol="https"
- priority="45">
- </retrieveFileTransferProtocolFactory>
- </extension>
-
- <extension
- point="org.eclipse.ecf.provider.filetransfer.browseFileTransferProtocolFactory">
- <browseFileTransferProtocolFactory
- class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientBrowseFileTransferFactory"
- protocol="http"
- priority="45">
- </browseFileTransferProtocolFactory>
- <browseFileTransferProtocolFactory
- class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientBrowseFileTransferFactory"
- protocol="https"
- priority="45">
- </browseFileTransferProtocolFactory>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.ecf.provider.filetransfer.retrieveFileTransferProtocolFactory">
+ <retrieveFileTransferProtocolFactory
+ class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransferFactory"
+ protocol="http"
+ priority="45">
+ </retrieveFileTransferProtocolFactory>
+ <retrieveFileTransferProtocolFactory
+ class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransferFactory"
+ protocol="https"
+ priority="45">
+ </retrieveFileTransferProtocolFactory>
+ </extension>
+
+ <extension
+ point="org.eclipse.ecf.provider.filetransfer.browseFileTransferProtocolFactory">
+ <browseFileTransferProtocolFactory
+ class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientBrowseFileTransferFactory"
+ protocol="http"
+ priority="45">
+ </browseFileTransferProtocolFactory>
+ <browseFileTransferProtocolFactory
+ class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientBrowseFileTransferFactory"
+ protocol="https"
+ priority="45">
+ </browseFileTransferProtocolFactory>
+ </extension>
+
+</plugin>
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java
index 496bc8ad5..43cce0f16 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java
@@ -1,130 +1,130 @@
-/****************************************************************************
- * Copyright (c) 2007 IBM, 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:
- * Chris Aniszczyk - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import javax.net.ssl.SSLSocketFactory;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.util.LogHelper;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.log.LogService;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator implements BundleActivator {
-
- // The plug-in ID
- public static final String PLUGIN_ID = "org.eclipse.ecf.provider.filetransfer.httpclient4"; //$NON-NLS-1$
-
- // The shared instance
- private static Activator plugin;
- private BundleContext context = null;
-
- private ServiceTracker logServiceTracker = null;
-
- private ServiceTracker sslSocketFactoryTracker;
-
- private ISSLSocketFactoryModifier sslSocketFactoryModifier;
-
- /**
- * The constructor
- */
- public Activator() {
- //
- }
-
- public BundleContext getContext() {
- return context;
- }
-
- public void start(BundleContext ctxt) throws Exception {
- plugin = this;
- this.context = ctxt;
- // initialize the default sslSocketFactoryModifier. This instance is then used within HttpClientRetrieveFileTransfer.setupHostAndPort
- // to set the socket factory for the specific proxy and httpclient instance
- try {
- Class socketFactoryModifierClass = Class.forName("org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ssl.SSLSocketFactoryModifier"); //$NON-NLS-1$
- sslSocketFactoryModifier = (ISSLSocketFactoryModifier) socketFactoryModifierClass.newInstance();
- } catch (ClassNotFoundException e) {
- // will occur if fragment is not installed or not on proper execution environment
- } catch (Throwable t) {
- log(new Status(IStatus.ERROR, PLUGIN_ID, "Unexpected Error in Activator.start", t)); //$NON-NLS-1$
- }
-
- }
-
- public ISSLSocketFactoryModifier getSSLSocketFactoryModifier() {
- return sslSocketFactoryModifier;
- }
-
- public void stop(BundleContext ctxt) throws Exception {
- if (sslSocketFactoryModifier != null) {
- sslSocketFactoryModifier.dispose();
- sslSocketFactoryModifier = null;
- }
-
- if (sslSocketFactoryTracker != null) {
- sslSocketFactoryTracker.close();
- }
-
- if (logServiceTracker != null) {
- logServiceTracker.close();
- }
- this.context = null;
- plugin = null;
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public synchronized static Activator getDefault() {
- if (plugin == null) {
- plugin = new Activator();
- }
- return plugin;
- }
-
- protected LogService getLogService() {
- if (logServiceTracker == null) {
- logServiceTracker = new ServiceTracker(this.context, LogService.class.getName(), null);
- logServiceTracker.open();
- }
- return (LogService) logServiceTracker.getService();
- }
-
- public void log(IStatus status) {
- LogService logService = getLogService();
- if (logService != null) {
- logService.log(LogHelper.getLogCode(status), LogHelper.getLogMessage(status), status.getException());
- }
- }
-
- public SSLSocketFactory getSSLSocketFactory() {
- if (sslSocketFactoryTracker == null) {
- sslSocketFactoryTracker = new ServiceTracker(this.context, SSLSocketFactory.class.getName(), null);
- sslSocketFactoryTracker.open();
- }
- return (SSLSocketFactory) sslSocketFactoryTracker.getService();
- }
-
- public static void logNoProxyWarning(Throwable e) {
- Activator a = getDefault();
- if (a != null) {
- a.log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, IStatus.ERROR, "Warning: Platform proxy API not available", e)); //$NON-NLS-1$
- }
- }
-
-}
+/****************************************************************************
+ * Copyright (c) 2007 IBM, 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:
+ * Chris Aniszczyk - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
+
+import javax.net.ssl.SSLSocketFactory;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.core.util.LogHelper;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.log.LogService;
+import org.osgi.util.tracker.ServiceTracker;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator implements BundleActivator {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.ecf.provider.filetransfer.httpclient4"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+ private BundleContext context = null;
+
+ private ServiceTracker logServiceTracker = null;
+
+ private ServiceTracker sslSocketFactoryTracker;
+
+ private ISSLSocketFactoryModifier sslSocketFactoryModifier;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ //
+ }
+
+ public BundleContext getContext() {
+ return context;
+ }
+
+ public void start(BundleContext ctxt) throws Exception {
+ plugin = this;
+ this.context = ctxt;
+ // initialize the default sslSocketFactoryModifier. This instance is then used within HttpClientRetrieveFileTransfer.setupHostAndPort
+ // to set the socket factory for the specific proxy and httpclient instance
+ try {
+ Class socketFactoryModifierClass = Class.forName("org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ssl.SSLSocketFactoryModifier"); //$NON-NLS-1$
+ sslSocketFactoryModifier = (ISSLSocketFactoryModifier) socketFactoryModifierClass.newInstance();
+ } catch (ClassNotFoundException e) {
+ // will occur if fragment is not installed or not on proper execution environment
+ } catch (Throwable t) {
+ log(new Status(IStatus.ERROR, PLUGIN_ID, "Unexpected Error in Activator.start", t)); //$NON-NLS-1$
+ }
+
+ }
+
+ public ISSLSocketFactoryModifier getSSLSocketFactoryModifier() {
+ return sslSocketFactoryModifier;
+ }
+
+ public void stop(BundleContext ctxt) throws Exception {
+ if (sslSocketFactoryModifier != null) {
+ sslSocketFactoryModifier.dispose();
+ sslSocketFactoryModifier = null;
+ }
+
+ if (sslSocketFactoryTracker != null) {
+ sslSocketFactoryTracker.close();
+ }
+
+ if (logServiceTracker != null) {
+ logServiceTracker.close();
+ }
+ this.context = null;
+ plugin = null;
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public synchronized static Activator getDefault() {
+ if (plugin == null) {
+ plugin = new Activator();
+ }
+ return plugin;
+ }
+
+ protected LogService getLogService() {
+ if (logServiceTracker == null) {
+ logServiceTracker = new ServiceTracker(this.context, LogService.class.getName(), null);
+ logServiceTracker.open();
+ }
+ return (LogService) logServiceTracker.getService();
+ }
+
+ public void log(IStatus status) {
+ LogService logService = getLogService();
+ if (logService != null) {
+ logService.log(LogHelper.getLogCode(status), LogHelper.getLogMessage(status), status.getException());
+ }
+ }
+
+ public SSLSocketFactory getSSLSocketFactory() {
+ if (sslSocketFactoryTracker == null) {
+ sslSocketFactoryTracker = new ServiceTracker(this.context, SSLSocketFactory.class.getName(), null);
+ sslSocketFactoryTracker.open();
+ }
+ return (SSLSocketFactory) sslSocketFactoryTracker.getService();
+ }
+
+ public static void logNoProxyWarning(Throwable e) {
+ Activator a = getDefault();
+ if (a != null) {
+ a.log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, IStatus.ERROR, "Warning: Platform proxy API not available", e)); //$NON-NLS-1$
+ }
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java
index f455935b7..5b1454e06 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java
@@ -1,69 +1,69 @@
-/*******************************************************************************
-* Copyright (c) 2009 IBM, 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:
-* Thomas Joiner - extracted implementation from the Socket factories
-******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import java.net.Socket;
-import javax.net.ssl.SSLSocket;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
-import org.eclipse.ecf.provider.filetransfer.events.socket.AbstractSocketWrapper;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
-
-class CloseMonitoringSocket extends AbstractSocketWrapper {
-
- private boolean closed = false;
- private final ISocketListener spyListener;
- private final ISocketEventSource source;
- private Socket wrappedSocket;
-
- public CloseMonitoringSocket(Socket toWrap, ISocketListener spyListener, ISocketEventSource source) {
- super(toWrap);
- this.spyListener = spyListener;
- this.source = source;
- }
-
- public synchronized void close() throws IOException {
- if (!closed) {
- closed = true;
-
- try {
- Trace.trace(Activator.PLUGIN_ID, "closing socket " + this.toString()); //$NON-NLS-1$
- super.close();
- } finally {
- fireEvent(new SocketClosedEvent(source, getSocket(), (wrappedSocket != null ? wrappedSocket : this)));
- }
- }
- }
-
- private void fireEvent(ISocketEvent event) {
- if (spyListener != null) {
- spyListener.handleSocketEvent(event);
- }
- event.getSource().fireEvent(event);
- }
-
- public boolean isSecure() {
- return getSocket() instanceof SSLSocket;
- }
-
- Socket getWrappedSocket() {
- return wrappedSocket;
- }
-
- void setWrappedSocket(Socket wrappedSocket) {
- this.wrappedSocket = wrappedSocket;
- }
-
+/*******************************************************************************
+* Copyright (c) 2009 IBM, 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:
+* Thomas Joiner - extracted implementation from the Socket factories
+******************************************************************************/
+
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
+
+import java.io.IOException;
+import java.net.Socket;
+import javax.net.ssl.SSLSocket;
+import org.eclipse.ecf.core.util.Trace;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
+import org.eclipse.ecf.provider.filetransfer.events.socket.AbstractSocketWrapper;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
+
+class CloseMonitoringSocket extends AbstractSocketWrapper {
+
+ private boolean closed = false;
+ private final ISocketListener spyListener;
+ private final ISocketEventSource source;
+ private Socket wrappedSocket;
+
+ public CloseMonitoringSocket(Socket toWrap, ISocketListener spyListener, ISocketEventSource source) {
+ super(toWrap);
+ this.spyListener = spyListener;
+ this.source = source;
+ }
+
+ public synchronized void close() throws IOException {
+ if (!closed) {
+ closed = true;
+
+ try {
+ Trace.trace(Activator.PLUGIN_ID, "closing socket " + this.toString()); //$NON-NLS-1$
+ super.close();
+ } finally {
+ fireEvent(new SocketClosedEvent(source, getSocket(), (wrappedSocket != null ? wrappedSocket : this)));
+ }
+ }
+ }
+
+ private void fireEvent(ISocketEvent event) {
+ if (spyListener != null) {
+ spyListener.handleSocketEvent(event);
+ }
+ event.getSource().fireEvent(event);
+ }
+
+ public boolean isSecure() {
+ return getSocket() instanceof SSLSocket;
+ }
+
+ Socket getWrappedSocket() {
+ return wrappedSocket;
+ }
+
+ void setWrappedSocket(Socket wrappedSocket) {
+ this.wrappedSocket = wrappedSocket;
+ }
+
} \ No newline at end of file
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java
index d3db774c5..9aae0dc5e 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java
@@ -1,46 +1,46 @@
-/*******************************************************************************
-* Copyright (c) 2009 IBM, 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:
-* IBM Corporation - initial API and implementation
-******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.util.*;
-import org.eclipse.ecf.filetransfer.events.socket.*;
-
-public class ConnectingSocketMonitor implements ISocketListener {
-
- private Map connectingSockets;
-
- public ConnectingSocketMonitor(int initialCapacity) {
- connectingSockets = Collections.synchronizedMap(new HashMap(initialCapacity));
- }
-
- public ConnectingSocketMonitor() {
- connectingSockets = Collections.synchronizedMap(new HashMap());
- }
-
- public Collection getConnectingSockets() {
- return Collections.unmodifiableCollection(connectingSockets.keySet());
- }
-
- public void clear() {
- connectingSockets.clear();
- }
-
- public void handleSocketEvent(ISocketEvent event) {
- if (event instanceof ISocketCreatedEvent) {
- connectingSockets.put(event.getFactorySocket(), event);
- } else if (event instanceof ISocketConnectedEvent) {
- connectingSockets.remove(event.getFactorySocket());
- } else if (event instanceof ISocketClosedEvent) {
- connectingSockets.remove(event.getFactorySocket());
- }
- }
-}
+/*******************************************************************************
+* Copyright (c) 2009 IBM, 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:
+* IBM Corporation - initial API and implementation
+******************************************************************************/
+
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
+
+import java.util.*;
+import org.eclipse.ecf.filetransfer.events.socket.*;
+
+public class ConnectingSocketMonitor implements ISocketListener {
+
+ private Map connectingSockets;
+
+ public ConnectingSocketMonitor(int initialCapacity) {
+ connectingSockets = Collections.synchronizedMap(new HashMap(initialCapacity));
+ }
+
+ public ConnectingSocketMonitor() {
+ connectingSockets = Collections.synchronizedMap(new HashMap());
+ }
+
+ public Collection getConnectingSockets() {
+ return Collections.unmodifiableCollection(connectingSockets.keySet());
+ }
+
+ public void clear() {
+ connectingSockets.clear();
+ }
+
+ public void handleSocketEvent(ISocketEvent event) {
+ if (event instanceof ISocketCreatedEvent) {
+ connectingSockets.put(event.getFactorySocket(), event);
+ } else if (event instanceof ISocketConnectedEvent) {
+ connectingSockets.remove(event.getFactorySocket());
+ } else if (event instanceof ISocketClosedEvent) {
+ connectingSockets.remove(event.getFactorySocket());
+ }
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java
index 0834c04ad..5cd542c84 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java
@@ -1,23 +1,23 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.internal.provider.filetransfer.httpclient4;
-
-public interface DebugOptions {
-
- public static final String DEBUG = Activator.PLUGIN_ID + "/debug"; //$NON-NLS-1$
-
- public static final String EXCEPTIONS_CATCHING = DEBUG + "/exceptions/catching"; //$NON-NLS-1$
-
- public static final String EXCEPTIONS_THROWING = DEBUG + "/exceptions/throwing"; //$NON-NLS-1$
-
- public static final String METHODS_ENTERING = DEBUG + "/methods/entering"; //$NON-NLS-1$
-
- public static final String METHODS_EXITING = DEBUG + "/methods/exiting"; //$NON-NLS-1$
-
-}
+/*******************************************************************************
+ * Copyright (c) 2004 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.internal.provider.filetransfer.httpclient4;
+
+public interface DebugOptions {
+
+ public static final String DEBUG = Activator.PLUGIN_ID + "/debug"; //$NON-NLS-1$
+
+ public static final String EXCEPTIONS_CATCHING = DEBUG + "/exceptions/catching"; //$NON-NLS-1$
+
+ public static final String EXCEPTIONS_THROWING = DEBUG + "/exceptions/throwing"; //$NON-NLS-1$
+
+ public static final String METHODS_ENTERING = DEBUG + "/methods/entering"; //$NON-NLS-1$
+
+ public static final String METHODS_EXITING = DEBUG + "/methods/exiting"; //$NON-NLS-1$
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java
index ac5a32ba7..7f5d94daf 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java
@@ -1,132 +1,132 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
- * Thomas Joiner - HttpClient 4 implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import javax.net.SocketFactory;
-import javax.net.ssl.SSLSocket;
-import org.apache.http.conn.ConnectTimeoutException;
-import org.apache.http.conn.scheme.SchemeSocketFactory;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.HttpParams;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
-import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketConnectedEvent;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketCreatedEvent;
-
-public class ECFHttpClientProtocolSocketFactory implements SchemeSocketFactory {
-
- protected ISocketEventSource source;
- private INonconnectedSocketFactory unconnectedFactory;
- private ISocketListener socketConnectListener;
-
- private static final ISocketListener NULL_SOCKET_EVENT_LISTENER = new ISocketListener() {
- public void handleSocketEvent(ISocketEvent event) {
- //empty
- }
- };
-
- public ECFHttpClientProtocolSocketFactory(INonconnectedSocketFactory unconnectedFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
- super();
- Assert.isNotNull(unconnectedFactory);
- Assert.isNotNull(source);
- this.unconnectedFactory = unconnectedFactory;
- this.source = source;
- this.socketConnectListener = socketConnectListener != null ? socketConnectListener : NULL_SOCKET_EVENT_LISTENER;
- }
-
- public ECFHttpClientProtocolSocketFactory(final SocketFactory socketFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
- this(new INonconnectedSocketFactory() {
- public Socket createSocket() throws IOException {
- return socketFactory.createSocket();
- }
- }, source, socketConnectListener);
- }
-
- public Socket createSocket(HttpParams params) throws IOException {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientProtocolSocketFactory.class, "createSocket"); //$NON-NLS-1$
-
- final Socket factorySocket = unconnectedFactory.createSocket();
- fireEvent(socketConnectListener, new SocketCreatedEvent(source, factorySocket));
-
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, ECFHttpClientProtocolSocketFactory.class, "socketCreated " + factorySocket); //$NON-NLS-1$
-
- return factorySocket;
- }
-
- public Socket connectSocket(final Socket sock, InetSocketAddress remoteAddress, InetSocketAddress localAddress, HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- int timeout = params.getIntParameter(CoreConnectionPNames.SO_TIMEOUT, 0);
-
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientProtocolSocketFactory.class, "connectSocket " + remoteAddress.toString() + " timeout=" + timeout); //$NON-NLS-1$ //$NON-NLS-2$
-
- try {
- // Use String.valueOf to protect against null
- Trace.trace(Activator.PLUGIN_ID, "bind(" + String.valueOf(localAddress) + ")"); //$NON-NLS-1$//$NON-NLS-2$
- sock.bind(localAddress);
- Trace.trace(Activator.PLUGIN_ID, "connect(" + remoteAddress.toString() + ", " + timeout + ")"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
- sock.connect(remoteAddress, timeout);
- Trace.trace(Activator.PLUGIN_ID, "connected"); //$NON-NLS-1$
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
- fireEvent(socketConnectListener, new SocketClosedEvent(source, sock, sock));
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
- throw e;
- }
-
- Socket toReturn;
- Socket wrapped = new CloseMonitoringSocket(sock, socketConnectListener, source);
-
- SocketConnectedEvent connectedEvent = new SocketConnectedEvent(source, sock, wrapped);
- fireEvent(socketConnectListener, connectedEvent);
-
- // Change the wrapped socket if one of the receivers of the SocketConnectedEvent changed it
- if (connectedEvent.getSocket() != wrapped) {
- toReturn = connectedEvent.getSocket();
- ((CloseMonitoringSocket) wrapped).setWrappedSocket(toReturn);
- } else {
- toReturn = wrapped;
- }
-
- return toReturn;
- }
-
- private static void fireEvent(final ISocketListener spyListener, ISocketEvent event) {
- if (spyListener != null) {
- spyListener.handleSocketEvent(event);
- }
- event.getSource().fireEvent(event);
- }
-
- public boolean isSecure(Socket sock) throws IllegalArgumentException {
- if (sock instanceof SSLSocket) {
- throw new IllegalArgumentException("Socket not created by this factory."); //$NON-NLS-1$
- }
-
- return false;
- }
-
- public boolean equals(Object obj) {
- return (obj instanceof ECFHttpClientProtocolSocketFactory);
- }
-
- public int hashCode() {
- return ECFHttpClientProtocolSocketFactory.class.hashCode();
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation 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:
+ * IBM Corporation - initial API and implementation
+ * Thomas Joiner - HttpClient 4 implementation
+ *******************************************************************************/
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
+import javax.net.SocketFactory;
+import javax.net.ssl.SSLSocket;
+import org.apache.http.conn.ConnectTimeoutException;
+import org.apache.http.conn.scheme.SchemeSocketFactory;
+import org.apache.http.params.CoreConnectionPNames;
+import org.apache.http.params.HttpParams;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ecf.core.util.Trace;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
+import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketConnectedEvent;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketCreatedEvent;
+
+public class ECFHttpClientProtocolSocketFactory implements SchemeSocketFactory {
+
+ protected ISocketEventSource source;
+ private INonconnectedSocketFactory unconnectedFactory;
+ private ISocketListener socketConnectListener;
+
+ private static final ISocketListener NULL_SOCKET_EVENT_LISTENER = new ISocketListener() {
+ public void handleSocketEvent(ISocketEvent event) {
+ //empty
+ }
+ };
+
+ public ECFHttpClientProtocolSocketFactory(INonconnectedSocketFactory unconnectedFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
+ super();
+ Assert.isNotNull(unconnectedFactory);
+ Assert.isNotNull(source);
+ this.unconnectedFactory = unconnectedFactory;
+ this.source = source;
+ this.socketConnectListener = socketConnectListener != null ? socketConnectListener : NULL_SOCKET_EVENT_LISTENER;
+ }
+
+ public ECFHttpClientProtocolSocketFactory(final SocketFactory socketFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
+ this(new INonconnectedSocketFactory() {
+ public Socket createSocket() throws IOException {
+ return socketFactory.createSocket();
+ }
+ }, source, socketConnectListener);
+ }
+
+ public Socket createSocket(HttpParams params) throws IOException {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientProtocolSocketFactory.class, "createSocket"); //$NON-NLS-1$
+
+ final Socket factorySocket = unconnectedFactory.createSocket();
+ fireEvent(socketConnectListener, new SocketCreatedEvent(source, factorySocket));
+
+ Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, ECFHttpClientProtocolSocketFactory.class, "socketCreated " + factorySocket); //$NON-NLS-1$
+
+ return factorySocket;
+ }
+
+ public Socket connectSocket(final Socket sock, InetSocketAddress remoteAddress, InetSocketAddress localAddress, HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
+ int timeout = params.getIntParameter(CoreConnectionPNames.SO_TIMEOUT, 0);
+
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientProtocolSocketFactory.class, "connectSocket " + remoteAddress.toString() + " timeout=" + timeout); //$NON-NLS-1$ //$NON-NLS-2$
+
+ try {
+ // Use String.valueOf to protect against null
+ Trace.trace(Activator.PLUGIN_ID, "bind(" + String.valueOf(localAddress) + ")"); //$NON-NLS-1$//$NON-NLS-2$
+ sock.bind(localAddress);
+ Trace.trace(Activator.PLUGIN_ID, "connect(" + remoteAddress.toString() + ", " + timeout + ")"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+ sock.connect(remoteAddress, timeout);
+ Trace.trace(Activator.PLUGIN_ID, "connected"); //$NON-NLS-1$
+ } catch (IOException e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
+ fireEvent(socketConnectListener, new SocketClosedEvent(source, sock, sock));
+ Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
+ throw e;
+ }
+
+ Socket toReturn;
+ Socket wrapped = new CloseMonitoringSocket(sock, socketConnectListener, source);
+
+ SocketConnectedEvent connectedEvent = new SocketConnectedEvent(source, sock, wrapped);
+ fireEvent(socketConnectListener, connectedEvent);
+
+ // Change the wrapped socket if one of the receivers of the SocketConnectedEvent changed it
+ if (connectedEvent.getSocket() != wrapped) {
+ toReturn = connectedEvent.getSocket();
+ ((CloseMonitoringSocket) wrapped).setWrappedSocket(toReturn);
+ } else {
+ toReturn = wrapped;
+ }
+
+ return toReturn;
+ }
+
+ private static void fireEvent(final ISocketListener spyListener, ISocketEvent event) {
+ if (spyListener != null) {
+ spyListener.handleSocketEvent(event);
+ }
+ event.getSource().fireEvent(event);
+ }
+
+ public boolean isSecure(Socket sock) throws IllegalArgumentException {
+ if (sock instanceof SSLSocket) {
+ throw new IllegalArgumentException("Socket not created by this factory."); //$NON-NLS-1$
+ }
+
+ return false;
+ }
+
+ public boolean equals(Object obj) {
+ return (obj instanceof ECFHttpClientProtocolSocketFactory);
+ }
+
+ public int hashCode() {
+ return ECFHttpClientProtocolSocketFactory.class.hashCode();
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java
index d6c746e4b..14ec7fd2b 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java
@@ -1,176 +1,176 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
- * Thomas Joiner - HttpClient 4 implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import javax.net.ssl.SSLSocket;
-import javax.net.ssl.SSLSocketFactory;
-import org.apache.http.conn.ConnectTimeoutException;
-import org.apache.http.conn.scheme.LayeredSchemeSocketFactory;
-import org.apache.http.params.HttpConnectionParams;
-import org.apache.http.params.HttpParams;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketConnectedEvent;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketCreatedEvent;
-
-public final class ECFHttpClientSecureProtocolSocketFactory implements LayeredSchemeSocketFactory {
-
- private final SSLSocketFactory sslSocketFactory;
- private final ISocketEventSource source;
- private final ISocketListener socketConnectListener;
-
- public ECFHttpClientSecureProtocolSocketFactory(final SSLSocketFactory sslSocketFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
- this.sslSocketFactory = sslSocketFactory;
- this.source = source;
- this.socketConnectListener = socketConnectListener;
- }
-
- public Socket createSocket(final HttpParams params) {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientSecureProtocolSocketFactory.class, "createSocket"); //$NON-NLS-1$
-
- Socket socket = new Socket();
- fireEvent(socketConnectListener, new SocketCreatedEvent(source, socket));
-
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, ECFHttpClientSecureProtocolSocketFactory.class, "socketCreated " + socket); //$NON-NLS-1$
- return socket;
- }
-
- public Socket connectSocket(final Socket socket, final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- if (remoteAddress == null) {
- throw new IllegalArgumentException("Remote address must not be null"); //$NON-NLS-1$
- }
- if (params == null) {
- throw new IllegalArgumentException("HTTP parameters must not be null"); //$NON-NLS-1$
- }
-
- if (socket == null) {
- SSLSocket sslSocket = (SSLSocket) this.sslSocketFactory.createSocket();
-
- performConnection(sslSocket, remoteAddress, localAddress, params);
-
- return wrapSocket(sslSocket);
- } else if (socket instanceof SSLSocket) {
- performConnection(socket, remoteAddress, localAddress, params);
-
- return wrapSocket(socket);
- }
-
- // If we were given a unconnected socket, we need to connect it first
- if (!socket.isConnected()) {
- performConnection(socket, remoteAddress, localAddress, params);
- }
-
- Socket layeredSocket = this.sslSocketFactory.createSocket(socket, remoteAddress.getHostName(), remoteAddress.getPort(), true);
-
- return wrapSocket(layeredSocket);
- }
-
- private void performConnection(final Socket socket, final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpParams params) throws SocketException, IOException {
- try {
- socket.setReuseAddress(HttpConnectionParams.getSoReuseaddr(params));
- socket.bind(localAddress);
-
- int connectionTimeout = HttpConnectionParams.getConnectionTimeout(params);
- int socketTimeout = HttpConnectionParams.getSoTimeout(params);
-
- socket.connect(remoteAddress, connectionTimeout);
- socket.setSoTimeout(socketTimeout);
- } catch (SocketException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
- fireEvent(this.socketConnectListener, new SocketClosedEvent(source, socket, socket));
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
- throw e;
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
- fireEvent(this.socketConnectListener, new SocketClosedEvent(source, socket, socket));
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
- throw e;
- }
- }
-
- public boolean isSecure(final Socket sock) throws IllegalArgumentException {
- if (sock == null) {
- throw new IllegalArgumentException("Socket must not be null"); //$NON-NLS-1$
- }
-
- if (sock instanceof CloseMonitoringSocket) {
- return ((CloseMonitoringSocket) sock).isSecure();
- }
-
- if (!(sock instanceof SSLSocket)) {
- throw new IllegalArgumentException("Socket not created by this factory"); //$NON-NLS-1$
- }
-
- if (sock.isClosed()) {
- throw new IllegalArgumentException("Socket is closed"); //$NON-NLS-1$
- }
-
- return true;
- }
-
- public Socket createLayeredSocket(final Socket socket, final String host, final int port, final boolean autoClose) throws IOException {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientSecureProtocolSocketFactory.class, "createLayeredSocket " + host + ":" + port + ",socket=" + socket); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- SSLSocket sslSocket = null;
- try {
- Trace.trace(Activator.PLUGIN_ID, "connectingLayeredSocket(original=" + socket + ",dest=" + host + ":" + port + ")"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
- sslSocket = (SSLSocket) this.sslSocketFactory.createSocket(socket, host, port, autoClose);
- Trace.trace(Activator.PLUGIN_ID, "connected"); //$NON-NLS-1$
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "createLayeredSocket", e); //$NON-NLS-1$
- fireEvent(this.socketConnectListener, new SocketClosedEvent(source, sslSocket, sslSocket));
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
- throw e;
- }
-
- return wrapSocket(sslSocket);
- }
-
- private Socket wrapSocket(Socket toWrap) {
- CloseMonitoringSocket wrappedSocket = new CloseMonitoringSocket(toWrap, socketConnectListener, source);
-
- SocketConnectedEvent connectedEvent = new SocketConnectedEvent(source, toWrap, wrappedSocket);
- fireEvent(socketConnectListener, connectedEvent);
-
- // Change the wrapped socket if one of the receivers of the SocketConnectedEvent changed it
- Socket connectedEventSocket = connectedEvent.getSocket();
- if (connectedEventSocket != wrappedSocket) {
- wrappedSocket.setWrappedSocket(connectedEventSocket);
- return connectedEventSocket;
- }
-
- return wrappedSocket;
- }
-
- static void fireEvent(final ISocketListener spyListener, ISocketEvent event) {
- if (spyListener != null) {
- spyListener.handleSocketEvent(event);
- }
- event.getSource().fireEvent(event);
- }
-
- public boolean equals(Object obj) {
- return ((obj != null) && obj.getClass().equals(ECFHttpClientSecureProtocolSocketFactory.class));
- }
-
- public int hashCode() {
- return ECFHttpClientSecureProtocolSocketFactory.class.hashCode();
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation 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:
+ * IBM Corporation - initial API and implementation
+ * Thomas Joiner - HttpClient 4 implementation
+ *******************************************************************************/
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.SocketException;
+import java.net.UnknownHostException;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
+import org.apache.http.conn.ConnectTimeoutException;
+import org.apache.http.conn.scheme.LayeredSchemeSocketFactory;
+import org.apache.http.params.HttpConnectionParams;
+import org.apache.http.params.HttpParams;
+import org.eclipse.ecf.core.util.Trace;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketConnectedEvent;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketCreatedEvent;
+
+public final class ECFHttpClientSecureProtocolSocketFactory implements LayeredSchemeSocketFactory {
+
+ private final SSLSocketFactory sslSocketFactory;
+ private final ISocketEventSource source;
+ private final ISocketListener socketConnectListener;
+
+ public ECFHttpClientSecureProtocolSocketFactory(final SSLSocketFactory sslSocketFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
+ this.sslSocketFactory = sslSocketFactory;
+ this.source = source;
+ this.socketConnectListener = socketConnectListener;
+ }
+
+ public Socket createSocket(final HttpParams params) {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientSecureProtocolSocketFactory.class, "createSocket"); //$NON-NLS-1$
+
+ Socket socket = new Socket();
+ fireEvent(socketConnectListener, new SocketCreatedEvent(source, socket));
+
+ Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, ECFHttpClientSecureProtocolSocketFactory.class, "socketCreated " + socket); //$NON-NLS-1$
+ return socket;
+ }
+
+ public Socket connectSocket(final Socket socket, final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
+ if (remoteAddress == null) {
+ throw new IllegalArgumentException("Remote address must not be null"); //$NON-NLS-1$
+ }
+ if (params == null) {
+ throw new IllegalArgumentException("HTTP parameters must not be null"); //$NON-NLS-1$
+ }
+
+ if (socket == null) {
+ SSLSocket sslSocket = (SSLSocket) this.sslSocketFactory.createSocket();
+
+ performConnection(sslSocket, remoteAddress, localAddress, params);
+
+ return wrapSocket(sslSocket);
+ } else if (socket instanceof SSLSocket) {
+ performConnection(socket, remoteAddress, localAddress, params);
+
+ return wrapSocket(socket);
+ }
+
+ // If we were given a unconnected socket, we need to connect it first
+ if (!socket.isConnected()) {
+ performConnection(socket, remoteAddress, localAddress, params);
+ }
+
+ Socket layeredSocket = this.sslSocketFactory.createSocket(socket, remoteAddress.getHostName(), remoteAddress.getPort(), true);
+
+ return wrapSocket(layeredSocket);
+ }
+
+ private void performConnection(final Socket socket, final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpParams params) throws SocketException, IOException {
+ try {
+ socket.setReuseAddress(HttpConnectionParams.getSoReuseaddr(params));
+ socket.bind(localAddress);
+
+ int connectionTimeout = HttpConnectionParams.getConnectionTimeout(params);
+ int socketTimeout = HttpConnectionParams.getSoTimeout(params);
+
+ socket.connect(remoteAddress, connectionTimeout);
+ socket.setSoTimeout(socketTimeout);
+ } catch (SocketException e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
+ fireEvent(this.socketConnectListener, new SocketClosedEvent(source, socket, socket));
+ Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
+ throw e;
+ } catch (IOException e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
+ fireEvent(this.socketConnectListener, new SocketClosedEvent(source, socket, socket));
+ Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
+ throw e;
+ }
+ }
+
+ public boolean isSecure(final Socket sock) throws IllegalArgumentException {
+ if (sock == null) {
+ throw new IllegalArgumentException("Socket must not be null"); //$NON-NLS-1$
+ }
+
+ if (sock instanceof CloseMonitoringSocket) {
+ return ((CloseMonitoringSocket) sock).isSecure();
+ }
+
+ if (!(sock instanceof SSLSocket)) {
+ throw new IllegalArgumentException("Socket not created by this factory"); //$NON-NLS-1$
+ }
+
+ if (sock.isClosed()) {
+ throw new IllegalArgumentException("Socket is closed"); //$NON-NLS-1$
+ }
+
+ return true;
+ }
+
+ public Socket createLayeredSocket(final Socket socket, final String host, final int port, final boolean autoClose) throws IOException {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientSecureProtocolSocketFactory.class, "createLayeredSocket " + host + ":" + port + ",socket=" + socket); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SSLSocket sslSocket = null;
+ try {
+ Trace.trace(Activator.PLUGIN_ID, "connectingLayeredSocket(original=" + socket + ",dest=" + host + ":" + port + ")"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
+ sslSocket = (SSLSocket) this.sslSocketFactory.createSocket(socket, host, port, autoClose);
+ Trace.trace(Activator.PLUGIN_ID, "connected"); //$NON-NLS-1$
+ } catch (IOException e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "createLayeredSocket", e); //$NON-NLS-1$
+ fireEvent(this.socketConnectListener, new SocketClosedEvent(source, sslSocket, sslSocket));
+ Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
+ throw e;
+ }
+
+ return wrapSocket(sslSocket);
+ }
+
+ private Socket wrapSocket(Socket toWrap) {
+ CloseMonitoringSocket wrappedSocket = new CloseMonitoringSocket(toWrap, socketConnectListener, source);
+
+ SocketConnectedEvent connectedEvent = new SocketConnectedEvent(source, toWrap, wrappedSocket);
+ fireEvent(socketConnectListener, connectedEvent);
+
+ // Change the wrapped socket if one of the receivers of the SocketConnectedEvent changed it
+ Socket connectedEventSocket = connectedEvent.getSocket();
+ if (connectedEventSocket != wrappedSocket) {
+ wrappedSocket.setWrappedSocket(connectedEventSocket);
+ return connectedEventSocket;
+ }
+
+ return wrappedSocket;
+ }
+
+ static void fireEvent(final ISocketListener spyListener, ISocketEvent event) {
+ if (spyListener != null) {
+ spyListener.handleSocketEvent(event);
+ }
+ event.getSource().fireEvent(event);
+ }
+
+ public boolean equals(Object obj) {
+ return ((obj != null) && obj.getClass().equals(ECFHttpClientSecureProtocolSocketFactory.class));
+ }
+
+ public int hashCode() {
+ return ECFHttpClientSecureProtocolSocketFactory.class.hashCode();
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java
index d136697a7..e8407f82e 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java
@@ -1,77 +1,77 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
- * Thomas Joiner - HttpClient 4 implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.CredentialsProvider;
-import org.eclipse.ecf.core.util.Proxy;
-import org.eclipse.ecf.core.util.Trace;
-
-public abstract class HttpClientProxyCredentialProvider implements CredentialsProvider {
-
- abstract protected Proxy getECFProxy();
-
- abstract protected Credentials getNTLMCredentials(Proxy proxy);
-
- private Map cachedCredentials;
-
- public HttpClientProxyCredentialProvider() {
- cachedCredentials = new HashMap();
- }
-
- public void setCredentials(AuthScope authscope, Credentials credentials) {
- this.cachedCredentials.put(authscope, credentials);
- }
-
- public Credentials getCredentials(AuthScope authscope) {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientProxyCredentialProvider.class, "getCredentials " + authscope); //$NON-NLS-1$
-
- if (this.cachedCredentials.containsKey(authscope)) {
- return (Credentials) this.cachedCredentials.get(authscope);
- }
-
- Proxy proxy = getECFProxy();
- if (proxy == null) {
- return null;
- }
-
- Credentials credentials = null;
- if ("ntlm".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
- credentials = getNTLMCredentials(proxy);
- } else if ("basic".equalsIgnoreCase(authscope.getScheme()) || //$NON-NLS-1$
- "digest".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
- final String proxyUsername = proxy.getUsername();
- final String proxyPassword = proxy.getPassword();
- if (proxyUsername != null) {
- credentials = new UsernamePasswordCredentials(proxyUsername, proxyPassword);
- }
- } else if ("negotiate".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
- Trace.trace(Activator.PLUGIN_ID, "SPNEGO is not supported, if you can contribute support, please do so."); //$NON-NLS-1$
- } else {
- Trace.trace(Activator.PLUGIN_ID, "Unrecognized authentication scheme."); //$NON-NLS-1$
- }
-
- if (credentials != null) {
- cachedCredentials.put(authscope, credentials);
- }
-
- return credentials;
- }
-
- public void clear() {
- this.cachedCredentials.clear();
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation 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:
+ * IBM Corporation - initial API and implementation
+ * Thomas Joiner - HttpClient 4 implementation
+ *******************************************************************************/
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.Credentials;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.eclipse.ecf.core.util.Proxy;
+import org.eclipse.ecf.core.util.Trace;
+
+public abstract class HttpClientProxyCredentialProvider implements CredentialsProvider {
+
+ abstract protected Proxy getECFProxy();
+
+ abstract protected Credentials getNTLMCredentials(Proxy proxy);
+
+ private Map cachedCredentials;
+
+ public HttpClientProxyCredentialProvider() {
+ cachedCredentials = new HashMap();
+ }
+
+ public void setCredentials(AuthScope authscope, Credentials credentials) {
+ this.cachedCredentials.put(authscope, credentials);
+ }
+
+ public Credentials getCredentials(AuthScope authscope) {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientProxyCredentialProvider.class, "getCredentials " + authscope); //$NON-NLS-1$
+
+ if (this.cachedCredentials.containsKey(authscope)) {
+ return (Credentials) this.cachedCredentials.get(authscope);
+ }
+
+ Proxy proxy = getECFProxy();
+ if (proxy == null) {
+ return null;
+ }
+
+ Credentials credentials = null;
+ if ("ntlm".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
+ credentials = getNTLMCredentials(proxy);
+ } else if ("basic".equalsIgnoreCase(authscope.getScheme()) || //$NON-NLS-1$
+ "digest".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
+ final String proxyUsername = proxy.getUsername();
+ final String proxyPassword = proxy.getPassword();
+ if (proxyUsername != null) {
+ credentials = new UsernamePasswordCredentials(proxyUsername, proxyPassword);
+ }
+ } else if ("negotiate".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
+ Trace.trace(Activator.PLUGIN_ID, "SPNEGO is not supported, if you can contribute support, please do so."); //$NON-NLS-1$
+ } else {
+ Trace.trace(Activator.PLUGIN_ID, "Unrecognized authentication scheme."); //$NON-NLS-1$
+ }
+
+ if (credentials != null) {
+ cachedCredentials.put(authscope, credentials);
+ }
+
+ return credentials;
+ }
+
+ public void clear() {
+ this.cachedCredentials.clear();
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java
index a1b52508f..56e431ed4 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java
@@ -1,30 +1,30 @@
-/****************************************************************************
- * Copyright (c) 2008, 2009 Composent, Inc., IBM 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
- * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
- *****************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import javax.net.ssl.SSLSocketFactory;
-import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
-
-/**
- * Internal interface to allow for use of httpclient.ssl provided socket factory
- */
-public interface ISSLSocketFactoryModifier {
-
- public SSLSocketFactory getSSLSocketFactory() throws IOException;
-
- public INonconnectedSocketFactory getNonconnnectedSocketFactory();
-
- public void dispose();
-
-}
+/****************************************************************************
+ * Copyright (c) 2008, 2009 Composent, Inc., IBM 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
+ * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
+ *****************************************************************************/
+
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
+
+import java.io.IOException;
+import javax.net.ssl.SSLSocketFactory;
+import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
+
+/**
+ * Internal interface to allow for use of httpclient.ssl provided socket factory
+ */
+public interface ISSLSocketFactoryModifier {
+
+ public SSLSocketFactory getSSLSocketFactory() throws IOException;
+
+ public INonconnectedSocketFactory getNonconnnectedSocketFactory();
+
+ public void dispose();
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java
index 77d4f4f24..37c1615e3 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java
@@ -1,24 +1,24 @@
-/*******************************************************************************
-* Copyright (c) 2009 IBM, 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:
-* IBM Corporation - initial API and implementation
-******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import java.net.Socket;
-
-public interface ISocketConnectionCallback {
- void onSocketCreated(Socket socket);
-
- void onSocketConnected(Socket socket);
-
- void onSocketConnectionFailed(Socket socket, IOException e);
-
-}
+/*******************************************************************************
+* Copyright (c) 2009 IBM, 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:
+* IBM Corporation - initial API and implementation
+******************************************************************************/
+
+package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
+
+import java.io.IOException;
+import java.net.Socket;
+
+public interface ISocketConnectionCallback {
+ void onSocketCreated(Socket socket);
+
+ void onSocketConnected(Socket socket);
+
+ void onSocketConnectionFailed(Socket socket, IOException e);
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java
index d0d54a6de..da8532508 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java
@@ -1,46 +1,46 @@
-/****************************************************************************
- * Copyright (c) 2007 IBM, 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.internal.provider.filetransfer.httpclient4;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- *
- */
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.filetransfer.httpclient4.messages"; //$NON-NLS-1$
- public static String FileTransferNamespace_Http_Protocol;
- public static String FileTransferNamespace_Https_Protocol;
- public static String HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME;
- public static String HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME;
- public static String HttpClientRetrieveFileTransfer_Proxy_Auth_Required;
- public static String HttpClientRetrieveFileTransfer_Unauthorized;
- public static String HttpClientRetrieveFileTransfer_Username_Prefix;
- public static String HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO;
- public static String HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE;
- public static String HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER;
- public static String HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS;
- public static String HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START;
- public static String HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT;
- public static String HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME;
- public static String HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST;
- public static String HttpClientRetrieveFileTransfer_RESUME_START_ERROR;
-
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- // Generated
- }
-}
+/****************************************************************************
+ * Copyright (c) 2007 IBM, 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.internal.provider.filetransfer.httpclient4;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ *
+ */
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.filetransfer.httpclient4.messages"; //$NON-NLS-1$
+ public static String FileTransferNamespace_Http_Protocol;
+ public static String FileTransferNamespace_Https_Protocol;
+ public static String HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME;
+ public static String HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME;
+ public static String HttpClientRetrieveFileTransfer_Proxy_Auth_Required;
+ public static String HttpClientRetrieveFileTransfer_Unauthorized;
+ public static String HttpClientRetrieveFileTransfer_Username_Prefix;
+ public static String HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO;
+ public static String HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE;
+ public static String HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER;
+ public static String HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS;
+ public static String HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START;
+ public static String HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT;
+ public static String HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME;
+ public static String HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST;
+ public static String HttpClientRetrieveFileTransfer_RESUME_START_ERROR;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ // Generated
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties
index 76b4976de..b94674d30 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties
@@ -1,16 +1,16 @@
-HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME=: connecting.
-HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME=\ Connecting
-HttpClientRetrieveFileTransfer_Username_Prefix=Username:
-HttpClientRetrieveFileTransfer_Unauthorized=Unauthorized
-HttpClientRetrieveFileTransfer_Proxy_Auth_Required=Proxy Authentication Required
-FileTransferNamespace_Http_Protocol=http
-FileTransferNamespace_Https_Protocol=https
-HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO=start position cannot be less then 0
-HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE=HttpComponents connection error response code {0}.
-HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER=Invalid last modified value
-HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS=file modified since last access
-HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START=end position cannot be less than or equal to start position
-HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT=Could not connect to {0}
-HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME=Invalid last modified time from response header
-HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST=invalid server response to partial range request
+HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME=: connecting.
+HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME=\ Connecting
+HttpClientRetrieveFileTransfer_Username_Prefix=Username:
+HttpClientRetrieveFileTransfer_Unauthorized=Unauthorized
+HttpClientRetrieveFileTransfer_Proxy_Auth_Required=Proxy Authentication Required
+FileTransferNamespace_Http_Protocol=http
+FileTransferNamespace_Https_Protocol=https
+HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO=start position cannot be less then 0
+HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE=HttpComponents connection error response code {0}.
+HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER=Invalid last modified value
+HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS=file modified since last access
+HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START=end position cannot be less than or equal to start position
+HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT=Could not connect to {0}
+HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME=Invalid last modified time from response header
+HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST=invalid server response to partial range request
HttpClientRetrieveFileTransfer_RESUME_START_ERROR=resume start error \ No newline at end of file
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java
index b315ba91a..ea022ba21 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java
@@ -1,72 +1,72 @@
-/****************************************************************************
- * Copyright (c) 2007 IBM, 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
- * Thomas Joiner - HttpClient 4 implementation
- *****************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.core.util.Proxy;
-import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener;
-import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest;
-import org.eclipse.ecf.filetransfer.RemoteFileSystemException;
-import org.eclipse.ecf.filetransfer.identity.IFileID;
-import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowser;
-import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowserFactory;
-import org.eclipse.ecf.provider.filetransfer.identity.FileTransferNamespace;
-import org.eclipse.osgi.util.NLS;
-
-public class HttpClientBrowseFileTransferFactory implements IRemoteFileSystemBrowserFactory {
-
- public IRemoteFileSystemBrowser newInstance() {
- return new IRemoteFileSystemBrowser() {
-
- private Proxy proxy;
- private IConnectContext connectContext;
-
- public Namespace getBrowseNamespace() {
- return IDFactory.getDefault().getNamespaceByName(FileTransferNamespace.PROTOCOL);
- }
-
- public IRemoteFileSystemRequest sendBrowseRequest(IFileID directoryOrFileId, IRemoteFileSystemListener listener) throws RemoteFileSystemException {
- Assert.isNotNull(directoryOrFileId);
- Assert.isNotNull(listener);
- URL url;
- try {
- url = directoryOrFileId.getURL();
- } catch (final MalformedURLException e) {
- throw new RemoteFileSystemException(NLS.bind("Exception creating URL for {0}", directoryOrFileId)); //$NON-NLS-1$
- }
-
- HttpClientFileSystemBrowser browser = new HttpClientFileSystemBrowser(new DefaultHttpClient(), directoryOrFileId, listener, url, connectContext, proxy);
- return browser.sendBrowseRequest();
- }
-
- public void setConnectContextForAuthentication(IConnectContext connectContext) {
- this.connectContext = connectContext;
- }
-
- public void setProxy(Proxy proxy) {
- this.proxy = proxy;
- }
-
- public Object getAdapter(Class adapter) {
- return null;
- }
-
- };
-
- }
-}
+/****************************************************************************
+ * Copyright (c) 2007 IBM, 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
+ * Thomas Joiner - HttpClient 4 implementation
+ *****************************************************************************/
+package org.eclipse.ecf.provider.filetransfer.httpclient4;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ecf.core.identity.IDFactory;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.core.util.Proxy;
+import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener;
+import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest;
+import org.eclipse.ecf.filetransfer.RemoteFileSystemException;
+import org.eclipse.ecf.filetransfer.identity.IFileID;
+import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowser;
+import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowserFactory;
+import org.eclipse.ecf.provider.filetransfer.identity.FileTransferNamespace;
+import org.eclipse.osgi.util.NLS;
+
+public class HttpClientBrowseFileTransferFactory implements IRemoteFileSystemBrowserFactory {
+
+ public IRemoteFileSystemBrowser newInstance() {
+ return new IRemoteFileSystemBrowser() {
+
+ private Proxy proxy;
+ private IConnectContext connectContext;
+
+ public Namespace getBrowseNamespace() {
+ return IDFactory.getDefault().getNamespaceByName(FileTransferNamespace.PROTOCOL);
+ }
+
+ public IRemoteFileSystemRequest sendBrowseRequest(IFileID directoryOrFileId, IRemoteFileSystemListener listener) throws RemoteFileSystemException {
+ Assert.isNotNull(directoryOrFileId);
+ Assert.isNotNull(listener);
+ URL url;
+ try {
+ url = directoryOrFileId.getURL();
+ } catch (final MalformedURLException e) {
+ throw new RemoteFileSystemException(NLS.bind("Exception creating URL for {0}", directoryOrFileId)); //$NON-NLS-1$
+ }
+
+ HttpClientFileSystemBrowser browser = new HttpClientFileSystemBrowser(new DefaultHttpClient(), directoryOrFileId, listener, url, connectContext, proxy);
+ return browser.sendBrowseRequest();
+ }
+
+ public void setConnectContextForAuthentication(IConnectContext connectContext) {
+ this.connectContext = connectContext;
+ }
+
+ public void setProxy(Proxy proxy) {
+ this.proxy = proxy;
+ }
+
+ public Object getAdapter(Class adapter) {
+ return null;
+ }
+
+ };
+
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java
index f7223edaa..cb59b4120 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java
@@ -1,79 +1,79 @@
-/****************************************************************************
- * Copyright (c) 2004, 2009 Composent, Inc., IBM 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
- * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
- *****************************************************************************/
-
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ISSLSocketFactoryModifier;
-
-import java.io.IOException;
-import java.net.Socket;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.TrustManager;
-import org.eclipse.ecf.core.util.StringUtils;
-import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
-
-public class HttpClientDefaultSSLSocketFactoryModifier implements ISSLSocketFactoryModifier, INonconnectedSocketFactory {
- public static final String DEFAULT_SSL_PROTOCOL = "https.protocols"; //$NON-NLS-1$
-
- private SSLContext sslContext = null;
-
- private String defaultProtocolNames = System.getProperty(DEFAULT_SSL_PROTOCOL);
-
- public HttpClientDefaultSSLSocketFactoryModifier() {
- // empty
- }
-
- public SSLSocketFactory getSSLSocketFactory() throws IOException {
- if (null == sslContext) {
- try {
- sslContext = getSSLContext(defaultProtocolNames);
- } catch (Exception e) {
- IOException ioe = new IOException();
- ioe.initCause(e);
- throw ioe;
- }
- }
- return (sslContext == null) ? (SSLSocketFactory) SSLSocketFactory.getDefault() : sslContext.getSocketFactory();
- }
-
- public SSLContext getSSLContext(String protocols) {
- SSLContext rtvContext = null;
-
- if (protocols != null) {
- String protocolNames[] = StringUtils.split(protocols, ","); //$NON-NLS-1$
- for (int i = 0; i < protocolNames.length; i++) {
- try {
- rtvContext = SSLContext.getInstance(protocolNames[i]);
- sslContext.init(null, new TrustManager[] {new HttpClientSslTrustManager()}, null);
- break;
- } catch (Exception e) {
- // just continue
- }
- }
- }
- return rtvContext;
- }
-
- public Socket createSocket() throws IOException {
- return getSSLSocketFactory().createSocket();
- }
-
- public void dispose() {
- // empty
- }
-
- public INonconnectedSocketFactory getNonconnnectedSocketFactory() {
- return this;
- }
-
-}
+/****************************************************************************
+ * Copyright (c) 2004, 2009 Composent, Inc., IBM 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
+ * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
+ *****************************************************************************/
+
+package org.eclipse.ecf.provider.filetransfer.httpclient4;
+
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ISSLSocketFactoryModifier;
+
+import java.io.IOException;
+import java.net.Socket;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import org.eclipse.ecf.core.util.StringUtils;
+import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
+
+public class HttpClientDefaultSSLSocketFactoryModifier implements ISSLSocketFactoryModifier, INonconnectedSocketFactory {
+ public static final String DEFAULT_SSL_PROTOCOL = "https.protocols"; //$NON-NLS-1$
+
+ private SSLContext sslContext = null;
+
+ private String defaultProtocolNames = System.getProperty(DEFAULT_SSL_PROTOCOL);
+
+ public HttpClientDefaultSSLSocketFactoryModifier() {
+ // empty
+ }
+
+ public SSLSocketFactory getSSLSocketFactory() throws IOException {
+ if (null == sslContext) {
+ try {
+ sslContext = getSSLContext(defaultProtocolNames);
+ } catch (Exception e) {
+ IOException ioe = new IOException();
+ ioe.initCause(e);
+ throw ioe;
+ }
+ }
+ return (sslContext == null) ? (SSLSocketFactory) SSLSocketFactory.getDefault() : sslContext.getSocketFactory();
+ }
+
+ public SSLContext getSSLContext(String protocols) {
+ SSLContext rtvContext = null;
+
+ if (protocols != null) {
+ String protocolNames[] = StringUtils.split(protocols, ","); //$NON-NLS-1$
+ for (int i = 0; i < protocolNames.length; i++) {
+ try {
+ rtvContext = SSLContext.getInstance(protocolNames[i]);
+ sslContext.init(null, new TrustManager[] {new HttpClientSslTrustManager()}, null);
+ break;
+ } catch (Exception e) {
+ // just continue
+ }
+ }
+ }
+ return rtvContext;
+ }
+
+ public Socket createSocket() throws IOException {
+ return getSSLSocketFactory().createSocket();
+ }
+
+ public void dispose() {
+ // empty
+ }
+
+ public INonconnectedSocketFactory getNonconnnectedSocketFactory() {
+ return this;
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java
index 9ed6b8d4e..1a668b885 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java
@@ -1,377 +1,377 @@
-/****************************************************************************
- * Copyright (c) 2008, 2010 Composent, Inc., IBM 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
- * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
- * Thomas Joiner - HttpClient 4 implementation
- *****************************************************************************/
-
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ConnectingSocketMonitor;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.DebugOptions;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.HttpClientProxyCredentialProvider;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Messages;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.Socket;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.apache.http.Header;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.auth.params.AuthPNames;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpHead;
-import org.apache.http.client.params.AuthPolicy;
-import org.apache.http.conn.params.ConnRouteParams;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.cookie.DateUtils;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.core.security.Callback;
-import org.eclipse.ecf.core.security.CallbackHandler;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.core.security.NameCallback;
-import org.eclipse.ecf.core.security.ObjectCallback;
-import org.eclipse.ecf.core.security.UnsupportedCallbackException;
-import org.eclipse.ecf.core.util.Proxy;
-import org.eclipse.ecf.core.util.ProxyAddress;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.BrowseFileTransferException;
-import org.eclipse.ecf.filetransfer.IRemoteFile;
-import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener;
-import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest;
-import org.eclipse.ecf.filetransfer.identity.IFileID;
-import org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser;
-import org.eclipse.ecf.provider.filetransfer.browse.URLRemoteFile;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventSource;
-import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper;
-import org.eclipse.ecf.provider.filetransfer.util.ProxySetupHelper;
-import org.eclipse.osgi.util.NLS;
-
-/**
- *
- */
-public class HttpClientFileSystemBrowser extends AbstractFileSystemBrowser {
-
- private static final String CONTENT_LENGTH_HEADER = "Content-Length"; //$NON-NLS-1$
-
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- protected static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.BROWSE_DEFAULT_CONNECTION_TIMEOUT;
-
- private static final String USERNAME_PREFIX = "Username:"; //$NON-NLS-1$
-
- private JREProxyHelper proxyHelper = null;
-
- private ConnectingSocketMonitor connectingSockets;
-
- protected String username = null;
-
- protected String password = null;
-
- protected DefaultHttpClient httpClient = null;
-
- protected volatile HttpHead headMethod;
-
- /**
- * This is the response returned by {@link HttpClient} when it executes
- * {@link #headMethod}.
- * @since 5.0
- */
- protected volatile HttpResponse httpResponse;
-
- /**
- * This is the context used to retain information about the request that
- * the {@link HttpClient} gathers during the request.
- * @since 5.0
- */
- protected volatile HttpContext httpContext;
-
- /**
- * @param directoryOrFileID
- * @param listener
- * @since 5.0
- */
- public HttpClientFileSystemBrowser(DefaultHttpClient httpClient, IFileID directoryOrFileID, IRemoteFileSystemListener listener, URL directoryOrFileURL, IConnectContext connectContext, Proxy proxy) {
- super(directoryOrFileID, listener, directoryOrFileURL, connectContext, proxy);
- Assert.isNotNull(httpClient);
- this.httpClient = httpClient;
- this.httpClient.setCredentialsProvider(new HttpClientProxyCredentialProvider() {
-
- protected Proxy getECFProxy() {
- return getProxy();
- }
-
- protected Credentials getNTLMCredentials(Proxy lp) {
- if (hasForceNTLMProxyOption())
- return HttpClientRetrieveFileTransfer.createNTLMCredentials(lp);
- return null;
- }
-
- });
- this.proxyHelper = new JREProxyHelper();
- this.connectingSockets = new ConnectingSocketMonitor(1);
-
- prepareAuth();
- }
-
- private void prepareAuth() {
- // SPNEGO is not supported, so remove it from the list
- List authpref = new ArrayList(3);
- authpref.add(AuthPolicy.NTLM);
- authpref.add(AuthPolicy.DIGEST);
- authpref.add(AuthPolicy.BASIC);
-
- httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref);
- httpClient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authpref);
- }
-
- class HttpClientRemoteFileSystemRequest extends RemoteFileSystemRequest {
- protected SocketEventSource socketEventSource;
-
- HttpClientRemoteFileSystemRequest() {
- this.socketEventSource = new SocketEventSource() {
- public Object getAdapter(Class adapter) {
- if (adapter == null) {
- return null;
- }
- if (adapter.isInstance(this)) {
- return this;
- }
- if (adapter.isInstance(HttpClientRemoteFileSystemRequest.this)) {
- return HttpClientRemoteFileSystemRequest.this;
- }
- return null;
- }
- };
- }
-
- public Object getAdapter(Class adapter) {
- if (adapter == null) {
- return null;
- }
- return socketEventSource.getAdapter(adapter);
- }
-
- public void cancel() {
- HttpClientFileSystemBrowser.this.cancel();
- }
- }
-
- protected IRemoteFileSystemRequest createRemoteFileSystemRequest() {
- return new HttpClientRemoteFileSystemRequest();
- }
-
- protected void cancel() {
- if (isCanceled()) {
- return; // break job cancel recursion
- }
- setCanceled(getException());
- super.cancel();
- if (headMethod != null) {
- if (!headMethod.isAborted()) {
- headMethod.abort();
- }
- }
- if (connectingSockets != null) {
- // this should unblock socket connect calls, if any
- for (Iterator iterator = connectingSockets.getConnectingSockets().iterator(); iterator.hasNext();) {
- Socket socket = (Socket) iterator.next();
- try {
- socket.close();
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "cancel", e); //$NON-NLS-1$
- }
- }
- }
-
- }
-
- protected boolean hasForceNTLMProxyOption() {
- return (System.getProperties().getProperty(HttpClientOptions.FORCE_NTLM_PROP) != null);
- }
-
- protected void setupProxies() {
- // If it's been set directly (via ECF API) then this overrides platform settings
- if (proxy == null) {
- try {
- // give SOCKS priority see https://bugs.eclipse.org/bugs/show_bug.cgi?id=295030#c61
- proxy = ProxySetupHelper.getSocksProxy(directoryOrFile);
- if (proxy == null) {
- proxy = ProxySetupHelper.getProxy(directoryOrFile.toExternalForm());
- }
- } catch (NoClassDefFoundError e) {
- // If the proxy API is not available a NoClassDefFoundError will be thrown here.
- // If that happens then we just want to continue on.
- Activator.logNoProxyWarning(e);
-
- }
- }
- if (proxy != null)
- setupProxy(proxy);
- }
-
- protected void cleanUp() {
- clearProxy();
-
- super.cleanUp();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser#runRequest()
- */
- protected void runRequest() throws Exception {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "runRequest"); //$NON-NLS-1$
- setupProxies();
- // set timeout
- httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT);
- httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT);
-
- String urlString = directoryOrFile.toString();
- // setup authentication
- setupAuthentication(urlString);
-
- headMethod = new HttpHead(urlString);
- // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
- headMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
-
- long lastModified = 0;
- long fileLength = -1;
- connectingSockets.clear();
- int code = -1;
- try {
- Trace.trace(Activator.PLUGIN_ID, "browse=" + urlString); //$NON-NLS-1$
-
- httpContext = new BasicHttpContext();
- httpResponse = httpClient.execute(headMethod, httpContext);
- code = httpResponse.getStatusLine().getStatusCode();
-
- Trace.trace(Activator.PLUGIN_ID, "browse resp=" + code); //$NON-NLS-1$
-
- // Check for NTLM proxy in response headers
- // This check is to deal with bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252002
- boolean ntlmProxyFound = NTLMProxyDetector.detectNTLMProxy(httpContext);
- if (ntlmProxyFound && !hasForceNTLMProxyOption())
- throw new BrowseFileTransferException("HttpClient Provider is not configured to support NTLM proxy authentication.", HttpClientOptions.NTLM_PROXY_RESPONSE_CODE); //$NON-NLS-1$
-
- if (NTLMProxyDetector.detectSPNEGOProxy(httpContext))
- throw new BrowseFileTransferException("HttpClient Provider does not support the use of SPNEGO proxy authentication."); //$NON-NLS-1$
-
- if (code == HttpURLConnection.HTTP_OK) {
- Header contentLength = httpResponse.getLastHeader(CONTENT_LENGTH_HEADER);
- if (contentLength != null) {
- fileLength = Integer.parseInt(contentLength.getValue());
- }
-
- lastModified = getLastModifiedTimeFromHeader();
- } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
- throw new BrowseFileTransferException(NLS.bind("File not found: {0}", urlString), code); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
- throw new BrowseFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code);
- } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
- throw new BrowseFileTransferException("Forbidden", code); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- throw new BrowseFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code);
- } else {
- throw new BrowseFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code);
- }
- remoteFiles = new IRemoteFile[1];
- remoteFiles[0] = new URLRemoteFile(lastModified, fileLength, fileID);
- } catch (Exception e) {
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, this.getClass(), "runRequest", e); //$NON-NLS-1$
- BrowseFileTransferException ex = (BrowseFileTransferException) ((e instanceof BrowseFileTransferException) ? e : new BrowseFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code));
- throw ex;
- }
- }
-
- private long getLastModifiedTimeFromHeader() throws IOException {
- Header lastModifiedHeader = httpResponse.getLastHeader("Last-Modified"); //$NON-NLS-1$
- if (lastModifiedHeader == null)
- return 0L;
- String lastModifiedString = lastModifiedHeader.getValue();
- long lastModified = 0;
- if (lastModifiedString != null) {
- try {
- lastModified = DateUtils.parseDate(lastModifiedString).getTime();
- } catch (Exception e) {
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER);
- }
- }
- return lastModified;
- }
-
- Proxy getProxy() {
- return proxy;
- }
-
- /**
- * Retrieves the credentials for requesting the file.
- * @return the {@link Credentials} necessary to retrieve the file
- * @throws UnsupportedCallbackException if the callback fails
- * @throws IOException if IO fails
- * @since 5.0
- */
- protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException {
- if (connectContext == null)
- return null;
- final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
- if (callbackHandler == null)
- return null;
- final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
- final ObjectCallback passwordCallback = new ObjectCallback();
- callbackHandler.handle(new Callback[] {usernameCallback, passwordCallback});
- username = usernameCallback.getName();
- password = (String) passwordCallback.getObject();
- return new UsernamePasswordCredentials(username, password);
- }
-
- protected void setupAuthentication(String urlString) throws UnsupportedCallbackException, IOException {
- Credentials credentials = null;
- if (username == null) {
- credentials = getFileRequestCredentials();
- }
-
- if (credentials != null && username != null) {
- final AuthScope authScope = new AuthScope(HttpClientRetrieveFileTransfer.getHostFromURL(urlString), HttpClientRetrieveFileTransfer.getPortFromURL(urlString), AuthScope.ANY_REALM);
- Trace.trace(Activator.PLUGIN_ID, "browse credentials=" + credentials); //$NON-NLS-1$
- httpClient.getCredentialsProvider().setCredentials(authScope, credentials);
- }
- }
-
- protected void setupProxy(Proxy proxy) {
- if (proxy.getType().equals(Proxy.Type.HTTP)) {
- final ProxyAddress address = proxy.getAddress();
- ConnRouteParams.setDefaultProxy(httpClient.getParams(), new HttpHost(address.getHostName(), address.getPort()));
- } else if (proxy.getType().equals(Proxy.Type.SOCKS)) {
- Trace.trace(Activator.PLUGIN_ID, "brows socksproxy=" + proxy.getAddress()); //$NON-NLS-1$
- proxyHelper.setupProxy(proxy);
- }
- }
-
- /**
- * This method will clear out the proxy information (so that if this is
- * reused for a request without a proxy, it will work correctly).
- * @since 5.0
- */
- protected void clearProxy() {
- ConnRouteParams.setDefaultProxy(httpClient.getParams(), null);
- }
-
-}
+/****************************************************************************
+ * Copyright (c) 2008, 2010 Composent, Inc., IBM 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
+ * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
+ * Thomas Joiner - HttpClient 4 implementation
+ *****************************************************************************/
+
+package org.eclipse.ecf.provider.filetransfer.httpclient4;
+
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ConnectingSocketMonitor;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.DebugOptions;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.HttpClientProxyCredentialProvider;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Messages;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.Socket;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.http.Header;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.Credentials;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.auth.params.AuthPNames;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.params.AuthPolicy;
+import org.apache.http.conn.params.ConnRouteParams;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.cookie.DateUtils;
+import org.apache.http.params.CoreConnectionPNames;
+import org.apache.http.protocol.BasicHttpContext;
+import org.apache.http.protocol.HttpContext;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ecf.core.security.Callback;
+import org.eclipse.ecf.core.security.CallbackHandler;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.core.security.NameCallback;
+import org.eclipse.ecf.core.security.ObjectCallback;
+import org.eclipse.ecf.core.security.UnsupportedCallbackException;
+import org.eclipse.ecf.core.util.Proxy;
+import org.eclipse.ecf.core.util.ProxyAddress;
+import org.eclipse.ecf.core.util.Trace;
+import org.eclipse.ecf.filetransfer.BrowseFileTransferException;
+import org.eclipse.ecf.filetransfer.IRemoteFile;
+import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener;
+import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest;
+import org.eclipse.ecf.filetransfer.identity.IFileID;
+import org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser;
+import org.eclipse.ecf.provider.filetransfer.browse.URLRemoteFile;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventSource;
+import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper;
+import org.eclipse.ecf.provider.filetransfer.util.ProxySetupHelper;
+import org.eclipse.osgi.util.NLS;
+
+/**
+ *
+ */
+public class HttpClientFileSystemBrowser extends AbstractFileSystemBrowser {
+
+ private static final String CONTENT_LENGTH_HEADER = "Content-Length"; //$NON-NLS-1$
+
+ // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
+ // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout
+ // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
+ protected static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.BROWSE_DEFAULT_CONNECTION_TIMEOUT;
+
+ private static final String USERNAME_PREFIX = "Username:"; //$NON-NLS-1$
+
+ private JREProxyHelper proxyHelper = null;
+
+ private ConnectingSocketMonitor connectingSockets;
+
+ protected String username = null;
+
+ protected String password = null;
+
+ protected DefaultHttpClient httpClient = null;
+
+ protected volatile HttpHead headMethod;
+
+ /**
+ * This is the response returned by {@link HttpClient} when it executes
+ * {@link #headMethod}.
+ * @since 5.0
+ */
+ protected volatile HttpResponse httpResponse;
+
+ /**
+ * This is the context used to retain information about the request that
+ * the {@link HttpClient} gathers during the request.
+ * @since 5.0
+ */
+ protected volatile HttpContext httpContext;
+
+ /**
+ * @param directoryOrFileID
+ * @param listener
+ * @since 5.0
+ */
+ public HttpClientFileSystemBrowser(DefaultHttpClient httpClient, IFileID directoryOrFileID, IRemoteFileSystemListener listener, URL directoryOrFileURL, IConnectContext connectContext, Proxy proxy) {
+ super(directoryOrFileID, listener, directoryOrFileURL, connectContext, proxy);
+ Assert.isNotNull(httpClient);
+ this.httpClient = httpClient;
+ this.httpClient.setCredentialsProvider(new HttpClientProxyCredentialProvider() {
+
+ protected Proxy getECFProxy() {
+ return getProxy();
+ }
+
+ protected Credentials getNTLMCredentials(Proxy lp) {
+ if (hasForceNTLMProxyOption())
+ return HttpClientRetrieveFileTransfer.createNTLMCredentials(lp);
+ return null;
+ }
+
+ });
+ this.proxyHelper = new JREProxyHelper();
+ this.connectingSockets = new ConnectingSocketMonitor(1);
+
+ prepareAuth();
+ }
+
+ private void prepareAuth() {
+ // SPNEGO is not supported, so remove it from the list
+ List authpref = new ArrayList(3);
+ authpref.add(AuthPolicy.NTLM);
+ authpref.add(AuthPolicy.DIGEST);
+ authpref.add(AuthPolicy.BASIC);
+
+ httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref);
+ httpClient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authpref);
+ }
+
+ class HttpClientRemoteFileSystemRequest extends RemoteFileSystemRequest {
+ protected SocketEventSource socketEventSource;
+
+ HttpClientRemoteFileSystemRequest() {
+ this.socketEventSource = new SocketEventSource() {
+ public Object getAdapter(Class adapter) {
+ if (adapter == null) {
+ return null;
+ }
+ if (adapter.isInstance(this)) {
+ return this;
+ }
+ if (adapter.isInstance(HttpClientRemoteFileSystemRequest.this)) {
+ return HttpClientRemoteFileSystemRequest.this;
+ }
+ return null;
+ }
+ };
+ }
+
+ public Object getAdapter(Class adapter) {
+ if (adapter == null) {
+ return null;
+ }
+ return socketEventSource.getAdapter(adapter);
+ }
+
+ public void cancel() {
+ HttpClientFileSystemBrowser.this.cancel();
+ }
+ }
+
+ protected IRemoteFileSystemRequest createRemoteFileSystemRequest() {
+ return new HttpClientRemoteFileSystemRequest();
+ }
+
+ protected void cancel() {
+ if (isCanceled()) {
+ return; // break job cancel recursion
+ }
+ setCanceled(getException());
+ super.cancel();
+ if (headMethod != null) {
+ if (!headMethod.isAborted()) {
+ headMethod.abort();
+ }
+ }
+ if (connectingSockets != null) {
+ // this should unblock socket connect calls, if any
+ for (Iterator iterator = connectingSockets.getConnectingSockets().iterator(); iterator.hasNext();) {
+ Socket socket = (Socket) iterator.next();
+ try {
+ socket.close();
+ } catch (IOException e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "cancel", e); //$NON-NLS-1$
+ }
+ }
+ }
+
+ }
+
+ protected boolean hasForceNTLMProxyOption() {
+ return (System.getProperties().getProperty(HttpClientOptions.FORCE_NTLM_PROP) != null);
+ }
+
+ protected void setupProxies() {
+ // If it's been set directly (via ECF API) then this overrides platform settings
+ if (proxy == null) {
+ try {
+ // give SOCKS priority see https://bugs.eclipse.org/bugs/show_bug.cgi?id=295030#c61
+ proxy = ProxySetupHelper.getSocksProxy(directoryOrFile);
+ if (proxy == null) {
+ proxy = ProxySetupHelper.getProxy(directoryOrFile.toExternalForm());
+ }
+ } catch (NoClassDefFoundError e) {
+ // If the proxy API is not available a NoClassDefFoundError will be thrown here.
+ // If that happens then we just want to continue on.
+ Activator.logNoProxyWarning(e);
+
+ }
+ }
+ if (proxy != null)
+ setupProxy(proxy);
+ }
+
+ protected void cleanUp() {
+ clearProxy();
+
+ super.cleanUp();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser#runRequest()
+ */
+ protected void runRequest() throws Exception {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "runRequest"); //$NON-NLS-1$
+ setupProxies();
+ // set timeout
+ httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT);
+ httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT);
+
+ String urlString = directoryOrFile.toString();
+ // setup authentication
+ setupAuthentication(urlString);
+
+ headMethod = new HttpHead(urlString);
+ // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
+ headMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
+
+ long lastModified = 0;
+ long fileLength = -1;
+ connectingSockets.clear();
+ int code = -1;
+ try {
+ Trace.trace(Activator.PLUGIN_ID, "browse=" + urlString); //$NON-NLS-1$
+
+ httpContext = new BasicHttpContext();
+ httpResponse = httpClient.execute(headMethod, httpContext);
+ code = httpResponse.getStatusLine().getStatusCode();
+
+ Trace.trace(Activator.PLUGIN_ID, "browse resp=" + code); //$NON-NLS-1$
+
+ // Check for NTLM proxy in response headers
+ // This check is to deal with bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252002
+ boolean ntlmProxyFound = NTLMProxyDetector.detectNTLMProxy(httpContext);
+ if (ntlmProxyFound && !hasForceNTLMProxyOption())
+ throw new BrowseFileTransferException("HttpClient Provider is not configured to support NTLM proxy authentication.", HttpClientOptions.NTLM_PROXY_RESPONSE_CODE); //$NON-NLS-1$
+
+ if (NTLMProxyDetector.detectSPNEGOProxy(httpContext))
+ throw new BrowseFileTransferException("HttpClient Provider does not support the use of SPNEGO proxy authentication."); //$NON-NLS-1$
+
+ if (code == HttpURLConnection.HTTP_OK) {
+ Header contentLength = httpResponse.getLastHeader(CONTENT_LENGTH_HEADER);
+ if (contentLength != null) {
+ fileLength = Integer.parseInt(contentLength.getValue());
+ }
+
+ lastModified = getLastModifiedTimeFromHeader();
+ } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
+ throw new BrowseFileTransferException(NLS.bind("File not found: {0}", urlString), code); //$NON-NLS-1$
+ } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
+ throw new BrowseFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code);
+ } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
+ throw new BrowseFileTransferException("Forbidden", code); //$NON-NLS-1$
+ } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
+ throw new BrowseFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code);
+ } else {
+ throw new BrowseFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code);
+ }
+ remoteFiles = new IRemoteFile[1];
+ remoteFiles[0] = new URLRemoteFile(lastModified, fileLength, fileID);
+ } catch (Exception e) {
+ Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, this.getClass(), "runRequest", e); //$NON-NLS-1$
+ BrowseFileTransferException ex = (BrowseFileTransferException) ((e instanceof BrowseFileTransferException) ? e : new BrowseFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code));
+ throw ex;
+ }
+ }
+
+ private long getLastModifiedTimeFromHeader() throws IOException {
+ Header lastModifiedHeader = httpResponse.getLastHeader("Last-Modified"); //$NON-NLS-1$
+ if (lastModifiedHeader == null)
+ return 0L;
+ String lastModifiedString = lastModifiedHeader.getValue();
+ long lastModified = 0;
+ if (lastModifiedString != null) {
+ try {
+ lastModified = DateUtils.parseDate(lastModifiedString).getTime();
+ } catch (Exception e) {
+ throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER);
+ }
+ }
+ return lastModified;
+ }
+
+ Proxy getProxy() {
+ return proxy;
+ }
+
+ /**
+ * Retrieves the credentials for requesting the file.
+ * @return the {@link Credentials} necessary to retrieve the file
+ * @throws UnsupportedCallbackException if the callback fails
+ * @throws IOException if IO fails
+ * @since 5.0
+ */
+ protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException {
+ if (connectContext == null)
+ return null;
+ final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
+ if (callbackHandler == null)
+ return null;
+ final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
+ final ObjectCallback passwordCallback = new ObjectCallback();
+ callbackHandler.handle(new Callback[] {usernameCallback, passwordCallback});
+ username = usernameCallback.getName();
+ password = (String) passwordCallback.getObject();
+ return new UsernamePasswordCredentials(username, password);
+ }
+
+ protected void setupAuthentication(String urlString) throws UnsupportedCallbackException, IOException {
+ Credentials credentials = null;
+ if (username == null) {
+ credentials = getFileRequestCredentials();
+ }
+
+ if (credentials != null && username != null) {
+ final AuthScope authScope = new AuthScope(HttpClientRetrieveFileTransfer.getHostFromURL(urlString), HttpClientRetrieveFileTransfer.getPortFromURL(urlString), AuthScope.ANY_REALM);
+ Trace.trace(Activator.PLUGIN_ID, "browse credentials=" + credentials); //$NON-NLS-1$
+ httpClient.getCredentialsProvider().setCredentials(authScope, credentials);
+ }
+ }
+
+ protected void setupProxy(Proxy proxy) {
+ if (proxy.getType().equals(Proxy.Type.HTTP)) {
+ final ProxyAddress address = proxy.getAddress();
+ ConnRouteParams.setDefaultProxy(httpClient.getParams(), new HttpHost(address.getHostName(), address.getPort()));
+ } else if (proxy.getType().equals(Proxy.Type.SOCKS)) {
+ Trace.trace(Activator.PLUGIN_ID, "brows socksproxy=" + proxy.getAddress()); //$NON-NLS-1$
+ proxyHelper.setupProxy(proxy);
+ }
+ }
+
+ /**
+ * This method will clear out the proxy information (so that if this is
+ * reused for a request without a proxy, it will work correctly).
+ * @since 5.0
+ */
+ protected void clearProxy() {
+ ConnRouteParams.setDefaultProxy(httpClient.getParams(), null);
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java
index 6307add4e..ed576d2e7 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java
@@ -1,47 +1,47 @@
-/*******************************************************************************
-* Copyright (c) 2009 EclipseSource 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:
-* EclipseSource - initial API and implementation
-******************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-/**
- * @since 4.0
- */
-public interface HttpClientOptions {
- // HttpClient response code that indicates that NTLM proxy is asking for authentication
- // and httpclient cannot handle NTLMv2 proxies
- public int NTLM_PROXY_RESPONSE_CODE = 477;
- // System property that indicates that NTLM proxy usage should be forced (i.e. not rejected)
- // The property key is: org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy
- // The value of the property must be non-null, but is not otherwise used.
- public String FORCE_NTLM_PROP = "org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy"; //$NON-NLS-1$
-
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- /**
- * @since 4.0
- */
- public static final int RETRIEVE_DEFAULT_CONNECTION_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- /**
- * @since 4.0
- */
- public static final int RETRIEVE_DEFAULT_READ_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$
-
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- /**
- * @since 4.0
- */
- public static final int BROWSE_DEFAULT_CONNECTION_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$;
-
-}
+/*******************************************************************************
+* Copyright (c) 2009 EclipseSource 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:
+* EclipseSource - initial API and implementation
+******************************************************************************/
+package org.eclipse.ecf.provider.filetransfer.httpclient4;
+
+/**
+ * @since 4.0
+ */
+public interface HttpClientOptions {
+ // HttpClient response code that indicates that NTLM proxy is asking for authentication
+ // and httpclient cannot handle NTLMv2 proxies
+ public int NTLM_PROXY_RESPONSE_CODE = 477;
+ // System property that indicates that NTLM proxy usage should be forced (i.e. not rejected)
+ // The property key is: org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy
+ // The value of the property must be non-null, but is not otherwise used.
+ public String FORCE_NTLM_PROP = "org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy"; //$NON-NLS-1$
+
+ // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
+ // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout
+ // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
+ /**
+ * @since 4.0
+ */
+ public static final int RETRIEVE_DEFAULT_CONNECTION_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$
+ // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
+ // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout
+ // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
+ /**
+ * @since 4.0
+ */
+ public static final int RETRIEVE_DEFAULT_READ_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
+ // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout
+ // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
+ /**
+ * @since 4.0
+ */
+ public static final int BROWSE_DEFAULT_CONNECTION_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$;
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java
index 529b059fc..0c14292ff 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java
@@ -1,1120 +1,1120 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2010 Composent, Inc., IBM 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
- * Maarten Meijer - bug 237936, added gzip encoded transfer default
- * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
- * Henrich Kraemer - bug 263613, [transport] Update site contacting / downloading is not cancelable
- * Thomas Joiner - HttpClient 4 implementation
- ******************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import javax.net.SocketFactory;
-import javax.net.ssl.SSLSocketFactory;
-import org.apache.http.Header;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.ProtocolVersion;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
-import org.apache.http.auth.NTCredentials;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.auth.params.AuthPNames;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.params.AuthPolicy;
-import org.apache.http.client.protocol.RequestAcceptEncoding;
-import org.apache.http.client.protocol.ResponseContentEncoding;
-import org.apache.http.conn.params.ConnRouteParams;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.cookie.DateUtils;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.util.EntityUtils;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.security.Callback;
-import org.eclipse.ecf.core.security.CallbackHandler;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.core.security.NameCallback;
-import org.eclipse.ecf.core.security.ObjectCallback;
-import org.eclipse.ecf.core.security.UnsupportedCallbackException;
-import org.eclipse.ecf.core.util.ECFRuntimeException;
-import org.eclipse.ecf.core.util.Proxy;
-import org.eclipse.ecf.core.util.ProxyAddress;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.BrowseFileTransferException;
-import org.eclipse.ecf.filetransfer.FileTransferJob;
-import org.eclipse.ecf.filetransfer.IFileRangeSpecification;
-import org.eclipse.ecf.filetransfer.IFileTransferPausable;
-import org.eclipse.ecf.filetransfer.IFileTransferRunnable;
-import org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions;
-import org.eclipse.ecf.filetransfer.IncomingFileTransferException;
-import org.eclipse.ecf.filetransfer.InvalidFileRangeSpecificationException;
-import org.eclipse.ecf.filetransfer.events.IFileTransferConnectStartEvent;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
-import org.eclipse.ecf.filetransfer.identity.IFileID;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ConnectingSocketMonitor;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.DebugOptions;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ECFHttpClientProtocolSocketFactory;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ECFHttpClientSecureProtocolSocketFactory;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.HttpClientProxyCredentialProvider;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ISSLSocketFactoryModifier;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Messages;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventSource;
-import org.eclipse.ecf.provider.filetransfer.identity.FileTransferID;
-import org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer;
-import org.eclipse.ecf.provider.filetransfer.retrieve.HttpHelper;
-import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper;
-import org.eclipse.ecf.provider.filetransfer.util.ProxySetupHelper;
-import org.eclipse.osgi.util.NLS;
-
-public class HttpClientRetrieveFileTransfer extends AbstractRetrieveFileTransfer {
-
- private static final String USERNAME_PREFIX = Messages.HttpClientRetrieveFileTransfer_Username_Prefix;
-
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- protected static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_CONNECTION_TIMEOUT;
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- protected static final int DEFAULT_READ_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_READ_TIMEOUT;
-
- protected static final int HTTP_PORT = 80;
-
- protected static final int HTTPS_PORT = 443;
-
- protected static final int MAX_RETRY = 2;
-
- protected static final String HTTPS = Messages.FileTransferNamespace_Https_Protocol;
-
- protected static final String HTTP = Messages.FileTransferNamespace_Http_Protocol;
-
- protected static final String[] supportedProtocols = {HTTP, HTTPS};
-
- private static final String LAST_MODIFIED_HEADER = "Last-Modified"; //$NON-NLS-1$
-
- private HttpGet getMethod = null;
-
- private HttpResponse httpResponse = null;
-
- private HttpContext httpContext = null;
-
- private DefaultHttpClient httpClient = null;
-
- private String username;
-
- private String password;
-
- private int responseCode = -1;
- private volatile boolean doneFired = false;
-
- private String remoteFileName;
-
- protected int httpVersion = 1;
-
- protected IFileID fileid = null;
-
- protected JREProxyHelper proxyHelper = null;
-
- private SocketEventSource socketEventSource;
-
- private ConnectingSocketMonitor connectingSockets;
- private FileTransferJob connectJob;
-
- /**
- * @since 5.0
- */
- public HttpClientRetrieveFileTransfer(DefaultHttpClient httpClient) {
- this.httpClient = httpClient;
- Assert.isNotNull(this.httpClient);
- this.httpClient.setCredentialsProvider(new ECFCredentialsProvider());
- proxyHelper = new JREProxyHelper();
- connectingSockets = new ConnectingSocketMonitor(1);
- socketEventSource = new SocketEventSource() {
- public Object getAdapter(Class adapter) {
- if (adapter == null) {
- return null;
- }
- if (adapter.isInstance(this)) {
- return this;
- }
- return HttpClientRetrieveFileTransfer.this.getAdapter(adapter);
- }
-
- };
-
- registerSchemes(socketEventSource, connectingSockets);
- }
-
- private void registerSchemes(ISocketEventSource source, ISocketListener socketListener) {
- SchemeRegistry schemeRegistry = this.httpClient.getConnectionManager().getSchemeRegistry();
-
- Scheme http = new Scheme(HttpClientRetrieveFileTransfer.HTTP, HTTP_PORT, new ECFHttpClientProtocolSocketFactory(SocketFactory.getDefault(), source, socketListener));
-
- Trace.trace(Activator.PLUGIN_ID, "registering http scheme"); //$NON-NLS-1$
- schemeRegistry.register(http);
-
- ISSLSocketFactoryModifier sslSocketFactoryModifier = Activator.getDefault().getSSLSocketFactoryModifier();
-
- if (sslSocketFactoryModifier == null) {
- sslSocketFactoryModifier = new HttpClientDefaultSSLSocketFactoryModifier();
- }
-
- SSLSocketFactory sslSocketFactory = null;
- try {
- sslSocketFactory = sslSocketFactoryModifier.getSSLSocketFactory();
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ISSLSocketFactoryModifier.class, "getSSLSocketFactory()", e); //$NON-NLS-1$
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, HttpClientRetrieveFileTransfer.class, "registerSchemes()", e); //$NON-NLS-1$
- throw new ECFRuntimeException("Unable to instantiate schemes for HttpClient.", e); //$NON-NLS-1$
- }
-
- Scheme https = new Scheme(HttpClientRetrieveFileTransfer.HTTPS, HTTPS_PORT, new ECFHttpClientSecureProtocolSocketFactory(sslSocketFactory, source, socketListener));
- Trace.trace(Activator.PLUGIN_ID, "registering https scheme; modifier=" + sslSocketFactoryModifier); //$NON-NLS-1$
- schemeRegistry.register(https);
-
- // SPNEGO is not supported, so remove it from the list
- List authpref = new ArrayList(3);
- authpref.add(AuthPolicy.NTLM);
- authpref.add(AuthPolicy.DIGEST);
- authpref.add(AuthPolicy.BASIC);
-
- httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref);
- httpClient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authpref);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#getRemoteFileName()
- */
- public String getRemoteFileName() {
- return remoteFileName;
- }
-
- public synchronized void cancel() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "cancel"); //$NON-NLS-1$
- if (isCanceled()) {
- return; // break job cancel recursion
- }
- setDoneCanceled(exception);
- boolean fireDoneEvent = true;
- if (connectJob != null) {
- Trace.trace(Activator.PLUGIN_ID, "calling connectJob.cancel()"); //$NON-NLS-1$
- connectJob.cancel();
- }
- synchronized (jobLock) {
- if (job != null) {
- // Its the transfer jobs responsibility to throw the event.
- fireDoneEvent = false;
- Trace.trace(Activator.PLUGIN_ID, "calling transfer job.cancel()"); //$NON-NLS-1$
- job.cancel();
- }
- }
- if (getMethod != null) {
- if (!getMethod.isAborted()) {
- Trace.trace(Activator.PLUGIN_ID, "calling getMethod.abort()"); //$NON-NLS-1$
- getMethod.abort();
- }
- }
- if (connectingSockets != null) {
- // this should unblock socket connect calls, if any
- for (Iterator iterator = connectingSockets.getConnectingSockets().iterator(); iterator.hasNext();) {
- Socket socket = (Socket) iterator.next();
- try {
- Trace.trace(Activator.PLUGIN_ID, "Call socket.close() for socket=" + socket.toString()); //$NON-NLS-1$
- socket.close();
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "cancel", e); //$NON-NLS-1$
- }
- }
- }
- hardClose();
- if (fireDoneEvent) {
- fireTransferReceiveDoneEvent();
- }
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "cancel");//$NON-NLS-1$
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#hardClose()
- */
- protected void hardClose() {
- // changed for addressing bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
- if (getMethod != null) {
- // First, if !isDone and paused
- if (!isDone() && isPaused())
- getMethod.abort();
- // release in any case
- //getMethod.releaseConnection();
- // and set to null
- getMethod = null;
- }
- // Close output stream...if we're supposed to
- try {
- if (localFileContents != null && closeOutputStream)
- localFileContents.close();
- } catch (final IOException e) {
- Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
- }
- // clear input and output streams
- remoteFileContents = null;
- localFileContents = null;
- // reset response code
- responseCode = -1;
- // If we're done and proxy helper still exists, then dispose
- if (proxyHelper != null && isDone()) {
- proxyHelper.dispose();
- proxyHelper = null;
- }
- }
-
- /**
- * @since 5.0
- */
- protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException {
- if (connectContext == null)
- return null;
- final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
- if (callbackHandler == null)
- return null;
- final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
- final ObjectCallback passwordCallback = new ObjectCallback();
- callbackHandler.handle(new Callback[] {usernameCallback, passwordCallback});
- username = usernameCallback.getName();
- password = (String) passwordCallback.getObject();
- return new UsernamePasswordCredentials(username, password);
- }
-
- protected void setupProxies() {
- // If it's been set directly (via ECF API) then this overrides platform settings
- if (proxy == null) {
- try {
- // give SOCKS priority see https://bugs.eclipse.org/bugs/show_bug.cgi?id=295030#c61
- proxy = ProxySetupHelper.getSocksProxy(getRemoteFileURL());
- if (proxy == null) {
- proxy = ProxySetupHelper.getProxy(getRemoteFileURL().toExternalForm());
- }
- } catch (NoClassDefFoundError e) {
- // If the proxy API is not available a NoClassDefFoundError will be thrown here.
- // If that happens then we just want to continue on.
- Activator.logNoProxyWarning(e);
- }
- }
- if (proxy != null)
- setupProxy(proxy);
- }
-
- protected synchronized void resetDoneAndException() {
- // Doesn't match the description, but since it should be cleared before it is
- // reused, this is the best place.
- clearProxy();
-
- super.resetDoneAndException();
- }
-
- protected void setupAuthentication(String urlString) throws UnsupportedCallbackException, IOException {
- Credentials credentials = null;
- if (username == null) {
- credentials = getFileRequestCredentials();
- }
-
- if (credentials != null && username != null) {
- final AuthScope authScope = new AuthScope(getHostFromURL(urlString), getPortFromURL(urlString), AuthScope.ANY_REALM);
- Trace.trace(Activator.PLUGIN_ID, "retrieve credentials=" + credentials); //$NON-NLS-1$
- httpClient.getCredentialsProvider().setCredentials(authScope, credentials);
- }
- }
-
- protected void setRequestHeaderValues() throws InvalidFileRangeSpecificationException {
- final IFileRangeSpecification rangeSpec = getFileRangeSpecification();
- if (rangeSpec != null) {
- final long startPosition = rangeSpec.getStartPosition();
- final long endPosition = rangeSpec.getEndPosition();
- if (startPosition < 0)
- throw new InvalidFileRangeSpecificationException(Messages.HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO, rangeSpec);
- if (endPosition != -1L && endPosition <= startPosition)
- throw new InvalidFileRangeSpecificationException(Messages.HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START, rangeSpec);
- String rangeHeader = "bytes=" + startPosition + "-" + ((endPosition == -1L) ? "" : ("" + endPosition)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- Trace.trace(Activator.PLUGIN_ID, "retrieve range header=" + rangeHeader); //$NON-NLS-1$
- setRangeHeader(rangeHeader);
- }
- // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
- getMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
- setRequestHeaderValuesFromOptions();
- }
-
- private void setRequestHeaderValuesFromOptions() {
- Map localOptions = getOptions();
- if (localOptions != null) {
- Object o = localOptions.get(IRetrieveFileTransferOptions.REQUEST_HEADERS);
- if (o != null && o instanceof Map) {
- Map requestHeaders = (Map) o;
- for (Iterator i = requestHeaders.keySet().iterator(); i.hasNext();) {
- Object n = i.next();
- Object v = requestHeaders.get(n);
- if (n != null && n instanceof String && v != null && v instanceof String)
- getMethod.addHeader((String) n, (String) v);
- }
- }
- }
- }
-
- private void setRangeHeader(String value) {
- getMethod.addHeader("Range", value); //$NON-NLS-1$
- }
-
- private boolean isHTTP11() {
- return (httpVersion >= 1);
- }
-
- public int getResponseCode() {
- if (responseCode != -1)
- return responseCode;
- ProtocolVersion version = getMethod.getProtocolVersion();
- if (version == null) {
- responseCode = -1;
- httpVersion = 1;
- return responseCode;
- }
- httpVersion = version.getMinor();
- responseCode = httpResponse.getStatusLine().getStatusCode();
- return responseCode;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.core.identity.IIdentifiable#getID()
- */
- public ID getID() {
- return fileid;
- }
-
- private long getLastModifiedTimeFromHeader() throws IOException {
- Header lastModifiedHeader = httpResponse.getLastHeader(LAST_MODIFIED_HEADER);
- if (lastModifiedHeader == null)
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME);
-
- String lastModifiedString = lastModifiedHeader.getValue();
- long lastModified = 0;
- if (lastModifiedString != null) {
- try {
- lastModified = DateUtils.parseDate(lastModifiedString).getTime();
- } catch (Exception e) {
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER);
- }
- }
- return lastModified;
- }
-
- protected void getResponseHeaderValues() throws IOException {
- if (getResponseCode() == -1)
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST);
- Header lastModifiedHeader = httpResponse.getLastHeader(LAST_MODIFIED_HEADER);
- if (lastModifiedHeader != null) {
- setLastModifiedTime(getLastModifiedTimeFromHeader());
- }
- setFileLength(httpResponse.getEntity().getContentLength());
- fileid = new FileTransferID(getRetrieveNamespace(), getRemoteFileURL());
-
- // Get content disposition header and get remote file name from it if possible.
- Header contentDispositionHeader = httpResponse.getLastHeader(HttpHelper.CONTENT_DISPOSITION_HEADER);
- if (contentDispositionHeader != null) {
- remoteFileName = HttpHelper.getRemoteFileNameFromContentDispositionHeader(contentDispositionHeader.getValue());
- }
- // If still null, get the path from httpclient.getMethod()
- if (remoteFileName == null) {
- // No name could be extracted using Content-Disposition. Let's try the
- // path from the getMethod.
- String pathStr = getMethod.getRequestLine().getUri();
- if (pathStr != null && pathStr.length() > 0) {
- IPath path = Path.fromPortableString(pathStr);
- if (path.segmentCount() > 0)
- remoteFileName = path.lastSegment();
- }
- // If still null, use the input file name
- if (remoteFileName == null)
- // Last resort. Use the path of the initial URL request
- remoteFileName = super.getRemoteFileName();
- }
- }
-
- final class ECFCredentialsProvider extends HttpClientProxyCredentialProvider {
-
- protected Proxy getECFProxy() {
- return getProxy();
- }
-
- protected Credentials getNTLMCredentials(Proxy lp) {
- if (hasForceNTLMProxyOption())
- return HttpClientRetrieveFileTransfer.createNTLMCredentials(lp);
- return null;
- }
-
- }
-
- Proxy getProxy() {
- return proxy;
- }
-
- protected void setInputStream(InputStream ins) {
- remoteFileContents = ins;
- }
-
- protected InputStream wrapTransferReadInputStream(InputStream inputStream, IProgressMonitor monitor) {
- // Added to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
- return new NoCloseWrapperInputStream(inputStream);
- }
-
- // Added to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
- class NoCloseWrapperInputStream extends FilterInputStream {
-
- protected NoCloseWrapperInputStream(InputStream in) {
- super(in);
- }
-
- public void close() {
- // do nothing
- }
- }
-
- protected boolean hasForceNTLMProxyOption() {
- Map localOptions = getOptions();
- if (localOptions != null && localOptions.get(HttpClientOptions.FORCE_NTLM_PROP) != null)
- return true;
- return (System.getProperties().getProperty(HttpClientOptions.FORCE_NTLM_PROP) != null);
- }
-
- protected int getSocketReadTimeout() {
- int result = DEFAULT_READ_TIMEOUT;
- Map localOptions = getOptions();
- if (localOptions != null) {
- // See if the connect timeout option is present, if so set
- Object o = localOptions.get(IRetrieveFileTransferOptions.READ_TIMEOUT);
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- return result;
- }
- o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout"); //$NON-NLS-1$
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- }
- }
- return result;
- }
-
- /**
- * @since 4.0
- */
- protected int getConnectTimeout() {
- int result = DEFAULT_CONNECTION_TIMEOUT;
- Map localOptions = getOptions();
- if (localOptions != null) {
- // See if the connect timeout option is present, if so set
- Object o = localOptions.get(IRetrieveFileTransferOptions.CONNECT_TIMEOUT);
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- return result;
- }
- o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout"); //$NON-NLS-1$
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- }
- }
- return result;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#openStreams()
- */
- protected void openStreams() throws IncomingFileTransferException {
-
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "openStreams"); //$NON-NLS-1$
- final String urlString = getRemoteFileURL().toString();
- this.doneFired = false;
-
- int code = -1;
-
- try {
- httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, getSocketReadTimeout());
- int connectTimeout = getConnectTimeout();
- httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout);
-
- setupAuthentication(urlString);
-
- getMethod = new HttpGet(urlString);
- // Define a CredentialsProvider - found that possibility while debugging in org.apache.commons.httpclient.HttpMethodDirector.processProxyAuthChallenge(HttpMethod)
- // Seems to be another way to select the credentials.
- setRequestHeaderValues();
-
- Trace.trace(Activator.PLUGIN_ID, "retrieve=" + urlString); //$NON-NLS-1$
- // Set request header for possible gzip encoding, but only if
- // 1) The file range specification is null (we want the whole file)
- // 2) The target remote file does *not* end in .gz (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=280205)
- if (getFileRangeSpecification() == null && !targetHasGzSuffix(super.getRemoteFileName())) {
- Trace.trace(Activator.PLUGIN_ID, "Accept-Encoding: gzip,deflate added to request header"); //$NON-NLS-1$
-
- // Add the interceptors to provide the gzip
- httpClient.addRequestInterceptor(new RequestAcceptEncoding());
- httpClient.addResponseInterceptor(new ResponseContentEncoding());
- } else {
- Trace.trace(Activator.PLUGIN_ID, "Accept-Encoding NOT added to header"); //$NON-NLS-1$
- }
-
- fireConnectStartEvent();
- if (checkAndHandleDone()) {
- return;
- }
-
- connectingSockets.clear();
- // Actually execute get and get response code (since redirect is set to true, then
- // redirect response code handled internally
- if (connectJob == null) {
- performConnect(new NullProgressMonitor());
- } else {
- connectJob.schedule();
- connectJob.join();
- connectJob = null;
- }
- if (checkAndHandleDone()) {
- return;
- }
-
- code = responseCode;
-
- responseHeaders = getResponseHeaders();
-
- Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + code); //$NON-NLS-1$
-
- // Check for NTLM proxy in response headers
- // This check is to deal with bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252002
- boolean ntlmProxyFound = NTLMProxyDetector.detectNTLMProxy(httpContext);
- if (ntlmProxyFound && !hasForceNTLMProxyOption())
- throw new IncomingFileTransferException("HttpClient Provider is not configured to support NTLM proxy authentication.", HttpClientOptions.NTLM_PROXY_RESPONSE_CODE); //$NON-NLS-1$
-
- if (NTLMProxyDetector.detectSPNEGOProxy(httpContext))
- throw new BrowseFileTransferException("HttpClient Provider does not support the use of SPNEGO proxy authentication."); //$NON-NLS-1$
-
- if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) {
- getResponseHeaderValues();
- setInputStream(httpResponse.getEntity().getContent());
- fireReceiveStartEvent();
- } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(NLS.bind("File not found: {0}", urlString), code); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code);
- } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException("Forbidden", code); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code);
- } else {
- Trace.trace(Activator.PLUGIN_ID, EntityUtils.toString(httpResponse.getEntity()));
- // EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code);
- }
- } catch (final Exception e) {
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, this.getClass(), "openStreams", e); //$NON-NLS-1$
- if (code == -1) {
- if (!isDone()) {
- setDoneException(e);
- }
- fireTransferReceiveDoneEvent();
- } else {
- IncomingFileTransferException ex = (IncomingFileTransferException) ((e instanceof IncomingFileTransferException) ? e : new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code));
- throw ex;
- }
- }
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreams"); //$NON-NLS-1$
- }
-
- private Map getResponseHeaders() {
- if (getMethod == null)
- return null;
- Header[] headers = httpResponse.getAllHeaders();
- Map result = null;
- if (headers != null && headers.length > 0) {
- result = new HashMap();
- for (int i = 0; i < headers.length; i++) {
- String name = headers[i].getName();
- String val = headers[i].getValue();
- if (name != null && val != null)
- result.put(name, val);
- }
- }
- return Collections.unmodifiableMap(result);
- }
-
- private boolean checkAndHandleDone() {
- if (isDone()) {
- // for cancel the done event should have been fired always.
- if (!doneFired) {
- fireTransferReceiveDoneEvent();
- }
- return true;
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.filetransfer.IRetrieveFileTransferContainerAdapter#setConnectContextForAuthentication(org.eclipse.ecf.core.security.IConnectContext)
- */
- public void setConnectContextForAuthentication(IConnectContext connectContext) {
- super.setConnectContextForAuthentication(connectContext);
- this.username = null;
- this.password = null;
- }
-
- protected static String getHostFromURL(String url) {
- String result = url;
- final int colonSlashSlash = url.indexOf("://"); //$NON-NLS-1$
- if (colonSlashSlash < 0)
- return ""; //$NON-NLS-1$
- if (colonSlashSlash >= 0) {
- result = url.substring(colonSlashSlash + 3);
- }
-
- final int colonPort = result.indexOf(':');
- final int requestPath = result.indexOf('/');
-
- int substringEnd;
-
- if (colonPort > 0 && requestPath > 0)
- substringEnd = Math.min(colonPort, requestPath);
- else if (colonPort > 0)
- substringEnd = colonPort;
- else if (requestPath > 0)
- substringEnd = requestPath;
- else
- substringEnd = result.length();
-
- return result.substring(0, substringEnd);
-
- }
-
- protected static int getPortFromURL(String url) {
- final int colonSlashSlash = url.indexOf("://"); //$NON-NLS-1$
- if (colonSlashSlash < 0)
- return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
- // This is wrong as if the url has no colonPort before '?' then it should return the default
-
- int colonPort = url.indexOf(':', colonSlashSlash + 1);
- if (colonPort < 0)
- return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
- // Make sure that the colonPort is not from some part of the rest of the URL
- int nextSlash = url.indexOf('/', colonSlashSlash + 3);
- if (nextSlash != -1 && colonPort > nextSlash)
- return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
- // Make sure the colonPort is not part of the credentials in URI
- final int atServer = url.indexOf('@', colonSlashSlash + 1);
- if (atServer != -1 && colonPort < atServer && atServer < nextSlash)
- colonPort = url.indexOf(':', atServer + 1);
- if (colonPort < 0)
- return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
-
- final int requestPath = url.indexOf('/', colonPort + 1);
-
- int end;
- if (requestPath < 0)
- end = url.length();
- else
- end = requestPath;
-
- return Integer.parseInt(url.substring(colonPort + 1, end));
- }
-
- protected static boolean urlUsesHttps(String url) {
- url = url.trim();
- return url.startsWith(HTTPS);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.internal.provider.filetransfer.AbstractRetrieveFileTransfer#supportsProtocol(java.lang.String)
- */
- public static boolean supportsProtocol(String protocolString) {
- for (int i = 0; i < supportedProtocols.length; i++)
- if (supportedProtocols[i].equalsIgnoreCase(protocolString))
- return true;
- return false;
- }
-
- protected boolean isConnected() {
- return (getMethod != null);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#doPause()
- */
- protected boolean doPause() {
- if (isPaused() || !isConnected() || isDone())
- return false;
- this.paused = true;
- return this.paused;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#doResume()
- */
- protected boolean doResume() {
- if (!isPaused() || isConnected())
- return false;
- return openStreamsForResume();
- }
-
- protected void setResumeRequestHeaderValues() throws IOException {
- if (this.bytesReceived <= 0 || this.fileLength <= this.bytesReceived)
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_RESUME_START_ERROR);
- setRangeHeader("bytes=" + this.bytesReceived + "-"); //$NON-NLS-1$ //$NON-NLS-2$
- // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
- getMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
- setRequestHeaderValuesFromOptions();
- }
-
- private boolean openStreamsForResume() {
-
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "openStreamsForResume"); //$NON-NLS-1$
- final String urlString = getRemoteFileURL().toString();
- this.doneFired = false;
-
- int code = -1;
-
- try {
- httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, getSocketReadTimeout());
- int connectTimeout = getConnectTimeout();
- httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout);
-
- setupAuthentication(urlString);
-
- getMethod = new HttpGet(urlString);
- // Define a CredentialsProvider - found that possibility while debugging in org.apache.commons.httpclient.HttpMethodDirector.processProxyAuthChallenge(HttpMethod)
- // Seems to be another way to select the credentials.
- setResumeRequestHeaderValues();
-
- Trace.trace(Activator.PLUGIN_ID, "resume=" + urlString); //$NON-NLS-1$
-
- // Gzip encoding is not an option for resume
- fireConnectStartEvent();
- if (checkAndHandleDone()) {
- return false;
- }
-
- connectingSockets.clear();
- // Actually execute get and get response code (since redirect is set to true, then
- // redirect response code handled internally
- if (connectJob == null) {
- performConnect(new NullProgressMonitor());
- } else {
- connectJob.schedule();
- connectJob.join();
- connectJob = null;
- }
- if (checkAndHandleDone()) {
- return false;
- }
-
- code = responseCode;
-
- responseHeaders = getResponseHeaders();
-
- Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + code); //$NON-NLS-1$
-
- if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) {
- getResumeResponseHeaderValues();
- setInputStream(httpResponse.getEntity().getContent());
- this.paused = false;
- fireReceiveResumedEvent();
- } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(NLS.bind("File not found: {0}", urlString), code, responseHeaders); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code, responseHeaders);
- } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException("Forbidden", code, responseHeaders); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code, responseHeaders);
- } else {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code, responseHeaders);
- }
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreamsForResume", Boolean.TRUE); //$NON-NLS-1$
- return true;
- } catch (final Exception e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "openStreamsForResume", e); //$NON-NLS-1$
- if (code == -1) {
- if (!isDone()) {
- setDoneException(e);
- }
- } else {
- setDoneException((e instanceof IncomingFileTransferException) ? e : new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code, responseHeaders));
- }
- fireTransferReceiveDoneEvent();
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreamsForResume", Boolean.FALSE); //$NON-NLS-1$
- return false;
- }
- }
-
- protected void getResumeResponseHeaderValues() throws IOException {
- if (getResponseCode() != HttpURLConnection.HTTP_PARTIAL)
- throw new IOException();
- if (lastModifiedTime != getLastModifiedTimeFromHeader())
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter == null)
- return null;
- if (adapter.equals(IFileTransferPausable.class) && isHTTP11())
- return this;
- if (adapter.equals(ISocketEventSource.class))
- return this.socketEventSource;
- return super.getAdapter(adapter);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#setupProxy(org.eclipse.ecf.core.util.Proxy)
- */
- protected void setupProxy(Proxy proxy) {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientRetrieveFileTransfer.class, "setupProxy " + proxy); //$NON-NLS-1$
- if (proxy.getType().equals(Proxy.Type.HTTP)) {
- final ProxyAddress address = proxy.getAddress();
- ConnRouteParams.setDefaultProxy(httpClient.getParams(), new HttpHost(address.getHostName(), address.getPort()));
- // getHostConfiguration().setProxy(address.getHostName(), address.getPort());
- } else if (proxy.getType().equals(Proxy.Type.SOCKS)) {
- Trace.trace(Activator.PLUGIN_ID, "retrieve socksproxy=" + proxy.getAddress()); //$NON-NLS-1$
- proxyHelper.setupProxy(proxy);
- }
- }
-
- /**
- * This method will clear out the proxy information (so that if this is
- * reused for a request without a proxy, it will work correctly).
- * @since 5.0
- */
- protected void clearProxy() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientRetrieveFileTransfer.class, "clearProxy()"); //$NON-NLS-1$
- ConnRouteParams.setDefaultProxy(httpClient.getParams(), null);
- }
-
- /**
- * @since 5.0
- */
- public static NTCredentials createNTLMCredentials(Proxy p) {
- if (p == null) {
- return null;
- }
- String un = getNTLMUserName(p);
- String domain = getNTLMDomainName(p);
- if (un == null || domain == null)
- return null;
-
- String workstation = null;
- try {
- workstation = InetAddress.getLocalHost().getHostName();
- } catch (UnknownHostException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, HttpClientRetrieveFileTransfer.class, "createNTLMCredentials", e); //$NON-NLS-1$
- }
-
- return new NTCredentials(un, p.getPassword(), workstation, domain);
- }
-
- protected static String getNTLMDomainName(Proxy p) {
- String domainUsername = p.getUsername();
- if (domainUsername == null)
- return null;
- int slashloc = domainUsername.indexOf('\\');
- if (slashloc == -1)
- return null;
- return domainUsername.substring(0, slashloc);
- }
-
- protected static String getNTLMUserName(Proxy p) {
- String domainUsername = p.getUsername();
- if (domainUsername == null)
- return null;
- int slashloc = domainUsername.indexOf('\\');
- if (slashloc == -1)
- return null;
- return domainUsername.substring(slashloc + 1);
- }
-
- protected void fireConnectStartEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireConnectStartEvent"); //$NON-NLS-1$
- // TODO: should the following be in super.fireReceiveStartEvent();
- listener.handleTransferEvent(new IFileTransferConnectStartEvent() {
- public IFileID getFileID() {
- return remoteFileID;
- }
-
- public void cancel() {
- HttpClientRetrieveFileTransfer.this.cancel();
- }
-
- public FileTransferJob prepareConnectJob(FileTransferJob j) {
- return HttpClientRetrieveFileTransfer.this.prepareConnectJob(j);
- }
-
- public void connectUsingJob(FileTransferJob j) {
- HttpClientRetrieveFileTransfer.this.connectUsingJob(j);
- }
-
- public String toString() {
- final StringBuffer sb = new StringBuffer("IFileTransferConnectStartEvent["); //$NON-NLS-1$
- sb.append(getFileID());
- sb.append("]"); //$NON-NLS-1$
- return sb.toString();
- }
-
- public Object getAdapter(Class adapter) {
- return HttpClientRetrieveFileTransfer.this.getAdapter(adapter);
- }
- });
- }
-
- protected String createConnectJobName() {
- return getRemoteFileURL().toString() + createRangeName() + Messages.HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME;
- }
-
- protected FileTransferJob prepareConnectJob(FileTransferJob cjob) {
- if (cjob == null) {
- // Create our own
- cjob = new FileTransferJob(createJobName());
- }
- cjob.setFileTransfer(this);
- cjob.setFileTransferRunnable(fileConnectRunnable);
- return cjob;
- }
-
- protected void connectUsingJob(FileTransferJob cjob) {
- Assert.isNotNull(cjob);
- this.connectJob = cjob;
- }
-
- private IFileTransferRunnable fileConnectRunnable = new IFileTransferRunnable() {
- public IStatus performFileTransfer(IProgressMonitor monitor) {
- return performConnect(monitor);
- }
- };
-
- private IStatus performConnect(IProgressMonitor monitor) {
- // there might be more ticks in the future perhaps for
- // connect socket, certificate validation, send request, authenticate,
- int ticks = 1;
- monitor.beginTask(getRemoteFileURL().toString() + Messages.HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME, ticks);
- try {
- if (monitor.isCanceled())
- throw newUserCancelledException();
- httpContext = new BasicHttpContext();
- httpResponse = httpClient.execute(getMethod, httpContext);
- responseCode = httpResponse.getStatusLine().getStatusCode();
- Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + responseCode); //$NON-NLS-1$
- } catch (final Exception e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "performConnect", e); //$NON-NLS-1$
- if (!isDone()) {
- setDoneException(e);
- }
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
-
- }
-
- protected void finalize() throws Throwable {
- try {
- if (this.httpClient != null) {
- this.httpClient.getConnectionManager().shutdown();
- }
- } finally {
- super.finalize();
- }
- }
-
- protected void fireReceiveResumedEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireReceiveResumedEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
- super.fireReceiveResumedEvent();
- }
-
- protected void fireTransferReceiveDataEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceiveDataEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
- super.fireTransferReceiveDataEvent();
- }
-
- protected void fireTransferReceiveDoneEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceiveDoneEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
- this.doneFired = true;
- super.fireTransferReceiveDoneEvent();
- }
-
- protected void fireTransferReceivePausedEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceivePausedEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
- super.fireTransferReceivePausedEvent();
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2004, 2010 Composent, Inc., IBM 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
+ * Maarten Meijer - bug 237936, added gzip encoded transfer default
+ * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
+ * Henrich Kraemer - bug 263613, [transport] Update site contacting / downloading is not cancelable
+ * Thomas Joiner - HttpClient 4 implementation
+ ******************************************************************************/
+package org.eclipse.ecf.provider.filetransfer.httpclient4;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import javax.net.SocketFactory;
+import javax.net.ssl.SSLSocketFactory;
+import org.apache.http.Header;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
+import org.apache.http.ProtocolVersion;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.Credentials;
+import org.apache.http.auth.NTCredentials;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.auth.params.AuthPNames;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.params.AuthPolicy;
+import org.apache.http.client.protocol.RequestAcceptEncoding;
+import org.apache.http.client.protocol.ResponseContentEncoding;
+import org.apache.http.conn.params.ConnRouteParams;
+import org.apache.http.conn.scheme.Scheme;
+import org.apache.http.conn.scheme.SchemeRegistry;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.cookie.DateUtils;
+import org.apache.http.params.CoreConnectionPNames;
+import org.apache.http.protocol.BasicHttpContext;
+import org.apache.http.protocol.HttpContext;
+import org.apache.http.util.EntityUtils;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.security.Callback;
+import org.eclipse.ecf.core.security.CallbackHandler;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.core.security.NameCallback;
+import org.eclipse.ecf.core.security.ObjectCallback;
+import org.eclipse.ecf.core.security.UnsupportedCallbackException;
+import org.eclipse.ecf.core.util.ECFRuntimeException;
+import org.eclipse.ecf.core.util.Proxy;
+import org.eclipse.ecf.core.util.ProxyAddress;
+import org.eclipse.ecf.core.util.Trace;
+import org.eclipse.ecf.filetransfer.BrowseFileTransferException;
+import org.eclipse.ecf.filetransfer.FileTransferJob;
+import org.eclipse.ecf.filetransfer.IFileRangeSpecification;
+import org.eclipse.ecf.filetransfer.IFileTransferPausable;
+import org.eclipse.ecf.filetransfer.IFileTransferRunnable;
+import org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions;
+import org.eclipse.ecf.filetransfer.IncomingFileTransferException;
+import org.eclipse.ecf.filetransfer.InvalidFileRangeSpecificationException;
+import org.eclipse.ecf.filetransfer.events.IFileTransferConnectStartEvent;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
+import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
+import org.eclipse.ecf.filetransfer.identity.IFileID;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ConnectingSocketMonitor;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.DebugOptions;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ECFHttpClientProtocolSocketFactory;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ECFHttpClientSecureProtocolSocketFactory;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.HttpClientProxyCredentialProvider;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ISSLSocketFactoryModifier;
+import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Messages;
+import org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventSource;
+import org.eclipse.ecf.provider.filetransfer.identity.FileTransferID;
+import org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer;
+import org.eclipse.ecf.provider.filetransfer.retrieve.HttpHelper;
+import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper;
+import org.eclipse.ecf.provider.filetransfer.util.ProxySetupHelper;
+import org.eclipse.osgi.util.NLS;
+
+public class HttpClientRetrieveFileTransfer extends AbstractRetrieveFileTransfer {
+
+ private static final String USERNAME_PREFIX = Messages.HttpClientRetrieveFileTransfer_Username_Prefix;
+
+ // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
+ // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout
+ // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
+ protected static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_CONNECTION_TIMEOUT;
+ // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
+ // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout
+ // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
+ protected static final int DEFAULT_READ_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_READ_TIMEOUT;
+
+ protected static final int HTTP_PORT = 80;
+
+ protected static final int HTTPS_PORT = 443;
+
+ protected static final int MAX_RETRY = 2;
+
+ protected static final String HTTPS = Messages.FileTransferNamespace_Https_Protocol;
+
+ protected static final String HTTP = Messages.FileTransferNamespace_Http_Protocol;
+
+ protected static final String[] supportedProtocols = {HTTP, HTTPS};
+
+ private static final String LAST_MODIFIED_HEADER = "Last-Modified"; //$NON-NLS-1$
+
+ private HttpGet getMethod = null;
+
+ private HttpResponse httpResponse = null;
+
+ private HttpContext httpContext = null;
+
+ private DefaultHttpClient httpClient = null;
+
+ private String username;
+
+ private String password;
+
+ private int responseCode = -1;
+ private volatile boolean doneFired = false;
+
+ private String remoteFileName;
+
+ protected int httpVersion = 1;
+
+ protected IFileID fileid = null;
+
+ protected JREProxyHelper proxyHelper = null;
+
+ private SocketEventSource socketEventSource;
+
+ private ConnectingSocketMonitor connectingSockets;
+ private FileTransferJob connectJob;
+
+ /**
+ * @since 5.0
+ */
+ public HttpClientRetrieveFileTransfer(DefaultHttpClient httpClient) {
+ this.httpClient = httpClient;
+ Assert.isNotNull(this.httpClient);
+ this.httpClient.setCredentialsProvider(new ECFCredentialsProvider());
+ proxyHelper = new JREProxyHelper();
+ connectingSockets = new ConnectingSocketMonitor(1);
+ socketEventSource = new SocketEventSource() {
+ public Object getAdapter(Class adapter) {
+ if (adapter == null) {
+ return null;
+ }
+ if (adapter.isInstance(this)) {
+ return this;
+ }
+ return HttpClientRetrieveFileTransfer.this.getAdapter(adapter);
+ }
+
+ };
+
+ registerSchemes(socketEventSource, connectingSockets);
+ }
+
+ private void registerSchemes(ISocketEventSource source, ISocketListener socketListener) {
+ SchemeRegistry schemeRegistry = this.httpClient.getConnectionManager().getSchemeRegistry();
+
+ Scheme http = new Scheme(HttpClientRetrieveFileTransfer.HTTP, HTTP_PORT, new ECFHttpClientProtocolSocketFactory(SocketFactory.getDefault(), source, socketListener));
+
+ Trace.trace(Activator.PLUGIN_ID, "registering http scheme"); //$NON-NLS-1$
+ schemeRegistry.register(http);
+
+ ISSLSocketFactoryModifier sslSocketFactoryModifier = Activator.getDefault().getSSLSocketFactoryModifier();
+
+ if (sslSocketFactoryModifier == null) {
+ sslSocketFactoryModifier = new HttpClientDefaultSSLSocketFactoryModifier();
+ }
+
+ SSLSocketFactory sslSocketFactory = null;
+ try {
+ sslSocketFactory = sslSocketFactoryModifier.getSSLSocketFactory();
+ } catch (IOException e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ISSLSocketFactoryModifier.class, "getSSLSocketFactory()", e); //$NON-NLS-1$
+ Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, HttpClientRetrieveFileTransfer.class, "registerSchemes()", e); //$NON-NLS-1$
+ throw new ECFRuntimeException("Unable to instantiate schemes for HttpClient.", e); //$NON-NLS-1$
+ }
+
+ Scheme https = new Scheme(HttpClientRetrieveFileTransfer.HTTPS, HTTPS_PORT, new ECFHttpClientSecureProtocolSocketFactory(sslSocketFactory, source, socketListener));
+ Trace.trace(Activator.PLUGIN_ID, "registering https scheme; modifier=" + sslSocketFactoryModifier); //$NON-NLS-1$
+ schemeRegistry.register(https);
+
+ // SPNEGO is not supported, so remove it from the list
+ List authpref = new ArrayList(3);
+ authpref.add(AuthPolicy.NTLM);
+ authpref.add(AuthPolicy.DIGEST);
+ authpref.add(AuthPolicy.BASIC);
+
+ httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref);
+ httpClient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authpref);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#getRemoteFileName()
+ */
+ public String getRemoteFileName() {
+ return remoteFileName;
+ }
+
+ public synchronized void cancel() {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "cancel"); //$NON-NLS-1$
+ if (isCanceled()) {
+ return; // break job cancel recursion
+ }
+ setDoneCanceled(exception);
+ boolean fireDoneEvent = true;
+ if (connectJob != null) {
+ Trace.trace(Activator.PLUGIN_ID, "calling connectJob.cancel()"); //$NON-NLS-1$
+ connectJob.cancel();
+ }
+ synchronized (jobLock) {
+ if (job != null) {
+ // Its the transfer jobs responsibility to throw the event.
+ fireDoneEvent = false;
+ Trace.trace(Activator.PLUGIN_ID, "calling transfer job.cancel()"); //$NON-NLS-1$
+ job.cancel();
+ }
+ }
+ if (getMethod != null) {
+ if (!getMethod.isAborted()) {
+ Trace.trace(Activator.PLUGIN_ID, "calling getMethod.abort()"); //$NON-NLS-1$
+ getMethod.abort();
+ }
+ }
+ if (connectingSockets != null) {
+ // this should unblock socket connect calls, if any
+ for (Iterator iterator = connectingSockets.getConnectingSockets().iterator(); iterator.hasNext();) {
+ Socket socket = (Socket) iterator.next();
+ try {
+ Trace.trace(Activator.PLUGIN_ID, "Call socket.close() for socket=" + socket.toString()); //$NON-NLS-1$
+ socket.close();
+ } catch (IOException e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "cancel", e); //$NON-NLS-1$
+ }
+ }
+ }
+ hardClose();
+ if (fireDoneEvent) {
+ fireTransferReceiveDoneEvent();
+ }
+ Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "cancel");//$NON-NLS-1$
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#hardClose()
+ */
+ protected void hardClose() {
+ // changed for addressing bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
+ if (getMethod != null) {
+ // First, if !isDone and paused
+ if (!isDone() && isPaused())
+ getMethod.abort();
+ // release in any case
+ //getMethod.releaseConnection();
+ // and set to null
+ getMethod = null;
+ }
+ // Close output stream...if we're supposed to
+ try {
+ if (localFileContents != null && closeOutputStream)
+ localFileContents.close();
+ } catch (final IOException e) {
+ Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
+ }
+ // clear input and output streams
+ remoteFileContents = null;
+ localFileContents = null;
+ // reset response code
+ responseCode = -1;
+ // If we're done and proxy helper still exists, then dispose
+ if (proxyHelper != null && isDone()) {
+ proxyHelper.dispose();
+ proxyHelper = null;
+ }
+ }
+
+ /**
+ * @since 5.0
+ */
+ protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException {
+ if (connectContext == null)
+ return null;
+ final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
+ if (callbackHandler == null)
+ return null;
+ final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
+ final ObjectCallback passwordCallback = new ObjectCallback();
+ callbackHandler.handle(new Callback[] {usernameCallback, passwordCallback});
+ username = usernameCallback.getName();
+ password = (String) passwordCallback.getObject();
+ return new UsernamePasswordCredentials(username, password);
+ }
+
+ protected void setupProxies() {
+ // If it's been set directly (via ECF API) then this overrides platform settings
+ if (proxy == null) {
+ try {
+ // give SOCKS priority see https://bugs.eclipse.org/bugs/show_bug.cgi?id=295030#c61
+ proxy = ProxySetupHelper.getSocksProxy(getRemoteFileURL());
+ if (proxy == null) {
+ proxy = ProxySetupHelper.getProxy(getRemoteFileURL().toExternalForm());
+ }
+ } catch (NoClassDefFoundError e) {
+ // If the proxy API is not available a NoClassDefFoundError will be thrown here.
+ // If that happens then we just want to continue on.
+ Activator.logNoProxyWarning(e);
+ }
+ }
+ if (proxy != null)
+ setupProxy(proxy);
+ }
+
+ protected synchronized void resetDoneAndException() {
+ // Doesn't match the description, but since it should be cleared before it is
+ // reused, this is the best place.
+ clearProxy();
+
+ super.resetDoneAndException();
+ }
+
+ protected void setupAuthentication(String urlString) throws UnsupportedCallbackException, IOException {
+ Credentials credentials = null;
+ if (username == null) {
+ credentials = getFileRequestCredentials();
+ }
+
+ if (credentials != null && username != null) {
+ final AuthScope authScope = new AuthScope(getHostFromURL(urlString), getPortFromURL(urlString), AuthScope.ANY_REALM);
+ Trace.trace(Activator.PLUGIN_ID, "retrieve credentials=" + credentials); //$NON-NLS-1$
+ httpClient.getCredentialsProvider().setCredentials(authScope, credentials);
+ }
+ }
+
+ protected void setRequestHeaderValues() throws InvalidFileRangeSpecificationException {
+ final IFileRangeSpecification rangeSpec = getFileRangeSpecification();
+ if (rangeSpec != null) {
+ final long startPosition = rangeSpec.getStartPosition();
+ final long endPosition = rangeSpec.getEndPosition();
+ if (startPosition < 0)
+ throw new InvalidFileRangeSpecificationException(Messages.HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO, rangeSpec);
+ if (endPosition != -1L && endPosition <= startPosition)
+ throw new InvalidFileRangeSpecificationException(Messages.HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START, rangeSpec);
+ String rangeHeader = "bytes=" + startPosition + "-" + ((endPosition == -1L) ? "" : ("" + endPosition)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ Trace.trace(Activator.PLUGIN_ID, "retrieve range header=" + rangeHeader); //$NON-NLS-1$
+ setRangeHeader(rangeHeader);
+ }
+ // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
+ getMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
+ setRequestHeaderValuesFromOptions();
+ }
+
+ private void setRequestHeaderValuesFromOptions() {
+ Map localOptions = getOptions();
+ if (localOptions != null) {
+ Object o = localOptions.get(IRetrieveFileTransferOptions.REQUEST_HEADERS);
+ if (o != null && o instanceof Map) {
+ Map requestHeaders = (Map) o;
+ for (Iterator i = requestHeaders.keySet().iterator(); i.hasNext();) {
+ Object n = i.next();
+ Object v = requestHeaders.get(n);
+ if (n != null && n instanceof String && v != null && v instanceof String)
+ getMethod.addHeader((String) n, (String) v);
+ }
+ }
+ }
+ }
+
+ private void setRangeHeader(String value) {
+ getMethod.addHeader("Range", value); //$NON-NLS-1$
+ }
+
+ private boolean isHTTP11() {
+ return (httpVersion >= 1);
+ }
+
+ public int getResponseCode() {
+ if (responseCode != -1)
+ return responseCode;
+ ProtocolVersion version = getMethod.getProtocolVersion();
+ if (version == null) {
+ responseCode = -1;
+ httpVersion = 1;
+ return responseCode;
+ }
+ httpVersion = version.getMinor();
+ responseCode = httpResponse.getStatusLine().getStatusCode();
+ return responseCode;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.core.identity.IIdentifiable#getID()
+ */
+ public ID getID() {
+ return fileid;
+ }
+
+ private long getLastModifiedTimeFromHeader() throws IOException {
+ Header lastModifiedHeader = httpResponse.getLastHeader(LAST_MODIFIED_HEADER);
+ if (lastModifiedHeader == null)
+ throw new IOException(Messages.HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME);
+
+ String lastModifiedString = lastModifiedHeader.getValue();
+ long lastModified = 0;
+ if (lastModifiedString != null) {
+ try {
+ lastModified = DateUtils.parseDate(lastModifiedString).getTime();
+ } catch (Exception e) {
+ throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER);
+ }
+ }
+ return lastModified;
+ }
+
+ protected void getResponseHeaderValues() throws IOException {
+ if (getResponseCode() == -1)
+ throw new IOException(Messages.HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST);
+ Header lastModifiedHeader = httpResponse.getLastHeader(LAST_MODIFIED_HEADER);
+ if (lastModifiedHeader != null) {
+ setLastModifiedTime(getLastModifiedTimeFromHeader());
+ }
+ setFileLength(httpResponse.getEntity().getContentLength());
+ fileid = new FileTransferID(getRetrieveNamespace(), getRemoteFileURL());
+
+ // Get content disposition header and get remote file name from it if possible.
+ Header contentDispositionHeader = httpResponse.getLastHeader(HttpHelper.CONTENT_DISPOSITION_HEADER);
+ if (contentDispositionHeader != null) {
+ remoteFileName = HttpHelper.getRemoteFileNameFromContentDispositionHeader(contentDispositionHeader.getValue());
+ }
+ // If still null, get the path from httpclient.getMethod()
+ if (remoteFileName == null) {
+ // No name could be extracted using Content-Disposition. Let's try the
+ // path from the getMethod.
+ String pathStr = getMethod.getRequestLine().getUri();
+ if (pathStr != null && pathStr.length() > 0) {
+ IPath path = Path.fromPortableString(pathStr);
+ if (path.segmentCount() > 0)
+ remoteFileName = path.lastSegment();
+ }
+ // If still null, use the input file name
+ if (remoteFileName == null)
+ // Last resort. Use the path of the initial URL request
+ remoteFileName = super.getRemoteFileName();
+ }
+ }
+
+ final class ECFCredentialsProvider extends HttpClientProxyCredentialProvider {
+
+ protected Proxy getECFProxy() {
+ return getProxy();
+ }
+
+ protected Credentials getNTLMCredentials(Proxy lp) {
+ if (hasForceNTLMProxyOption())
+ return HttpClientRetrieveFileTransfer.createNTLMCredentials(lp);
+ return null;
+ }
+
+ }
+
+ Proxy getProxy() {
+ return proxy;
+ }
+
+ protected void setInputStream(InputStream ins) {
+ remoteFileContents = ins;
+ }
+
+ protected InputStream wrapTransferReadInputStream(InputStream inputStream, IProgressMonitor monitor) {
+ // Added to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
+ return new NoCloseWrapperInputStream(inputStream);
+ }
+
+ // Added to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
+ class NoCloseWrapperInputStream extends FilterInputStream {
+
+ protected NoCloseWrapperInputStream(InputStream in) {
+ super(in);
+ }
+
+ public void close() {
+ // do nothing
+ }
+ }
+
+ protected boolean hasForceNTLMProxyOption() {
+ Map localOptions = getOptions();
+ if (localOptions != null && localOptions.get(HttpClientOptions.FORCE_NTLM_PROP) != null)
+ return true;
+ return (System.getProperties().getProperty(HttpClientOptions.FORCE_NTLM_PROP) != null);
+ }
+
+ protected int getSocketReadTimeout() {
+ int result = DEFAULT_READ_TIMEOUT;
+ Map localOptions = getOptions();
+ if (localOptions != null) {
+ // See if the connect timeout option is present, if so set
+ Object o = localOptions.get(IRetrieveFileTransferOptions.READ_TIMEOUT);
+ if (o != null) {
+ if (o instanceof Integer) {
+ result = ((Integer) o).intValue();
+ } else if (o instanceof String) {
+ result = new Integer(((String) o)).intValue();
+ }
+ return result;
+ }
+ o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout"); //$NON-NLS-1$
+ if (o != null) {
+ if (o instanceof Integer) {
+ result = ((Integer) o).intValue();
+ } else if (o instanceof String) {
+ result = new Integer(((String) o)).intValue();
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @since 4.0
+ */
+ protected int getConnectTimeout() {
+ int result = DEFAULT_CONNECTION_TIMEOUT;
+ Map localOptions = getOptions();
+ if (localOptions != null) {
+ // See if the connect timeout option is present, if so set
+ Object o = localOptions.get(IRetrieveFileTransferOptions.CONNECT_TIMEOUT);
+ if (o != null) {
+ if (o instanceof Integer) {
+ result = ((Integer) o).intValue();
+ } else if (o instanceof String) {
+ result = new Integer(((String) o)).intValue();
+ }
+ return result;
+ }
+ o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout"); //$NON-NLS-1$
+ if (o != null) {
+ if (o instanceof Integer) {
+ result = ((Integer) o).intValue();
+ } else if (o instanceof String) {
+ result = new Integer(((String) o)).intValue();
+ }
+ }
+ }
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#openStreams()
+ */
+ protected void openStreams() throws IncomingFileTransferException {
+
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "openStreams"); //$NON-NLS-1$
+ final String urlString = getRemoteFileURL().toString();
+ this.doneFired = false;
+
+ int code = -1;
+
+ try {
+ httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, getSocketReadTimeout());
+ int connectTimeout = getConnectTimeout();
+ httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout);
+
+ setupAuthentication(urlString);
+
+ getMethod = new HttpGet(urlString);
+ // Define a CredentialsProvider - found that possibility while debugging in org.apache.commons.httpclient.HttpMethodDirector.processProxyAuthChallenge(HttpMethod)
+ // Seems to be another way to select the credentials.
+ setRequestHeaderValues();
+
+ Trace.trace(Activator.PLUGIN_ID, "retrieve=" + urlString); //$NON-NLS-1$
+ // Set request header for possible gzip encoding, but only if
+ // 1) The file range specification is null (we want the whole file)
+ // 2) The target remote file does *not* end in .gz (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=280205)
+ if (getFileRangeSpecification() == null && !targetHasGzSuffix(super.getRemoteFileName())) {
+ Trace.trace(Activator.PLUGIN_ID, "Accept-Encoding: gzip,deflate added to request header"); //$NON-NLS-1$
+
+ // Add the interceptors to provide the gzip
+ httpClient.addRequestInterceptor(new RequestAcceptEncoding());
+ httpClient.addResponseInterceptor(new ResponseContentEncoding());
+ } else {
+ Trace.trace(Activator.PLUGIN_ID, "Accept-Encoding NOT added to header"); //$NON-NLS-1$
+ }
+
+ fireConnectStartEvent();
+ if (checkAndHandleDone()) {
+ return;
+ }
+
+ connectingSockets.clear();
+ // Actually execute get and get response code (since redirect is set to true, then
+ // redirect response code handled internally
+ if (connectJob == null) {
+ performConnect(new NullProgressMonitor());
+ } else {
+ connectJob.schedule();
+ connectJob.join();
+ connectJob = null;
+ }
+ if (checkAndHandleDone()) {
+ return;
+ }
+
+ code = responseCode;
+
+ responseHeaders = getResponseHeaders();
+
+ Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + code); //$NON-NLS-1$
+
+ // Check for NTLM proxy in response headers
+ // This check is to deal with bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252002
+ boolean ntlmProxyFound = NTLMProxyDetector.detectNTLMProxy(httpContext);
+ if (ntlmProxyFound && !hasForceNTLMProxyOption())
+ throw new IncomingFileTransferException("HttpClient Provider is not configured to support NTLM proxy authentication.", HttpClientOptions.NTLM_PROXY_RESPONSE_CODE); //$NON-NLS-1$
+
+ if (NTLMProxyDetector.detectSPNEGOProxy(httpContext))
+ throw new BrowseFileTransferException("HttpClient Provider does not support the use of SPNEGO proxy authentication."); //$NON-NLS-1$
+
+ if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) {
+ getResponseHeaderValues();
+ setInputStream(httpResponse.getEntity().getContent());
+ fireReceiveStartEvent();
+ } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException(NLS.bind("File not found: {0}", urlString), code); //$NON-NLS-1$
+ } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code);
+ } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException("Forbidden", code); //$NON-NLS-1$
+ } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code);
+ } else {
+ Trace.trace(Activator.PLUGIN_ID, EntityUtils.toString(httpResponse.getEntity()));
+ // EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code);
+ }
+ } catch (final Exception e) {
+ Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, this.getClass(), "openStreams", e); //$NON-NLS-1$
+ if (code == -1) {
+ if (!isDone()) {
+ setDoneException(e);
+ }
+ fireTransferReceiveDoneEvent();
+ } else {
+ IncomingFileTransferException ex = (IncomingFileTransferException) ((e instanceof IncomingFileTransferException) ? e : new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code));
+ throw ex;
+ }
+ }
+ Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreams"); //$NON-NLS-1$
+ }
+
+ private Map getResponseHeaders() {
+ if (getMethod == null)
+ return null;
+ Header[] headers = httpResponse.getAllHeaders();
+ Map result = null;
+ if (headers != null && headers.length > 0) {
+ result = new HashMap();
+ for (int i = 0; i < headers.length; i++) {
+ String name = headers[i].getName();
+ String val = headers[i].getValue();
+ if (name != null && val != null)
+ result.put(name, val);
+ }
+ }
+ return Collections.unmodifiableMap(result);
+ }
+
+ private boolean checkAndHandleDone() {
+ if (isDone()) {
+ // for cancel the done event should have been fired always.
+ if (!doneFired) {
+ fireTransferReceiveDoneEvent();
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.filetransfer.IRetrieveFileTransferContainerAdapter#setConnectContextForAuthentication(org.eclipse.ecf.core.security.IConnectContext)
+ */
+ public void setConnectContextForAuthentication(IConnectContext connectContext) {
+ super.setConnectContextForAuthentication(connectContext);
+ this.username = null;
+ this.password = null;
+ }
+
+ protected static String getHostFromURL(String url) {
+ String result = url;
+ final int colonSlashSlash = url.indexOf("://"); //$NON-NLS-1$
+ if (colonSlashSlash < 0)
+ return ""; //$NON-NLS-1$
+ if (colonSlashSlash >= 0) {
+ result = url.substring(colonSlashSlash + 3);
+ }
+
+ final int colonPort = result.indexOf(':');
+ final int requestPath = result.indexOf('/');
+
+ int substringEnd;
+
+ if (colonPort > 0 && requestPath > 0)
+ substringEnd = Math.min(colonPort, requestPath);
+ else if (colonPort > 0)
+ substringEnd = colonPort;
+ else if (requestPath > 0)
+ substringEnd = requestPath;
+ else
+ substringEnd = result.length();
+
+ return result.substring(0, substringEnd);
+
+ }
+
+ protected static int getPortFromURL(String url) {
+ final int colonSlashSlash = url.indexOf("://"); //$NON-NLS-1$
+ if (colonSlashSlash < 0)
+ return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
+ // This is wrong as if the url has no colonPort before '?' then it should return the default
+
+ int colonPort = url.indexOf(':', colonSlashSlash + 1);
+ if (colonPort < 0)
+ return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
+ // Make sure that the colonPort is not from some part of the rest of the URL
+ int nextSlash = url.indexOf('/', colonSlashSlash + 3);
+ if (nextSlash != -1 && colonPort > nextSlash)
+ return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
+ // Make sure the colonPort is not part of the credentials in URI
+ final int atServer = url.indexOf('@', colonSlashSlash + 1);
+ if (atServer != -1 && colonPort < atServer && atServer < nextSlash)
+ colonPort = url.indexOf(':', atServer + 1);
+ if (colonPort < 0)
+ return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
+
+ final int requestPath = url.indexOf('/', colonPort + 1);
+
+ int end;
+ if (requestPath < 0)
+ end = url.length();
+ else
+ end = requestPath;
+
+ return Integer.parseInt(url.substring(colonPort + 1, end));
+ }
+
+ protected static boolean urlUsesHttps(String url) {
+ url = url.trim();
+ return url.startsWith(HTTPS);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.internal.provider.filetransfer.AbstractRetrieveFileTransfer#supportsProtocol(java.lang.String)
+ */
+ public static boolean supportsProtocol(String protocolString) {
+ for (int i = 0; i < supportedProtocols.length; i++)
+ if (supportedProtocols[i].equalsIgnoreCase(protocolString))
+ return true;
+ return false;
+ }
+
+ protected boolean isConnected() {
+ return (getMethod != null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#doPause()
+ */
+ protected boolean doPause() {
+ if (isPaused() || !isConnected() || isDone())
+ return false;
+ this.paused = true;
+ return this.paused;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#doResume()
+ */
+ protected boolean doResume() {
+ if (!isPaused() || isConnected())
+ return false;
+ return openStreamsForResume();
+ }
+
+ protected void setResumeRequestHeaderValues() throws IOException {
+ if (this.bytesReceived <= 0 || this.fileLength <= this.bytesReceived)
+ throw new IOException(Messages.HttpClientRetrieveFileTransfer_RESUME_START_ERROR);
+ setRangeHeader("bytes=" + this.bytesReceived + "-"); //$NON-NLS-1$ //$NON-NLS-2$
+ // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
+ getMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
+ setRequestHeaderValuesFromOptions();
+ }
+
+ private boolean openStreamsForResume() {
+
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "openStreamsForResume"); //$NON-NLS-1$
+ final String urlString = getRemoteFileURL().toString();
+ this.doneFired = false;
+
+ int code = -1;
+
+ try {
+ httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, getSocketReadTimeout());
+ int connectTimeout = getConnectTimeout();
+ httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout);
+
+ setupAuthentication(urlString);
+
+ getMethod = new HttpGet(urlString);
+ // Define a CredentialsProvider - found that possibility while debugging in org.apache.commons.httpclient.HttpMethodDirector.processProxyAuthChallenge(HttpMethod)
+ // Seems to be another way to select the credentials.
+ setResumeRequestHeaderValues();
+
+ Trace.trace(Activator.PLUGIN_ID, "resume=" + urlString); //$NON-NLS-1$
+
+ // Gzip encoding is not an option for resume
+ fireConnectStartEvent();
+ if (checkAndHandleDone()) {
+ return false;
+ }
+
+ connectingSockets.clear();
+ // Actually execute get and get response code (since redirect is set to true, then
+ // redirect response code handled internally
+ if (connectJob == null) {
+ performConnect(new NullProgressMonitor());
+ } else {
+ connectJob.schedule();
+ connectJob.join();
+ connectJob = null;
+ }
+ if (checkAndHandleDone()) {
+ return false;
+ }
+
+ code = responseCode;
+
+ responseHeaders = getResponseHeaders();
+
+ Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + code); //$NON-NLS-1$
+
+ if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) {
+ getResumeResponseHeaderValues();
+ setInputStream(httpResponse.getEntity().getContent());
+ this.paused = false;
+ fireReceiveResumedEvent();
+ } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException(NLS.bind("File not found: {0}", urlString), code, responseHeaders); //$NON-NLS-1$
+ } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code, responseHeaders);
+ } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException("Forbidden", code, responseHeaders); //$NON-NLS-1$
+ } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code, responseHeaders);
+ } else {
+ EntityUtils.consume(httpResponse.getEntity());
+ throw new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code, responseHeaders);
+ }
+ Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreamsForResume", Boolean.TRUE); //$NON-NLS-1$
+ return true;
+ } catch (final Exception e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "openStreamsForResume", e); //$NON-NLS-1$
+ if (code == -1) {
+ if (!isDone()) {
+ setDoneException(e);
+ }
+ } else {
+ setDoneException((e instanceof IncomingFileTransferException) ? e : new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code, responseHeaders));
+ }
+ fireTransferReceiveDoneEvent();
+ Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreamsForResume", Boolean.FALSE); //$NON-NLS-1$
+ return false;
+ }
+ }
+
+ protected void getResumeResponseHeaderValues() throws IOException {
+ if (getResponseCode() != HttpURLConnection.HTTP_PARTIAL)
+ throw new IOException();
+ if (lastModifiedTime != getLastModifiedTimeFromHeader())
+ throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#getAdapter(java.lang.Class)
+ */
+ public Object getAdapter(Class adapter) {
+ if (adapter == null)
+ return null;
+ if (adapter.equals(IFileTransferPausable.class) && isHTTP11())
+ return this;
+ if (adapter.equals(ISocketEventSource.class))
+ return this.socketEventSource;
+ return super.getAdapter(adapter);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#setupProxy(org.eclipse.ecf.core.util.Proxy)
+ */
+ protected void setupProxy(Proxy proxy) {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientRetrieveFileTransfer.class, "setupProxy " + proxy); //$NON-NLS-1$
+ if (proxy.getType().equals(Proxy.Type.HTTP)) {
+ final ProxyAddress address = proxy.getAddress();
+ ConnRouteParams.setDefaultProxy(httpClient.getParams(), new HttpHost(address.getHostName(), address.getPort()));
+ // getHostConfiguration().setProxy(address.getHostName(), address.getPort());
+ } else if (proxy.getType().equals(Proxy.Type.SOCKS)) {
+ Trace.trace(Activator.PLUGIN_ID, "retrieve socksproxy=" + proxy.getAddress()); //$NON-NLS-1$
+ proxyHelper.setupProxy(proxy);
+ }
+ }
+
+ /**
+ * This method will clear out the proxy information (so that if this is
+ * reused for a request without a proxy, it will work correctly).
+ * @since 5.0
+ */
+ protected void clearProxy() {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientRetrieveFileTransfer.class, "clearProxy()"); //$NON-NLS-1$
+ ConnRouteParams.setDefaultProxy(httpClient.getParams(), null);
+ }
+
+ /**
+ * @since 5.0
+ */
+ public static NTCredentials createNTLMCredentials(Proxy p) {
+ if (p == null) {
+ return null;
+ }
+ String un = getNTLMUserName(p);
+ String domain = getNTLMDomainName(p);
+ if (un == null || domain == null)
+ return null;
+
+ String workstation = null;
+ try {
+ workstation = InetAddress.getLocalHost().getHostName();
+ } catch (UnknownHostException e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, HttpClientRetrieveFileTransfer.class, "createNTLMCredentials", e); //$NON-NLS-1$
+ }
+
+ return new NTCredentials(un, p.getPassword(), workstation, domain);
+ }
+
+ protected static String getNTLMDomainName(Proxy p) {
+ String domainUsername = p.getUsername();
+ if (domainUsername == null)
+ return null;
+ int slashloc = domainUsername.indexOf('\\');
+ if (slashloc == -1)
+ return null;
+ return domainUsername.substring(0, slashloc);
+ }
+
+ protected static String getNTLMUserName(Proxy p) {
+ String domainUsername = p.getUsername();
+ if (domainUsername == null)
+ return null;
+ int slashloc = domainUsername.indexOf('\\');
+ if (slashloc == -1)
+ return null;
+ return domainUsername.substring(slashloc + 1);
+ }
+
+ protected void fireConnectStartEvent() {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireConnectStartEvent"); //$NON-NLS-1$
+ // TODO: should the following be in super.fireReceiveStartEvent();
+ listener.handleTransferEvent(new IFileTransferConnectStartEvent() {
+ public IFileID getFileID() {
+ return remoteFileID;
+ }
+
+ public void cancel() {
+ HttpClientRetrieveFileTransfer.this.cancel();
+ }
+
+ public FileTransferJob prepareConnectJob(FileTransferJob j) {
+ return HttpClientRetrieveFileTransfer.this.prepareConnectJob(j);
+ }
+
+ public void connectUsingJob(FileTransferJob j) {
+ HttpClientRetrieveFileTransfer.this.connectUsingJob(j);
+ }
+
+ public String toString() {
+ final StringBuffer sb = new StringBuffer("IFileTransferConnectStartEvent["); //$NON-NLS-1$
+ sb.append(getFileID());
+ sb.append("]"); //$NON-NLS-1$
+ return sb.toString();
+ }
+
+ public Object getAdapter(Class adapter) {
+ return HttpClientRetrieveFileTransfer.this.getAdapter(adapter);
+ }
+ });
+ }
+
+ protected String createConnectJobName() {
+ return getRemoteFileURL().toString() + createRangeName() + Messages.HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME;
+ }
+
+ protected FileTransferJob prepareConnectJob(FileTransferJob cjob) {
+ if (cjob == null) {
+ // Create our own
+ cjob = new FileTransferJob(createJobName());
+ }
+ cjob.setFileTransfer(this);
+ cjob.setFileTransferRunnable(fileConnectRunnable);
+ return cjob;
+ }
+
+ protected void connectUsingJob(FileTransferJob cjob) {
+ Assert.isNotNull(cjob);
+ this.connectJob = cjob;
+ }
+
+ private IFileTransferRunnable fileConnectRunnable = new IFileTransferRunnable() {
+ public IStatus performFileTransfer(IProgressMonitor monitor) {
+ return performConnect(monitor);
+ }
+ };
+
+ private IStatus performConnect(IProgressMonitor monitor) {
+ // there might be more ticks in the future perhaps for
+ // connect socket, certificate validation, send request, authenticate,
+ int ticks = 1;
+ monitor.beginTask(getRemoteFileURL().toString() + Messages.HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME, ticks);
+ try {
+ if (monitor.isCanceled())
+ throw newUserCancelledException();
+ httpContext = new BasicHttpContext();
+ httpResponse = httpClient.execute(getMethod, httpContext);
+ responseCode = httpResponse.getStatusLine().getStatusCode();
+ Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + responseCode); //$NON-NLS-1$
+ } catch (final Exception e) {
+ Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "performConnect", e); //$NON-NLS-1$
+ if (!isDone()) {
+ setDoneException(e);
+ }
+ } finally {
+ monitor.done();
+ }
+ return Status.OK_STATUS;
+
+ }
+
+ protected void finalize() throws Throwable {
+ try {
+ if (this.httpClient != null) {
+ this.httpClient.getConnectionManager().shutdown();
+ }
+ } finally {
+ super.finalize();
+ }
+ }
+
+ protected void fireReceiveResumedEvent() {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireReceiveResumedEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
+ super.fireReceiveResumedEvent();
+ }
+
+ protected void fireTransferReceiveDataEvent() {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceiveDataEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
+ super.fireTransferReceiveDataEvent();
+ }
+
+ protected void fireTransferReceiveDoneEvent() {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceiveDoneEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
+ this.doneFired = true;
+ super.fireTransferReceiveDoneEvent();
+ }
+
+ protected void fireTransferReceivePausedEvent() {
+ Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceivePausedEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
+ super.fireTransferReceivePausedEvent();
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java
index 0797b6b66..54150e74d 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java
@@ -1,24 +1,24 @@
-/****************************************************************************
- * Copyright (c) 2007 IBM, 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
- * Thomas Joiner - HttpClient 4 implementation
- *****************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.SingleClientConnManager;
-import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransfer;
-import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory;
-
-public class HttpClientRetrieveFileTransferFactory implements IRetrieveFileTransferFactory {
-
- public IRetrieveFileTransfer newInstance() {
- return new HttpClientRetrieveFileTransfer(new DefaultHttpClient(new SingleClientConnManager()));
- }
-}
+/****************************************************************************
+ * Copyright (c) 2007 IBM, 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
+ * Thomas Joiner - HttpClient 4 implementation
+ *****************************************************************************/
+package org.eclipse.ecf.provider.filetransfer.httpclient4;
+
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.SingleClientConnManager;
+import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransfer;
+import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory;
+
+public class HttpClientRetrieveFileTransferFactory implements IRetrieveFileTransferFactory {
+
+ public IRetrieveFileTransfer newInstance() {
+ return new HttpClientRetrieveFileTransfer(new DefaultHttpClient(new SingleClientConnManager()));
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java
index 28084d64d..cccabd2b3 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java
@@ -1,57 +1,57 @@
-/****************************************************************************
- * Copyright (c) 2004 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.filetransfer.httpclient4;
-
-import javax.net.ssl.X509TrustManager;
-
-public class HttpClientSslTrustManager implements X509TrustManager {
- // seems to be no purpose
- public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain) {
- return true;
- }
-
- // seems to be no purpose
- public boolean isServerTrusted(java.security.cert.X509Certificate[] chain) {
- return true;
- }
-
- // seems to be no purpose
- public boolean isClientTrusted(java.security.cert.X509Certificate[] chain) {
- return true;
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers()
- */
- public java.security.cert.X509Certificate[] getAcceptedIssuers() {
- return null;
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#checkClientTrusted(java.security.cert.X509Certificate[],
- * java.lang.String)
- */
- public void checkClientTrusted(java.security.cert.X509Certificate[] chain,
- String authType) {
- // don't need to do any checks
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#checkServerTrusted(java.security.cert.X509Certificate[],
- * java.lang.String)
- */
- public void checkServerTrusted(java.security.cert.X509Certificate[] chain,
- String authType) {
- // don't need to do any checks
- }
-
-}
+/****************************************************************************
+ * Copyright (c) 2004 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.filetransfer.httpclient4;
+
+import javax.net.ssl.X509TrustManager;
+
+public class HttpClientSslTrustManager implements X509TrustManager {
+ // seems to be no purpose
+ public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain) {
+ return true;
+ }
+
+ // seems to be no purpose
+ public boolean isServerTrusted(java.security.cert.X509Certificate[] chain) {
+ return true;
+ }
+
+ // seems to be no purpose
+ public boolean isClientTrusted(java.security.cert.X509Certificate[] chain) {
+ return true;
+ }
+
+ /**
+ * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers()
+ */
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+ return null;
+ }
+
+ /**
+ * @see javax.net.ssl.X509TrustManager#checkClientTrusted(java.security.cert.X509Certificate[],
+ * java.lang.String)
+ */
+ public void checkClientTrusted(java.security.cert.X509Certificate[] chain,
+ String authType) {
+ // don't need to do any checks
+ }
+
+ /**
+ * @see javax.net.ssl.X509TrustManager#checkServerTrusted(java.security.cert.X509Certificate[],
+ * java.lang.String)
+ */
+ public void checkServerTrusted(java.security.cert.X509Certificate[] chain,
+ String authType) {
+ // don't need to do any checks
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java
index 4510dd6cb..3545637c8 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java
@@ -1,64 +1,64 @@
-/*******************************************************************************
-* Copyright (c) 2009 EclipseSource 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:
-* EclipseSource - initial API and implementation
-* Thomas Joiner - changed to work with HttpClient 4.1 and added SPNEGO detection
-******************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import org.apache.http.auth.AuthScheme;
-import org.apache.http.auth.AuthState;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.protocol.ClientContext;
-import org.apache.http.protocol.HttpContext;
-
-public class NTLMProxyDetector {
-
- private static final String PROXY_SPNEGO_VALUE = "NEGOTIATE"; //$NON-NLS-1$
- private static final String PROXY_NTLM_VALUE = "NTLM"; //$NON-NLS-1$
-
- /**
- * This method will detect if the request connected to a NTLM proxy
- * given the {@link HttpContext} provided to one of the {@link HttpClient#execute()}
- * methods.
- *
- * @param context the {@link HttpContext} given to the {@link HttpClient} at execution time
- * @return true if it connected to an NTLM proxy
- * @since 5.0
- */
- public static boolean detectNTLMProxy(HttpContext context) {
- return isProxyType(context, PROXY_NTLM_VALUE);
- }
-
- private static boolean isProxyType(HttpContext context, String scheme) {
- if (context == null)
- return false;
- AuthState authState = (AuthState) context.getAttribute(ClientContext.PROXY_AUTH_STATE);
- if (authState == null)
- return false;
- AuthScheme authScheme = authState.getAuthScheme();
- if (authScheme == null)
- return false;
- String schemeName = authScheme.getSchemeName();
- if (schemeName == null)
- return false;
- return schemeName.equalsIgnoreCase(scheme);
- }
-
- /**
- * This method will detect if the request connected to a SPNEGO proxy
- * given the {@link HttpContext} provided to one of the {@link HttpClient#execute()}
- * methods.
- *
- * @param context the {@link HttpContext} given to the {@link HttpClient} at execution time
- * @return true if it connected to an SPNEGO proxy
- * @since 5.0
- */
- public static boolean detectSPNEGOProxy(HttpContext context) {
- return isProxyType(context, PROXY_SPNEGO_VALUE);
- }
-}
+/*******************************************************************************
+* Copyright (c) 2009 EclipseSource 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:
+* EclipseSource - initial API and implementation
+* Thomas Joiner - changed to work with HttpClient 4.1 and added SPNEGO detection
+******************************************************************************/
+package org.eclipse.ecf.provider.filetransfer.httpclient4;
+
+import org.apache.http.auth.AuthScheme;
+import org.apache.http.auth.AuthState;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.protocol.ClientContext;
+import org.apache.http.protocol.HttpContext;
+
+public class NTLMProxyDetector {
+
+ private static final String PROXY_SPNEGO_VALUE = "NEGOTIATE"; //$NON-NLS-1$
+ private static final String PROXY_NTLM_VALUE = "NTLM"; //$NON-NLS-1$
+
+ /**
+ * This method will detect if the request connected to a NTLM proxy
+ * given the {@link HttpContext} provided to one of the {@link HttpClient#execute()}
+ * methods.
+ *
+ * @param context the {@link HttpContext} given to the {@link HttpClient} at execution time
+ * @return true if it connected to an NTLM proxy
+ * @since 5.0
+ */
+ public static boolean detectNTLMProxy(HttpContext context) {
+ return isProxyType(context, PROXY_NTLM_VALUE);
+ }
+
+ private static boolean isProxyType(HttpContext context, String scheme) {
+ if (context == null)
+ return false;
+ AuthState authState = (AuthState) context.getAttribute(ClientContext.PROXY_AUTH_STATE);
+ if (authState == null)
+ return false;
+ AuthScheme authScheme = authState.getAuthScheme();
+ if (authScheme == null)
+ return false;
+ String schemeName = authScheme.getSchemeName();
+ if (schemeName == null)
+ return false;
+ return schemeName.equalsIgnoreCase(scheme);
+ }
+
+ /**
+ * This method will detect if the request connected to a SPNEGO proxy
+ * given the {@link HttpContext} provided to one of the {@link HttpClient#execute()}
+ * methods.
+ *
+ * @param context the {@link HttpContext} given to the {@link HttpClient} at execution time
+ * @return true if it connected to an SPNEGO proxy
+ * @since 5.0
+ */
+ public static boolean detectSPNEGOProxy(HttpContext context) {
+ return isProxyType(context, PROXY_SPNEGO_VALUE);
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs
index ab935311a..9917f9f36 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs
index 6a019717a..8a0ed9f30 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs
@@ -1,357 +1,357 @@
-#Mon May 09 12:40:32 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Mon May 09 12:40:32 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs
index ab935311a..9917f9f36 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,97 +1,97 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs
index 793ca8bf0..9c2a43317 100644
--- a/providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs
@@ -1,354 +1,354 @@
-#Tue Jan 11 17:12:15 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=ignore
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Tue Jan 11 17:12:15 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=ignore
+org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java
index 264aee730..d9cd02252 100644
--- a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java
+++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java
@@ -1,42 +1,42 @@
-//Copyright 2003-2005 Arthur van Hoff, Rick Blair
-//Licensed under Apache License version 2.0
-//Original license LGPL
-
-package javax.jmdns;
-
-import java.util.EventListener;
-
-/**
- * Listener for service updates.
- *
- * @version %I%, %G%
- * @author Arthur van Hoff, Werner Randelshofer
- */
-public interface ServiceListener extends EventListener
-{
- /**
- * A service has been added.
- *
- * @param event The ServiceEvent providing the name and fully qualified type
- * of the service.
- */
- void serviceAdded(ServiceEvent event);
-
- /**
- * A service has been removed.
- *
- * @param event The ServiceEvent providing the name and fully qualified type
- * of the service.
- */
- void serviceRemoved(ServiceEvent event);
-
- /**
- * A service has been resolved. Its details are now available in the
- * ServiceInfo record.
- *
- * @param event The ServiceEvent providing the name, the fully qualified
- * type of the service, and the service info record, or null if the service
- * could not be resolved.
- */
- void serviceResolved(ServiceEvent event);
-}
+//Copyright 2003-2005 Arthur van Hoff, Rick Blair
+//Licensed under Apache License version 2.0
+//Original license LGPL
+
+package javax.jmdns;
+
+import java.util.EventListener;
+
+/**
+ * Listener for service updates.
+ *
+ * @version %I%, %G%
+ * @author Arthur van Hoff, Werner Randelshofer
+ */
+public interface ServiceListener extends EventListener
+{
+ /**
+ * A service has been added.
+ *
+ * @param event The ServiceEvent providing the name and fully qualified type
+ * of the service.
+ */
+ void serviceAdded(ServiceEvent event);
+
+ /**
+ * A service has been removed.
+ *
+ * @param event The ServiceEvent providing the name and fully qualified type
+ * of the service.
+ */
+ void serviceRemoved(ServiceEvent event);
+
+ /**
+ * A service has been resolved. Its details are now available in the
+ * ServiceInfo record.
+ *
+ * @param event The ServiceEvent providing the name, the fully qualified
+ * type of the service, and the service info record, or null if the service
+ * could not be resolved.
+ */
+ void serviceResolved(ServiceEvent event);
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java
index a3d1c835f..c0d63972f 100644
--- a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java
+++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java
@@ -1,24 +1,24 @@
-//Copyright 2003-2005 Arthur van Hoff, Rick Blair
-//Licensed under Apache License version 2.0
-//Original license LGPL
-
-package javax.jmdns;
-
-import java.util.EventListener;
-
-/**
- * Listener for service types.
- *
- * @version %I%, %G%
- * @author Arthur van Hoff, Werner Randelshofer
- */
-public interface ServiceTypeListener extends EventListener
-{
- /**
- * A new service type was discovered.
- *
- * @param event The service event providing the fully qualified type of
- * the service.
- */
- void serviceTypeAdded(ServiceEvent event);
-}
+//Copyright 2003-2005 Arthur van Hoff, Rick Blair
+//Licensed under Apache License version 2.0
+//Original license LGPL
+
+package javax.jmdns;
+
+import java.util.EventListener;
+
+/**
+ * Listener for service types.
+ *
+ * @version %I%, %G%
+ * @author Arthur van Hoff, Werner Randelshofer
+ */
+public interface ServiceTypeListener extends EventListener
+{
+ /**
+ * A new service type was discovered.
+ *
+ * @param event The service event providing the fully qualified type of
+ * the service.
+ */
+ void serviceTypeAdded(ServiceEvent event);
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.msn/.classpath b/providers/bundles/org.eclipse.ecf.provider.msn/.classpath
index d62b365d0..6f3b481ac 100644
--- a/providers/bundles/org.eclipse.ecf.provider.msn/.classpath
+++ b/providers/bundles/org.eclipse.ecf.provider.msn/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs
index 9172f32f3..fb1e301ab 100644
--- a/providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs
@@ -1,65 +1,65 @@
-#Fri Oct 15 17:08:29 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=ignore
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Fri Oct 15 17:08:29 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=ignore
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath b/providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath
index d62b365d0..6f3b481ac 100644
--- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath
+++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs
index 56b383382..e6127aa4b 100644
--- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs
@@ -1,346 +1,346 @@
-#Fri Oct 15 17:09:07 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Fri Oct 15 17:09:07 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=800
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs
index 6525bfd7e..197e26291 100644
--- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs
@@ -1,94 +1,94 @@
-#Sun Oct 17 11:34:32 PDT 2010
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Ignore
-LEAK_METHOD_RETURN_TYPE=Ignore
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+#Sun Oct 17 11:34:32 PDT 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Ignore
+LEAK_METHOD_RETURN_TYPE=Ignore
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java
index f85b69337..e90183387 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java
@@ -1,85 +1,85 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 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.internal.provider.xmpp.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.xmpp.ui.messages"; //$NON-NLS-1$
-
- public static String XMPPConnectWizardPage_WIZARD_TITLE;
- public static String XMPPConnectWizardPage_WIZARD_DESCRIPTION;
- public static String XMPPCompoundContributionItem_CHOOSE_FILE;
- public static String XMPPConnectWizard_RECEIVE_ERROR_MESSAGE;
-
- public static String XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_MESSAGE;
-
- public static String XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_TITLE;
-
- public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_MESSAGE;
-
- public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_TITLE;
-
- public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_LOG_STATUS_MESSAGE;
-
- public static String XMPPHyperlink_MESSAGING_ERROR_MESSAGE;
-
- public static String XMPPHyperlink_MESSAGING_ERROR_TITLE;
-
- public static String XMPPHyperlink_SELECT_ACCOUNT_MESSAGE;
-
- public static String XMPPHyperlink_SELECT_ACCOUNT_TITLE;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CANCEL;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CONNECT;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_SEND_MESSAGE;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_MESSAGE;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_TITLE;
-
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_TITLE;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_STATUS;
- public static String XMPPConnectWizardPage_LABEL_USERID;
- public static String XMPPConnectWizard_FILE_SAVE_TITLE;
- public static String XMPPConnectWizardPage_WIZARD_STATUS;
- public static String XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE;
- public static String XMPPConnectWizardPage_USERID_TEMPLATE;
- public static String XMPPConnectWizardPage_WIZARD_PASSWORD;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD;
- public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER;
- public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT;
- public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER_INCOMPLETE;
- public static String XMPPConnectWizard_FILE_RECEIVE_TITLE;
- public static String XMPPConnectWizard_FILE_RECEIVE_MESSAGE;
- public static String XMPPCompoundContributionItem_SEND_FILE;
- public static String XMPPConnectWizard_RECEIVE_ERROR_TITLE;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION;
- public static String XMPPCompoundContributionItem_SEND_ERROR_TITLE;
- public static String XMPPCompoundContributionItem_SEND_ERROR_MESSAGE;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD;
- public static String XMPPCompoundContributionItem_FILE_SEND_REFUSED_TITLE;
- public static String XMPPCompoundContributionItem_FILE_SEND_REFUSED_MESSAGE;
-
- public static String XMPPConnectWizard_WIZARD_TITLE;
- public static String XMPPSConnectWizard_WIZARD_TITLE;
-
- private Messages() {
- }
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 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.internal.provider.xmpp.ui;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.xmpp.ui.messages"; //$NON-NLS-1$
+
+ public static String XMPPConnectWizardPage_WIZARD_TITLE;
+ public static String XMPPConnectWizardPage_WIZARD_DESCRIPTION;
+ public static String XMPPCompoundContributionItem_CHOOSE_FILE;
+ public static String XMPPConnectWizard_RECEIVE_ERROR_MESSAGE;
+
+ public static String XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_MESSAGE;
+
+ public static String XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_TITLE;
+
+ public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_MESSAGE;
+
+ public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_TITLE;
+
+ public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_LOG_STATUS_MESSAGE;
+
+ public static String XMPPHyperlink_MESSAGING_ERROR_MESSAGE;
+
+ public static String XMPPHyperlink_MESSAGING_ERROR_TITLE;
+
+ public static String XMPPHyperlink_SELECT_ACCOUNT_MESSAGE;
+
+ public static String XMPPHyperlink_SELECT_ACCOUNT_TITLE;
+
+ public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CANCEL;
+
+ public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CONNECT;
+
+ public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_SEND_MESSAGE;
+
+ public static String XMPPHyperlink_SELECT_ACTION_DIALOG_MESSAGE;
+
+ public static String XMPPHyperlink_SELECT_ACTION_DIALOG_TITLE;
+
+ public static String XMPPSConnectWizardPage_WIZARD_PAGE_TITLE;
+ public static String XMPPSConnectWizardPage_WIZARD_PAGE_STATUS;
+ public static String XMPPConnectWizardPage_LABEL_USERID;
+ public static String XMPPConnectWizard_FILE_SAVE_TITLE;
+ public static String XMPPConnectWizardPage_WIZARD_STATUS;
+ public static String XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE;
+ public static String XMPPConnectWizardPage_USERID_TEMPLATE;
+ public static String XMPPConnectWizardPage_WIZARD_PASSWORD;
+ public static String XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD;
+ public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER;
+ public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT;
+ public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER_INCOMPLETE;
+ public static String XMPPConnectWizard_FILE_RECEIVE_TITLE;
+ public static String XMPPConnectWizard_FILE_RECEIVE_MESSAGE;
+ public static String XMPPCompoundContributionItem_SEND_FILE;
+ public static String XMPPConnectWizard_RECEIVE_ERROR_TITLE;
+ public static String XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION;
+ public static String XMPPCompoundContributionItem_SEND_ERROR_TITLE;
+ public static String XMPPCompoundContributionItem_SEND_ERROR_MESSAGE;
+ public static String XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE;
+ public static String XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD;
+ public static String XMPPCompoundContributionItem_FILE_SEND_REFUSED_TITLE;
+ public static String XMPPCompoundContributionItem_FILE_SEND_REFUSED_MESSAGE;
+
+ public static String XMPPConnectWizard_WIZARD_TITLE;
+ public static String XMPPSConnectWizard_WIZARD_TITLE;
+
+ private Messages() {
+ }
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties
index 59dc50acc..99daa48cb 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties
@@ -1,55 +1,55 @@
-################################################################################
-# Copyright (c) 2007 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
-################################################################################
-
-XMPPConnectWizardPage_WIZARD_TITLE=XMPP Connection Wizard
-XMPPConnectWizardPage_WIZARD_DESCRIPTION=Specify an XMPP account to connect to.
-XMPPCompoundContributionItem_CHOOSE_FILE=Choose File For {0}
-XMPPConnectWizard_RECEIVE_ERROR_MESSAGE=Error receiving file {0} from {1}. Error: {2}
-XMPPSConnectWizardPage_WIZARD_PAGE_TITLE=XMPPS Connection Wizard
-XMPPSConnectWizardPage_WIZARD_PAGE_STATUS=A valid User ID must be specified.
-XMPPConnectWizardPage_LABEL_USERID=User ID:
-XMPPConnectWizard_FILE_SAVE_TITLE=Save File From {0}
-XMPPConnectWizardPage_WIZARD_STATUS=A valid connect ID must be specified.
-XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE=The User ID is malformed.
-XMPPConnectWizardPage_USERID_TEMPLATE=<user>@<xmppserver>[:port]
-XMPPConnectWizardPage_WIZARD_PASSWORD=Password:
-XMPPConnectWizardPage_WIZARD_ALT_SERVER=Alternative Server (optional):
-XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT=(use 'talk.google.com' if User ID is a Google for Domains account)
-XMPPConnectWizardPage_WIZARD_ALT_SERVER_INCOMPLETE=The Alternative Server name is malformed.
-XMPPConnectWizard_FILE_RECEIVE_TITLE=File Receive Request From {0}
-XMPPConnectWizard_FILE_RECEIVE_MESSAGE=User {0} would like to send you a file called {1}\n\nThe size of the file is {2}\nDescription: {3}\n\nDo you want to receive this file?
-XMPPCompoundContributionItem_SEND_FILE=Send File
-XMPPConnectWizard_RECEIVE_ERROR_TITLE=Receive Error
-XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION=Specify an XMPPS account to connect to.
-XMPPCompoundContributionItem_SEND_ERROR_TITLE=Send Error
-XMPPCompoundContributionItem_SEND_ERROR_MESSAGE=Error sending file {0}. Error: {1}
-XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE=<user>@<xmppsserver>[:port]
-XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD=Password:
-XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD=Keystore Passphrase (optional):
-XMPPCompoundContributionItem_FILE_SEND_REFUSED_TITLE=File Send Refused
-XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_TITLE=Error opening view
-XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CONNECT=Connect to Account
-XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CANCEL=Cancel
-XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_MESSAGE=You are not currently connected so messages cannot be sent.\n\nDo you want to connect and login to {0}?
-XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_MESSAGE=Error opening view: {0}. See Error Log for Details
-XMPPCompoundContributionItem_FILE_SEND_REFUSED_MESSAGE=Send of {0} refused by {1}
-XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_LOG_STATUS_MESSAGE=Error opening messages view
-XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_SEND_MESSAGE=Send Message
-XMPPHyperlink_SELECT_ACCOUNT_TITLE=Select Account
-XMPPHyperlink_SELECT_ACCOUNT_MESSAGE=Select Account to Use
-XMPPHyperlink_SELECT_ACTION_DIALOG_TITLE=Select Action
-XMPPHyperlink_SELECT_ACTION_DIALOG_MESSAGE=The target host {0} is not the same as {1}.\n\nDo you want to:\n\n1) Send message to {2} from {3}?\n\n2) Connect and login to account {2}?
-XMPPHyperlink_MESSAGING_ERROR_TITLE=Messaging Error
-XMPPHyperlink_MESSAGING_ERROR_MESSAGE=You don't want to talk to yourself, do you?
-XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_TITLE=Connect To Account
-
-XMPPConnectWizard_WIZARD_TITLE=New XMPP Connection
-XMPPSConnectWizard_WIZARD_TITLE=New XMPPS Connection
+################################################################################
+# Copyright (c) 2007 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
+################################################################################
+
+XMPPConnectWizardPage_WIZARD_TITLE=XMPP Connection Wizard
+XMPPConnectWizardPage_WIZARD_DESCRIPTION=Specify an XMPP account to connect to.
+XMPPCompoundContributionItem_CHOOSE_FILE=Choose File For {0}
+XMPPConnectWizard_RECEIVE_ERROR_MESSAGE=Error receiving file {0} from {1}. Error: {2}
+XMPPSConnectWizardPage_WIZARD_PAGE_TITLE=XMPPS Connection Wizard
+XMPPSConnectWizardPage_WIZARD_PAGE_STATUS=A valid User ID must be specified.
+XMPPConnectWizardPage_LABEL_USERID=User ID:
+XMPPConnectWizard_FILE_SAVE_TITLE=Save File From {0}
+XMPPConnectWizardPage_WIZARD_STATUS=A valid connect ID must be specified.
+XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE=The User ID is malformed.
+XMPPConnectWizardPage_USERID_TEMPLATE=<user>@<xmppserver>[:port]
+XMPPConnectWizardPage_WIZARD_PASSWORD=Password:
+XMPPConnectWizardPage_WIZARD_ALT_SERVER=Alternative Server (optional):
+XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT=(use 'talk.google.com' if User ID is a Google for Domains account)
+XMPPConnectWizardPage_WIZARD_ALT_SERVER_INCOMPLETE=The Alternative Server name is malformed.
+XMPPConnectWizard_FILE_RECEIVE_TITLE=File Receive Request From {0}
+XMPPConnectWizard_FILE_RECEIVE_MESSAGE=User {0} would like to send you a file called {1}\n\nThe size of the file is {2}\nDescription: {3}\n\nDo you want to receive this file?
+XMPPCompoundContributionItem_SEND_FILE=Send File
+XMPPConnectWizard_RECEIVE_ERROR_TITLE=Receive Error
+XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION=Specify an XMPPS account to connect to.
+XMPPCompoundContributionItem_SEND_ERROR_TITLE=Send Error
+XMPPCompoundContributionItem_SEND_ERROR_MESSAGE=Error sending file {0}. Error: {1}
+XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE=<user>@<xmppsserver>[:port]
+XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD=Password:
+XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD=Keystore Passphrase (optional):
+XMPPCompoundContributionItem_FILE_SEND_REFUSED_TITLE=File Send Refused
+XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_TITLE=Error opening view
+XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CONNECT=Connect to Account
+XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CANCEL=Cancel
+XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_MESSAGE=You are not currently connected so messages cannot be sent.\n\nDo you want to connect and login to {0}?
+XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_MESSAGE=Error opening view: {0}. See Error Log for Details
+XMPPCompoundContributionItem_FILE_SEND_REFUSED_MESSAGE=Send of {0} refused by {1}
+XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_LOG_STATUS_MESSAGE=Error opening messages view
+XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_SEND_MESSAGE=Send Message
+XMPPHyperlink_SELECT_ACCOUNT_TITLE=Select Account
+XMPPHyperlink_SELECT_ACCOUNT_MESSAGE=Select Account to Use
+XMPPHyperlink_SELECT_ACTION_DIALOG_TITLE=Select Action
+XMPPHyperlink_SELECT_ACTION_DIALOG_MESSAGE=The target host {0} is not the same as {1}.\n\nDo you want to:\n\n1) Send message to {2} from {3}?\n\n2) Connect and login to account {2}?
+XMPPHyperlink_MESSAGING_ERROR_TITLE=Messaging Error
+XMPPHyperlink_MESSAGING_ERROR_MESSAGE=You don't want to talk to yourself, do you?
+XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_TITLE=Connect To Account
+
+XMPPConnectWizard_WIZARD_TITLE=New XMPP Connection
+XMPPSConnectWizard_WIZARD_TITLE=New XMPPS Connection
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java
index 59782ddfa..250df13f9 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java
@@ -1,324 +1,324 @@
-/****************************************************************************
- * Copyright (c) 2007, 2009 Remy Suen, 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:
- * Remy Suen <remy.suen@gmail.com> - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
-
-import java.io.*;
-import org.eclipse.ecf.core.*;
-import org.eclipse.ecf.core.events.IContainerConnectedEvent;
-import org.eclipse.ecf.core.events.IContainerEvent;
-import org.eclipse.ecf.core.identity.*;
-import org.eclipse.ecf.core.security.ConnectContextFactory;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.filetransfer.*;
-import org.eclipse.ecf.filetransfer.events.*;
-import org.eclipse.ecf.internal.provider.xmpp.ui.Activator;
-import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
-import org.eclipse.ecf.presence.*;
-import org.eclipse.ecf.presence.im.*;
-import org.eclipse.ecf.presence.ui.MessagesView;
-import org.eclipse.ecf.presence.ui.MultiRosterView;
-import org.eclipse.ecf.ui.IConnectWizard;
-import org.eclipse.ecf.ui.actions.AsynchContainerConnectAction;
-import org.eclipse.ecf.ui.dialogs.IDCreateErrorDialog;
-import org.eclipse.ecf.ui.util.PasswordCacheHelper;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-
-public class XMPPConnectWizard extends Wizard implements IConnectWizard,
- INewWizard {
-
- XMPPConnectWizardPage page;
-
- private Shell shell;
-
- // private IContainer container;
- protected IContainer container;
-
- private ID targetID;
-
- private IConnectContext connectContext;
-
- protected String usernameAtHost;
-
- public XMPPConnectWizard() {
- super();
- }
-
- public XMPPConnectWizard(String usernameAtHost) {
- this();
- this.usernameAtHost = usernameAtHost;
- }
-
- protected IIncomingFileTransferRequestListener requestListener = new IIncomingFileTransferRequestListener() {
- public void handleFileTransferRequest(
- final IFileTransferRequestEvent event) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- final String username = event.getRequesterID().getName();
- final IFileTransferInfo transferInfo = event
- .getFileTransferInfo();
- final String fileName = transferInfo.getFile().getName();
- final Object[] bindings = new Object[] { username,
- fileName,
- ((transferInfo.getFileSize() == -1) ? "unknown" //$NON-NLS-1$
- : (transferInfo.getFileSize() + " bytes")), //$NON-NLS-1$
- (transferInfo.getDescription() == null) ? "none" //$NON-NLS-1$
- : transferInfo.getDescription() };
- if (MessageDialog.openQuestion(shell, NLS.bind(
- Messages.XMPPConnectWizard_FILE_RECEIVE_TITLE,
- username), NLS.bind(
- Messages.XMPPConnectWizard_FILE_RECEIVE_MESSAGE,
- bindings))) {
- final FileDialog fd = new FileDialog(shell, SWT.OPEN);
- // XXX this should be some default path gotten from
- // preference. For now we'll have it be the user.home
- // system property
- fd.setFilterPath(System.getProperty("user.home")); //$NON-NLS-1$
- fd.setFileName(fileName);
- final int suffixLoc = fileName.lastIndexOf('.');
- if (suffixLoc != -1) {
- final String ext = fileName.substring(fileName
- .lastIndexOf('.'));
- fd.setFilterExtensions(new String[] { ext });
- }
- fd.setText(NLS.bind(
- Messages.XMPPConnectWizard_FILE_SAVE_TITLE,
- username));
- final String res = fd.open();
- if (res == null)
- event.reject();
- else {
- try {
- final FileOutputStream fos = new FileOutputStream(
- new File(res));
- event.accept(fos, new IFileTransferListener() {
- public void handleTransferEvent(
- IFileTransferEvent event) {
- // XXX Should have some some UI
- // for transfer events
- if (event instanceof IIncomingFileTransferReceiveDoneEvent) {
- try {
- fos.close();
- } catch (final IOException e) {
- }
- }
- }
- });
- } catch (final Exception e) {
- MessageDialog
- .openError(
- shell,
- Messages.XMPPConnectWizard_RECEIVE_ERROR_TITLE,
- NLS.bind(
- Messages.XMPPConnectWizard_RECEIVE_ERROR_MESSAGE,
- new Object[] {
- fileName,
- username,
- e.getLocalizedMessage() }));
- }
- }
- } else
- event.reject();
- }
- });
- }
-
- };
-
- public void addPages() {
- page = new XMPPConnectWizardPage(usernameAtHost);
- addPage(page);
- }
-
- public void init(IWorkbench workbench, IContainer container) {
- shell = workbench.getActiveWorkbenchWindow().getShell();
- this.container = container;
- this.workbench = workbench;
-
- setWindowTitle(Messages.XMPPConnectWizard_WIZARD_TITLE);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- shell = workbench.getActiveWorkbenchWindow().getShell();
- this.workbench = workbench;
- this.container = null;
- try {
- this.container = ContainerFactory.getDefault().createContainer(
- "ecf.xmpp.smack");
- } catch (final ContainerCreateException e) {
- // None
- }
-
- setWindowTitle(Messages.XMPPConnectWizard_WIZARD_TITLE);
- }
-
- private IWorkbench workbench;
- private IChatMessageSender icms;
- private ITypingMessageSender itms;
-
- private void openView() {
- try {
- final MultiRosterView view = (MultiRosterView) workbench
- .getActiveWorkbenchWindow().getActivePage()
- .showView(MultiRosterView.VIEW_ID);
- view.addContainer(container);
- } catch (final PartInitException e) {
- e.printStackTrace();
- }
- }
-
- private void displayMessage(IChatMessageEvent e) {
- final IChatMessage message = e.getChatMessage();
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- MessagesView view = (MessagesView) workbench
- .getActiveWorkbenchWindow().getActivePage()
- .findView(MessagesView.VIEW_ID);
- if (view != null) {
- final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view
- .getSite().getAdapter(
- IWorkbenchSiteProgressService.class);
- view.openTab(icms, itms, targetID, message.getFromID());
- view.showMessage(message);
- service.warnOfContentChange();
- } else {
- try {
-
- final IWorkbenchPage page = workbench
- .getActiveWorkbenchWindow().getActivePage();
- view = (MessagesView) page.showView(
- MessagesView.VIEW_ID, null,
- IWorkbenchPage.VIEW_CREATE);
- if (!page.isPartVisible(view)) {
- final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view
- .getSite()
- .getAdapter(
- IWorkbenchSiteProgressService.class);
- service.warnOfContentChange();
- }
- view.openTab(icms, itms, targetID, message.getFromID());
- view.showMessage(message);
- } catch (final PartInitException e) {
- e.printStackTrace();
- }
- }
- }
- });
- }
-
- private void displayTypingNotification(final ITypingMessageEvent e) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- final MessagesView view = (MessagesView) workbench
- .getActiveWorkbenchWindow().getActivePage()
- .findView(MessagesView.VIEW_ID);
- if (view != null)
- view.displayTypingNotification(e);
- }
- });
- }
-
- public boolean performCancel() {
- if (container != null) {
- container.dispose();
-
- IContainerManager containerManager = Activator.getDefault()
- .getContainerManager();
- if (containerManager != null) {
- containerManager.removeContainer(container);
- }
- }
-
- return super.performCancel();
- }
-
- public boolean performFinish() {
- final String connectID = page.getConnectID();
- final String password = page.getPassword();
-
- // Save combo text even if we don't successfully login
- page.saveComboText();
-
- connectContext = createConnectContext();
-
- try {
- targetID = IDFactory.getDefault().createID(
- container.getConnectNamespace(), connectID);
- } catch (final IDCreateException e) {
- new IDCreateErrorDialog(null, connectID, e).open();
- return false;
- }
-
- // Save combo items if targetID created successfully
- page.saveComboItems();
-
- final IPresenceContainerAdapter adapter = (IPresenceContainerAdapter) container
- .getAdapter(IPresenceContainerAdapter.class);
-
- container.addListener(new IContainerListener() {
- public void handleEvent(IContainerEvent event) {
- if (event instanceof IContainerConnectedEvent) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- openView();
- }
- });
- }
- }
- });
-
- final IChatManager icm = adapter.getChatManager();
- icms = icm.getChatMessageSender();
- itms = icm.getTypingMessageSender();
-
- icm.addMessageListener(new IIMMessageListener() {
- public void handleMessageEvent(IIMMessageEvent e) {
- if (e instanceof IChatMessageEvent) {
- displayMessage((IChatMessageEvent) e);
- } else if (e instanceof ITypingMessageEvent) {
- displayTypingNotification((ITypingMessageEvent) e);
- }
- }
- });
-
- final ISendFileTransferContainerAdapter ioftca = (ISendFileTransferContainerAdapter) container
- .getAdapter(ISendFileTransferContainerAdapter.class);
- ioftca.addListener(requestListener);
- // Connect
- new AsynchContainerConnectAction(container, targetID, connectContext,
- null, new Runnable() {
- public void run() {
- cachePassword(connectID, password);
- }
- }).run();
-
- return true;
- }
-
- protected void cachePassword(final String connectID, String password) {
- if (password != null && !password.equals("")) {
- final PasswordCacheHelper pwStorage = new PasswordCacheHelper(
- connectID);
- pwStorage.savePassword(password);
- }
- }
-
- protected IConnectContext createConnectContext() {
- return ConnectContextFactory.createPasswordConnectContext(page
- .getPassword());
- }
-}
+/****************************************************************************
+ * Copyright (c) 2007, 2009 Remy Suen, 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:
+ * Remy Suen <remy.suen@gmail.com> - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
+
+import java.io.*;
+import org.eclipse.ecf.core.*;
+import org.eclipse.ecf.core.events.IContainerConnectedEvent;
+import org.eclipse.ecf.core.events.IContainerEvent;
+import org.eclipse.ecf.core.identity.*;
+import org.eclipse.ecf.core.security.ConnectContextFactory;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.filetransfer.*;
+import org.eclipse.ecf.filetransfer.events.*;
+import org.eclipse.ecf.internal.provider.xmpp.ui.Activator;
+import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
+import org.eclipse.ecf.presence.*;
+import org.eclipse.ecf.presence.im.*;
+import org.eclipse.ecf.presence.ui.MessagesView;
+import org.eclipse.ecf.presence.ui.MultiRosterView;
+import org.eclipse.ecf.ui.IConnectWizard;
+import org.eclipse.ecf.ui.actions.AsynchContainerConnectAction;
+import org.eclipse.ecf.ui.dialogs.IDCreateErrorDialog;
+import org.eclipse.ecf.ui.util.PasswordCacheHelper;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.*;
+import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
+
+public class XMPPConnectWizard extends Wizard implements IConnectWizard,
+ INewWizard {
+
+ XMPPConnectWizardPage page;
+
+ private Shell shell;
+
+ // private IContainer container;
+ protected IContainer container;
+
+ private ID targetID;
+
+ private IConnectContext connectContext;
+
+ protected String usernameAtHost;
+
+ public XMPPConnectWizard() {
+ super();
+ }
+
+ public XMPPConnectWizard(String usernameAtHost) {
+ this();
+ this.usernameAtHost = usernameAtHost;
+ }
+
+ protected IIncomingFileTransferRequestListener requestListener = new IIncomingFileTransferRequestListener() {
+ public void handleFileTransferRequest(
+ final IFileTransferRequestEvent event) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ final String username = event.getRequesterID().getName();
+ final IFileTransferInfo transferInfo = event
+ .getFileTransferInfo();
+ final String fileName = transferInfo.getFile().getName();
+ final Object[] bindings = new Object[] { username,
+ fileName,
+ ((transferInfo.getFileSize() == -1) ? "unknown" //$NON-NLS-1$
+ : (transferInfo.getFileSize() + " bytes")), //$NON-NLS-1$
+ (transferInfo.getDescription() == null) ? "none" //$NON-NLS-1$
+ : transferInfo.getDescription() };
+ if (MessageDialog.openQuestion(shell, NLS.bind(
+ Messages.XMPPConnectWizard_FILE_RECEIVE_TITLE,
+ username), NLS.bind(
+ Messages.XMPPConnectWizard_FILE_RECEIVE_MESSAGE,
+ bindings))) {
+ final FileDialog fd = new FileDialog(shell, SWT.OPEN);
+ // XXX this should be some default path gotten from
+ // preference. For now we'll have it be the user.home
+ // system property
+ fd.setFilterPath(System.getProperty("user.home")); //$NON-NLS-1$
+ fd.setFileName(fileName);
+ final int suffixLoc = fileName.lastIndexOf('.');
+ if (suffixLoc != -1) {
+ final String ext = fileName.substring(fileName
+ .lastIndexOf('.'));
+ fd.setFilterExtensions(new String[] { ext });
+ }
+ fd.setText(NLS.bind(
+ Messages.XMPPConnectWizard_FILE_SAVE_TITLE,
+ username));
+ final String res = fd.open();
+ if (res == null)
+ event.reject();
+ else {
+ try {
+ final FileOutputStream fos = new FileOutputStream(
+ new File(res));
+ event.accept(fos, new IFileTransferListener() {
+ public void handleTransferEvent(
+ IFileTransferEvent event) {
+ // XXX Should have some some UI
+ // for transfer events
+ if (event instanceof IIncomingFileTransferReceiveDoneEvent) {
+ try {
+ fos.close();
+ } catch (final IOException e) {
+ }
+ }
+ }
+ });
+ } catch (final Exception e) {
+ MessageDialog
+ .openError(
+ shell,
+ Messages.XMPPConnectWizard_RECEIVE_ERROR_TITLE,
+ NLS.bind(
+ Messages.XMPPConnectWizard_RECEIVE_ERROR_MESSAGE,
+ new Object[] {
+ fileName,
+ username,
+ e.getLocalizedMessage() }));
+ }
+ }
+ } else
+ event.reject();
+ }
+ });
+ }
+
+ };
+
+ public void addPages() {
+ page = new XMPPConnectWizardPage(usernameAtHost);
+ addPage(page);
+ }
+
+ public void init(IWorkbench workbench, IContainer container) {
+ shell = workbench.getActiveWorkbenchWindow().getShell();
+ this.container = container;
+ this.workbench = workbench;
+
+ setWindowTitle(Messages.XMPPConnectWizard_WIZARD_TITLE);
+ }
+
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ shell = workbench.getActiveWorkbenchWindow().getShell();
+ this.workbench = workbench;
+ this.container = null;
+ try {
+ this.container = ContainerFactory.getDefault().createContainer(
+ "ecf.xmpp.smack");
+ } catch (final ContainerCreateException e) {
+ // None
+ }
+
+ setWindowTitle(Messages.XMPPConnectWizard_WIZARD_TITLE);
+ }
+
+ private IWorkbench workbench;
+ private IChatMessageSender icms;
+ private ITypingMessageSender itms;
+
+ private void openView() {
+ try {
+ final MultiRosterView view = (MultiRosterView) workbench
+ .getActiveWorkbenchWindow().getActivePage()
+ .showView(MultiRosterView.VIEW_ID);
+ view.addContainer(container);
+ } catch (final PartInitException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void displayMessage(IChatMessageEvent e) {
+ final IChatMessage message = e.getChatMessage();
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ MessagesView view = (MessagesView) workbench
+ .getActiveWorkbenchWindow().getActivePage()
+ .findView(MessagesView.VIEW_ID);
+ if (view != null) {
+ final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view
+ .getSite().getAdapter(
+ IWorkbenchSiteProgressService.class);
+ view.openTab(icms, itms, targetID, message.getFromID());
+ view.showMessage(message);
+ service.warnOfContentChange();
+ } else {
+ try {
+
+ final IWorkbenchPage page = workbench
+ .getActiveWorkbenchWindow().getActivePage();
+ view = (MessagesView) page.showView(
+ MessagesView.VIEW_ID, null,
+ IWorkbenchPage.VIEW_CREATE);
+ if (!page.isPartVisible(view)) {
+ final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view
+ .getSite()
+ .getAdapter(
+ IWorkbenchSiteProgressService.class);
+ service.warnOfContentChange();
+ }
+ view.openTab(icms, itms, targetID, message.getFromID());
+ view.showMessage(message);
+ } catch (final PartInitException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ });
+ }
+
+ private void displayTypingNotification(final ITypingMessageEvent e) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ final MessagesView view = (MessagesView) workbench
+ .getActiveWorkbenchWindow().getActivePage()
+ .findView(MessagesView.VIEW_ID);
+ if (view != null)
+ view.displayTypingNotification(e);
+ }
+ });
+ }
+
+ public boolean performCancel() {
+ if (container != null) {
+ container.dispose();
+
+ IContainerManager containerManager = Activator.getDefault()
+ .getContainerManager();
+ if (containerManager != null) {
+ containerManager.removeContainer(container);
+ }
+ }
+
+ return super.performCancel();
+ }
+
+ public boolean performFinish() {
+ final String connectID = page.getConnectID();
+ final String password = page.getPassword();
+
+ // Save combo text even if we don't successfully login
+ page.saveComboText();
+
+ connectContext = createConnectContext();
+
+ try {
+ targetID = IDFactory.getDefault().createID(
+ container.getConnectNamespace(), connectID);
+ } catch (final IDCreateException e) {
+ new IDCreateErrorDialog(null, connectID, e).open();
+ return false;
+ }
+
+ // Save combo items if targetID created successfully
+ page.saveComboItems();
+
+ final IPresenceContainerAdapter adapter = (IPresenceContainerAdapter) container
+ .getAdapter(IPresenceContainerAdapter.class);
+
+ container.addListener(new IContainerListener() {
+ public void handleEvent(IContainerEvent event) {
+ if (event instanceof IContainerConnectedEvent) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ openView();
+ }
+ });
+ }
+ }
+ });
+
+ final IChatManager icm = adapter.getChatManager();
+ icms = icm.getChatMessageSender();
+ itms = icm.getTypingMessageSender();
+
+ icm.addMessageListener(new IIMMessageListener() {
+ public void handleMessageEvent(IIMMessageEvent e) {
+ if (e instanceof IChatMessageEvent) {
+ displayMessage((IChatMessageEvent) e);
+ } else if (e instanceof ITypingMessageEvent) {
+ displayTypingNotification((ITypingMessageEvent) e);
+ }
+ }
+ });
+
+ final ISendFileTransferContainerAdapter ioftca = (ISendFileTransferContainerAdapter) container
+ .getAdapter(ISendFileTransferContainerAdapter.class);
+ ioftca.addListener(requestListener);
+ // Connect
+ new AsynchContainerConnectAction(container, targetID, connectContext,
+ null, new Runnable() {
+ public void run() {
+ cachePassword(connectID, password);
+ }
+ }).run();
+
+ return true;
+ }
+
+ protected void cachePassword(final String connectID, String password) {
+ if (password != null && !password.equals("")) {
+ final PasswordCacheHelper pwStorage = new PasswordCacheHelper(
+ connectID);
+ pwStorage.savePassword(password);
+ }
+ }
+
+ protected IConnectContext createConnectContext() {
+ return ConnectContextFactory.createPasswordConnectContext(page
+ .getPassword());
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java
index c58b941b7..1c8250c82 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java
@@ -1,117 +1,117 @@
-/****************************************************************************
- * Copyright (c) 2007 Remy Suen, 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:
- * Remy Suen <remy.suen@gmail.com> - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
-
-import java.io.IOException;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.eclipse.ecf.core.*;
-import org.eclipse.ecf.core.security.*;
-import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-public final class XMPPSConnectWizard extends XMPPConnectWizard {
-
- public XMPPSConnectWizard() {
- super();
- }
-
- public XMPPSConnectWizard(String uri) {
- super(uri);
- }
-
- public void addPages() {
- page = new XMPPSConnectWizardPage(usernameAtHost);
- addPage(page);
- }
-
- public void init(IWorkbench workbench, IContainer container) {
- super.init(workbench, container);
-
- setWindowTitle(Messages.XMPPSConnectWizard_WIZARD_TITLE);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- super.init(workbench, selection);
- try {
- this.container = ContainerFactory.getDefault().createContainer(
- "ecf.xmpps.smack");
- } catch (ContainerCreateException e) {
- // None
- }
-
- setWindowTitle(Messages.XMPPSConnectWizard_WIZARD_TITLE);
- }
-
- protected IConnectContext createConnectContext() {
- // Extract passwords from page prior to widget disposal:
- final String password = page.getPassword();
- final String keystorePassword = ((XMPPSConnectWizardPage) page)
- .getKeystorePassword();
-
- // Use a context capable of both ECF and javax.security Callback:
- return new IConnectContext() {
- public CallbackHandler getCallbackHandler() {
- return new DualCallbackHandler(password, keystorePassword);
- }
- };
- }
-
- /**
- * <p>
- * Wrapper class for handling both ECF and javax.security Callback needs.
- * Will delegate ECF Callback to a handler created by
- * {@link ConnectContextFactory}.
- * </p>
- * <p>
- * Currently only handles
- * {@link javax.security.auth.callback.PasswordCallback} for javax.security
- * Callback for XMPPConnection class from org.jivesoftware.smack.
- * </p>
- *
- * @author T. Yueh
- */
- class DualCallbackHandler implements CallbackHandler,
- javax.security.auth.callback.CallbackHandler {
- /**
- * Handler for all ECF Callback.
- */
- CallbackHandler delegate;
-
- /**
- * User input for keystore password. Since keystore impl (PKI vs JKS vs
- * etc) is hidden via interface, all that is necessary is a password.
- */
- String keystorePassword;
-
- public DualCallbackHandler(String password, String keystorePassword) {
- delegate = ConnectContextFactory.createPasswordConnectContext(
- password).getCallbackHandler();
- this.keystorePassword = keystorePassword;
- }
-
- public void handle(Callback[] acallback) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < acallback.length; i++)
- if (acallback[i] instanceof PasswordCallback)
- ((javax.security.auth.callback.PasswordCallback) acallback[i])
- .setPassword(keystorePassword.toCharArray());
-
- }
-
- public void handle(org.eclipse.ecf.core.security.Callback[] callbacks)
- throws IOException,
- org.eclipse.ecf.core.security.UnsupportedCallbackException {
- delegate.handle(callbacks);
- }
- }
-}
+/****************************************************************************
+ * Copyright (c) 2007 Remy Suen, 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:
+ * Remy Suen <remy.suen@gmail.com> - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
+
+import java.io.IOException;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import org.eclipse.ecf.core.*;
+import org.eclipse.ecf.core.security.*;
+import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbench;
+
+public final class XMPPSConnectWizard extends XMPPConnectWizard {
+
+ public XMPPSConnectWizard() {
+ super();
+ }
+
+ public XMPPSConnectWizard(String uri) {
+ super(uri);
+ }
+
+ public void addPages() {
+ page = new XMPPSConnectWizardPage(usernameAtHost);
+ addPage(page);
+ }
+
+ public void init(IWorkbench workbench, IContainer container) {
+ super.init(workbench, container);
+
+ setWindowTitle(Messages.XMPPSConnectWizard_WIZARD_TITLE);
+ }
+
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ super.init(workbench, selection);
+ try {
+ this.container = ContainerFactory.getDefault().createContainer(
+ "ecf.xmpps.smack");
+ } catch (ContainerCreateException e) {
+ // None
+ }
+
+ setWindowTitle(Messages.XMPPSConnectWizard_WIZARD_TITLE);
+ }
+
+ protected IConnectContext createConnectContext() {
+ // Extract passwords from page prior to widget disposal:
+ final String password = page.getPassword();
+ final String keystorePassword = ((XMPPSConnectWizardPage) page)
+ .getKeystorePassword();
+
+ // Use a context capable of both ECF and javax.security Callback:
+ return new IConnectContext() {
+ public CallbackHandler getCallbackHandler() {
+ return new DualCallbackHandler(password, keystorePassword);
+ }
+ };
+ }
+
+ /**
+ * <p>
+ * Wrapper class for handling both ECF and javax.security Callback needs.
+ * Will delegate ECF Callback to a handler created by
+ * {@link ConnectContextFactory}.
+ * </p>
+ * <p>
+ * Currently only handles
+ * {@link javax.security.auth.callback.PasswordCallback} for javax.security
+ * Callback for XMPPConnection class from org.jivesoftware.smack.
+ * </p>
+ *
+ * @author T. Yueh
+ */
+ class DualCallbackHandler implements CallbackHandler,
+ javax.security.auth.callback.CallbackHandler {
+ /**
+ * Handler for all ECF Callback.
+ */
+ CallbackHandler delegate;
+
+ /**
+ * User input for keystore password. Since keystore impl (PKI vs JKS vs
+ * etc) is hidden via interface, all that is necessary is a password.
+ */
+ String keystorePassword;
+
+ public DualCallbackHandler(String password, String keystorePassword) {
+ delegate = ConnectContextFactory.createPasswordConnectContext(
+ password).getCallbackHandler();
+ this.keystorePassword = keystorePassword;
+ }
+
+ public void handle(Callback[] acallback) throws IOException,
+ UnsupportedCallbackException {
+ for (int i = 0; i < acallback.length; i++)
+ if (acallback[i] instanceof PasswordCallback)
+ ((javax.security.auth.callback.PasswordCallback) acallback[i])
+ .setPassword(keystorePassword.toCharArray());
+
+ }
+
+ public void handle(org.eclipse.ecf.core.security.Callback[] callbacks)
+ throws IOException,
+ org.eclipse.ecf.core.security.UnsupportedCallbackException {
+ delegate.handle(callbacks);
+ }
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java
index fbbccc09e..5d731c827 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java
@@ -1,144 +1,144 @@
-/****************************************************************************
- * Copyright (c) 2007 Remy Suen, 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:
- * Remy Suen <remy.suen@gmail.com> - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
-
-import java.util.regex.Matcher;
-import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-final class XMPPSConnectWizardPage extends XMPPConnectWizardPage {
-
- private Text keystorePasswordText;
-
- XMPPSConnectWizardPage() {
- super();
- setTitle(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TITLE);
- setDescription(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION);
- setPageComplete(false);
- }
-
- XMPPSConnectWizardPage(String usernameAtHost) {
- this();
- this.usernameAtHost = usernameAtHost;
- }
-
- private void verify() {
- final String text = connectText.getText();
- if (text.equals("")) { //$NON-NLS-1$
- updateStatus(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_STATUS);
- } else {
- final Matcher matcher = emailPattern.matcher(text);
- if (!matcher.matches()) {
- updateStatus(Messages.XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE);
- } else {
- restorePassword(text);
- updateStatus(null);
- }
- }
- }
-
- public void createControl(Composite parent) {
-
- parent = new Composite(parent, SWT.NONE);
-
- parent.setLayout(new GridLayout());
- final GridData fillData = new GridData(SWT.FILL, SWT.CENTER, true,
- false);
- final GridData endData = new GridData(SWT.FILL, SWT.CENTER, true,
- false, 2, 1);
-
- Label label = new Label(parent, SWT.LEFT);
- label.setText(Messages.XMPPConnectWizardPage_LABEL_USERID);
-
- connectText = new Combo(parent, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN);
- connectText.setLayoutData(fillData);
- connectText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- verify();
- }
- });
- connectText.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- verify();
- }
-
- public void widgetSelected(SelectionEvent e) {
- verify();
- }
- });
-
- label = new Label(parent, SWT.RIGHT);
- label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE);
- label.setLayoutData(endData);
-
- label = new Label(parent, SWT.LEFT);
- label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER);
-
- serverText = new Text(parent, SWT.SINGLE | SWT.BORDER);
- serverText.setLayoutData(fillData);
- serverText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- verify();
- }
- });
- serverText.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- verify();
- }
-
- public void widgetSelected(SelectionEvent e) {
- verify();
- }
- });
-
- label = new Label(parent, SWT.RIGHT);
- label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT);
- label.setLayoutData(endData);
-
- label = new Label(parent, SWT.LEFT);
- label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD);
- passwordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD | SWT.BORDER);
- passwordText.setLayoutData(fillData);
-
- restoreCombo();
-
- label = new Label(parent, SWT.LEFT);
- label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD);
- keystorePasswordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD
- | SWT.BORDER);
- keystorePasswordText.setLayoutData(fillData);
-
- if (usernameAtHost != null) {
- connectText.setText(usernameAtHost);
- restorePassword(usernameAtHost);
- passwordText.setFocus();
- }
-
- verify();
-
- if (connectText.getText().equals("")) {
- updateStatus(null);
- setPageComplete(false);
- } else if (isPageComplete())
- passwordText.setFocus();
-
- org.eclipse.jface.dialogs.Dialog.applyDialogFont(parent);
- setControl(parent);
- }
-
- String getKeystorePassword() {
- return keystorePasswordText.getText();
- }
-}
+/****************************************************************************
+ * Copyright (c) 2007 Remy Suen, 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:
+ * Remy Suen <remy.suen@gmail.com> - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
+
+import java.util.regex.Matcher;
+import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.*;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.*;
+
+final class XMPPSConnectWizardPage extends XMPPConnectWizardPage {
+
+ private Text keystorePasswordText;
+
+ XMPPSConnectWizardPage() {
+ super();
+ setTitle(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TITLE);
+ setDescription(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION);
+ setPageComplete(false);
+ }
+
+ XMPPSConnectWizardPage(String usernameAtHost) {
+ this();
+ this.usernameAtHost = usernameAtHost;
+ }
+
+ private void verify() {
+ final String text = connectText.getText();
+ if (text.equals("")) { //$NON-NLS-1$
+ updateStatus(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_STATUS);
+ } else {
+ final Matcher matcher = emailPattern.matcher(text);
+ if (!matcher.matches()) {
+ updateStatus(Messages.XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE);
+ } else {
+ restorePassword(text);
+ updateStatus(null);
+ }
+ }
+ }
+
+ public void createControl(Composite parent) {
+
+ parent = new Composite(parent, SWT.NONE);
+
+ parent.setLayout(new GridLayout());
+ final GridData fillData = new GridData(SWT.FILL, SWT.CENTER, true,
+ false);
+ final GridData endData = new GridData(SWT.FILL, SWT.CENTER, true,
+ false, 2, 1);
+
+ Label label = new Label(parent, SWT.LEFT);
+ label.setText(Messages.XMPPConnectWizardPage_LABEL_USERID);
+
+ connectText = new Combo(parent, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN);
+ connectText.setLayoutData(fillData);
+ connectText.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ verify();
+ }
+ });
+ connectText.addSelectionListener(new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ verify();
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ verify();
+ }
+ });
+
+ label = new Label(parent, SWT.RIGHT);
+ label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE);
+ label.setLayoutData(endData);
+
+ label = new Label(parent, SWT.LEFT);
+ label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER);
+
+ serverText = new Text(parent, SWT.SINGLE | SWT.BORDER);
+ serverText.setLayoutData(fillData);
+ serverText.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ verify();
+ }
+ });
+ serverText.addSelectionListener(new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ verify();
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ verify();
+ }
+ });
+
+ label = new Label(parent, SWT.RIGHT);
+ label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT);
+ label.setLayoutData(endData);
+
+ label = new Label(parent, SWT.LEFT);
+ label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD);
+ passwordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD | SWT.BORDER);
+ passwordText.setLayoutData(fillData);
+
+ restoreCombo();
+
+ label = new Label(parent, SWT.LEFT);
+ label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD);
+ keystorePasswordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD
+ | SWT.BORDER);
+ keystorePasswordText.setLayoutData(fillData);
+
+ if (usernameAtHost != null) {
+ connectText.setText(usernameAtHost);
+ restorePassword(usernameAtHost);
+ passwordText.setFocus();
+ }
+
+ verify();
+
+ if (connectText.getText().equals("")) {
+ updateStatus(null);
+ setPageComplete(false);
+ } else if (isPageComplete())
+ passwordText.setFocus();
+
+ org.eclipse.jface.dialogs.Dialog.applyDialogFont(parent);
+ setControl(parent);
+ }
+
+ String getKeystorePassword() {
+ return keystorePasswordText.getText();
+ }
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java
index 620938df5..d374b4f6c 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java
@@ -1,522 +1,522 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.internal.provider.xmpp.smack;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.ecf.core.ContainerConnectException;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.security.CallbackHandler;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.internal.provider.xmpp.XmppPlugin;
-import org.eclipse.ecf.provider.comm.DisconnectEvent;
-import org.eclipse.ecf.provider.comm.IAsynchEventHandler;
-import org.eclipse.ecf.provider.comm.IConnectionListener;
-import org.eclipse.ecf.provider.comm.ISynchAsynchConnection;
-import org.eclipse.ecf.provider.xmpp.identity.XMPPID;
-import org.eclipse.ecf.provider.xmpp.identity.XMPPRoomID;
-import org.jivesoftware.smack.Chat;
-import org.jivesoftware.smack.ConnectionConfiguration;
-import org.jivesoftware.smack.ConnectionListener;
-import org.jivesoftware.smack.MessageListener;
-import org.jivesoftware.smack.PacketListener;
-import org.jivesoftware.smack.Roster;
-import org.jivesoftware.smack.RosterEntry;
-import org.jivesoftware.smack.SASLAuthentication;
-import org.jivesoftware.smack.SmackConfiguration;
-import org.jivesoftware.smack.XMPPConnection;
-import org.jivesoftware.smack.XMPPException;
-import org.jivesoftware.smack.packet.Bind;
-import org.jivesoftware.smack.packet.IQ;
-import org.jivesoftware.smack.packet.Message;
-import org.jivesoftware.smack.packet.Message.Type;
-import org.jivesoftware.smack.packet.Packet;
-import org.jivesoftware.smack.packet.Presence;
-
-public class ECFConnection implements ISynchAsynchConnection {
-
- /**
- *
- */
- private static final String GOOGLE_TALK_HOST = "talk.google.com";
- public static final String CLIENT_TYPE = "ecf.";
- public static final boolean DEBUG = Boolean.getBoolean("smack.debug");
-
- protected static final String STRING_ENCODING = "UTF-8";
- public static final String OBJECT_PROPERTY_NAME = ECFConnection.class
- .getName() + ".object";
- protected static final int XMPP_DEFAULT_PORT = 5222;
- protected static final int XMPPS_DEFAULT_PORT = 5223;
-
- private XMPPConnection connection = null;
- private IAsynchEventHandler handler = null;
- private boolean isStarted = false;
- private int serverPort = -1;
- private String serverResource;
- private final Map properties = null;
- private boolean isConnected = false;
- private Namespace namespace = null;
-
- private boolean google = false;
-
- private boolean disconnecting = false;
-
- private int BIND_TIMEOUT = new Integer(System.getProperty(
- "org.eclipse.ecf.provider.xmpp.ECFConnection.bindTimeout", "15000"))
- .intValue();
-
- private Object bindLock = new Object();
-
- private String jid;
-
- private CallbackHandler callbackHandler;
-
- private final PacketListener packetListener = new PacketListener() {
- public void processPacket(Packet arg0) {
- handlePacket(arg0);
- }
- };
-
- private final ConnectionListener connectionListener = new ConnectionListener() {
- public void connectionClosed() {
- handleConnectionClosed(new IOException("Connection reset by peer"));
- }
-
- public void connectionClosedOnError(Exception e) {
- handleConnectionClosed(e);
- }
-
- public void reconnectingIn(int seconds) {
- }
-
- public void reconnectionFailed(Exception e) {
- }
-
- public void reconnectionSuccessful() {
- }
- };
-
- protected void logException(String msg, Throwable t) {
- XmppPlugin.log(msg, t);
- }
-
- public Map getProperties() {
- return properties;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter == null)
- return null;
- if (adapter.isInstance(this))
- return this;
- final IAdapterManager adapterManager = XmppPlugin.getDefault()
- .getAdapterManager();
- return (adapterManager == null) ? null : adapterManager.loadAdapter(
- this, adapter.getName());
- }
-
- public XMPPConnection getXMPPConnection() {
- return connection;
- }
-
- public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h) {
- this(google, ns, h, null);
- }
-
- public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h,
- CallbackHandler ch) {
- this.handler = h;
- this.namespace = ns;
- this.google = google;
- this.callbackHandler = ch;
- if (DEBUG)
- XMPPConnection.DEBUG_ENABLED = true;
- }
-
- protected String getPasswordForObject(Object data) {
- String password = null;
- try {
- password = (String) data;
- } catch (final ClassCastException e) {
- return null;
- }
- return password;
- }
-
- private XMPPID getXMPPID(ID remote) throws ECFException {
- XMPPID jabberID = null;
- try {
- jabberID = (XMPPID) remote;
- } catch (final ClassCastException e) {
- throw new ECFException(e);
- }
- return jabberID;
- }
-
- public synchronized Object connect(ID remote, Object data, int timeout)
- throws ECFException {
- if (connection != null)
- throw new ECFException("already connected");
- if (timeout > 0)
- SmackConfiguration.setPacketReplyTimeout(timeout);
- Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
-
- final XMPPID jabberURI = getXMPPID(remote);
-
- String username = jabberURI.getNodename();
- String hostname = jabberURI.getHostname();
- String hostnameOverride = null;
-
- // Check for the URI form of "joe@bloggs.org;talk.google.com", which
- // would at this point would have
- // - username = "joe"
- // - hostname = "blogs.org;talk.google.com"
- // - hostnameOverride = null
- //
- // We need to turn this into:
- // - username = "joe"
- // - hostname = "bloggs.org"
- // - hostnameOverride = "talk.google.com"
-
- int semiColonIdx = hostname.lastIndexOf(';');
- if (semiColonIdx != -1) {
- hostnameOverride = hostname.substring(semiColonIdx + 1);
- hostname = hostname.substring(0, semiColonIdx);
- }
-
- if (google && hostnameOverride == null) {
- hostnameOverride = GOOGLE_TALK_HOST;
- }
- final String serviceName = hostname;
-
- serverPort = jabberURI.getPort();
- serverResource = jabberURI.getResourceName();
- if (serverResource == null
- || serverResource.equals(XMPPID.PATH_DELIMITER)) {
- serverResource = getClientIdentifier();
- jabberURI.setResourceName(serverResource);
- }
- try {
- ConnectionConfiguration config;
- if (hostnameOverride != null) {
- config = new ConnectionConfiguration(hostnameOverride,
- XMPP_DEFAULT_PORT, serviceName);
- } else if (serverPort == -1) {
- config = new ConnectionConfiguration(serviceName);
- } else {
- config = new ConnectionConfiguration(serviceName, serverPort);
- }
- config.setSendPresence(true);
- // Handler is only used if server requires certificate for
- // authentication; handler should provide keystore password:
- if (callbackHandler instanceof javax.security.auth.callback.CallbackHandler) {
- config.setCallbackHandler((javax.security.auth.callback.CallbackHandler) callbackHandler);
- }
- connection = new XMPPConnection(config);
- connection.connect();
-
- SASLAuthentication.supportSASLMechanism("PLAIN", 0);
-
- if (google || GOOGLE_TALK_HOST.equals(hostnameOverride)) {
- username = username + "@" + serviceName;
- }
-
- connection.addPacketListener(packetListener, null);
- connection.addConnectionListener(connectionListener);
-
- // Login
- connection.login(username, (String) data, serverResource);
-
- waitForBindResult();
-
- } catch (final XMPPException e) {
- throw new ContainerConnectException("Login attempt failed", e);
- }
- return jid;
- }
-
- private void waitForBindResult() throws XMPPException {
- // We'll wait a maximum of
- long bindTimeout = System.currentTimeMillis() + BIND_TIMEOUT;
- synchronized (bindLock) {
- while (jid == null && System.currentTimeMillis() < bindTimeout) {
- try {
- bindLock.wait(1000);
- } catch (InterruptedException e) {
- }
- }
- if (jid == null)
- throw new XMPPException(
- "timeout waiting for server bind result");
- isConnected = true;
- }
- }
-
- private String getClientIdentifier() {
- return CLIENT_TYPE + handler.getEventHandlerID().getName();
- }
-
- public void sendPacket(Packet packet) throws XMPPException {
- if (connection != null)
- connection.sendPacket(packet);
- }
-
- public synchronized void disconnect() {
- disconnecting = true;
- if (isStarted()) {
- stop();
- }
- if (connection != null) {
- connection.removePacketListener(packetListener);
- connection.removeConnectionListener(connectionListener);
- connection.disconnect();
- connection = null;
- synchronized (bindLock) {
- jid = null;
- isConnected = false;
- }
- }
- }
-
- public synchronized boolean isConnected() {
- return (isConnected);
- }
-
- public synchronized ID getLocalID() {
- if (!isConnected())
- return null;
- try {
- return IDFactory.getDefault().createID(namespace.getName(),
- new Object[] { connection.getConnectionID() });
- } catch (final Exception e) {
- logException("Exception in getLocalID", e);
- return null;
- }
- }
-
- public synchronized void start() {
- if (isStarted())
- return;
- isStarted = true;
- }
-
- public boolean isStarted() {
- return isStarted;
- }
-
- public synchronized void stop() {
- isStarted = false;
- }
-
- protected void handleConnectionClosed(Exception e) {
- if (!disconnecting) {
- disconnecting = true;
- handler.handleDisconnectEvent(new DisconnectEvent(this, e, null));
- }
- }
-
- protected void handlePacket(Packet arg0) {
- handleJidPacket(arg0);
- try {
- final Object val = arg0.getProperty(OBJECT_PROPERTY_NAME);
- if (val != null) {
- handler.handleAsynchEvent(new ECFConnectionObjectPacketEvent(
- this, arg0, val));
- } else {
- handler.handleAsynchEvent(new ECFConnectionPacketEvent(this,
- arg0));
- }
- } catch (final IOException e) {
- logException("Exception in handleAsynchEvent", e);
- try {
- disconnect();
- } catch (final Exception e1) {
- logException("Exception in disconnect()", e1);
- }
- }
- }
-
- private void handleJidPacket(Packet packet) {
- if (jid != null)
- return;
- if (packet instanceof IQ) {
- IQ iqPacket = (IQ) packet;
- if (iqPacket.getType().equals(IQ.Type.RESULT)
- && iqPacket instanceof Bind) {
- Bind bindPacket = (Bind) iqPacket;
- synchronized (bindLock) {
- jid = bindPacket.getJid();
- bindLock.notify();
- }
- }
- }
- }
-
- public synchronized void sendAsynch(ID receiver, byte[] data)
- throws IOException {
- if (data == null)
- throw new IOException("no data");
- final Message aMsg = new Message();
- aMsg.setProperty(OBJECT_PROPERTY_NAME, data);
- sendMessage(receiver, aMsg);
- }
-
- protected void sendMessage(ID receiver, Message aMsg) throws IOException {
- synchronized (this) {
- if (!isConnected())
- throw new IOException("not connected");
- try {
- if (receiver == null)
- throw new IOException(
- "receiver cannot be null for xmpp instant messaging");
- else if (receiver instanceof XMPPID) {
- final XMPPID rcvr = (XMPPID) receiver;
- aMsg.setType(Message.Type.chat);
- final String receiverName = rcvr.getFQName();
- final Chat localChat = connection.getChatManager()
- .createChat(receiverName, new MessageListener() {
- public void processMessage(Chat chat,
- Message message) {
- }
- });
- localChat.sendMessage(aMsg);
- } else if (receiver instanceof XMPPRoomID) {
- final XMPPRoomID roomID = (XMPPRoomID) receiver;
- aMsg.setType(Message.Type.groupchat);
- final String to = roomID.getMucString();
- aMsg.setTo(to);
- connection.sendPacket(aMsg);
- } else
- throw new IOException(
- "receiver must be of type XMPPID or XMPPRoomID");
- } catch (final XMPPException e) {
- final IOException result = new IOException(
- "XMPPException in sendMessage: " + e.getMessage());
- result.setStackTrace(e.getStackTrace());
- throw result;
- }
- }
- }
-
- public synchronized Object sendSynch(ID receiver, byte[] data)
- throws IOException {
- if (data == null)
- throw new IOException("data cannot be null");
- // This is assumed to be disconnect...so we'll just disconnect
- // disconnect();
- return null;
- }
-
- public void addListener(IConnectionListener listener) {
- // XXX Not yet implemented
- }
-
- public void removeListener(IConnectionListener listener) {
- // XXX Not yet implemented
- }
-
- public void sendMessage(ID target, String message) throws IOException {
- if (target == null)
- throw new IOException("target cannot be null");
- if (message == null)
- throw new IOException("message cannot be null");
- final Message aMsg = new Message();
- aMsg.setBody(message);
- sendMessage(target, aMsg);
- }
-
- public static Map getPropertiesFromPacket(Packet packet) {
- final Map result = new HashMap();
- final Iterator i = packet.getPropertyNames().iterator();
- for (; i.hasNext();) {
- final String name = (String) i.next();
- result.put(name, packet.getProperty(name));
- }
- return result;
- }
-
- public static Packet setPropertiesInPacket(Packet input, Map properties) {
- if (properties != null) {
- for (final Iterator i = properties.keySet().iterator(); i.hasNext();) {
- final Object keyo = i.next();
- final Object val = properties.get(keyo);
- final String key = (keyo instanceof String) ? (String) keyo
- : keyo.toString();
- input.setProperty(key, val);
- }
- }
- return input;
- }
-
- public void sendMessage(ID target, ID thread, Type type, String subject,
- String body, Map properties2) throws IOException {
- if (target == null)
- throw new IOException("XMPP target for message cannot be null");
- if (body == null)
- body = "";
- final Message aMsg = new Message();
- aMsg.setBody(body);
- if (thread != null)
- aMsg.setThread(thread.getName());
- if (type != null)
- aMsg.setType(type);
- if (subject != null)
- aMsg.setSubject(subject);
- setPropertiesInPacket(aMsg, properties2);
- sendMessage(target, aMsg);
- }
-
- public void sendPresenceUpdate(ID target, Presence presence)
- throws IOException {
- if (presence == null)
- throw new IOException("presence cannot be null");
- presence.setFrom(connection.getUser());
- if (target != null)
- presence.setTo(target.getName());
- synchronized (this) {
- if (!isConnected())
- throw new IOException("not connected");
- connection.sendPacket(presence);
- }
- }
-
- public void sendRosterAdd(String user, String name, String[] groups)
- throws IOException, XMPPException {
- final Roster r = getRoster();
- r.createEntry(user, name, groups);
- }
-
- public void sendRosterRemove(String user) throws XMPPException, IOException {
- final Roster r = getRoster();
- final RosterEntry re = r.getEntry(user);
- r.removeEntry(re);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.xmpp.IIMMessageSender#getRoster()
- */
- public Roster getRoster() throws IOException {
- if (connection == null || !connection.isConnected())
- return null;
- return connection.getRoster();
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2004 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.internal.provider.xmpp.smack;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import org.eclipse.core.runtime.IAdapterManager;
+import org.eclipse.ecf.core.ContainerConnectException;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.identity.IDFactory;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.core.security.CallbackHandler;
+import org.eclipse.ecf.core.util.ECFException;
+import org.eclipse.ecf.internal.provider.xmpp.XmppPlugin;
+import org.eclipse.ecf.provider.comm.DisconnectEvent;
+import org.eclipse.ecf.provider.comm.IAsynchEventHandler;
+import org.eclipse.ecf.provider.comm.IConnectionListener;
+import org.eclipse.ecf.provider.comm.ISynchAsynchConnection;
+import org.eclipse.ecf.provider.xmpp.identity.XMPPID;
+import org.eclipse.ecf.provider.xmpp.identity.XMPPRoomID;
+import org.jivesoftware.smack.Chat;
+import org.jivesoftware.smack.ConnectionConfiguration;
+import org.jivesoftware.smack.ConnectionListener;
+import org.jivesoftware.smack.MessageListener;
+import org.jivesoftware.smack.PacketListener;
+import org.jivesoftware.smack.Roster;
+import org.jivesoftware.smack.RosterEntry;
+import org.jivesoftware.smack.SASLAuthentication;
+import org.jivesoftware.smack.SmackConfiguration;
+import org.jivesoftware.smack.XMPPConnection;
+import org.jivesoftware.smack.XMPPException;
+import org.jivesoftware.smack.packet.Bind;
+import org.jivesoftware.smack.packet.IQ;
+import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.smack.packet.Message.Type;
+import org.jivesoftware.smack.packet.Packet;
+import org.jivesoftware.smack.packet.Presence;
+
+public class ECFConnection implements ISynchAsynchConnection {
+
+ /**
+ *
+ */
+ private static final String GOOGLE_TALK_HOST = "talk.google.com";
+ public static final String CLIENT_TYPE = "ecf.";
+ public static final boolean DEBUG = Boolean.getBoolean("smack.debug");
+
+ protected static final String STRING_ENCODING = "UTF-8";
+ public static final String OBJECT_PROPERTY_NAME = ECFConnection.class
+ .getName() + ".object";
+ protected static final int XMPP_DEFAULT_PORT = 5222;
+ protected static final int XMPPS_DEFAULT_PORT = 5223;
+
+ private XMPPConnection connection = null;
+ private IAsynchEventHandler handler = null;
+ private boolean isStarted = false;
+ private int serverPort = -1;
+ private String serverResource;
+ private final Map properties = null;
+ private boolean isConnected = false;
+ private Namespace namespace = null;
+
+ private boolean google = false;
+
+ private boolean disconnecting = false;
+
+ private int BIND_TIMEOUT = new Integer(System.getProperty(
+ "org.eclipse.ecf.provider.xmpp.ECFConnection.bindTimeout", "15000"))
+ .intValue();
+
+ private Object bindLock = new Object();
+
+ private String jid;
+
+ private CallbackHandler callbackHandler;
+
+ private final PacketListener packetListener = new PacketListener() {
+ public void processPacket(Packet arg0) {
+ handlePacket(arg0);
+ }
+ };
+
+ private final ConnectionListener connectionListener = new ConnectionListener() {
+ public void connectionClosed() {
+ handleConnectionClosed(new IOException("Connection reset by peer"));
+ }
+
+ public void connectionClosedOnError(Exception e) {
+ handleConnectionClosed(e);
+ }
+
+ public void reconnectingIn(int seconds) {
+ }
+
+ public void reconnectionFailed(Exception e) {
+ }
+
+ public void reconnectionSuccessful() {
+ }
+ };
+
+ protected void logException(String msg, Throwable t) {
+ XmppPlugin.log(msg, t);
+ }
+
+ public Map getProperties() {
+ return properties;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+ */
+ public Object getAdapter(Class adapter) {
+ if (adapter == null)
+ return null;
+ if (adapter.isInstance(this))
+ return this;
+ final IAdapterManager adapterManager = XmppPlugin.getDefault()
+ .getAdapterManager();
+ return (adapterManager == null) ? null : adapterManager.loadAdapter(
+ this, adapter.getName());
+ }
+
+ public XMPPConnection getXMPPConnection() {
+ return connection;
+ }
+
+ public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h) {
+ this(google, ns, h, null);
+ }
+
+ public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h,
+ CallbackHandler ch) {
+ this.handler = h;
+ this.namespace = ns;
+ this.google = google;
+ this.callbackHandler = ch;
+ if (DEBUG)
+ XMPPConnection.DEBUG_ENABLED = true;
+ }
+
+ protected String getPasswordForObject(Object data) {
+ String password = null;
+ try {
+ password = (String) data;
+ } catch (final ClassCastException e) {
+ return null;
+ }
+ return password;
+ }
+
+ private XMPPID getXMPPID(ID remote) throws ECFException {
+ XMPPID jabberID = null;
+ try {
+ jabberID = (XMPPID) remote;
+ } catch (final ClassCastException e) {
+ throw new ECFException(e);
+ }
+ return jabberID;
+ }
+
+ public synchronized Object connect(ID remote, Object data, int timeout)
+ throws ECFException {
+ if (connection != null)
+ throw new ECFException("already connected");
+ if (timeout > 0)
+ SmackConfiguration.setPacketReplyTimeout(timeout);
+ Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
+
+ final XMPPID jabberURI = getXMPPID(remote);
+
+ String username = jabberURI.getNodename();
+ String hostname = jabberURI.getHostname();
+ String hostnameOverride = null;
+
+ // Check for the URI form of "joe@bloggs.org;talk.google.com", which
+ // would at this point would have
+ // - username = "joe"
+ // - hostname = "blogs.org;talk.google.com"
+ // - hostnameOverride = null
+ //
+ // We need to turn this into:
+ // - username = "joe"
+ // - hostname = "bloggs.org"
+ // - hostnameOverride = "talk.google.com"
+
+ int semiColonIdx = hostname.lastIndexOf(';');
+ if (semiColonIdx != -1) {
+ hostnameOverride = hostname.substring(semiColonIdx + 1);
+ hostname = hostname.substring(0, semiColonIdx);
+ }
+
+ if (google && hostnameOverride == null) {
+ hostnameOverride = GOOGLE_TALK_HOST;
+ }
+ final String serviceName = hostname;
+
+ serverPort = jabberURI.getPort();
+ serverResource = jabberURI.getResourceName();
+ if (serverResource == null
+ || serverResource.equals(XMPPID.PATH_DELIMITER)) {
+ serverResource = getClientIdentifier();
+ jabberURI.setResourceName(serverResource);
+ }
+ try {
+ ConnectionConfiguration config;
+ if (hostnameOverride != null) {
+ config = new ConnectionConfiguration(hostnameOverride,
+ XMPP_DEFAULT_PORT, serviceName);
+ } else if (serverPort == -1) {
+ config = new ConnectionConfiguration(serviceName);
+ } else {
+ config = new ConnectionConfiguration(serviceName, serverPort);
+ }
+ config.setSendPresence(true);
+ // Handler is only used if server requires certificate for
+ // authentication; handler should provide keystore password:
+ if (callbackHandler instanceof javax.security.auth.callback.CallbackHandler) {
+ config.setCallbackHandler((javax.security.auth.callback.CallbackHandler) callbackHandler);
+ }
+ connection = new XMPPConnection(config);
+ connection.connect();
+
+ SASLAuthentication.supportSASLMechanism("PLAIN", 0);
+
+ if (google || GOOGLE_TALK_HOST.equals(hostnameOverride)) {
+ username = username + "@" + serviceName;
+ }
+
+ connection.addPacketListener(packetListener, null);
+ connection.addConnectionListener(connectionListener);
+
+ // Login
+ connection.login(username, (String) data, serverResource);
+
+ waitForBindResult();
+
+ } catch (final XMPPException e) {
+ throw new ContainerConnectException("Login attempt failed", e);
+ }
+ return jid;
+ }
+
+ private void waitForBindResult() throws XMPPException {
+ // We'll wait a maximum of
+ long bindTimeout = System.currentTimeMillis() + BIND_TIMEOUT;
+ synchronized (bindLock) {
+ while (jid == null && System.currentTimeMillis() < bindTimeout) {
+ try {
+ bindLock.wait(1000);
+ } catch (InterruptedException e) {
+ }
+ }
+ if (jid == null)
+ throw new XMPPException(
+ "timeout waiting for server bind result");
+ isConnected = true;
+ }
+ }
+
+ private String getClientIdentifier() {
+ return CLIENT_TYPE + handler.getEventHandlerID().getName();
+ }
+
+ public void sendPacket(Packet packet) throws XMPPException {
+ if (connection != null)
+ connection.sendPacket(packet);
+ }
+
+ public synchronized void disconnect() {
+ disconnecting = true;
+ if (isStarted()) {
+ stop();
+ }
+ if (connection != null) {
+ connection.removePacketListener(packetListener);
+ connection.removeConnectionListener(connectionListener);
+ connection.disconnect();
+ connection = null;
+ synchronized (bindLock) {
+ jid = null;
+ isConnected = false;
+ }
+ }
+ }
+
+ public synchronized boolean isConnected() {
+ return (isConnected);
+ }
+
+ public synchronized ID getLocalID() {
+ if (!isConnected())
+ return null;
+ try {
+ return IDFactory.getDefault().createID(namespace.getName(),
+ new Object[] { connection.getConnectionID() });
+ } catch (final Exception e) {
+ logException("Exception in getLocalID", e);
+ return null;
+ }
+ }
+
+ public synchronized void start() {
+ if (isStarted())
+ return;
+ isStarted = true;
+ }
+
+ public boolean isStarted() {
+ return isStarted;
+ }
+
+ public synchronized void stop() {
+ isStarted = false;
+ }
+
+ protected void handleConnectionClosed(Exception e) {
+ if (!disconnecting) {
+ disconnecting = true;
+ handler.handleDisconnectEvent(new DisconnectEvent(this, e, null));
+ }
+ }
+
+ protected void handlePacket(Packet arg0) {
+ handleJidPacket(arg0);
+ try {
+ final Object val = arg0.getProperty(OBJECT_PROPERTY_NAME);
+ if (val != null) {
+ handler.handleAsynchEvent(new ECFConnectionObjectPacketEvent(
+ this, arg0, val));
+ } else {
+ handler.handleAsynchEvent(new ECFConnectionPacketEvent(this,
+ arg0));
+ }
+ } catch (final IOException e) {
+ logException("Exception in handleAsynchEvent", e);
+ try {
+ disconnect();
+ } catch (final Exception e1) {
+ logException("Exception in disconnect()", e1);
+ }
+ }
+ }
+
+ private void handleJidPacket(Packet packet) {
+ if (jid != null)
+ return;
+ if (packet instanceof IQ) {
+ IQ iqPacket = (IQ) packet;
+ if (iqPacket.getType().equals(IQ.Type.RESULT)
+ && iqPacket instanceof Bind) {
+ Bind bindPacket = (Bind) iqPacket;
+ synchronized (bindLock) {
+ jid = bindPacket.getJid();
+ bindLock.notify();
+ }
+ }
+ }
+ }
+
+ public synchronized void sendAsynch(ID receiver, byte[] data)
+ throws IOException {
+ if (data == null)
+ throw new IOException("no data");
+ final Message aMsg = new Message();
+ aMsg.setProperty(OBJECT_PROPERTY_NAME, data);
+ sendMessage(receiver, aMsg);
+ }
+
+ protected void sendMessage(ID receiver, Message aMsg) throws IOException {
+ synchronized (this) {
+ if (!isConnected())
+ throw new IOException("not connected");
+ try {
+ if (receiver == null)
+ throw new IOException(
+ "receiver cannot be null for xmpp instant messaging");
+ else if (receiver instanceof XMPPID) {
+ final XMPPID rcvr = (XMPPID) receiver;
+ aMsg.setType(Message.Type.chat);
+ final String receiverName = rcvr.getFQName();
+ final Chat localChat = connection.getChatManager()
+ .createChat(receiverName, new MessageListener() {
+ public void processMessage(Chat chat,
+ Message message) {
+ }
+ });
+ localChat.sendMessage(aMsg);
+ } else if (receiver instanceof XMPPRoomID) {
+ final XMPPRoomID roomID = (XMPPRoomID) receiver;
+ aMsg.setType(Message.Type.groupchat);
+ final String to = roomID.getMucString();
+ aMsg.setTo(to);
+ connection.sendPacket(aMsg);
+ } else
+ throw new IOException(
+ "receiver must be of type XMPPID or XMPPRoomID");
+ } catch (final XMPPException e) {
+ final IOException result = new IOException(
+ "XMPPException in sendMessage: " + e.getMessage());
+ result.setStackTrace(e.getStackTrace());
+ throw result;
+ }
+ }
+ }
+
+ public synchronized Object sendSynch(ID receiver, byte[] data)
+ throws IOException {
+ if (data == null)
+ throw new IOException("data cannot be null");
+ // This is assumed to be disconnect...so we'll just disconnect
+ // disconnect();
+ return null;
+ }
+
+ public void addListener(IConnectionListener listener) {
+ // XXX Not yet implemented
+ }
+
+ public void removeListener(IConnectionListener listener) {
+ // XXX Not yet implemented
+ }
+
+ public void sendMessage(ID target, String message) throws IOException {
+ if (target == null)
+ throw new IOException("target cannot be null");
+ if (message == null)
+ throw new IOException("message cannot be null");
+ final Message aMsg = new Message();
+ aMsg.setBody(message);
+ sendMessage(target, aMsg);
+ }
+
+ public static Map getPropertiesFromPacket(Packet packet) {
+ final Map result = new HashMap();
+ final Iterator i = packet.getPropertyNames().iterator();
+ for (; i.hasNext();) {
+ final String name = (String) i.next();
+ result.put(name, packet.getProperty(name));
+ }
+ return result;
+ }
+
+ public static Packet setPropertiesInPacket(Packet input, Map properties) {
+ if (properties != null) {
+ for (final Iterator i = properties.keySet().iterator(); i.hasNext();) {
+ final Object keyo = i.next();
+ final Object val = properties.get(keyo);
+ final String key = (keyo instanceof String) ? (String) keyo
+ : keyo.toString();
+ input.setProperty(key, val);
+ }
+ }
+ return input;
+ }
+
+ public void sendMessage(ID target, ID thread, Type type, String subject,
+ String body, Map properties2) throws IOException {
+ if (target == null)
+ throw new IOException("XMPP target for message cannot be null");
+ if (body == null)
+ body = "";
+ final Message aMsg = new Message();
+ aMsg.setBody(body);
+ if (thread != null)
+ aMsg.setThread(thread.getName());
+ if (type != null)
+ aMsg.setType(type);
+ if (subject != null)
+ aMsg.setSubject(subject);
+ setPropertiesInPacket(aMsg, properties2);
+ sendMessage(target, aMsg);
+ }
+
+ public void sendPresenceUpdate(ID target, Presence presence)
+ throws IOException {
+ if (presence == null)
+ throw new IOException("presence cannot be null");
+ presence.setFrom(connection.getUser());
+ if (target != null)
+ presence.setTo(target.getName());
+ synchronized (this) {
+ if (!isConnected())
+ throw new IOException("not connected");
+ connection.sendPacket(presence);
+ }
+ }
+
+ public void sendRosterAdd(String user, String name, String[] groups)
+ throws IOException, XMPPException {
+ final Roster r = getRoster();
+ r.createEntry(user, name, groups);
+ }
+
+ public void sendRosterRemove(String user) throws XMPPException, IOException {
+ final Roster r = getRoster();
+ final RosterEntry re = r.getEntry(user);
+ r.removeEntry(re);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.provider.xmpp.IIMMessageSender#getRoster()
+ */
+ public Roster getRoster() throws IOException {
+ if (connection == null || !connection.isConnected())
+ return null;
+ return connection.getRoster();
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java
index ffe274111..036aab371 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java
@@ -1,58 +1,58 @@
-/****************************************************************************
- * Copyright (c) 2004 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.xmpp;
-
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.security.CallbackHandler;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.internal.provider.xmpp.XmppPlugin;
-import org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection;
-import org.eclipse.ecf.provider.comm.ConnectionCreateException;
-import org.eclipse.ecf.provider.comm.ISynchAsynchConnection;
-
-public class XMPPSContainer extends XMPPContainer {
- public XMPPSContainer() throws Exception {
- super();
- }
-
- /**
- * @param ka
- * @throws Exception
- */
- public XMPPSContainer(int ka) throws Exception {
- super(ka);
- }
-
- /**
- * @param userhost
- * @param ka
- * @throws Exception
- */
- public XMPPSContainer(String userhost, int ka) throws Exception {
- super(userhost, ka);
- }
-
- public Namespace getConnectNamespace() {
- return IDFactory.getDefault().getNamespaceByName(
- XmppPlugin.getDefault().getSecureNamespaceIdentifier());
- }
-
- protected ISynchAsynchConnection createConnection(ID remoteSpace,
- Object data) throws ConnectionCreateException {
- boolean google = isGoogle(remoteSpace);
- CallbackHandler ch = data instanceof IConnectContext ? ((IConnectContext) data)
- .getCallbackHandler() : null;
- return new ECFConnection(google, getConnectNamespace(), receiver, ch);
- }
-
-}
+/****************************************************************************
+ * Copyright (c) 2004 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.xmpp;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.identity.IDFactory;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.core.security.CallbackHandler;
+import org.eclipse.ecf.core.security.IConnectContext;
+import org.eclipse.ecf.internal.provider.xmpp.XmppPlugin;
+import org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection;
+import org.eclipse.ecf.provider.comm.ConnectionCreateException;
+import org.eclipse.ecf.provider.comm.ISynchAsynchConnection;
+
+public class XMPPSContainer extends XMPPContainer {
+ public XMPPSContainer() throws Exception {
+ super();
+ }
+
+ /**
+ * @param ka
+ * @throws Exception
+ */
+ public XMPPSContainer(int ka) throws Exception {
+ super(ka);
+ }
+
+ /**
+ * @param userhost
+ * @param ka
+ * @throws Exception
+ */
+ public XMPPSContainer(String userhost, int ka) throws Exception {
+ super(userhost, ka);
+ }
+
+ public Namespace getConnectNamespace() {
+ return IDFactory.getDefault().getNamespaceByName(
+ XmppPlugin.getDefault().getSecureNamespaceIdentifier());
+ }
+
+ protected ISynchAsynchConnection createConnection(ID remoteSpace,
+ Object data) throws ConnectionCreateException {
+ boolean google = isGoogle(remoteSpace);
+ CallbackHandler ch = data instanceof IConnectContext ? ((IConnectContext) data)
+ .getCallbackHandler() : null;
+ return new ECFConnection(google, getConnectNamespace(), receiver, ch);
+ }
+
+}
diff --git a/providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs
index d9f2a537f..b79d790ad 100644
--- a/providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs
+++ b/providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs
@@ -1,77 +1,77 @@
-#Fri Oct 15 17:10:16 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+#Fri Oct 15 17:10:16 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java b/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java
index 3d362e6a9..859737be3 100644
--- a/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java
+++ b/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java
@@ -1,166 +1,166 @@
-/*******************************************************************************
- * Copyright (c)2010 REMAIN B.V. The Netherlands. (http://www.remainsoftware.com).
- * 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:
- * Wim Jongman - initial API and implementation
- * Ahmed Aadel - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ecf.provider.zookeeper.node.internal;
-
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.ZooDefs.Ids;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.data.Stat;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryContainer;
-import org.eclipse.ecf.provider.zookeeper.util.Logger;
-import org.eclipse.ecf.provider.zookeeper.util.PrettyPrinter;
-import org.osgi.service.log.LogService;
-
-class WriteRoot implements Watcher {
- private ZooKeeper writeKeeper;
- private String ip;
- private WatchManager watchManager;
- private boolean isConnected;
- private Object connectionLock = new Object();
-
- WriteRoot(String ip, WatchManager watchManager) {
- Assert.isNotNull(ip);
- Assert.isNotNull(watchManager);
- this.ip = ip;
- this.watchManager = watchManager;
- initWriteKeeper();
- }
-
- @SuppressWarnings({ "incomplete-switch" })
- public void process(final WatchedEvent event) {
- ZooDiscoveryContainer.CACHED_THREAD_POOL.execute(new Runnable() {
- public void run() {
- synchronized (connectionLock) {
- switch (event.getState()) {
- case Disconnected:
- isConnected = false;
- watchManager.unpublishAll();
- connect();
- break;
- case Expired:
- isConnected = false;
- watchManager.unpublishAll();
- connect();
- break;
- case SyncConnected:
- if (!isConnected) {
- isConnected = true;
- watchManager.addZooKeeper(writeKeeper);
- watchManager.republishAll();
- }
- break;
- // ignore @deprecated cases
- }
- }
- }
- });
- }
-
- private void connect() {
- synchronized (connectionLock) {
- if (this.isConnected || watchManager.isDisposed()) {
- return;
- }
- try {
- if (writeKeeper != null) {
- writeKeeper.close();
- watchManager.removeZooKeeper(writeKeeper);
- writeKeeper = null;
- }
- writeKeeper = new ZooKeeper(this.ip, 3000, this);
-
- } catch (Exception e) {
- Logger.log(LogService.LOG_DEBUG, e.getMessage(), e);
- }
- }
- }
-
- private void initWriteKeeper() {
- try {
- if (watchManager.getConfig().isQuorum()
- || watchManager.getConfig().isStandAlone()) {
- // we write nodes locally but we should check for client port.
- int port = watchManager.getConfig().getClientPort();
- if (port != 0)
- ip += ":" + port;//$NON-NLS-1$
- } else if (watchManager.getConfig().isCentralized()) {
- // we write nodes to the machine with this specified IP address.
- ip = watchManager.getConfig().getServerIps();
- }
- try {
- writeKeeper = new ZooKeeper(this.ip, 3000, this);
- } catch (Exception e) {
- // FATAL
- Logger.log(LogService.LOG_ERROR,
- "Fatal error while initializing a zookeeper client to write to: "
- + ip, e);
- // halt here before the NPE's get out of house in
- // Publisher.publish()
- throw new IllegalStateException(e);
- }
- while (!this.isConnected) {
- synchronized (connectionLock) {
- if (watchManager.isDisposed()) {
- // no need for connecting, we're disposed.
- try {
- writeKeeper.close();
- } catch (Throwable t) {
- // ignore
- }
- break;
- }
- try {
- Stat s = this.writeKeeper.exists(INode.ROOT, this);
- this.isConnected = true;
- if (s == null) {
- writeKeeper.create(INode.ROOT, new byte[0],
- Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
- }
-
- } catch (KeeperException e) {
- if (e.code()
- .equals(KeeperException.Code.CONNECTIONLOSS)) {
- isConnected = false;
- PrettyPrinter.attemptingConnectionTo(this.ip);
- } else
- Logger.log(
- LogService.LOG_ERROR,
- "Error while trying to connect to " + this.ip, e); //$NON-NLS-1$
- }
- }
- }
- synchronized (this) {
- this.notifyAll();
- }
-
- } catch (Exception e) {
- Logger.log(LogService.LOG_DEBUG, e.getMessage(), e);
- }
- }
-
- public ZooKeeper getWriteKeeper() {
- return writeKeeper;
- }
-
- public boolean isConnected() {
- return isConnected;
- }
-
- public WatchManager getWatchManager() {
- return watchManager;
- }
+/*******************************************************************************
+ * Copyright (c)2010 REMAIN B.V. The Netherlands. (http://www.remainsoftware.com).
+ * 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:
+ * Wim Jongman - initial API and implementation
+ * Ahmed Aadel - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ecf.provider.zookeeper.node.internal;
+
+import org.apache.zookeeper.CreateMode;
+import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.WatchedEvent;
+import org.apache.zookeeper.Watcher;
+import org.apache.zookeeper.ZooDefs.Ids;
+import org.apache.zookeeper.ZooKeeper;
+import org.apache.zookeeper.data.Stat;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryContainer;
+import org.eclipse.ecf.provider.zookeeper.util.Logger;
+import org.eclipse.ecf.provider.zookeeper.util.PrettyPrinter;
+import org.osgi.service.log.LogService;
+
+class WriteRoot implements Watcher {
+ private ZooKeeper writeKeeper;
+ private String ip;
+ private WatchManager watchManager;
+ private boolean isConnected;
+ private Object connectionLock = new Object();
+
+ WriteRoot(String ip, WatchManager watchManager) {
+ Assert.isNotNull(ip);
+ Assert.isNotNull(watchManager);
+ this.ip = ip;
+ this.watchManager = watchManager;
+ initWriteKeeper();
+ }
+
+ @SuppressWarnings({ "incomplete-switch" })
+ public void process(final WatchedEvent event) {
+ ZooDiscoveryContainer.CACHED_THREAD_POOL.execute(new Runnable() {
+ public void run() {
+ synchronized (connectionLock) {
+ switch (event.getState()) {
+ case Disconnected:
+ isConnected = false;
+ watchManager.unpublishAll();
+ connect();
+ break;
+ case Expired:
+ isConnected = false;
+ watchManager.unpublishAll();
+ connect();
+ break;
+ case SyncConnected:
+ if (!isConnected) {
+ isConnected = true;
+ watchManager.addZooKeeper(writeKeeper);
+ watchManager.republishAll();
+ }
+ break;
+ // ignore @deprecated cases
+ }
+ }
+ }
+ });
+ }
+
+ private void connect() {
+ synchronized (connectionLock) {
+ if (this.isConnected || watchManager.isDisposed()) {
+ return;
+ }
+ try {
+ if (writeKeeper != null) {
+ writeKeeper.close();
+ watchManager.removeZooKeeper(writeKeeper);
+ writeKeeper = null;
+ }
+ writeKeeper = new ZooKeeper(this.ip, 3000, this);
+
+ } catch (Exception e) {
+ Logger.log(LogService.LOG_DEBUG, e.getMessage(), e);
+ }
+ }
+ }
+
+ private void initWriteKeeper() {
+ try {
+ if (watchManager.getConfig().isQuorum()
+ || watchManager.getConfig().isStandAlone()) {
+ // we write nodes locally but we should check for client port.
+ int port = watchManager.getConfig().getClientPort();
+ if (port != 0)
+ ip += ":" + port;//$NON-NLS-1$
+ } else if (watchManager.getConfig().isCentralized()) {
+ // we write nodes to the machine with this specified IP address.
+ ip = watchManager.getConfig().getServerIps();
+ }
+ try {
+ writeKeeper = new ZooKeeper(this.ip, 3000, this);
+ } catch (Exception e) {
+ // FATAL
+ Logger.log(LogService.LOG_ERROR,
+ "Fatal error while initializing a zookeeper client to write to: "
+ + ip, e);
+ // halt here before the NPE's get out of house in
+ // Publisher.publish()
+ throw new IllegalStateException(e);
+ }
+ while (!this.isConnected) {
+ synchronized (connectionLock) {
+ if (watchManager.isDisposed()) {
+ // no need for connecting, we're disposed.
+ try {
+ writeKeeper.close();
+ } catch (Throwable t) {
+ // ignore
+ }
+ break;
+ }
+ try {
+ Stat s = this.writeKeeper.exists(INode.ROOT, this);
+ this.isConnected = true;
+ if (s == null) {
+ writeKeeper.create(INode.ROOT, new byte[0],
+ Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
+ }
+
+ } catch (KeeperException e) {
+ if (e.code()
+ .equals(KeeperException.Code.CONNECTIONLOSS)) {
+ isConnected = false;
+ PrettyPrinter.attemptingConnectionTo(this.ip);
+ } else
+ Logger.log(
+ LogService.LOG_ERROR,
+ "Error while trying to connect to " + this.ip, e); //$NON-NLS-1$
+ }
+ }
+ }
+ synchronized (this) {
+ this.notifyAll();
+ }
+
+ } catch (Exception e) {
+ Logger.log(LogService.LOG_DEBUG, e.getMessage(), e);
+ }
+ }
+
+ public ZooKeeper getWriteKeeper() {
+ return writeKeeper;
+ }
+
+ public boolean isConnected() {
+ return isConnected;
+ }
+
+ public WatchManager getWatchManager() {
+ return watchManager;
+ }
} \ No newline at end of file
diff --git a/releng/features/org.eclipse.ecf.core.featurepatch/feature.xml b/releng/features/org.eclipse.ecf.core.featurepatch/feature.xml
index 0690efd2a..88684c48f 100644
--- a/releng/features/org.eclipse.ecf.core.featurepatch/feature.xml
+++ b/releng/features/org.eclipse.ecf.core.featurepatch/feature.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.core.featurepatch"
- label="ECF Filetransfer Patch for Eclipse"
- version="3.5.7.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.core.featurepatch"
+ label="ECF Filetransfer Patch for Eclipse"
+ version="3.5.7.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
This feature provides a patch update of the ECF Core and Filetransfer
-bundles. Use this feature to update ECF core, identity, and filetransfer bundles within Eclipse.
- </description>
-
- <copyright>
+bundles. Use this feature to update ECF core, identity, and filetransfer bundles within Eclipse.
+ </description>
+
+ <copyright>
Copyright (c) 2010 Composent, Inc. and others. All rights
reserved.
This program and the accompanying materials are made available
@@ -18,74 +18,74 @@ 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
- </copyright>
-
- <license url="license.html">
- %license
- </license>
-
- <requires>
- <import feature="org.eclipse.equinox.p2.user.ui" version="0.0.0" patch="true"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.filetransfer"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.identity"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.httpclient"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
-</feature>
+Contributors: Composent, Inc. - initial API and implementation
+ </copyright>
+
+ <license url="license.html">
+ %license
+ </license>
+
+ <requires>
+ <import feature="org.eclipse.equinox.p2.user.ui" version="0.0.0" patch="true"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.filetransfer"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.identity"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.httpclient"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.core/feature.xml b/releng/features/org.eclipse.ecf.core/feature.xml
index f94b0051f..ad3a9bf99 100644
--- a/releng/features/org.eclipse.ecf.core/feature.xml
+++ b/releng/features/org.eclipse.ecf.core/feature.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.core"
- label="ECF Target Components for Eclipse"
- version="3.5.7.qualifier"
- provider-name="%providerName"
- plugin="org.eclipse.ecf">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides all of the ECF APIs, providers, and examples for Eclipse. Use this feature if you want to install all of ECF into Eclipse.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.core"
+ label="ECF Target Components for Eclipse"
+ version="3.5.7.qualifier"
+ provider-name="%providerName"
+ plugin="org.eclipse.ecf">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides all of the ECF APIs, providers, and examples for Eclipse. Use this feature if you want to install all of ECF into Eclipse.
+ </description>
+
+ <copyright>
Copyright (c) 2009 Composent, Inc. and others. All rights
reserved.
This program and the accompanying materials are made available
@@ -18,283 +18,283 @@ 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
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.remoteservice.sdk.feature"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ecf.doc"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.presence"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.irc"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.presence.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.xmpp.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.irc.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.discovery.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.bittorrent"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.bittorrent.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.filetransfer.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.msn"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.msn.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.presence.bot"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.telephony.call"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.telephony.call.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.protocol.msn"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.presence.collab.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.efs"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.docshare"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.scp"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.remoteservice.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.protocol.bittorrent"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.sync"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.storage"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.discovery.ui.edit"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.discovery.ui.model"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.discovery.ui.properties"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.discovery.ui.properties.tabbed"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.example.clients"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.example.collab"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.example.collab.editor"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.team.ecf.core"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.team.ecf.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.discovery.ui.browser"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.ui.capabilities"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.discovery.ui.userinput"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+Contributors: Composent, Inc. - initial API and implementation
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.sdk.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.ecf.doc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.presence"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.irc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.presence.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.xmpp.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.irc.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.discovery.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.bittorrent"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.bittorrent.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.filetransfer.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.msn"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.msn.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.presence.bot"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.telephony.call"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.telephony.call.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.protocol.msn"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.presence.collab.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.efs"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.docshare"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.scp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.protocol.bittorrent"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.sync"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.storage"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.discovery.ui.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.discovery.ui.model"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.discovery.ui.properties"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.discovery.ui.properties.tabbed"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.example.clients"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.example.collab"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.example.collab.editor"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.team.ecf.core"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.team.ecf.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.discovery.ui.browser"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.ui.capabilities"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.discovery.ui.userinput"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.datashare.feature/feature.xml b/releng/features/org.eclipse.ecf.datashare.feature/feature.xml
index 59f34c139..2415adba5 100644
--- a/releng/features/org.eclipse.ecf.datashare.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.datashare.feature/feature.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.datashare.feature"
- label="ECF Datashare"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.datashare.feature"
+ label="ECF Datashare"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
This feature provides the ECF Datashare API for asynchronous
-messaging within a channel.
- </description>
-
- <copyright>
+messaging within a channel.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -19,32 +19,32 @@ messaging within a channel.
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <plugin
- id="org.eclipse.ecf.datashare"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.datashare"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.datashare.nio"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.ecf.datashare"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.datashare"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.datashare.nio"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.discovery.dnssd.feature/feature.xml b/releng/features/org.eclipse.ecf.discovery.dnssd.feature/feature.xml
index 96fa53cf8..6e3af0099 100644
--- a/releng/features/org.eclipse.ecf.discovery.dnssd.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.discovery.dnssd.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.discovery.dnssd.feature"
- label="ECF Discovery DNS-SD Provider"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Discovery DNS-SD Provider.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.discovery.dnssd.feature"
+ label="ECF Discovery DNS-SD Provider"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Discovery DNS-SD Provider.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,29 +18,29 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <requires>
- <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf.provider.dnssd"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.xbill.dns"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <requires>
+ <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf.provider.dnssd"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.xbill.dns"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.discovery.dnssd.feature/org.eclipse.ecf.dnssd.mspec b/releng/features/org.eclipse.ecf.discovery.dnssd.feature/org.eclipse.ecf.dnssd.mspec
index 42f5ebb9c..a73b9ef94 100644
--- a/releng/features/org.eclipse.ecf.discovery.dnssd.feature/org.eclipse.ecf.dnssd.mspec
+++ b/releng/features/org.eclipse.ecf.discovery.dnssd.feature/org.eclipse.ecf.dnssd.mspec
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.dnssd"
- materializer="p2"
- url="org.eclipse.ecf.dnssd.cquery">
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.dnssd(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.dnssd\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.dnssd?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.dnssd"
+ materializer="p2"
+ url="org.eclipse.ecf.dnssd.cquery">
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.dnssd(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.dnssd\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.dnssd?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.discovery.feature/feature.xml b/releng/features/org.eclipse.ecf.discovery.feature/feature.xml
index 732bf10b2..099007d49 100644
--- a/releng/features/org.eclipse.ecf.discovery.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.discovery.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.discovery.feature"
- label="ECF Discovery"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Discovery API. The ECF Discovery API gives a transport-independent network discovery API.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.discovery.feature"
+ label="ECF Discovery"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Discovery API. The ECF Discovery API gives a transport-independent network discovery API.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,32 +18,32 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <plugin
- id="org.eclipse.ecf.discovery"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.discovery"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.concurrent"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.ecf.discovery"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.discovery"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.equinox.concurrent"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.discovery.feature/org.eclipse.ecf.discovery.mspec b/releng/features/org.eclipse.ecf.discovery.feature/org.eclipse.ecf.discovery.mspec
index b1f481aa3..353587b76 100644
--- a/releng/features/org.eclipse.ecf.discovery.feature/org.eclipse.ecf.discovery.mspec
+++ b/releng/features/org.eclipse.ecf.discovery.feature/org.eclipse.ecf.discovery.mspec
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.discovery"
- materializer="p2"
- url="org.eclipse.ecf.discovery.cquery">
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.discovery(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.discovery?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.discovery?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.discovery"
+ materializer="p2"
+ url="org.eclipse.ecf.discovery.cquery">
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.discovery(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.discovery?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.discovery?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.discovery.jmdns.feature/feature.xml b/releng/features/org.eclipse.ecf.discovery.jmdns.feature/feature.xml
index 0cb64c8ef..169a45ddb 100644
--- a/releng/features/org.eclipse.ecf.discovery.jmdns.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.discovery.jmdns.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.discovery.jmdns.feature"
- label="ECF Discovery Zeroconf Provider"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Discovery Zeroconf Provider.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.discovery.jmdns.feature"
+ label="ECF Discovery Zeroconf Provider"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Discovery Zeroconf Provider.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,22 +18,22 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <requires>
- <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf.provider.jmdns"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <requires>
+ <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf.provider.jmdns"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.discovery.jmdns.feature/org.eclipse.ecf.jmdns.mspec b/releng/features/org.eclipse.ecf.discovery.jmdns.feature/org.eclipse.ecf.jmdns.mspec
index 5eba49fd0..662e5d61a 100644
--- a/releng/features/org.eclipse.ecf.discovery.jmdns.feature/org.eclipse.ecf.jmdns.mspec
+++ b/releng/features/org.eclipse.ecf.discovery.jmdns.feature/org.eclipse.ecf.jmdns.mspec
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.jmdns"
- materializer="p2"
- url="org.eclipse.ecf.jmdns.cquery">
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.jmdns(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.jmdns\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.jmdns?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.jmdns"
+ materializer="p2"
+ url="org.eclipse.ecf.jmdns.cquery">
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.jmdns(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.jmdns\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.jmdns?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.discovery.slp.feature/feature.xml b/releng/features/org.eclipse.ecf.discovery.slp.feature/feature.xml
index d2cdf84a9..7bf836af2 100644
--- a/releng/features/org.eclipse.ecf.discovery.slp.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.discovery.slp.feature/feature.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.discovery.slp.feature"
- label="ECF Discovery SLP (RFC 2608) Provider"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.discovery.slp.feature"
+ label="ECF Discovery SLP (RFC 2608) Provider"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
This feature provides the ECF Discovery Service Location Protocol
-(RFC 2608) Provider.
- </description>
-
- <copyright>
+(RFC 2608) Provider.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -19,29 +19,29 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <requires>
- <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
- </requires>
-
- <plugin
- id="ch.ethz.iks.slp"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.jslp"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <requires>
+ <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
+ </requires>
+
+ <plugin
+ id="ch.ethz.iks.slp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.jslp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.discovery.slp.feature/org.eclipse.ecf.slp.mspec b/releng/features/org.eclipse.ecf.discovery.slp.feature/org.eclipse.ecf.slp.mspec
index 881ad8d40..855521f52 100644
--- a/releng/features/org.eclipse.ecf.discovery.slp.feature/org.eclipse.ecf.slp.mspec
+++ b/releng/features/org.eclipse.ecf.discovery.slp.feature/org.eclipse.ecf.slp.mspec
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.slp"
- materializer="p2"
- url="org.eclipse.ecf.slp.cquery">
-
- <md:mspecNode namePattern="^ch\.ethz\.iks\.slp?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.jslp?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.slp\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.jslp?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.slp"
+ materializer="p2"
+ url="org.eclipse.ecf.slp.cquery">
+
+ <md:mspecNode namePattern="^ch\.ethz\.iks\.slp?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.jslp?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.slp\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.jslp?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.discovery.zookeeper.feature/feature.xml b/releng/features/org.eclipse.ecf.discovery.zookeeper.feature/feature.xml
index f45121935..602b70ff4 100644
--- a/releng/features/org.eclipse.ecf.discovery.zookeeper.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.discovery.zookeeper.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.discovery.zookeeper.feature"
- label="ECF Discovery Zookeeper Provider"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://wiki.eclipse.org/Zookeeper_Based_ECF_Discovery">
- This feature provides the Apache Zookeeper Discovery Provider.
- </description>
-
- <copyright url="http://www.eclipse.org/legal/epl-v10.html">
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.discovery.zookeeper.feature"
+ label="ECF Discovery Zookeeper Provider"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://wiki.eclipse.org/Zookeeper_Based_ECF_Discovery">
+ This feature provides the Apache Zookeeper Discovery Provider.
+ </description>
+
+ <copyright url="http://www.eclipse.org/legal/epl-v10.html">
/*******************************************************************************
* Copyright (c)2010 REMAIN B.V. (http://www.remainsoftware.com).
* All rights reserved. This program and the accompanying materials
@@ -19,45 +19,45 @@
*
* Contributors:
* Remain Software - initial API and implementation
-*******************************************************************************/
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <requires>
- <import plugin="org.apache.log4j"/>
- <import plugin="org.eclipse.equinox.common" version="3.5.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf.discovery" version="3.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf"/>
- <import plugin="org.eclipse.ecf.identity"/>
- <import plugin="org.eclipse.equinox.concurrent"/>
- <import plugin="org.eclipse.osgi"/>
- <import plugin="org.eclipse.osgi.services"/>
- <import plugin="org.eclipse.equinox.ds"/>
- <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf.provider.zookeeper"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.log4j"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.hadoop.zookeeper"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+*******************************************************************************/
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <requires>
+ <import plugin="org.apache.log4j"/>
+ <import plugin="org.eclipse.equinox.common" version="3.5.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf.discovery" version="3.0.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf"/>
+ <import plugin="org.eclipse.ecf.identity"/>
+ <import plugin="org.eclipse.equinox.concurrent"/>
+ <import plugin="org.eclipse.osgi"/>
+ <import plugin="org.eclipse.osgi.services"/>
+ <import plugin="org.eclipse.equinox.ds"/>
+ <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf.provider.zookeeper"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.log4j"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.hadoop.zookeeper"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.discovery.zookeeper.feature/org.eclipse.ecf.zookeeper.mspec b/releng/features/org.eclipse.ecf.discovery.zookeeper.feature/org.eclipse.ecf.zookeeper.mspec
index 369a9165b..9245d6b47 100644
--- a/releng/features/org.eclipse.ecf.discovery.zookeeper.feature/org.eclipse.ecf.zookeeper.mspec
+++ b/releng/features/org.eclipse.ecf.discovery.zookeeper.feature/org.eclipse.ecf.zookeeper.mspec
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.zookeeper"
- materializer="p2"
- url="org.eclipse.ecf.zookeeper.cquery">
-
- <md:mspecNode namePattern="^org\.apache\.zookeeper(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.zookeeper(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.zookeeper(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.zookeeper\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.zookeeper"
+ materializer="p2"
+ url="org.eclipse.ecf.zookeeper.cquery">
+
+ <md:mspecNode namePattern="^org\.apache\.zookeeper(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.zookeeper(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.zookeeper(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.discovery\.zookeeper\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.eventadmin.examples.feature/feature.xml b/releng/features/org.eclipse.ecf.eventadmin.examples.feature/feature.xml
index 01ae455b2..494326f6e 100644
--- a/releng/features/org.eclipse.ecf.eventadmin.examples.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.eventadmin.examples.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.eventadmin.examples.feature"
- label="ECF Distributed EventAdmin Examples"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Distributed EventAdmin Examples.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.eventadmin.examples.feature"
+ label="ECF Distributed EventAdmin Examples"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Distributed EventAdmin Examples.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,22 +18,22 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.eventadmin.feature"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ecf.examples.eventadmin.app"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.eventadmin.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.eventadmin.app"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.eventadmin.feature/feature.xml b/releng/features/org.eclipse.ecf.eventadmin.feature/feature.xml
index 14b487ac2..2212abea2 100644
--- a/releng/features/org.eclipse.ecf.eventadmin.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.eventadmin.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.eventadmin.feature"
- label="ECF Distributed EventAdmin"
- version="2.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Distributed EventAdmin API.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.eventadmin.feature"
+ label="ECF Distributed EventAdmin"
+ version="2.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Distributed EventAdmin API.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,32 +18,32 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <plugin
- id="org.eclipse.ecf.provider"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.remoteservice.eventadmin"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.sharedobject"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.ecf.provider"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice.eventadmin"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.sharedobject"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.examples/feature.xml b/releng/features/org.eclipse.ecf.examples/feature.xml
index 5a03ebd84..e66b73ac4 100644
--- a/releng/features/org.eclipse.ecf.examples/feature.xml
+++ b/releng/features/org.eclipse.ecf.examples/feature.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.examples"
- label="%featureName"
- version="3.2.0.qualifier"
- provider-name="%providerName"
- plugin="org.eclipse.ecf.example.collab">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides ECF example applications and providers.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.examples"
+ label="%featureName"
+ version="3.2.0.qualifier"
+ provider-name="%providerName"
+ plugin="org.eclipse.ecf.example.collab">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides ECF example applications and providers.
+ </description>
+
+ <copyright>
##########################################################################
# Copyright (c) 2004, 2007 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -19,89 +19,89 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-##########################################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <requires>
- <import plugin="org.eclipse.ecf"/>
- <import plugin="org.eclipse.ecf.presence"/>
- <import plugin="org.eclipse.ecf.provider.xmpp"/>
- <import plugin="org.eclipse.ecf.sharedobject"/>
- <import plugin="org.eclipse.ecf.presence.ui"/>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.ecf.ui"/>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.osgi"/>
- <import plugin="org.eclipse.core.resources"/>
- <import plugin="org.eclipse.jface.text"/>
- <import plugin="org.eclipse.ui.ide"/>
- <import plugin="org.eclipse.ui.editors"/>
- <import plugin="org.eclipse.ecf.discovery"/>
- <import plugin="org.eclipse.ecf.discovery.ui"/>
- <import plugin="org.eclipse.ecf.discovery.ui.edit"/>
- <import plugin="org.eclipse.ecf.discovery.ui.model"/>
- <import plugin="org.eclipse.ecf.provider"/>
- <import plugin="org.eclipse.ecf.server.generic"/>
- <import plugin="org.eclipse.ecf.datashare"/>
- <import plugin="org.eclipse.ecf.provider.datashare"/>
- <import plugin="org.eclipse.ecf"/>
- <import plugin="org.eclipse.ecf.discovery"/>
- <import plugin="org.eclipse.ecf.remoteservice"/>
- <import plugin="org.eclipse.ecf.examples.remoteservices.common"/>
- <import plugin="org.eclipse.ecf.ui"/>
- <import plugin="org.eclipse.update.ui"/>
- <import plugin="org.eclipse.equinox.common"/>
- <import plugin="javax.servlet"/>
- <import plugin="org.eclipse.osgi.services"/>
- <import plugin="org.eclipse.ecf.remoteservice.ui"/>
- <import plugin="org.eclipse.equinox.app"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf.example.clients"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.example.collab"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.example.collab.editor"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.client"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.common"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.server"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+##########################################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <requires>
+ <import plugin="org.eclipse.ecf"/>
+ <import plugin="org.eclipse.ecf.presence"/>
+ <import plugin="org.eclipse.ecf.provider.xmpp"/>
+ <import plugin="org.eclipse.ecf.sharedobject"/>
+ <import plugin="org.eclipse.ecf.presence.ui"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.ecf.ui"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.osgi"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.jface.text"/>
+ <import plugin="org.eclipse.ui.ide"/>
+ <import plugin="org.eclipse.ui.editors"/>
+ <import plugin="org.eclipse.ecf.discovery"/>
+ <import plugin="org.eclipse.ecf.discovery.ui"/>
+ <import plugin="org.eclipse.ecf.discovery.ui.edit"/>
+ <import plugin="org.eclipse.ecf.discovery.ui.model"/>
+ <import plugin="org.eclipse.ecf.provider"/>
+ <import plugin="org.eclipse.ecf.server.generic"/>
+ <import plugin="org.eclipse.ecf.datashare"/>
+ <import plugin="org.eclipse.ecf.provider.datashare"/>
+ <import plugin="org.eclipse.ecf"/>
+ <import plugin="org.eclipse.ecf.discovery"/>
+ <import plugin="org.eclipse.ecf.remoteservice"/>
+ <import plugin="org.eclipse.ecf.examples.remoteservices.common"/>
+ <import plugin="org.eclipse.ecf.ui"/>
+ <import plugin="org.eclipse.update.ui"/>
+ <import plugin="org.eclipse.equinox.common"/>
+ <import plugin="javax.servlet"/>
+ <import plugin="org.eclipse.osgi.services"/>
+ <import plugin="org.eclipse.ecf.remoteservice.ui"/>
+ <import plugin="org.eclipse.equinox.app"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf.example.clients"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.example.collab"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.example.collab.editor"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.client"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.server"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.filetransfer.feature/feature.xml b/releng/features/org.eclipse.ecf.filetransfer.feature/feature.xml
index 46ce69bdd..d6d9fea7b 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.filetransfer.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.filetransfer.feature"
- label="ECF Filetransfer Feature"
- version="3.7.100.qualifier"
- provider-name="Eclipse.org">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF core and filetransfer bundles used by the Eclipse platform to support P2 filetransfer.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.filetransfer.feature"
+ label="ECF Filetransfer Feature"
+ version="3.7.100.qualifier"
+ provider-name="Eclipse.org">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF core and filetransfer bundles used by the Eclipse platform to support P2 filetransfer.
+ </description>
+
+ <copyright>
Copyright (c) 2004, 2007 Composent, Inc. and others. All rights
reserved.
This program and the accompanying materials are made available
@@ -17,55 +17,55 @@ 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
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <plugin
- id="org.eclipse.ecf.filetransfer"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.identity"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+Contributors: Composent, Inc. - initial API and implementation
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.ecf.filetransfer"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.identity"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/.project b/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/.project
index 01c87a948..240d6084f 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/.project
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/.project
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.filetransfer.httpclient.feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.filetransfer.httpclient.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/build.properties b/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/build.properties
index a0db80955..54ad2e843 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/build.properties
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/build.properties
@@ -1,14 +1,14 @@
-bin.includes = feature.xml,\
- about.html,\
- asl-v20.txt,\
- build.properties,\
- feature.properties,\
- license.html,\
- notice.html
-src.includes = about.html,\
- asl-v20.txt,\
- build.properties,\
- feature.properties,\
- feature.xml,\
- license.html,\
- notice.html
+bin.includes = feature.xml,\
+ about.html,\
+ asl-v20.txt,\
+ build.properties,\
+ feature.properties,\
+ license.html,\
+ notice.html
+src.includes = about.html,\
+ asl-v20.txt,\
+ build.properties,\
+ feature.properties,\
+ feature.xml,\
+ license.html,\
+ notice.html
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/feature.xml b/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/feature.xml
index 53a72f8f6..ecbc6bc72 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.filetransfer.httpclient.feature"
- label="ECF Httpclient Filetransfer Provider"
- version="3.5.7.qualifier"
- provider-name="Eclipse.org - ECF">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the httpclient-based filetransfer provider used by the Eclipse platform to support P2 filetransfer.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.filetransfer.httpclient.feature"
+ label="ECF Httpclient Filetransfer Provider"
+ version="3.5.7.qualifier"
+ provider-name="Eclipse.org - ECF">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the httpclient-based filetransfer provider used by the Eclipse platform to support P2 filetransfer.
+ </description>
+
+ <copyright>
Copyright (c) 2011 Composent, Inc. and others. All rights
reserved.
This program and the accompanying materials are made available
@@ -17,54 +17,54 @@ 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
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <plugin
- id="org.apache.commons.codec"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.commons.httpclient"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.commons.logging"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.httpclient"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
-</feature>
+Contributors: Composent, Inc. - initial API and implementation
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.apache.commons.codec"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.httpclient"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.logging"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.httpclient"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/.project b/releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/.project
index f153b713a..71db50a61 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/.project
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/.project
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.filetransfer.httpclient4.feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.filetransfer.httpclient4.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/build.properties b/releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/build.properties
index b17001efb..a17419aa4 100644
--- a/releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/build.properties
+++ b/releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature/build.properties
@@ -1,14 +1,14 @@
-bin.includes = feature.xml,\
- about.html,\
- asl-v20.txt,\
- epl-v10.html,\
- feature.properties,\
- license.html,\
- notice.html
-src.includes = notice.html,\
- license.html,\
- feature.xml,\
- feature.properties,\
- epl-v10.html,\
- asl-v20.txt,\
- about.html
+bin.includes = feature.xml,\
+ about.html,\
+ asl-v20.txt,\
+ epl-v10.html,\
+ feature.properties,\
+ license.html,\
+ notice.html
+src.includes = notice.html,\
+ license.html,\
+ feature.xml,\
+ feature.properties,\
+ epl-v10.html,\
+ asl-v20.txt,\
+ about.html
diff --git a/releng/features/org.eclipse.ecf.osgi.services.feature/feature.xml b/releng/features/org.eclipse.ecf.osgi.services.feature/feature.xml
index 787158cb2..14efb0116 100644
--- a/releng/features/org.eclipse.ecf.osgi.services.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.osgi.services.feature/feature.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.osgi.services.feature"
- label="ECF OSGi 4.2 Remote Services Admin"
- version="2.0.1.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.osgi.services.feature"
+ label="ECF OSGi 4.2 Remote Services Admin"
+ version="2.0.1.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
This feature provides the ECF Implementation of OSGi 4.2 Remote
-Services. Remote Services are specified in chapter 13 of the OSGi compendium specification. See http://www.osgi.org/download/r4v42/r4.cmpn.pdf.
- </description>
-
- <copyright>
+Services. Remote Services are specified in chapter 13 of the OSGi compendium specification. See http://www.osgi.org/download/r4v42/r4.cmpn.pdf.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -19,43 +19,43 @@ Services. Remote Services are specified in chapter 13 of the OSGi compendium sp
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ecf.osgi.services.distribution"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.osgi.services.remoteserviceadmin"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osgi.services.remoteserviceadmin"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.ecf.osgi.services.distribution"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.osgi.services.remoteserviceadmin"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.osgi.services.remoteserviceadmin"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.osgi.services.feature/org.eclipse.ecf.osgi.services.mspec b/releng/features/org.eclipse.ecf.osgi.services.feature/org.eclipse.ecf.osgi.services.mspec
index e1d2a384e..8be9cf5d7 100644
--- a/releng/features/org.eclipse.ecf.osgi.services.feature/org.eclipse.ecf.osgi.services.mspec
+++ b/releng/features/org.eclipse.ecf.osgi.services.feature/org.eclipse.ecf.osgi.services.mspec
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.remoteservice"
- materializer="p2"
- url="org.eclipse.ecf.osgi.services.cquery">
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.osgi(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.osgi\.services\.remoteserviceadmin(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.osgi(\..+)?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.remoteservice"
+ materializer="p2"
+ url="org.eclipse.ecf.osgi.services.cquery">
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.osgi(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.osgi\.services\.remoteserviceadmin(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.osgi(\..+)?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.remoteservice.examples.feature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.examples.feature/feature.xml
index 837f2a44a..e17334381 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.examples.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.examples.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.examples.feature"
- label="ECF OSGi 4.2 Remote Services Examples"
- version="1.1.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides ECF Remote Service Examples. These are examples of the use of OSGi 4.2 Remote Services. OSGi 4.2 Remote Services is specified in the OSGi 4.2 compendium. See http://www.osgi.org/download/r4v42/r4.cmpn.pdf.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.examples.feature"
+ label="ECF OSGi 4.2 Remote Services Examples"
+ version="1.1.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides ECF Remote Service Examples. These are examples of the use of OSGi 4.2 Remote Services. OSGi 4.2 Remote Services is specified in the OSGi 4.2 compendium. See http://www.osgi.org/download/r4v42/r4.cmpn.pdf.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,64 +18,64 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.hello"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.hello.consumer"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.hello.ds.host"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.hello.host"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.rest.rss"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.examples.remoteservices.hello.consumer.edef"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.hello"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.hello.consumer"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.hello.ds.consumer"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.hello.ds.host"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.hello.host"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.rest.rss"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.remoteservices.hello.consumer.edef"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.feature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.feature/feature.xml
index dbfb0c369..0cbef13d5 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.feature"
- label="ECF Remote Services"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Remote Services. The ECF Remote Services API allows distribution of services over a network.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.feature"
+ label="ECF Remote Services"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Remote Services. The ECF Remote Services API allows distribution of services over a network.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,50 +18,50 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <requires>
- <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf.provider.remoteservice"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.remoteservice"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.sharedobject"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.console"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <requires>
+ <import feature="org.eclipse.ecf.discovery.feature" version="1.0.0"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf.provider.remoteservice"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.sharedobject"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.console"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.feature/org.eclipse.ecf.remoteservice.mspec b/releng/features/org.eclipse.ecf.remoteservice.feature/org.eclipse.ecf.remoteservice.mspec
index 92e443b47..6d0669299 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.feature/org.eclipse.ecf.remoteservice.mspec
+++ b/releng/features/org.eclipse.ecf.remoteservice.feature/org.eclipse.ecf.remoteservice.mspec
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.remoteservice"
- materializer="p2"
- url="org.eclipse.ecf.remoteservice.cquery">
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.remoteservice(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice\.generic?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.osgi\.services\.distribution\.generic?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.remoteservice"
+ materializer="p2"
+ url="org.eclipse.ecf.remoteservice.cquery">
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.remoteservice(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice\.generic?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.osgi\.services\.distribution\.generic?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.remoteservice.rest.feature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.rest.feature/feature.xml
index 8ba74e5ba..910e14ee9 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.rest.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.rest.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.rest.feature"
- label="ECF Remote Services REST Support"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Remote Services REST Support. This API allows clients to easily be created for REST-based services.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.rest.feature"
+ label="ECF Remote Services REST Support"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Remote Services REST Support. This API allows clients to easily be created for REST-based services.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,50 +18,50 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ecf.remoteservice.rest"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.json"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.remoteservice.rest.synd"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="com.sun.syndication"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.jdom"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice.rest"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.json"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice.rest.synd"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="com.sun.syndication"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.jdom"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.rest.feature/org.eclipse.ecf.remoteservice.rest.mspec b/releng/features/org.eclipse.ecf.remoteservice.rest.feature/org.eclipse.ecf.remoteservice.rest.mspec
index 49d0c9a03..5e1317f4c 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.rest.feature/org.eclipse.ecf.remoteservice.rest.mspec
+++ b/releng/features/org.eclipse.ecf.remoteservice.rest.feature/org.eclipse.ecf.remoteservice.rest.mspec
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.remoteservice.rest"
- materializer="p2"
- url="org.eclipse.ecf.remoteservice.rest.cquery">
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rest?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rest\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.apache\.httpclient\.server?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice\.rest?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.remoteservice.rest"
+ materializer="p2"
+ url="org.eclipse.ecf.remoteservice.rest.cquery">
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rest?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rest\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.apache\.httpclient\.server?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice\.rest?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/feature.xml
index 0340353f4..ca262b383 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.rosgi.feature"
- label="ECF Remote Services R-OSGi Provider"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Remote Services R-OSGi Provider.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.rosgi.feature"
+ label="ECF Remote Services R-OSGi Provider"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Remote Services R-OSGi Provider.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,36 +18,36 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <plugin
- id="ch.ethz.iks.r_osgi.remote"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.r_osgi"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.objectweb.asm"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="ch.ethz.iks.r_osgi.remote"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.r_osgi"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.objectweb.asm"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/org.eclipse.ecf.remoteservice.rosgi.mspec b/releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/org.eclipse.ecf.remoteservice.rosgi.mspec
index 5836ab26f..b20c8e450 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/org.eclipse.ecf.remoteservice.rosgi.mspec
+++ b/releng/features/org.eclipse.ecf.remoteservice.rosgi.feature/org.eclipse.ecf.remoteservice.rosgi.mspec
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.remoteservice.rosgi"
- materializer="p2"
- url="org.eclipse.ecf.remoteservice.rosgi.cquery">
-
- <md:mspecNode namePattern="^ch\.ethz\.iks\.r_osgi\.remote?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.r_osgi?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rosgi\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice\.r-osgi?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.osgi\.services\.distribution\.r-osgi?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.remoteservice.rosgi"
+ materializer="p2"
+ url="org.eclipse.ecf.remoteservice.rosgi.cquery">
+
+ <md:mspecNode namePattern="^ch\.ethz\.iks\.r_osgi\.remote?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.r_osgi?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rosgi\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice\.r-osgi?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.osgi\.services\.distribution\.r-osgi?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/.project b/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/.project
index f068bd45c..4f2348eab 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/.project
+++ b/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/.project
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.remoteservice.rpc.feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.remoteservice.rpc.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/build.properties b/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/build.properties
index f41909f87..d9db8e3c6 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/build.properties
+++ b/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/build.properties
@@ -1,13 +1,13 @@
-############################################################################
-# Copyright (c) 2010-2011 Naumen, IBM Corp, 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
-############################################################################
-bin.includes = feature.xml,\
- about.html,\
- epl-v10.html,\
- feature.properties,\
- license.html,\
- notice.html
+############################################################################
+# Copyright (c) 2010-2011 Naumen, IBM Corp, 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
+############################################################################
+bin.includes = feature.xml,\
+ about.html,\
+ epl-v10.html,\
+ feature.properties,\
+ license.html,\
+ notice.html
diff --git a/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/feature.xml
index c6ce6f9f3..2b8e557c0 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/feature.xml
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.rpc.feature"
- label="%featureName"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Remote Services XML-RPC Support
- </description>
-
- <copyright url="%noticeURL">
- %notice
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <plugin
- id="org.apache.xmlrpc"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.remoteservice.rpc"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.ws.commons.util"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.jdom"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.commons.httpclient"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.rpc.feature"
+ label="%featureName"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Remote Services XML-RPC Support
+ </description>
+
+ <copyright url="%noticeURL">
+ %notice
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.apache.xmlrpc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice.rpc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.ws.commons.util"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.jdom"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.httpclient"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/org.eclipse.ecf.remoteservice.rpc.mspec b/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/org.eclipse.ecf.remoteservice.rpc.mspec
index 28cfacec7..50bb3bbfc 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/org.eclipse.ecf.remoteservice.rpc.mspec
+++ b/releng/features/org.eclipse.ecf.remoteservice.rpc.feature/org.eclipse.ecf.remoteservice.rpc.mspec
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.remoteservice.rpc"
- materializer="p2"
- url="org.eclipse.ecf.remoteservice.rpc.cquery">
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rpc?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rpc\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice\.rpc?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.remoteservice.rpc"
+ materializer="p2"
+ url="org.eclipse.ecf.remoteservice.rpc.cquery">
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rpc?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.remoteservice\.rpc\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.remoteservice\.rpc?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/features/org.eclipse.ecf.remoteservice.sdk.feature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.sdk.feature/feature.xml
index c8d85d170..1fc1381fc 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.sdk.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.sdk.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.sdk.feature"
- label="ECF Remote Services Target Components"
- version="3.5.7.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Remote Services Target Components. This is the set of bundles (API, examples, and providers), that allow OSGi frameworks to expose and access remote services.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.sdk.feature"
+ label="ECF Remote Services Target Components"
+ version="3.5.7.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Remote Services Target Components. This is the set of bundles (API, examples, and providers), that allow OSGi frameworks to expose and access remote services.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,75 +18,75 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.eventadmin.examples.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.eventadmin.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.examples.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.rest.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.rosgi.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.soap.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.server.generic.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.osgi.services.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.jmdns.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.slp.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.dnssd.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.zookeeper.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.datashare.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.xmpp.feature"
- version="0.0.0"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.eventadmin.examples.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.eventadmin.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.examples.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.rest.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.rosgi.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.soap.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.server.generic.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.osgi.services.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.jmdns.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.slp.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.dnssd.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.zookeeper.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.datashare.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.xmpp.feature"
+ version="0.0.0"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.sdk.feature/sourceTemplateFeature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.sdk.feature/sourceTemplateFeature/feature.xml
index 41c0becd1..80c368d38 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.sdk.feature/sourceTemplateFeature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.sdk.feature/sourceTemplateFeature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.sdk.feature"
- label="ECF Remote Services Target Components"
- version="3.5.1.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Remote Services Target Components
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.sdk.feature"
+ label="ECF Remote Services Target Components"
+ version="3.5.1.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Remote Services Target Components
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,75 +18,75 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.eventadmin.examples.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.eventadmin.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.examples.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.rest.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.rosgi.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.soap.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.server.generic.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.osgi.services.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.jmdns.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.slp.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.dnssd.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.zookeeper.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.datashare.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.xmpp.feature"
- version="0.0.0"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.eventadmin.examples.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.eventadmin.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.examples.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.rest.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.rosgi.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.soap.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.server.generic.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.osgi.services.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.jmdns.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.slp.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.dnssd.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.zookeeper.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.datashare.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.xmpp.feature"
+ version="0.0.0"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.soa.feature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.soa.feature/feature.xml
index 087671289..2d0620cce 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.soa.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.soa.feature/feature.xml
@@ -1,63 +1,63 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.soa.feature"
- label="ECF Service-Oriented Architecture"
- version="2.0.0.qualifier">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF SOA Target Components.
- </description>
-
- <copyright url="http://www.example.com/copyright">
- [Enter Copyright Description here.]
- </copyright>
-
- <license url="http://www.example.com/license">
- [Enter License Description here.]
- </license>
-
- <includes
- id="org.eclipse.ecf.eventadmin.examples.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.eventadmin.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.examples.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.rest.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.rosgi.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.soap.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.server.generic.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.osgi.services.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.jmdns.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.discovery.slp.feature"
- version="0.0.0"/>
-
-</feature>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.soa.feature"
+ label="ECF Service-Oriented Architecture"
+ version="2.0.0.qualifier">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF SOA Target Components.
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.eventadmin.examples.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.eventadmin.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.examples.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.rest.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.rosgi.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.soap.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.server.generic.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.osgi.services.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.jmdns.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.discovery.slp.feature"
+ version="0.0.0"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.remoteservice.soap.feature/feature.xml b/releng/features/org.eclipse.ecf.remoteservice.soap.feature/feature.xml
index 7e3e59620..b2760e092 100644
--- a/releng/features/org.eclipse.ecf.remoteservice.soap.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.remoteservice.soap.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.remoteservice.soap.feature"
- label="ECF Remote Services SOAP Support"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Remote Services SOAP Support.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.remoteservice.soap.feature"
+ label="ECF Remote Services SOAP Support"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Remote Services SOAP Support.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,22 +18,22 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ecf.remoteservice.soap"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice.soap"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.sdk/feature.xml b/releng/features/org.eclipse.ecf.sdk/feature.xml
index 5f9685fd6..7785969c6 100644
--- a/releng/features/org.eclipse.ecf.sdk/feature.xml
+++ b/releng/features/org.eclipse.ecf.sdk/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.sdk"
- label="ECF Target Components Feature"
- version="3.5.7.qualifier"
- provider-name="Eclipse.org">
-
- <description url="http://www.eclipse.org/ecf">
- Eclipse Communications Framework Target Components
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.sdk"
+ label="ECF Target Components Feature"
+ version="3.5.7.qualifier"
+ provider-name="Eclipse.org">
+
+ <description url="http://www.eclipse.org/ecf">
+ Eclipse Communications Framework Target Components
+ </description>
+
+ <copyright>
/*******************************************************************************
* Copyright (c) 2004 Composent, Inc. and others. All rights reserved.
* This program and the accompanying materials are made available
@@ -18,10 +18,10 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Composent, Inc. - initial API and implementation
-******************************************************************************/
- </copyright>
-
- <license url="http://www.eclipse.org/legal/epl-v10.html">
+******************************************************************************/
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
About This Content
May 11, 2006
License
@@ -304,27 +304,27 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied.
See the License for the specific language governing permissions
and
-limitations under the License.
- </license>
-
- <includes
- id="org.eclipse.ecf.core"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.remoteservice.sdk.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.filetransfer.httpclient.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.filetransfer.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.ecf.filetransfer.httpclient4.feature"
- version="0.0.0"/>
-
-</feature>
+limitations under the License.
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.core"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.sdk.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.filetransfer.httpclient.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.filetransfer.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.ecf.filetransfer.httpclient4.feature"
+ version="0.0.0"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.tests.feature/feature.xml b/releng/features/org.eclipse.ecf.tests.feature/feature.xml
index 073042494..489ebcbbe 100644
--- a/releng/features/org.eclipse.ecf.tests.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.tests.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.tests.feature"
- label="Used to build and execute tests (should never appear in a product)"
- version="3.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- Eclipse Communications Framework Tests
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.tests.feature"
+ label="Used to build and execute tests (should never appear in a product)"
+ version="3.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ Eclipse Communications Framework Tests
+ </description>
+
+ <copyright>
/*******************************************************************************
* Copyright (c) 2009 Versant, GmbH. and others. All rights reserved.
* This program and the accompanying materials are made available
@@ -18,10 +18,10 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Versant, GmbH. - initial API and implementation
-******************************************************************************/
- </copyright>
-
- <license url="http://www.eclipse.org/legal/epl-v10.html">
+******************************************************************************/
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
About This Content
May 11, 2006
License
@@ -304,153 +304,153 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied.
See the License for the specific language governing permissions
and
-limitations under the License.
- </license>
-
- <requires>
- <import plugin="org.eclipse.osgi"/>
- <import plugin="org.eclipse.ecf.discovery"/>
- <import plugin="org.eclipse.ecf.presence"/>
- <import plugin="org.eclipse.ecf.sharedobject"/>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.ecf.protocol.msn" version="0.3.1" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf.provider.datashare.nio"/>
- <import plugin="org.eclipse.ecf.provider.jmdns"/>
- <import plugin="org.eclipse.ecf.provider.jslp"/>
- <import plugin="ch.ethz.iks.slp" version="1.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf.provider.xmpp"/>
- <import plugin="org.eclipse.ecf.datashare" version="2.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.equinox.app" version="1.2.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf.provider"/>
- <import plugin="org.eclipse.ecf.server.generic"/>
- <import plugin="org.junit" version="3.8.2" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf.storage" version="1.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.equinox.security"/>
- <import plugin="org.eclipse.ecf.identity"/>
- <import plugin="org.eclipse.ecf.sync"/>
- <import plugin="org.eclipse.jface.text"/>
- <import plugin="org.eclipse.ecf.osgi.services.distribution" version="1.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf.remoteservice" version="3.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf" version="3.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.equinox.common" version="3.5.1" match="greaterOrEqual"/>
- <import plugin="org.eclipse.equinox.concurrent" version="1.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ecf.provider.discovery"/>
- <import plugin="org.eclipse.ecf.provider.r_osgi"/>
- <import plugin="ch.ethz.iks.r_osgi.remote"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.datashare"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.presence"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.protocol.msn"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.provider.datashare.nio"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.provider.xmpp"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.remoteservice"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.sharedobject"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.storage"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.sync"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.osgi.services.distribution"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.discovery"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.remoteservice.generic"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.remoteservice.r-osgi"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.osgi.services.distribution.generic"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.osgi.services.distribution.r-osgi"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+limitations under the License.
+ </license>
+
+ <requires>
+ <import plugin="org.eclipse.osgi"/>
+ <import plugin="org.eclipse.ecf.discovery"/>
+ <import plugin="org.eclipse.ecf.presence"/>
+ <import plugin="org.eclipse.ecf.sharedobject"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.ecf.protocol.msn" version="0.3.1" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf.provider.datashare.nio"/>
+ <import plugin="org.eclipse.ecf.provider.jmdns"/>
+ <import plugin="org.eclipse.ecf.provider.jslp"/>
+ <import plugin="ch.ethz.iks.slp" version="1.0.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf.provider.xmpp"/>
+ <import plugin="org.eclipse.ecf.datashare" version="2.0.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.equinox.app" version="1.2.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf.provider"/>
+ <import plugin="org.eclipse.ecf.server.generic"/>
+ <import plugin="org.junit" version="3.8.2" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf.storage" version="1.0.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.equinox.security"/>
+ <import plugin="org.eclipse.ecf.identity"/>
+ <import plugin="org.eclipse.ecf.sync"/>
+ <import plugin="org.eclipse.jface.text"/>
+ <import plugin="org.eclipse.ecf.osgi.services.distribution" version="1.0.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf.remoteservice" version="3.0.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf" version="3.0.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.equinox.common" version="3.5.1" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.equinox.concurrent" version="1.0.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ecf.provider.discovery"/>
+ <import plugin="org.eclipse.ecf.provider.r_osgi"/>
+ <import plugin="ch.ethz.iks.r_osgi.remote"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf.tests"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.datashare"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.presence"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.protocol.msn"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.provider.datashare.nio"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.provider.xmpp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.remoteservice"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.sharedobject"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.storage"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.sync"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.osgi.services.distribution"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.discovery"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.remoteservice.generic"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.remoteservice.r-osgi"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.osgi.services.distribution.generic"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.osgi.services.distribution.r-osgi"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.tests.filetransfer.feature/feature.xml b/releng/features/org.eclipse.ecf.tests.filetransfer.feature/feature.xml
index 501199cd7..501d8dde9 100644
--- a/releng/features/org.eclipse.ecf.tests.filetransfer.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.tests.filetransfer.feature/feature.xml
@@ -1,68 +1,68 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.tests.filetransfer.feature"
- label="ECF Platform "
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.example.com/description">
- [Enter Feature Description here.]
- </description>
-
- <copyright url="http://www.example.com/copyright">
- [Enter Copyright Description here.]
- </copyright>
-
- <license url="http://www.example.com/license">
- [Enter License Description here.]
- </license>
-
- <requires>
- <import feature="org.eclipse.ecf.filetransfer.feature" version="3.0.0.qualifier"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.apache.httpclient.server"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.filetransfer"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.tests.filetransfer.httpserver"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.filetransfer.ssl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
-</feature>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.tests.filetransfer.feature"
+ label="ECF Platform "
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.example.com/description">
+ [Enter Feature Description here.]
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <requires>
+ <import feature="org.eclipse.ecf.filetransfer.feature" version="3.0.0.qualifier"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf.tests"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.apache.httpclient.server"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.filetransfer"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.tests.filetransfer.httpserver"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.filetransfer.ssl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.xmpp.feature/feature.xml b/releng/features/org.eclipse.ecf.xmpp.feature/feature.xml
index 21e3c6aa3..6e826940d 100644
--- a/releng/features/org.eclipse.ecf.xmpp.feature/feature.xml
+++ b/releng/features/org.eclipse.ecf.xmpp.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.xmpp.feature"
- label="ECF XMPP Provider"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides support for the XMPP protocol.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.xmpp.feature"
+ label="ECF XMPP Provider"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides support for the XMPP protocol.
+ </description>
+
+ <copyright>
Copyright (c) 2011 Composent, Inc. and others. All rights
reserved.
This program and the accompanying materials are made available
@@ -17,41 +17,41 @@ 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
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <plugin
- id="org.eclipse.ecf.provider.xmpp"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.jivesoftware.smack"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.xmpp.datashare"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.provider.xmpp.remoteservice"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
-</feature>
+Contributors: Composent, Inc. - initial API and implementation
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.ecf.provider.xmpp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.jivesoftware.smack"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.xmpp.datashare"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.xmpp.remoteservice"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ fragment="true"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/features/org.eclipse.ecf.xmpp.feature/org.eclipse.ecf.xmpp.mspec b/releng/features/org.eclipse.ecf.xmpp.feature/org.eclipse.ecf.xmpp.mspec
index cd2aeb543..1e74119c1 100644
--- a/releng/features/org.eclipse.ecf.xmpp.feature/org.eclipse.ecf.xmpp.mspec
+++ b/releng/features/org.eclipse.ecf.xmpp.feature/org.eclipse.ecf.xmpp.mspec
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
- name="org.eclipse.ecf.discovery"
- materializer="p2"
- url="org.eclipse.ecf.xmpp.cquery">
-
- <md:mspecNode namePattern="^org\.jivesoftware\.smack?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.xmpp(\..+)?" materializer="workspace"/>
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.xmpp\.feature?" materializer="workspace"/>
-
- <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.xmpp?" materializer="workspace"/>
-
- <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
-</md:mspec>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<md:mspec xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
+ name="org.eclipse.ecf.discovery"
+ materializer="p2"
+ url="org.eclipse.ecf.xmpp.cquery">
+
+ <md:mspecNode namePattern="^org\.jivesoftware\.smack?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.provider\.xmpp(\..+)?" materializer="workspace"/>
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.xmpp\.feature?" materializer="workspace"/>
+
+ <md:mspecNode namePattern="^org\.eclipse\.ecf\.tests\.provider\.xmpp?" materializer="workspace"/>
+
+ <md:mspecNode namePattern=".*" installLocation="${targetPlatformPath}"/>
+</md:mspec>
+
diff --git a/releng/org.eclipse.ecf.releng.bm/ECF3-6Baseline.target b/releng/org.eclipse.ecf.releng.bm/ECF3-6Baseline.target
index d01e766ab..06e5e6e6e 100644
--- a/releng/org.eclipse.ecf.releng.bm/ECF3-6Baseline.target
+++ b/releng/org.eclipse.ecf.releng.bm/ECF3-6Baseline.target
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.6"?>
-
-<target includeMode="feature" name="ECF3-6Baseline" sequenceNumber="1">
-<locations>
-<location includeAllPlatforms="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.ecf.core.feature.group" version="3.5.6.v20120610-1946"/>
-<repository location="http://download.eclipse.org/rt/ecf/3.5.6/site.p2/"/>
-</location>
-</locations>
-<includeBundles>
-<feature id="org.eclipse.ecf.core"/>
-</includeBundles>
-<launcherArgs>
-<vmArgs>-XX:PermSize=256M -XX:MaxPermSize=512M -XX:+UseParallelGC -Xms512m -Xmx1024m</vmArgs>
-</launcherArgs>
-</target>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.6"?>
+
+<target includeMode="feature" name="ECF3-6Baseline" sequenceNumber="1">
+<locations>
+<location includeAllPlatforms="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.eclipse.ecf.core.feature.group" version="3.5.6.v20120610-1946"/>
+<repository location="http://download.eclipse.org/rt/ecf/3.5.6/site.p2/"/>
+</location>
+</locations>
+<includeBundles>
+<feature id="org.eclipse.ecf.core"/>
+</includeBundles>
+<launcherArgs>
+<vmArgs>-XX:PermSize=256M -XX:MaxPermSize=512M -XX:+UseParallelGC -Xms512m -Xmx1024m</vmArgs>
+</launcherArgs>
+</target>
diff --git a/releng/org.eclipse.ecf.releng.bm/ecf.rmap b/releng/org.eclipse.ecf.releng.bm/ecf.rmap
index bac7ef801..eb77a18af 100644
--- a/releng/org.eclipse.ecf.releng.bm/ecf.rmap
+++ b/releng/org.eclipse.ecf.releng.bm/ecf.rmap
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<rm:rmap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0" xmlns:pde="http://www.eclipse.org/buckminster/PDEMapProvider-1.0" xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">
- <rm:locator pattern="^ch\.ethz\.iks(\..+)?" searchPathRef="org.eclipse.ecf"/>
- <rm:locator pattern="^org\.eclipse\.ecf(\..+)?" searchPathRef="org.eclipse.ecf"/>
- <rm:locator pattern="^org\.eclipse\.team\.ecf(\..+)?" searchPathRef="org.eclipse.ecf"/>
- <rm:locator pattern="^org\.jivesoftware\.smack$" searchPathRef="org.eclipse.ecf"/>
- <rm:locator pattern="^org\.eclipse\.osgi\.services\.remoteserviceadmin(\..+)?" searchPathRef="org.eclipse.ecf.rsa"/>
- <rm:locator pattern="^org\.eclipse\.emf(\..+)?" searchPathRef="org.eclipse.emf"/>
- <rm:locator pattern="^org\.eclipse\.net4j(\..+)?" searchPathRef="org.eclipse.emf"/>
- <rm:locator pattern="^org\.eclipse\.xsd(\..+)?" searchPathRef="org.eclipse.emf"/>
- <rm:locator pattern="^org\.eclipse\.swtbot(\..+)?" searchPathRef="org.eclipse.swtbot"/>
- <rm:locator pattern="^org\.hamcrest(\..+)?" searchPathRef="org.eclipse.swtbot"/>
- <rm:locator pattern="^org\.apache\.log4j$" searchPathRef="org.eclipse.swtbot"/>
- <rm:locator pattern="^com\.mountainminds\.eclemma(\..+)?" searchPathRef="com.mountainminds.eclemma"/>
- <rm:locator pattern="^org\.eclipse(\..+)?" searchPathRef="org.eclipse"/>
- <rm:locator pattern="^org\.junit4?" searchPathRef="org.eclipse"/>
- <rm:locator pattern="^org\.osgi(\..+)?" searchPathRef="org.eclipse"/>
- <rm:locator pattern="^org\.apache\.ant?" searchPathRef="org.eclipse"/>
- <rm:locator pattern="^org\.pluginbuilder(\..+)?" searchPathRef="org.pluginbuilder"/>
- <rm:locator pattern=".*" searchPathRef="default"/>
- <rm:searchPath name="org.eclipse">
- <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="http://ftp.osuosl.org/pub/eclipse/eclipse/updates/3.8/"/>
- </rm:provider>
- <rm:provider xsi:type="pde:PDEMapProvider" componentTypes="osgi.bundle,eclipse.feature" readerType="cvs" mutable="false">
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,org.eclipse.releng/maps">
- <bc:propertyRef key="buckminster.component"/>
- </rm:uri>
- </rm:provider>
- </rm:searchPath>
- <rm:searchPath name="org.eclipse.emf">
- <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="http://ftp.osuosl.org/pub/eclipse/modeling/emf/updates/releases"/>
- </rm:provider>
- <rm:provider xsi:type="pde:PDEMapProvider" componentTypes="osgi.bundle,eclipse.feature" readerType="cvs" mutable="false">
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.emf/org.eclipse.emf.releng/maps">
- <bc:propertyRef key="buckminster.component"/>
- </rm:uri>
- </rm:provider>
- </rm:searchPath>
- <rm:searchPath name="org.eclipse.ecf.rsa">
- <rm:provider componentTypes="osgi.bundle,eclipse.feature" source="false" mutable="false" readerType="local">
- <rm:uri format="file:{0}/{1}/">
- <bc:propertyRef key="projectsPath"/>
- <bc:propertyRef key="buckminster.component"/>
- </rm:uri>
- </rm:provider>
- <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="{0}?importType=binary">
- <bc:propertyRef key="ecf.p2.repository"/>
- </rm:uri>
- </rm:provider>
- </rm:searchPath>
-
- <rm:searchPath name="org.eclipse.ecf">
- <rm:provider componentTypes="osgi.bundle,eclipse.feature" readerType="local">
- <rm:uri format="file:{0}/{1}/">
- <bc:propertyRef key="projectsPath"/>
- <bc:propertyRef key="buckminster.component"/>
- </rm:uri>
- </rm:provider>
- <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="{0}?importType=binary">
- <bc:propertyRef key="ecf.p2.repository"/>
- </rm:uri>
- </rm:provider>
- </rm:searchPath>
- <rm:searchPath name="org.pluginbuilder">
- <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="http://self.pluginbuilder.org/nightly/p2-updateSite?importType=binary"/>
- </rm:provider>
- </rm:searchPath>
- <rm:searchPath name="org.eclipse.swtbot">
- <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="http://ftp.osuosl.org/pub/eclipse/technology/swtbot/helios/dev-build/update-site"/>
- </rm:provider>
- </rm:searchPath>
- <rm:searchPath name="com.mountainminds.eclemma">
- <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="http://update.eclemma.org?importType=binary"/>
- </rm:provider>
- </rm:searchPath>
- <rm:searchPath name="default">
- <rm:provider componentTypes="osgi.bundle" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="http://ftp.osuosl.org/pub/eclipse/tools/orbit/downloads/drops/R20120526062928/repository/"/>
- </rm:provider>
- <rm:provider componentTypes="osgi.bundle" readerType="p2" source="false" mutable="false">
- <rm:property key="buckminster.source" value="false"/>
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format="http://ftp.osuosl.org/pub/eclipse/tools/orbit/downloads/drops/R20120119162704/repository"/>
- </rm:provider>
- <rm:provider xsi:type="pde:PDEMapProvider" componentTypes="osgi.bundle,eclipse.feature" readerType="cvs" mutable="false">
- <rm:property key="buckminster.mutable" value="false"/>
- <rm:uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.eclipse.orbit.releng/maps">
- <bc:propertyRef key="buckminster.component"/>
- </rm:uri>
- </rm:provider>
- </rm:searchPath>
-</rm:rmap>
+<?xml version="1.0" encoding="UTF-8"?>
+<rm:rmap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0" xmlns:pde="http://www.eclipse.org/buckminster/PDEMapProvider-1.0" xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">
+ <rm:locator pattern="^ch\.ethz\.iks(\..+)?" searchPathRef="org.eclipse.ecf"/>
+ <rm:locator pattern="^org\.eclipse\.ecf(\..+)?" searchPathRef="org.eclipse.ecf"/>
+ <rm:locator pattern="^org\.eclipse\.team\.ecf(\..+)?" searchPathRef="org.eclipse.ecf"/>
+ <rm:locator pattern="^org\.jivesoftware\.smack$" searchPathRef="org.eclipse.ecf"/>
+ <rm:locator pattern="^org\.eclipse\.osgi\.services\.remoteserviceadmin(\..+)?" searchPathRef="org.eclipse.ecf.rsa"/>
+ <rm:locator pattern="^org\.eclipse\.emf(\..+)?" searchPathRef="org.eclipse.emf"/>
+ <rm:locator pattern="^org\.eclipse\.net4j(\..+)?" searchPathRef="org.eclipse.emf"/>
+ <rm:locator pattern="^org\.eclipse\.xsd(\..+)?" searchPathRef="org.eclipse.emf"/>
+ <rm:locator pattern="^org\.eclipse\.swtbot(\..+)?" searchPathRef="org.eclipse.swtbot"/>
+ <rm:locator pattern="^org\.hamcrest(\..+)?" searchPathRef="org.eclipse.swtbot"/>
+ <rm:locator pattern="^org\.apache\.log4j$" searchPathRef="org.eclipse.swtbot"/>
+ <rm:locator pattern="^com\.mountainminds\.eclemma(\..+)?" searchPathRef="com.mountainminds.eclemma"/>
+ <rm:locator pattern="^org\.eclipse(\..+)?" searchPathRef="org.eclipse"/>
+ <rm:locator pattern="^org\.junit4?" searchPathRef="org.eclipse"/>
+ <rm:locator pattern="^org\.osgi(\..+)?" searchPathRef="org.eclipse"/>
+ <rm:locator pattern="^org\.apache\.ant?" searchPathRef="org.eclipse"/>
+ <rm:locator pattern="^org\.pluginbuilder(\..+)?" searchPathRef="org.pluginbuilder"/>
+ <rm:locator pattern=".*" searchPathRef="default"/>
+ <rm:searchPath name="org.eclipse">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="http://ftp.osuosl.org/pub/eclipse/eclipse/updates/3.8/"/>
+ </rm:provider>
+ <rm:provider xsi:type="pde:PDEMapProvider" componentTypes="osgi.bundle,eclipse.feature" readerType="cvs" mutable="false">
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,org.eclipse.releng/maps">
+ <bc:propertyRef key="buckminster.component"/>
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="org.eclipse.emf">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="http://ftp.osuosl.org/pub/eclipse/modeling/emf/updates/releases"/>
+ </rm:provider>
+ <rm:provider xsi:type="pde:PDEMapProvider" componentTypes="osgi.bundle,eclipse.feature" readerType="cvs" mutable="false">
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.emf/org.eclipse.emf.releng/maps">
+ <bc:propertyRef key="buckminster.component"/>
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="org.eclipse.ecf.rsa">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature" source="false" mutable="false" readerType="local">
+ <rm:uri format="file:{0}/{1}/">
+ <bc:propertyRef key="projectsPath"/>
+ <bc:propertyRef key="buckminster.component"/>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="{0}?importType=binary">
+ <bc:propertyRef key="ecf.p2.repository"/>
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="org.eclipse.ecf">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature" readerType="local">
+ <rm:uri format="file:{0}/{1}/">
+ <bc:propertyRef key="projectsPath"/>
+ <bc:propertyRef key="buckminster.component"/>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="{0}?importType=binary">
+ <bc:propertyRef key="ecf.p2.repository"/>
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="org.pluginbuilder">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="http://self.pluginbuilder.org/nightly/p2-updateSite?importType=binary"/>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="org.eclipse.swtbot">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="http://ftp.osuosl.org/pub/eclipse/technology/swtbot/helios/dev-build/update-site"/>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="com.mountainminds.eclemma">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature,buckminster" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="http://update.eclemma.org?importType=binary"/>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="default">
+ <rm:provider componentTypes="osgi.bundle" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="http://ftp.osuosl.org/pub/eclipse/tools/orbit/downloads/drops/R20120526062928/repository/"/>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false"/>
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format="http://ftp.osuosl.org/pub/eclipse/tools/orbit/downloads/drops/R20120119162704/repository"/>
+ </rm:provider>
+ <rm:provider xsi:type="pde:PDEMapProvider" componentTypes="osgi.bundle,eclipse.feature" readerType="cvs" mutable="false">
+ <rm:property key="buckminster.mutable" value="false"/>
+ <rm:uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.eclipse.orbit.releng/maps">
+ <bc:propertyRef key="buckminster.component"/>
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+</rm:rmap>
diff --git a/server-side/bundles/org.eclipse.ecf.remoteservice.eventadmin/.settings/.api_filters b/server-side/bundles/org.eclipse.ecf.remoteservice.eventadmin/.settings/.api_filters
index cc1f966bf..2ab56cfd4 100644
--- a/server-side/bundles/org.eclipse.ecf.remoteservice.eventadmin/.settings/.api_filters
+++ b/server-side/bundles/org.eclipse.ecf.remoteservice.eventadmin/.settings/.api_filters
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.ecf.remoteservice.eventadmin" version="2">
- <resource path="src/org/eclipse/ecf/internal/remoteservice/eventadmin/LogTracker.java" type="org.eclipse.ecf.internal.remoteservice.eventadmin.LogTracker">
- <filter id="574619656">
- <message_arguments>
- <message_argument value="LogService"/>
- <message_argument value="LogTracker"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.ecf.remoteservice.eventadmin" version="2">
+ <resource path="src/org/eclipse/ecf/internal/remoteservice/eventadmin/LogTracker.java" type="org.eclipse.ecf.internal.remoteservice.eventadmin.LogTracker">
+ <filter id="574619656">
+ <message_arguments>
+ <message_argument value="LogService"/>
+ <message_argument value="LogTracker"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/launchconfigs/Generic Client Java App.launch b/server-side/bundles/org.eclipse.ecf.server.generic/launchconfigs/Generic Client Java App.launch
index 2f6960d67..39f43f19a 100644
--- a/server-side/bundles/org.eclipse.ecf.server.generic/launchconfigs/Generic Client Java App.launch
+++ b/server-side/bundles/org.eclipse.ecf.server.generic/launchconfigs/Generic Client Java App.launch
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/app/GenericClientJavaApplication.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ecf.server.generic.app.GenericClientJavaApplication"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-clientId something:slewis@composent.com/333334"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.server.generic"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/app/GenericClientJavaApplication.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ecf.server.generic.app.GenericClientJavaApplication"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-clientId something:slewis@composent.com/333334"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.server.generic"/>
+</launchConfiguration>
diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractSSLGenericServer.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractSSLGenericServer.java
new file mode 100644
index 000000000..400a1f4a0
--- /dev/null
+++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractSSLGenericServer.java
@@ -0,0 +1,133 @@
+package org.eclipse.ecf.server.generic;
+
+import java.io.IOException;
+import java.security.PermissionCollection;
+import java.util.*;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.IContainerManager;
+import org.eclipse.ecf.core.identity.*;
+import org.eclipse.ecf.core.security.IConnectHandlerPolicy;
+import org.eclipse.ecf.internal.server.generic.Activator;
+import org.eclipse.ecf.provider.generic.*;
+
+/**
+ * @since 6.0
+ */
+public abstract class AbstractSSLGenericServer {
+
+ protected SSLServerSOContainerGroup serverGroup;
+
+ public AbstractSSLGenericServer(String host, int port) {
+ this.serverGroup = new SSLServerSOContainerGroup(host, port);
+ }
+
+ /**
+ * @since 2.0
+ */
+ public SSLGenericServerContainer getFirstServerContainer() {
+ return getServerContainer(0);
+ }
+
+ public List /* GenericServerContainer */getServerContainers() {
+ List result = new ArrayList();
+ for (Iterator i = serverGroup.elements(); i.hasNext();) {
+ result.add(i.next());
+ }
+ return result;
+ }
+
+ /**
+ * @since 2.0
+ */
+ public SSLGenericServerContainer getServerContainer(int index) {
+ return (SSLGenericServerContainer) getServerContainers().get(index);
+ }
+
+ protected void putOnTheAir() throws IOException {
+ if (!serverGroup.isOnTheAir())
+ serverGroup.putOnTheAir();
+ }
+
+ protected void takeOffTheAir() {
+ if (serverGroup.isOnTheAir())
+ serverGroup.takeOffTheAir();
+ }
+
+ public synchronized void start(String path, int keepAlive) throws Exception {
+ createAndInitializeServer(path, keepAlive);
+ putOnTheAir();
+ }
+
+ public synchronized void stop() {
+ if (serverGroup != null) {
+ serverGroup.takeOffTheAir();
+ }
+ List servers = getServerContainers();
+ for (Iterator i = servers.iterator(); i.hasNext();) {
+ GenericServerContainer s = (GenericServerContainer) i.next();
+ s.ejectAllGroupMembers("Shutting down immediately"); //$NON-NLS-1$
+ s.dispose();
+ }
+ }
+
+ protected void createAndInitializeServer(String path) throws IDCreateException {
+ createAndInitializeServer(path, TCPServerSOContainer.DEFAULT_KEEPALIVE);
+ }
+
+ protected void createAndInitializeServer(String path, int keepAlive) throws IDCreateException {
+ if (path == null || path.equals("")) //$NON-NLS-1$
+ throw new NullPointerException("Cannot create ID with null or empty path"); //$NON-NLS-1$
+ SSLGenericServerContainer s = new SSLGenericServerContainer(this, createServerConfig(path), serverGroup, path, keepAlive);
+ IContainerManager containerManager = Activator.getDefault().getContainerManager();
+ if (containerManager != null) {
+ ContainerTypeDescription ctd = containerManager.getContainerFactory().getDescriptionByName("ecf.generic.server.secure"); //$NON-NLS-1$
+ containerManager.addContainer(s, ctd);
+ }
+ IConnectHandlerPolicy policy = createConnectHandlerPolicy(s, path);
+ if (policy != null)
+ s.setConnectPolicy(policy);
+ }
+
+ protected PermissionCollection checkConnect(Object address, ID fromID, ID targetID, String targetGroup, Object connectData) throws Exception {
+ return null;
+ }
+
+ protected abstract void handleDisconnect(ID targetID);
+
+ protected abstract void handleEject(ID targetID);
+
+ /**
+ * @since 2.0
+ */
+ protected IConnectHandlerPolicy createConnectHandlerPolicy(SSLGenericServerContainer s, String path) {
+ return new IConnectHandlerPolicy() {
+ public PermissionCollection checkConnect(Object address, ID fromID, ID targetID, String targetGroup, Object connectData) throws Exception {
+ return AbstractSSLGenericServer.this.checkConnect(address, fromID, targetID, targetGroup, connectData);
+ }
+
+ public void refresh() {
+ // do nothing
+ }
+ };
+ }
+
+ protected ID createServerIDFromPath(String path) throws IDCreateException {
+ if (!path.startsWith("/"))path = "/" + path; //$NON-NLS-1$//$NON-NLS-2$
+ String id = SSLServerSOContainer.DEFAULT_PROTOCOL + "://" //$NON-NLS-1$
+ + getHost() + ":" + getPort() + path; //$NON-NLS-1$
+ return IDFactory.getDefault().createStringID(id);
+ }
+
+ protected SOContainerConfig createServerConfig(String path) throws IDCreateException {
+ return new SOContainerConfig(createServerIDFromPath(path));
+ }
+
+ protected String getHost() {
+ return this.serverGroup.getName();
+ }
+
+ protected int getPort() {
+ return this.serverGroup.getPort();
+ }
+
+}
diff --git a/server-side/examples/bundles/org.eclipse.ecf.examples.remoteservices.server/readme.txt b/server-side/examples/bundles/org.eclipse.ecf.examples.remoteservices.server/readme.txt
index 687b6b65f..d484eeaa2 100644
--- a/server-side/examples/bundles/org.eclipse.ecf.examples.remoteservices.server/readme.txt
+++ b/server-side/examples/bundles/org.eclipse.ecf.examples.remoteservices.server/readme.txt
@@ -1,2 +1,2 @@
-This example has been deprecated, as with new OSGi 4.2
+This example has been deprecated, as with new OSGi 4.2
remote services spec this example is not useful. \ No newline at end of file
diff --git a/server-side/examples/bundles/org.eclipse.ecf.examples.updatesite.server/launch/Remote Updatesite Server.launch b/server-side/examples/bundles/org.eclipse.ecf.examples.updatesite.server/launch/Remote Updatesite Server.launch
index 5e96e79f7..fcbcbb7e1 100644
--- a/server-side/examples/bundles/org.eclipse.ecf.examples.updatesite.server/launch/Remote Updatesite Server.launch
+++ b/server-side/examples/bundles/org.eclipse.ecf.examples.updatesite.server/launch/Remote Updatesite Server.launch
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Remote Updatesite Server"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.ecf.examples.updatesite.server.updateSiteServer file:///c:/build.server/ecf.build/updateSite/"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.osgi.service.http.port=8081"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="true"/>
-<stringAttribute key="target_bundles" value="javax.servlet@default:default,org.apache.commons.logging@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:true,org.eclipse.equinox.common@2:true,org.eclipse.equinox.http.jetty@default:true,org.eclipse.equinox.http.registry@default:true,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.examples.updatesite.server@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.jmdns@default:true,org.eclipse.ecf@default:default"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Remote Updatesite Server"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="default_auto_start" value="false"/>
+<intAttribute key="default_start_level" value="4"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.ecf.examples.updatesite.server.updateSiteServer file:///c:/build.server/ecf.build/updateSite/"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.osgi.service.http.port=8081"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="show_selected_only" value="true"/>
+<stringAttribute key="target_bundles" value="javax.servlet@default:default,org.apache.commons.logging@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:true,org.eclipse.equinox.common@2:true,org.eclipse.equinox.http.jetty@default:true,org.eclipse.equinox.http.registry@default:true,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<stringAttribute key="workspace_bundles" value="org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.examples.updatesite.server@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.jmdns@default:true,org.eclipse.ecf@default:default"/>
+</launchConfiguration>
diff --git a/server-side/features/org.eclipse.ecf.server.feature/feature.xml b/server-side/features/org.eclipse.ecf.server.feature/feature.xml
index 6bd474aab..71581e55b 100644
--- a/server-side/features/org.eclipse.ecf.server.feature/feature.xml
+++ b/server-side/features/org.eclipse.ecf.server.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.serverfeature"
- label="ECF Server"
- version="2.0.0.qualifier"
- provider-name="Eclipse.org">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides a ECF server support.
- </description>
-
- <copyright url="http://www.eclipse.org/ecf">
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.serverfeature"
+ label="ECF Server"
+ version="2.0.0.qualifier"
+ provider-name="Eclipse.org">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides a ECF server support.
+ </description>
+
+ <copyright url="http://www.eclipse.org/ecf">
/*******************************************************************************
* Copyright (c) 2004 Composent, Inc. and others. All rights reserved.
* This program and the accompanying materials are made available
@@ -18,10 +18,10 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Composent, Inc. - initial API and implementation
-******************************************************************************/
- </copyright>
-
- <license url="http://www.eclipse.org/ecf">
+******************************************************************************/
+ </copyright>
+
+ <license url="http://www.eclipse.org/ecf">
About This Content
May 2, 2006
License
@@ -41,18 +41,18 @@ Redistributor&apos;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.
- </license>
-
- <requires>
- <import plugin="org.eclipse.osgi"/>
- </requires>
-
- <plugin
- id="org.eclipse.ecf.server"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+obtained at http://www.eclipse.org.
+ </license>
+
+ <requires>
+ <import plugin="org.eclipse.osgi"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.ecf.server"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/server-side/features/org.eclipse.ecf.server.generic.feature/feature.xml b/server-side/features/org.eclipse.ecf.server.generic.feature/feature.xml
index e87ed9daa..689790c17 100644
--- a/server-side/features/org.eclipse.ecf.server.generic.feature/feature.xml
+++ b/server-side/features/org.eclipse.ecf.server.generic.feature/feature.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.ecf.server.generic.feature"
- label="ECF Generic Server"
- version="1.0.0.qualifier"
- provider-name="%providerName">
-
- <description url="http://www.eclipse.org/ecf">
- This feature provides the ECF Generic Server Support.
- </description>
-
- <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.server.generic.feature"
+ label="ECF Generic Server"
+ version="1.0.0.qualifier"
+ provider-name="%providerName">
+
+ <description url="http://www.eclipse.org/ecf">
+ This feature provides the ECF Generic Server Support.
+ </description>
+
+ <copyright>
#################################################
# Copyright (c) 2010 Composent, Inc. and others. All rights reserved.
# This program and the accompanying materials are made available under the
@@ -18,29 +18,29 @@
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: Composent, Inc. - initial API and implementation
-#################################################
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.ecf.remoteservice.feature"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ecf.server"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ecf.server.generic"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+#################################################
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <includes
+ id="org.eclipse.ecf.remoteservice.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.ecf.server"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.server.generic"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/tests/bundles/org.eclipse.ecf.tests.datashare/.classpath b/tests/bundles/org.eclipse.ecf.tests.datashare/.classpath
index d62b365d0..6f3b481ac 100644
--- a/tests/bundles/org.eclipse.ecf.tests.datashare/.classpath
+++ b/tests/bundles/org.eclipse.ecf.tests.datashare/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/bundles/org.eclipse.ecf.tests.datashare/.settings/org.eclipse.jdt.core.prefs b/tests/bundles/org.eclipse.ecf.tests.datashare/.settings/org.eclipse.jdt.core.prefs
index b5e10f603..484f01f41 100644
--- a/tests/bundles/org.eclipse.ecf.tests.datashare/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.datashare/.settings/org.eclipse.jdt.core.prefs
@@ -1,58 +1,58 @@
-#Fri Oct 15 17:25:18 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Fri Oct 15 17:25:18 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.classpath b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.classpath
index 2d1a4302f..64c5e31b7 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.classpath
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.project b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.project
index e66409b35..2dc0ee885 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.project
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.tests.filetransfer.httpclient</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.tests.filetransfer.httpclient</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.jdt.core.prefs b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.jdt.core.prefs
index 44217f8c0..af0f20f97 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.pde.core.prefs b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.pde.core.prefs
index b7e72d019..f29e940a0 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.pde.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/.settings/org.eclipse.pde.core.prefs
@@ -1,3 +1,3 @@
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/build.properties b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/build.properties
index 41eb6ade2..34d2e4d2d 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/build.properties
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/build.properties
@@ -1,4 +1,4 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/src/org/eclipse/ecf/tests/filetransfer/httpclient/HttpClientGetPortFromURLTest.java b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/src/org/eclipse/ecf/tests/filetransfer/httpclient/HttpClientGetPortFromURLTest.java
index ae2edf5c3..55c2f6a95 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/src/org/eclipse/ecf/tests/filetransfer/httpclient/HttpClientGetPortFromURLTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient/src/org/eclipse/ecf/tests/filetransfer/httpclient/HttpClientGetPortFromURLTest.java
@@ -1,77 +1,77 @@
-package org.eclipse.ecf.tests.filetransfer.httpclient;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer;
-
-import junit.framework.TestCase;
-
-public class HttpClientGetPortFromURLTest extends TestCase {
-
- public static class HttpClientRetrieveTest extends HttpClientRetrieveFileTransfer {
-
- public HttpClientRetrieveTest(HttpClient client) {
- super(client);
- }
-
- public static int getPortFromURLTest(String url) {
- return getPortFromURL(url);
- }
- }
-
- public void testHttp() {
- int port;
- String url = "http://www.test.com";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(80, port);
- }
-
- public void testHttpWithPort() {
- int port;
- String url = "http://www.test.com:80/";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(80, port);
- }
-
- public void testHttps() {
- int port;
- String url = "https://www.test.com/";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(443, port);
- }
-
- public void testHttpsPortNOK() {
- int port;
- String url = "https://www.test.com:440/";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertFalse(443 == port);
- }
-
- public void testHttpWithSearchpart() {
- int port;
- String url = "https://www.test.com/test?value=yes";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(443, port);
- }
-
- public void testHttpWithCredentialsAndSearchpart() {
- int port;
- String url = "https://testuser:testpasswd@www.test.com/test?value=yes";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(443, port);
- }
-
- public void testHttpWithCredentialsPortSearchpart() {
- int port;
- String url = "http://testuser:testpasswd@www.test.com:8080/test?value=yes";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(8080, port);
- }
-
- public void testHttpWithCredentialsPortLongPath() {
- int port;
- String url = "https://testuser:testpasswd@host.domain.eu:443/pu/fisgui/svn/repository/fisgui/source-internal/trunk/target-platform/fisgui-5.8.1/content.xml";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(443, port);
- }
-
-}
+package org.eclipse.ecf.tests.filetransfer.httpclient;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer;
+
+import junit.framework.TestCase;
+
+public class HttpClientGetPortFromURLTest extends TestCase {
+
+ public static class HttpClientRetrieveTest extends HttpClientRetrieveFileTransfer {
+
+ public HttpClientRetrieveTest(HttpClient client) {
+ super(client);
+ }
+
+ public static int getPortFromURLTest(String url) {
+ return getPortFromURL(url);
+ }
+ }
+
+ public void testHttp() {
+ int port;
+ String url = "http://www.test.com";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(80, port);
+ }
+
+ public void testHttpWithPort() {
+ int port;
+ String url = "http://www.test.com:80/";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(80, port);
+ }
+
+ public void testHttps() {
+ int port;
+ String url = "https://www.test.com/";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(443, port);
+ }
+
+ public void testHttpsPortNOK() {
+ int port;
+ String url = "https://www.test.com:440/";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertFalse(443 == port);
+ }
+
+ public void testHttpWithSearchpart() {
+ int port;
+ String url = "https://www.test.com/test?value=yes";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(443, port);
+ }
+
+ public void testHttpWithCredentialsAndSearchpart() {
+ int port;
+ String url = "https://testuser:testpasswd@www.test.com/test?value=yes";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(443, port);
+ }
+
+ public void testHttpWithCredentialsPortSearchpart() {
+ int port;
+ String url = "http://testuser:testpasswd@www.test.com:8080/test?value=yes";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(8080, port);
+ }
+
+ public void testHttpWithCredentialsPortLongPath() {
+ int port;
+ String url = "https://testuser:testpasswd@host.domain.eu:443/pu/fisgui/svn/repository/fisgui/source-internal/trunk/target-platform/fisgui-5.8.1/content.xml";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(443, port);
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.classpath b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.classpath
index 2d1a4302f..64c5e31b7 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.classpath
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.project b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.project
index ea8cbecfd..27909fceb 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.project
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.tests.filetransfer.httpclient4</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.tests.filetransfer.httpclient4</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs
index 44217f8c0..af0f20f97 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.pde.core.prefs b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.pde.core.prefs
index b7e72d019..f29e940a0 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.pde.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/.settings/org.eclipse.pde.core.prefs
@@ -1,3 +1,3 @@
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/build.properties b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/build.properties
index 41eb6ade2..34d2e4d2d 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/build.properties
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/build.properties
@@ -1,4 +1,4 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/src/org/eclipse/ecf/tests/filetransfer/httpclient4/HttpClientGetPortFromURLTest.java b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/src/org/eclipse/ecf/tests/filetransfer/httpclient4/HttpClientGetPortFromURLTest.java
index 03c597c29..e7d3827c0 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/src/org/eclipse/ecf/tests/filetransfer/httpclient4/HttpClientGetPortFromURLTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient4/src/org/eclipse/ecf/tests/filetransfer/httpclient4/HttpClientGetPortFromURLTest.java
@@ -1,77 +1,77 @@
-package org.eclipse.ecf.tests.filetransfer.httpclient4;
-
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransfer;
-
-import junit.framework.TestCase;
-
-public class HttpClientGetPortFromURLTest extends TestCase {
-
- public static class HttpClientRetrieveTest extends HttpClientRetrieveFileTransfer {
-
- public HttpClientRetrieveTest(DefaultHttpClient httpClient) {
- super(httpClient);
- }
-
- public static int getPortFromURLTest(String url) {
- return getPortFromURL(url);
- }
- }
-
- public void testHttp() {
- int port;
- String url = "http://www.test.com";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(80, port);
- }
-
- public void testHttpWithPort() {
- int port;
- String url = "http://www.test.com:80/";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(80, port);
- }
-
- public void testHttps() {
- int port;
- String url = "https://www.test.com/";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(443, port);
- }
-
- public void testHttpsPortNOK() {
- int port;
- String url = "https://www.test.com:440/";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertFalse(443 == port);
- }
-
- public void testHttpWithSearchpart() {
- int port;
- String url = "https://www.test.com/test?value=yes";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(443, port);
- }
-
- public void testHttpWithCredentialsAndSearchpart() {
- int port;
- String url = "https://testuser:testpasswd@www.test.com/test?value=yes";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(443, port);
- }
-
- public void testHttpWithCredentialsPortSearchpart() {
- int port;
- String url = "http://testuser:testpasswd@www.test.com:8080/test?value=yes";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(8080, port);
- }
-
- public void testHttpWithCredentialsPortLongPath() {
- int port;
- String url = "https://testuser:testpasswd@host.domain.eu:443/pu/fisgui/svn/repository/fisgui/source-internal/trunk/target-platform/fisgui-5.8.1/content.xml";
- port = HttpClientRetrieveTest.getPortFromURLTest(url);
- assertEquals(443, port);
- }
-
-}
+package org.eclipse.ecf.tests.filetransfer.httpclient4;
+
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransfer;
+
+import junit.framework.TestCase;
+
+public class HttpClientGetPortFromURLTest extends TestCase {
+
+ public static class HttpClientRetrieveTest extends HttpClientRetrieveFileTransfer {
+
+ public HttpClientRetrieveTest(DefaultHttpClient httpClient) {
+ super(httpClient);
+ }
+
+ public static int getPortFromURLTest(String url) {
+ return getPortFromURL(url);
+ }
+ }
+
+ public void testHttp() {
+ int port;
+ String url = "http://www.test.com";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(80, port);
+ }
+
+ public void testHttpWithPort() {
+ int port;
+ String url = "http://www.test.com:80/";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(80, port);
+ }
+
+ public void testHttps() {
+ int port;
+ String url = "https://www.test.com/";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(443, port);
+ }
+
+ public void testHttpsPortNOK() {
+ int port;
+ String url = "https://www.test.com:440/";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertFalse(443 == port);
+ }
+
+ public void testHttpWithSearchpart() {
+ int port;
+ String url = "https://www.test.com/test?value=yes";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(443, port);
+ }
+
+ public void testHttpWithCredentialsAndSearchpart() {
+ int port;
+ String url = "https://testuser:testpasswd@www.test.com/test?value=yes";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(443, port);
+ }
+
+ public void testHttpWithCredentialsPortSearchpart() {
+ int port;
+ String url = "http://testuser:testpasswd@www.test.com:8080/test?value=yes";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(8080, port);
+ }
+
+ public void testHttpWithCredentialsPortLongPath() {
+ int port;
+ String url = "https://testuser:testpasswd@host.domain.eu:443/pu/fisgui/svn/repository/fisgui/source-internal/trunk/target-platform/fisgui-5.8.1/content.xml";
+ port = HttpClientRetrieveTest.getPortFromURLTest(url);
+ assertEquals(443, port);
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/.settings/.api_filters b/tests/bundles/org.eclipse.ecf.tests.filetransfer/.settings/.api_filters
index 25530c784..d6ceb8557 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/.settings/.api_filters
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/.settings/.api_filters
@@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.ecf.tests.filetransfer" version="2">
- <resource path="src/org/eclipse/ecf/tests/filetransfer/AbstractRetrieveTestCase.java" type="org.eclipse.ecf.tests.filetransfer.AbstractRetrieveTestCase">
- <filter comment="test code" id="574619656">
- <message_arguments>
- <message_argument value="IProxyData"/>
- <message_argument value="AbstractRetrieveTestCase"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/ecf/tests/filetransfer/Activator.java" type="org.eclipse.ecf.tests.filetransfer.Activator">
- <filter comment="protocol mapper is provisional so marked as internal" id="643842064">
- <message_arguments>
- <message_argument value="IFileTransferProtocolToFactoryMapper"/>
- <message_argument value="Activator"/>
- <message_argument value="getProtocolToFactoryMapper()"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/ecf/tests/filetransfer/URIProtocolFactoryRetrieveTest.java" type="org.eclipse.ecf.tests.filetransfer.URIProtocolFactoryRetrieveTest">
- <filter comment="protocol factory mapper is provisional" id="643842064">
- <message_arguments>
- <message_argument value="IFileTransferProtocolToFactoryMapper"/>
- <message_argument value="URIProtocolFactoryRetrieveTest"/>
- <message_argument value="getProtocolToFactoryMapper()"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.ecf.tests.filetransfer" version="2">
+ <resource path="src/org/eclipse/ecf/tests/filetransfer/AbstractRetrieveTestCase.java" type="org.eclipse.ecf.tests.filetransfer.AbstractRetrieveTestCase">
+ <filter comment="test code" id="574619656">
+ <message_arguments>
+ <message_argument value="IProxyData"/>
+ <message_argument value="AbstractRetrieveTestCase"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/ecf/tests/filetransfer/Activator.java" type="org.eclipse.ecf.tests.filetransfer.Activator">
+ <filter comment="protocol mapper is provisional so marked as internal" id="643842064">
+ <message_arguments>
+ <message_argument value="IFileTransferProtocolToFactoryMapper"/>
+ <message_argument value="Activator"/>
+ <message_argument value="getProtocolToFactoryMapper()"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/ecf/tests/filetransfer/URIProtocolFactoryRetrieveTest.java" type="org.eclipse.ecf.tests.filetransfer.URIProtocolFactoryRetrieveTest">
+ <filter comment="protocol factory mapper is provisional" id="643842064">
+ <message_arguments>
+ <message_argument value="IFileTransferProtocolToFactoryMapper"/>
+ <message_argument value="URIProtocolFactoryRetrieveTest"/>
+ <message_argument value="getProtocolToFactoryMapper()"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient.launch b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient.launch
index 4e68bbcb2..313ef02d5 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient.launch
@@ -1,515 +1,515 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog&#13;&#10;-Dorg.apache.commons.logging.simplelog.showdatetime=true&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire.header=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout=90000&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout=80000"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog&#13;&#10;-Dorg.apache.commons.logging.simplelog.showdatetime=true&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire.header=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout=90000&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout=80000"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="true"/>
+<mapAttribute key="tracingOptions">
+<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
+<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
+<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
+<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
+<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
+<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
+<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
+<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
+<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.help/debug" value="true"/>
+<mapEntry key="org.eclipse.help/debug/context" value="false"/>
+<mapEntry key="org.eclipse.help/debug/search" value="false"/>
+<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
+<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
+<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
+<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.osgi/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
+<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
+<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
+<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
+<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
+<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
+<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
+<mapEntry key="org.eclipse.team.core/streams" value="false"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
+<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
+<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
+<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
+<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
+<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
+<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
+</mapAttribute>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4 - No Proxy API.launch b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4 - No Proxy API.launch
index ecaff2a63..24da7dab5 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4 - No Proxy API.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4 - No Proxy API.launch
@@ -1,515 +1,515 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog&#13;&#10;-Dorg.apache.commons.logging.simplelog.showdatetime=true&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire.header=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout=90000&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout=80000"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:default"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog&#13;&#10;-Dorg.apache.commons.logging.simplelog.showdatetime=true&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire.header=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout=90000&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout=80000"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="true"/>
+<mapAttribute key="tracingOptions">
+<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
+<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
+<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
+<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
+<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
+<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
+<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
+<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
+<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.help/debug" value="true"/>
+<mapEntry key="org.eclipse.help/debug/context" value="false"/>
+<mapEntry key="org.eclipse.help/debug/search" value="false"/>
+<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
+<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
+<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
+<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.osgi/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
+<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
+<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
+<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
+<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
+<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
+<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
+<mapEntry key="org.eclipse.team.core/streams" value="false"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
+<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
+<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
+<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
+<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
+<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
+<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
+</mapAttribute>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4.launch b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4.launch
index 5c6db4ed6..caebbdca3 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- Httpclient4.launch
@@ -1,515 +1,515 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog&#13;&#10;-Dorg.apache.commons.logging.simplelog.showdatetime=true&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire.header=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout=90000&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout=80000"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:false"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog&#13;&#10;-Dorg.apache.commons.logging.simplelog.showdatetime=true&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire.header=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout=90000&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout=80000"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:false"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="true"/>
+<mapAttribute key="tracingOptions">
+<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
+<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
+<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
+<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
+<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
+<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
+<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
+<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
+<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.help/debug" value="true"/>
+<mapEntry key="org.eclipse.help/debug/context" value="false"/>
+<mapEntry key="org.eclipse.help/debug/search" value="false"/>
+<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
+<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
+<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
+<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.osgi/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
+<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
+<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
+<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
+<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
+<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
+<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
+<mapEntry key="org.eclipse.team.core/streams" value="false"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
+<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
+<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
+<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
+<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
+<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
+<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
+</mapAttribute>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection - No Proxy API.launch b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection - No Proxy API.launch
index 11f67df67..4a577611f 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection - No Proxy API.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection - No Proxy API.launch
@@ -1,515 +1,515 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.eclipse.ecf.tests.filetransfer.cancelSupportedOnConnect=false"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent*1.0.200.v20110502@default:default,org.eclipse.equinox.concurrent*1.0.200.v20111010-1614@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.eclipse.ecf.tests.filetransfer.cancelSupportedOnConnect=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent*1.0.200.v20110502@default:default,org.eclipse.equinox.concurrent*1.0.200.v20111010-1614@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="true"/>
+<mapAttribute key="tracingOptions">
+<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
+<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
+<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
+<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
+<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
+<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
+<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
+<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
+<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.help/debug" value="true"/>
+<mapEntry key="org.eclipse.help/debug/context" value="false"/>
+<mapEntry key="org.eclipse.help/debug/search" value="false"/>
+<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
+<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
+<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
+<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.osgi/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
+<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
+<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
+<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
+<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
+<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
+<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
+<mapEntry key="org.eclipse.team.core/streams" value="false"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
+<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
+<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
+<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
+<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
+<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
+<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
+</mapAttribute>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection.launch b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection.launch
index ad0e4502d..c9a10f334 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/ECF Filetransfer Tests- URLConnection.launch
@@ -1,515 +1,515 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.eclipse.ecf.tests.filetransfer.cancelSupportedOnConnect=false"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.eclipse.ecf.tests.filetransfer.cancelSupportedOnConnect=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="true"/>
+<mapAttribute key="tracingOptions">
+<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
+<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
+<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
+<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
+<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
+<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
+<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jgroups/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.weblogic/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.skype/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.equinox.common/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/artifacts/mirrors" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/parseproblems" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/core/removeRepo" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/engine/installregistry" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/generator/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/metadata/parsing" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/operands" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/planner/projector" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/reconciler" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.core/updatechecker" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.garbagecollector/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
+<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
+<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.help/debug" value="true"/>
+<mapEntry key="org.eclipse.help/debug/context" value="false"/>
+<mapEntry key="org.eclipse.help/debug/search" value="false"/>
+<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
+<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
+<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
+<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.osgi/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
+<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
+<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
+<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
+<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
+<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
+<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
+<mapEntry key="org.eclipse.team.core/streams" value="false"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
+<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
+<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
+<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
+<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
+<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
+<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
+</mapAttribute>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.httpclient.launch b/tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.httpclient.launch
index 4ee25ba07..42eb41c63 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.httpclient.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.httpclient.launch
@@ -1,591 +1,591 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="org.eclipse.ecf.provider.filetransfer.httpclient4"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-tests"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consolelog"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout=90000&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout=80000&#13;&#10;-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog&#13;&#10;-Dorg.apache.commons.logging.simplelog.showdatetime=true &#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire.header=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent*1.0.200.v20110502@default:default,org.eclipse.equinox.concurrent*1.0.200.v20111010-1614@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:false"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/debug/TypeExtensionManager" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/breadcrumb" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/breakpointDeltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/presentationId" value=""/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/containerfinder" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/discoveredservicetracker" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/eventhook" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/containerselector" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionadvertiser" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionlocator" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionreader" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/metadatafactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/packageversioncomparator" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/remoteserviceadmin" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/topologymanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/trace" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/trace/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/trace/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.egit.core/debug" value="false"/>
-<mapEntry key="org.eclipse.egit.core/debug/core" value="false"/>
-<mapEntry key="org.eclipse.egit.core/debug/core/indexdiffcache" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/quickdiff" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/repochangescanner" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/ui" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/ui/decoration" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/ui/historyview" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/ui/repositoriesview" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/instantiate_all" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/certificatechecker/unsigned" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/certificatechecker/untrusted" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/engine/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/enginesession/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/profileregistry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.debug/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug/astEvaluations" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug/astEvaluations/callingThreads" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug/jdiEvents" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug/jdiRequestTimes" value="false"/>
-<mapEntry key="org.eclipse.jdt.launching/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.launching/debug/classpath/jreContainer" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/objectPool/adds" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/objectPool/dups" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/cachedmanifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/apianalyzer" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/apidescription" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/apifilterstore" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/apiprofile" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/classfilevisitor" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/delta" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/descriptor/framework" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/pluginworkspacecomponent" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/profilemanager" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/tagscanner" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/usereportconverter" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/workspacedeltaprocessor" value="false"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.pde.core/target/profile" value="false"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/dnd" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/setup" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/sort" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/viewermap" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/perspectives" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="org.eclipse.ecf.provider.filetransfer.httpclient4"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-tests"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consolelog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout=90000&#13;&#10;-Dorg.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout=80000&#13;&#10;-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog&#13;&#10;-Dorg.apache.commons.logging.simplelog.showdatetime=true &#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire.header=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug&#13;&#10;-Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent*1.0.200.v20110502@default:default,org.eclipse.equinox.concurrent*1.0.200.v20111010-1614@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:false"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="true"/>
+<mapAttribute key="tracingOptions">
+<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/debug/TypeExtensionManager" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
+<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
+<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
+<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
+<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
+<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/breadcrumb" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/breakpointDeltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/presentationId" value=""/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
+<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/containerfinder" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/discoveredservicetracker" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/eventhook" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/containerselector" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionadvertiser" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionlocator" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionreader" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/metadatafactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/packageversioncomparator" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/remoteserviceadmin" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/topologymanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/trace" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/trace/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/trace/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.egit.core/debug" value="false"/>
+<mapEntry key="org.eclipse.egit.core/debug/core" value="false"/>
+<mapEntry key="org.eclipse.egit.core/debug/core/indexdiffcache" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/quickdiff" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/repochangescanner" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/ui" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/ui/decoration" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/ui/historyview" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/ui/repositoriesview" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/instantiate_all" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/certificatechecker/unsigned" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/certificatechecker/untrusted" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/engine/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/enginesession/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/profileregistry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
+<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
+<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.help/debug" value="true"/>
+<mapEntry key="org.eclipse.help/debug/context" value="false"/>
+<mapEntry key="org.eclipse.help/debug/search" value="false"/>
+<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
+<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.debug/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.debug/debug/astEvaluations" value="false"/>
+<mapEntry key="org.eclipse.jdt.debug/debug/astEvaluations/callingThreads" value="false"/>
+<mapEntry key="org.eclipse.jdt.debug/debug/jdiEvents" value="false"/>
+<mapEntry key="org.eclipse.jdt.debug/debug/jdiRequestTimes" value="false"/>
+<mapEntry key="org.eclipse.jdt.launching/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.launching/debug/classpath/jreContainer" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
+<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
+<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.osgi/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/objectPool/adds" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/objectPool/dups" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/cachedmanifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
+<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
+<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/apianalyzer" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/apidescription" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/apifilterstore" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/apiprofile" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/classfilevisitor" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/delta" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/descriptor/framework" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/pluginworkspacecomponent" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/profilemanager" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/search" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/tagscanner" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/usereportconverter" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/workspacedeltaprocessor" value="false"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
+<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
+<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
+<mapEntry key="org.eclipse.pde.core/target/profile" value="false"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
+<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
+<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
+<mapEntry key="org.eclipse.team.core/streams" value="false"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
+<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
+<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/dnd" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/setup" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/sort" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/viewermap" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
+<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
+<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/perspectives" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
+<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
+</mapAttribute>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.launch b/tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.launch
index 016667575..2e0c0f3ce 100644
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/org.eclipse.ecf.tests.filetransfer.launch
@@ -1,591 +1,591 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="org.eclipse.ecf.provider.filetransfer.httpclient4"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-tests"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consolelog"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.eclipse.ecf.tests.filetransfer.cancelSupportedOnConnect=false"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent*1.0.200.v20110502@default:default,org.eclipse.equinox.concurrent*1.0.200.v20111010-1614@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:false"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/debug/TypeExtensionManager" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/breadcrumb" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/breakpointDeltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/presentationId" value=""/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/containerfinder" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/discoveredservicetracker" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/eventhook" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/containerselector" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionadvertiser" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionlocator" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionreader" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/metadatafactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/packageversioncomparator" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/remoteserviceadmin" value="true"/>
-<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/topologymanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/trace" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/trace/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.wave.google/trace/flag" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.egit.core/debug" value="false"/>
-<mapEntry key="org.eclipse.egit.core/debug/core" value="false"/>
-<mapEntry key="org.eclipse.egit.core/debug/core/indexdiffcache" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/quickdiff" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/repochangescanner" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/ui" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/ui/decoration" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/ui/historyview" value="false"/>
-<mapEntry key="org.eclipse.egit.ui/debug/ui/repositoriesview" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/instantiate_all" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
-<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/certificatechecker/unsigned" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/certificatechecker/untrusted" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/engine/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/enginesession/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.p2.engine/profileregistry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.debug/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug/astEvaluations" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug/astEvaluations/callingThreads" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug/jdiEvents" value="false"/>
-<mapEntry key="org.eclipse.jdt.debug/debug/jdiRequestTimes" value="false"/>
-<mapEntry key="org.eclipse.jdt.launching/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.launching/debug/classpath/jreContainer" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/objectPool/adds" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/objectPool/dups" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/cachedmanifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/apianalyzer" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/apidescription" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/apifilterstore" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/apiprofile" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/classfilevisitor" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/delta" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/descriptor/framework" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/pluginworkspacecomponent" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/profilemanager" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/tagscanner" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/usereportconverter" value="false"/>
-<mapEntry key="org.eclipse.pde.api.tools/debug/workspacedeltaprocessor" value="false"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.pde.core/target/profile" value="false"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/dnd" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/setup" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/sort" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/debug/viewermap" value="false"/>
-<mapEntry key="org.eclipse.ui.navigator/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/perspectives" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="\org.eclipse.ecf.tests.filetransfer\A"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="org.eclipse.ecf.provider.filetransfer.httpclient4"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-tests"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.filetransfer"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.filetransfer"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consolelog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.filetransfer"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.eclipse.ecf.tests.filetransfer.cancelSupportedOnConnect=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent*1.0.200.v20110502@default:default,org.eclipse.equinox.concurrent*1.0.200.v20111010-1614@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:false"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="true"/>
+<mapAttribute key="tracingOptions">
+<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/debug/TypeExtensionManager" value="false"/>
+<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
+<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
+<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
+<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
+<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
+<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
+<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
+<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/breadcrumb" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/breakpointDeltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/presentationId" value=""/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
+<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.internal.provisional.docshare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/containerfinder" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/discoveredservicetracker" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/eventhook" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.distribution/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/containerselector" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionadvertiser" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionlocator" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/endpointdescriptionreader" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/metadatafactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/packageversioncomparator" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/remoteserviceadmin" value="true"/>
+<mapEntry key="org.eclipse.ecf.osgi.services.remoteserviceadmin/debug/topologymanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.discovery/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.dnssd/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/exceptions/catching" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/exceptions/throwing" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/methods/entering" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.filetransfer/debug/methods/exiting" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.irc/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms.activemq/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/changing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jslp/debug/methods/tracing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/trace" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/trace/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.wave.google/trace/flag" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.server/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.server/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.sync/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.tests.osgi.services.distribution/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.egit.core/debug" value="false"/>
+<mapEntry key="org.eclipse.egit.core/debug/core" value="false"/>
+<mapEntry key="org.eclipse.egit.core/debug/core/indexdiffcache" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/quickdiff" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/repochangescanner" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/ui" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/ui/decoration" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/ui/historyview" value="false"/>
+<mapEntry key="org.eclipse.egit.ui/debug/ui/repositoriesview" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/instantiate_all" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/performance" value="false"/>
+<mapEntry key="org.eclipse.equinox.ds/print_on_console" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/certificatechecker/unsigned" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/certificatechecker/untrusted" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/engine/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/enginesession/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.p2.engine/profileregistry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
+<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
+<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
+<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
+<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.help/debug" value="true"/>
+<mapEntry key="org.eclipse.help/debug/context" value="false"/>
+<mapEntry key="org.eclipse.help/debug/search" value="false"/>
+<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/indexmanager/advanced" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
+<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
+<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.jdt.debug/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.debug/debug/astEvaluations" value="false"/>
+<mapEntry key="org.eclipse.jdt.debug/debug/astEvaluations/callingThreads" value="false"/>
+<mapEntry key="org.eclipse.jdt.debug/debug/jdiEvents" value="false"/>
+<mapEntry key="org.eclipse.jdt.debug/debug/jdiRequestTimes" value="false"/>
+<mapEntry key="org.eclipse.jdt.launching/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.launching/debug/classpath/jreContainer" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/BreadcrumbItemDropDown" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
+<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
+<mapEntry key="org.eclipse.jface.text/assert/TextSelection/validConstructorArguments" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.osgi/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/objectPool/adds" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/objectPool/dups" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/cachedmanifest" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
+<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
+<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
+<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
+<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/apianalyzer" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/apidescription" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/apifilterstore" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/apiprofile" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/builder" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/classfilevisitor" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/delta" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/descriptor/framework" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/pluginworkspacecomponent" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/profilemanager" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/search" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/tagscanner" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/usereportconverter" value="false"/>
+<mapEntry key="org.eclipse.pde.api.tools/debug/workspacedeltaprocessor" value="false"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
+<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
+<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
+<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
+<mapEntry key="org.eclipse.pde.core/target/profile" value="false"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
+<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
+<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
+<mapEntry key="org.eclipse.team.core/streams" value="false"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
+<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
+<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
+<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/debug/toolbar" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
+<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
+<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/dnd" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/resolution" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/setup" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/sort" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/debug/viewermap" value="false"/>
+<mapEntry key="org.eclipse.ui.navigator/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
+<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
+<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
+<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/perspectives" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
+<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
+</mapAttribute>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.httpservice/.settings/org.eclipse.jdt.core.prefs b/tests/bundles/org.eclipse.ecf.tests.httpservice/.settings/org.eclipse.jdt.core.prefs
index 10e872905..67465c43e 100644
--- a/tests/bundles/org.eclipse.ecf.tests.httpservice/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.httpservice/.settings/org.eclipse.jdt.core.prefs
@@ -1,74 +1,74 @@
-#Tue Jan 11 19:52:25 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+#Tue Jan 11 19:52:25 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.classpath b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.classpath
index 8a8f1668c..ad32c83a7 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.classpath
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.project b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.project
index 5fce69511..242bb7f24 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.project
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.tests.osgi.services.remoteserviceadmin</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.tests.osgi.services.remoteserviceadmin</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
index 75b5ac7b9..7ff9ed06b 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.jdt.core.prefs
@@ -1,73 +1,73 @@
-#Fri Dec 03 17:02:32 PST 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
+#Fri Dec 03 17:02:32 PST 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs
index 75b58abe5..03bcfecd6 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.core.prefs
@@ -1,4 +1,4 @@
-#Tue Oct 26 17:03:06 PDT 2010
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+#Tue Oct 26 17:03:06 PDT 2010
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs
index 4455dc93e..474dcfd3b 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/.settings/org.eclipse.pde.prefs
@@ -1,33 +1,33 @@
-#Fri Dec 03 17:02:03 PST 2010
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=2
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
+#Fri Dec 03 17:02:03 PST 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=2
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=2
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/build.properties b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/build.properties
index 0cf66274b..dd6a5dc60 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/build.properties
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/build.properties
@@ -1,8 +1,8 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- about.html,\
- bundle.properties
-src.includes = about.html,\
- bundle.properties
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ bundle.properties
+src.includes = about.html,\
+ bundle.properties
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/bundle.properties b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/bundle.properties
index 8675daf70..4357dfd63 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/bundle.properties
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/bundle.properties
@@ -1,10 +1,10 @@
-############################################################################
-# Copyright (c) 2010 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
-#
-############################################################################
-bundle.name=ECF Remote Service Admin Tests
-bundle.provider=Eclipse.org - ECF
+############################################################################
+# Copyright (c) 2010 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
+#
+############################################################################
+bundle.name=ECF Remote Service Admin Tests
+bundle.provider=Eclipse.org - ECF
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-extra.xml b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-extra.xml
index 4fcf05784..3a3bb7225 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-extra.xml
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-extra.xml
@@ -1,26 +1,26 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
-<endpoint-description>
- <property name="objectClass" value="com.acme.Foo"/>
- <property name="endpoint.id" value="ecftcp://localhost:3282/server2"/>
- <property name="endpoint.service.id" value="2"/>
- <property name="endpoint.framework.uuid" value="abcd-1234-7654-fedc"/>
- <property name="service.imported.configs" value="ecf.generic.server"/>
- <property name="ecf.endpoint.remoteservice.id" value="200"/>
- <property name="endpoint.package.version.com.acme" value="4.2"/>
- <property name="com.acme.ws.xml">
- <xml>
- <config xmlns="http://acme.com/defs">
- <port>1029</port>
- <host>www.acme.com</host>
- </config>
- </xml>
- </property>
- <property name="service.intents">
- <list>
- <value>SOAP</value>
- <value>HTTP</value>
- </list>
- </property>
-</endpoint-description>
-</endpoint-descriptions>
+<?xml version="1.0" encoding="UTF-8"?>
+<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
+<endpoint-description>
+ <property name="objectClass" value="com.acme.Foo"/>
+ <property name="endpoint.id" value="ecftcp://localhost:3282/server2"/>
+ <property name="endpoint.service.id" value="2"/>
+ <property name="endpoint.framework.uuid" value="abcd-1234-7654-fedc"/>
+ <property name="service.imported.configs" value="ecf.generic.server"/>
+ <property name="ecf.endpoint.remoteservice.id" value="200"/>
+ <property name="endpoint.package.version.com.acme" value="4.2"/>
+ <property name="com.acme.ws.xml">
+ <xml>
+ <config xmlns="http://acme.com/defs">
+ <port>1029</port>
+ <host>www.acme.com</host>
+ </config>
+ </xml>
+ </property>
+ <property name="service.intents">
+ <list>
+ <value>SOAP</value>
+ <value>HTTP</value>
+ </list>
+ </property>
+</endpoint-description>
+</endpoint-descriptions>
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-minimal.xml b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-minimal.xml
index 11e2da17a..f80ce70f4 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-minimal.xml
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/ecf-remote-service-minimal.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
-<endpoint-description>
- <property name="objectClass" value="com.acme.Foo"/>
- <property name="endpoint.id" value="ecftcp://localhost:3282/server"/>
- <property name="endpoint.service.id" value="1"/>
- <property name="endpoint.framework.uuid" value="abcd-1234-7654-fedc"/>
- <property name="service.imported.configs" value="ecf.generic.server"/>
- <property name="ecf.endpoint.remoteservice.id" value="100"/>
-</endpoint-description>
-</endpoint-descriptions>
+<?xml version="1.0" encoding="UTF-8"?>
+<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
+<endpoint-description>
+ <property name="objectClass" value="com.acme.Foo"/>
+ <property name="endpoint.id" value="ecftcp://localhost:3282/server"/>
+ <property name="endpoint.service.id" value="1"/>
+ <property name="endpoint.framework.uuid" value="abcd-1234-7654-fedc"/>
+ <property name="service.imported.configs" value="ecf.generic.server"/>
+ <property name="ecf.endpoint.remoteservice.id" value="100"/>
+</endpoint-description>
+</endpoint-descriptions>
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-extra.xml b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-extra.xml
index 906116807..160717292 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-extra.xml
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-extra.xml
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
-<endpoint-description>
- <property name="objectClass" value="com.acme.Foo"/>
- <property name="endpoint.id" value="http://ws.acme.com:9000/hello2"/>
- <property name="endpoint.service.id" value="2"/>
- <property name="endpoint.framework.uuid" value="abcd-1234-7654-fedc"/>
- <property name="service.imported.configs" value="com.acme"/>
- <property name="endpoint.package.version.com.acme" value="4.2"/>
- <property name="com.acme.ws.xml">
- <xml>
- <config xmlns="http://acme.com/defs">
- <port>1029</port>
- <host>www.acme.com</host>
- </config>
- </xml>
- </property>
- <property name="service.intents">
- <list>
- <value>SOAP</value>
- <value>HTTP</value>
- </list>
- </property>
-</endpoint-description>
-</endpoint-descriptions>
+<?xml version="1.0" encoding="UTF-8"?>
+<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
+<endpoint-description>
+ <property name="objectClass" value="com.acme.Foo"/>
+ <property name="endpoint.id" value="http://ws.acme.com:9000/hello2"/>
+ <property name="endpoint.service.id" value="2"/>
+ <property name="endpoint.framework.uuid" value="abcd-1234-7654-fedc"/>
+ <property name="service.imported.configs" value="com.acme"/>
+ <property name="endpoint.package.version.com.acme" value="4.2"/>
+ <property name="com.acme.ws.xml">
+ <xml>
+ <config xmlns="http://acme.com/defs">
+ <port>1029</port>
+ <host>www.acme.com</host>
+ </config>
+ </xml>
+ </property>
+ <property name="service.intents">
+ <list>
+ <value>SOAP</value>
+ <value>HTTP</value>
+ </list>
+ </property>
+</endpoint-description>
+</endpoint-descriptions>
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-minimal.xml b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-minimal.xml
index 54741f46a..d6026e2f9 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-minimal.xml
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/rsvcs/osgi-remote-service-minimal.xml
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
-<endpoint-description>
- <property name="objectClass" value="com.acme.Foo"/>
- <property name="endpoint.id" value="http://ws.acme.com:9000/hello"/>
- <property name="endpoint.service.id" value="1"/>
- <property name="endpoint.framework.uuid" value="abcd-1234-7654-fedc"/>
- <property name="service.imported.configs" value="com.acme"/>
-</endpoint-description>
-</endpoint-descriptions>
+<?xml version="1.0" encoding="UTF-8"?>
+<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
+<endpoint-description>
+ <property name="objectClass" value="com.acme.Foo"/>
+ <property name="endpoint.id" value="http://ws.acme.com:9000/hello"/>
+ <property name="endpoint.service.id" value="1"/>
+ <property name="endpoint.framework.uuid" value="abcd-1234-7654-fedc"/>
+ <property name="service.imported.configs" value="com.acme"/>
+</endpoint-description>
+</endpoint-descriptions>
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionEDEFBundleGeneratorTest.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionEDEFBundleGeneratorTest.java
index ed8121efd..776347d1f 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionEDEFBundleGeneratorTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionEDEFBundleGeneratorTest.java
@@ -1,84 +1,84 @@
-package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionAdvertiser;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-public abstract class AbstractEndpointDescriptionEDEFBundleGeneratorTest extends
- AbstractDistributionTest {
-
- protected static final int REGISTER_WAIT = 2000;
- private ServiceRegistration registration;
-
- private ServiceRegistration writerEndpointDescriptionAdvertiser;
-
- protected void setUp() throws Exception {
- super.setUp();
- writerEndpointDescriptionAdvertiser = getContext().registerService(IEndpointDescriptionAdvertiser.class.getName(), createStandardOutputWriterServiceInfoFactory(), null);
- }
-
- private IEndpointDescriptionAdvertiser createStandardOutputWriterServiceInfoFactory() {
- return new IEndpointDescriptionAdvertiser() {
-
- @Override
- public IStatus advertise(EndpointDescription endpointDescription) {
- try {
- EDEFBundleGenerator edefBundleGenerator = new EDEFBundleGenerator(new File("c:\\temp\\"),"org.eclipse.ecf.edefbundlegenerator","1.0.0",null);
- edefBundleGenerator.generateEDEFBundle(new EndpointDescription[] { endpointDescription });
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return Status.OK_STATUS;
- }
-
- @Override
- public IStatus unadvertise(EndpointDescription endpointDescription) {
- // TODO Auto-generated method stub
- return Status.OK_STATUS;
- }
- };
- }
-
- protected void tearDown() throws Exception {
- if (registration != null) {
- registration.unregister();
- registration = null;
- }
- if (writerEndpointDescriptionAdvertiser != null) {
- writerEndpointDescriptionAdvertiser.unregister();
- writerEndpointDescriptionAdvertiser = null;
- }
- super.tearDown();
- }
-
- public void testRegisterOnCreatedServer() throws Exception {
- Properties props = getServiceProperties();
- // Actually register with default service (IConcatService)
- registration = registerDefaultService(props);
- // Wait a while
- Thread.sleep(REGISTER_WAIT);
- }
-
- protected abstract String getServerContainerTypeName();
-
- private Properties getServiceProperties() {
- Properties props = new Properties();
- // Set config to the server container name/provider config name (e.g.
- // ecf.generic.server)
- props.put(RemoteConstants.SERVICE_EXPORTED_CONFIGS,
- getServerContainerTypeName());
- // Set the service exported interfaces to all
- props.put(RemoteConstants.SERVICE_EXPORTED_INTERFACES, "*");
- return props;
- }
-
-}
+package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionAdvertiser;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.remoteserviceadmin.RemoteConstants;
+
+public abstract class AbstractEndpointDescriptionEDEFBundleGeneratorTest extends
+ AbstractDistributionTest {
+
+ protected static final int REGISTER_WAIT = 2000;
+ private ServiceRegistration registration;
+
+ private ServiceRegistration writerEndpointDescriptionAdvertiser;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ writerEndpointDescriptionAdvertiser = getContext().registerService(IEndpointDescriptionAdvertiser.class.getName(), createStandardOutputWriterServiceInfoFactory(), null);
+ }
+
+ private IEndpointDescriptionAdvertiser createStandardOutputWriterServiceInfoFactory() {
+ return new IEndpointDescriptionAdvertiser() {
+
+ @Override
+ public IStatus advertise(EndpointDescription endpointDescription) {
+ try {
+ EDEFBundleGenerator edefBundleGenerator = new EDEFBundleGenerator(new File("c:\\temp\\"),"org.eclipse.ecf.edefbundlegenerator","1.0.0",null);
+ edefBundleGenerator.generateEDEFBundle(new EndpointDescription[] { endpointDescription });
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return Status.OK_STATUS;
+ }
+
+ @Override
+ public IStatus unadvertise(EndpointDescription endpointDescription) {
+ // TODO Auto-generated method stub
+ return Status.OK_STATUS;
+ }
+ };
+ }
+
+ protected void tearDown() throws Exception {
+ if (registration != null) {
+ registration.unregister();
+ registration = null;
+ }
+ if (writerEndpointDescriptionAdvertiser != null) {
+ writerEndpointDescriptionAdvertiser.unregister();
+ writerEndpointDescriptionAdvertiser = null;
+ }
+ super.tearDown();
+ }
+
+ public void testRegisterOnCreatedServer() throws Exception {
+ Properties props = getServiceProperties();
+ // Actually register with default service (IConcatService)
+ registration = registerDefaultService(props);
+ // Wait a while
+ Thread.sleep(REGISTER_WAIT);
+ }
+
+ protected abstract String getServerContainerTypeName();
+
+ private Properties getServiceProperties() {
+ Properties props = new Properties();
+ // Set config to the server container name/provider config name (e.g.
+ // ecf.generic.server)
+ props.put(RemoteConstants.SERVICE_EXPORTED_CONFIGS,
+ getServerContainerTypeName());
+ // Set the service exported interfaces to all
+ props.put(RemoteConstants.SERVICE_EXPORTED_INTERFACES, "*");
+ return props;
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionWriterTest.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionWriterTest.java
index 8c6c3ec2e..bbe0a2560 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionWriterTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractEndpointDescriptionWriterTest.java
@@ -1,90 +1,90 @@
-package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionWriter;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionAdvertiser;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-public abstract class AbstractEndpointDescriptionWriterTest extends
- AbstractDistributionTest {
-
- protected static final int REGISTER_WAIT = 2000;
- private ServiceRegistration registration;
-
- private ServiceRegistration writerEndpointDescriptionAdvertiser;
- private EndpointDescriptionWriter writer;
-
- protected void setUp() throws Exception {
- super.setUp();
- writer = new EndpointDescriptionWriter();
- writerEndpointDescriptionAdvertiser = getContext().registerService(IEndpointDescriptionAdvertiser.class.getName(), createStandardOutputWriterServiceInfoFactory(), null);
- }
-
- private IEndpointDescriptionAdvertiser createStandardOutputWriterServiceInfoFactory() {
- return new IEndpointDescriptionAdvertiser() {
-
- @Override
- public IStatus advertise(EndpointDescription endpointDescription) {
- // TODO Auto-generated method stub
- try {
- StringWriter sr = new StringWriter();
- sr.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>").append("\n");
- writer.writeEndpointDescriptions(sr, new EndpointDescription[] { (EndpointDescription) endpointDescription });
- System.out.print(sr.toString());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return Status.OK_STATUS;
- }
-
- @Override
- public IStatus unadvertise(EndpointDescription endpointDescription) {
- // TODO Auto-generated method stub
- return Status.OK_STATUS;
- }
- };
- }
-
- protected void tearDown() throws Exception {
- if (registration != null) {
- registration.unregister();
- registration = null;
- }
- if (writerEndpointDescriptionAdvertiser != null) {
- writerEndpointDescriptionAdvertiser.unregister();
- writerEndpointDescriptionAdvertiser = null;
- }
- super.tearDown();
- }
-
- public void testRegisterOnCreatedServer() throws Exception {
- Properties props = getServiceProperties();
- // Actually register with default service (IConcatService)
- registration = registerDefaultService(props);
- // Wait a while
- Thread.sleep(REGISTER_WAIT);
- }
-
- protected abstract String getServerContainerTypeName();
-
- private Properties getServiceProperties() {
- Properties props = new Properties();
- // Set config to the server container name/provider config name (e.g.
- // ecf.generic.server)
- props.put(RemoteConstants.SERVICE_EXPORTED_CONFIGS,
- getServerContainerTypeName());
- // Set the service exported interfaces to all
- props.put(RemoteConstants.SERVICE_EXPORTED_INTERFACES, "*");
- return props;
- }
-
-}
+package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionWriter;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionAdvertiser;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.remoteserviceadmin.RemoteConstants;
+
+public abstract class AbstractEndpointDescriptionWriterTest extends
+ AbstractDistributionTest {
+
+ protected static final int REGISTER_WAIT = 2000;
+ private ServiceRegistration registration;
+
+ private ServiceRegistration writerEndpointDescriptionAdvertiser;
+ private EndpointDescriptionWriter writer;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ writer = new EndpointDescriptionWriter();
+ writerEndpointDescriptionAdvertiser = getContext().registerService(IEndpointDescriptionAdvertiser.class.getName(), createStandardOutputWriterServiceInfoFactory(), null);
+ }
+
+ private IEndpointDescriptionAdvertiser createStandardOutputWriterServiceInfoFactory() {
+ return new IEndpointDescriptionAdvertiser() {
+
+ @Override
+ public IStatus advertise(EndpointDescription endpointDescription) {
+ // TODO Auto-generated method stub
+ try {
+ StringWriter sr = new StringWriter();
+ sr.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>").append("\n");
+ writer.writeEndpointDescriptions(sr, new EndpointDescription[] { (EndpointDescription) endpointDescription });
+ System.out.print(sr.toString());
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return Status.OK_STATUS;
+ }
+
+ @Override
+ public IStatus unadvertise(EndpointDescription endpointDescription) {
+ // TODO Auto-generated method stub
+ return Status.OK_STATUS;
+ }
+ };
+ }
+
+ protected void tearDown() throws Exception {
+ if (registration != null) {
+ registration.unregister();
+ registration = null;
+ }
+ if (writerEndpointDescriptionAdvertiser != null) {
+ writerEndpointDescriptionAdvertiser.unregister();
+ writerEndpointDescriptionAdvertiser = null;
+ }
+ super.tearDown();
+ }
+
+ public void testRegisterOnCreatedServer() throws Exception {
+ Properties props = getServiceProperties();
+ // Actually register with default service (IConcatService)
+ registration = registerDefaultService(props);
+ // Wait a while
+ Thread.sleep(REGISTER_WAIT);
+ }
+
+ protected abstract String getServerContainerTypeName();
+
+ private Properties getServiceProperties() {
+ Properties props = new Properties();
+ // Set config to the server container name/provider config name (e.g.
+ // ecf.generic.server)
+ props.put(RemoteConstants.SERVICE_EXPORTED_CONFIGS,
+ getServerContainerTypeName());
+ // Set the service exported interfaces to all
+ props.put(RemoteConstants.SERVICE_EXPORTED_INTERFACES, "*");
+ return props;
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractMetadataFactoryTest.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractMetadataFactoryTest.java
index 094e4ba0f..eeee49355 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractMetadataFactoryTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractMetadataFactoryTest.java
@@ -1,199 +1,199 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.tests.osgi.services.remoteserviceadmin;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
-import org.eclipse.ecf.discovery.IDiscoveryLocator;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.DiscoveredEndpointDescription;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.IDiscoveredEndpointDescriptionFactory;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.IServiceInfoFactory;
-import org.eclipse.ecf.tests.ECFAbstractTestCase;
-import org.osgi.framework.Constants;
-import org.osgi.util.tracker.ServiceTracker;
-
-public abstract class AbstractMetadataFactoryTest extends ECFAbstractTestCase {
-
- protected static final String DEFAULT_SERVICE_INTF_PACKAGE = "com.foo";
- protected static final String DEFAULT_SERVICE_INTF_VERSION = "3.0.0";
- protected static final String DEFAULT_SERVICE_INTF = DEFAULT_SERVICE_INTF_PACKAGE + "." + "Foo";
-
- protected static final String DEFAULT_ENDPOINT_ID = "ecftcp://localhost:3282/server";
- protected static final String DEFAULT_SERVICE_IMPORTED_CONFIG = "ecf.generic.server";
- protected static final String DEFAULT_SERVICE_INTENT1 = "test.intent.1";
- protected static final String DEFAULT_SERVICE_INTENT2 = "test.intent.2";
- protected static final String DEFAULT_ECF_TARGET_ID = "ecftcp://localhost:3333/server";
- protected static final String DEFAULT_RSFILTER = "(&(key1=foo)(key2=foo2))";
- protected static final String EXTRA_PROPERTY1 = "test.extra.prop.value.1";
- protected static final String EXTRA_PROPERTY2 = "test.extra.prop.value.2";
-
- protected IServiceInfoFactory serviceInfoFactory;
- protected IDiscoveredEndpointDescriptionFactory endpointDescriptionFactory;
-
- protected IDiscoveryAdvertiser discoveryAdvertiser;
- protected IDiscoveryLocator discoveryLocator;
-
- protected IDiscoveryLocator getDiscoveryLocator() {
- ServiceTracker serviceTracker = new ServiceTracker(Activator.getDefault().getContext(),IDiscoveryLocator.class.getName(), null);
- serviceTracker.open();
- IDiscoveryLocator result = (IDiscoveryLocator) serviceTracker.getService();
- serviceTracker.close();
- return result;
- }
-
- protected IDiscoveryAdvertiser getDiscoveryAdvertiser() {
- ServiceTracker serviceTracker = new ServiceTracker(Activator.getDefault().getContext(),IDiscoveryAdvertiser.class.getName(), null);
- serviceTracker.open();
- IDiscoveryAdvertiser result = (IDiscoveryAdvertiser) serviceTracker.getService();
- serviceTracker.close();
- return result;
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- protected void tearDown() throws Exception {
- serviceInfoFactory = null;
- endpointDescriptionFactory = null;
- discoveryAdvertiser = null;
- discoveryLocator = null;
- super.tearDown();
- }
-
- protected Object createOSGiObjectClass() {
- return new String[] { DEFAULT_SERVICE_INTF };
- }
-
- protected String createOSGiEndpointFrameworkUUID() {
- return UUID.randomUUID().toString();
- }
-
- protected String createOSGiEndpointId() {
- return DEFAULT_ENDPOINT_ID;
- }
-
- protected Long createOSGiEndpointServiceId() {
- return new Long(1);
- }
-
- protected EndpointDescription createRequiredEndpointDescription() {
- Map<String,Object> props = new HashMap<String,Object>();
- // Add required OSGi properties
- addRequiredOSGiProperties(props);
- createECFRemoteServiceId(props);
- // Add extra properties
- addExtraProperties(props);
- return new EndpointDescription(props);
- }
-
- protected EndpointDescription createFullEndpointDescription() {
- Map<String,Object> props = new HashMap<String,Object>();
- // Add required OSGi properties
- addRequiredOSGiProperties(props);
- // Add full OSGi properties
- addOptionalOSGiProperties(props);
- // required ECF properties
- // Add extra properties
- addExtraProperties(props);
- return new EndpointDescription(props);
- }
-
- protected void addExtraProperties(Map<String, Object> props) {
- props.put(EXTRA_PROPERTY1, "com.foo.bar.propertyvalue1");
- props.put(EXTRA_PROPERTY2, "com.foo.bar.propertyvalue2");
- }
-
- protected EndpointDescription createBadOSGiEndpointDescrption() throws Exception {
- Map<String,Object> props = new HashMap<String,Object>();
- // Add only ECF properties
- // no OSGi properties
- createECFRemoteServiceId(props);
- // This should throw a runtime exception
- return new EndpointDescription(props);
- }
-
- protected EndpointDescription createBadECFEndpointDescrption() throws Exception {
- Map<String,Object> props = new HashMap<String,Object>();
- // Add required OSGi properties
- addRequiredOSGiProperties(props);
- // Add full OSGi properties
- addOptionalOSGiProperties(props);
-
- // No ECF required properties
- // This should throw a runtime exception
- return new EndpointDescription(props);
- }
-
- protected String createOSGiServiceImportedConfig() {
- return DEFAULT_SERVICE_IMPORTED_CONFIG;
- }
-
- protected ID createECFContainerID(Map<String,Object> props) {
- return getIDFactory().createStringID(DEFAULT_ENDPOINT_ID);
- }
-
- protected ID createECFTargetID(Map<String,Object> props) {
- return getIDFactory().createStringID(DEFAULT_ECF_TARGET_ID);
- }
-
- protected void createECFRemoteServiceId(Map<String,Object> props) {
- props.put(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID, new Long(101));
- }
-
- protected void addRequiredOSGiProperties(Map<String,Object> props) {
- // OBJECTCLASS
- props.put(Constants.OBJECTCLASS,createOSGiObjectClass());
- // endpoint.service.id
- props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID, createOSGiEndpointServiceId());
- // endpoint.framework.id
- props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID, createOSGiEndpointFrameworkUUID());
- // endpoint.id
- props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID, createOSGiEndpointId());
- // service imported configs
- props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,createOSGiServiceImportedConfig());
- }
-
- protected void addOptionalOSGiProperties(Map<String,Object> props) {
- props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS, createOSGiServiceIntents());
- props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_+DEFAULT_SERVICE_INTF_PACKAGE,DEFAULT_SERVICE_INTF_VERSION);
- }
-
-
- protected Object createOSGiServiceIntents() {
- return new String[] { DEFAULT_SERVICE_INTENT1, DEFAULT_SERVICE_INTENT2 };
- }
-
- protected String createECFRSFilter(Map<String, Object> props) {
- return DEFAULT_RSFILTER;
- }
-
- protected ID[] createECFIDFilterIDs(Map<String, Object> props) {
- return new ID[] { getIDFactory().createGUID(), getIDFactory().createGUID() };
- }
-
- protected IServiceInfo createServiceInfoForDiscovery(EndpointDescription endpointDescription) {
- return serviceInfoFactory.createServiceInfo(discoveryAdvertiser, endpointDescription);
- }
-
- protected org.osgi.service.remoteserviceadmin.EndpointDescription createEndpointDescriptionFromDiscovery(
- IServiceInfo discoveredServiceInfo) {
- DiscoveredEndpointDescription ded = endpointDescriptionFactory.createDiscoveredEndpointDescription(discoveryLocator, discoveredServiceInfo);
- assertNotNull(ded);
- return ded.getEndpointDescription();
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010 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.tests.osgi.services.remoteserviceadmin;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.discovery.IDiscoveryAdvertiser;
+import org.eclipse.ecf.discovery.IDiscoveryLocator;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.DiscoveredEndpointDescription;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.IDiscoveredEndpointDescriptionFactory;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.IServiceInfoFactory;
+import org.eclipse.ecf.tests.ECFAbstractTestCase;
+import org.osgi.framework.Constants;
+import org.osgi.util.tracker.ServiceTracker;
+
+public abstract class AbstractMetadataFactoryTest extends ECFAbstractTestCase {
+
+ protected static final String DEFAULT_SERVICE_INTF_PACKAGE = "com.foo";
+ protected static final String DEFAULT_SERVICE_INTF_VERSION = "3.0.0";
+ protected static final String DEFAULT_SERVICE_INTF = DEFAULT_SERVICE_INTF_PACKAGE + "." + "Foo";
+
+ protected static final String DEFAULT_ENDPOINT_ID = "ecftcp://localhost:3282/server";
+ protected static final String DEFAULT_SERVICE_IMPORTED_CONFIG = "ecf.generic.server";
+ protected static final String DEFAULT_SERVICE_INTENT1 = "test.intent.1";
+ protected static final String DEFAULT_SERVICE_INTENT2 = "test.intent.2";
+ protected static final String DEFAULT_ECF_TARGET_ID = "ecftcp://localhost:3333/server";
+ protected static final String DEFAULT_RSFILTER = "(&(key1=foo)(key2=foo2))";
+ protected static final String EXTRA_PROPERTY1 = "test.extra.prop.value.1";
+ protected static final String EXTRA_PROPERTY2 = "test.extra.prop.value.2";
+
+ protected IServiceInfoFactory serviceInfoFactory;
+ protected IDiscoveredEndpointDescriptionFactory endpointDescriptionFactory;
+
+ protected IDiscoveryAdvertiser discoveryAdvertiser;
+ protected IDiscoveryLocator discoveryLocator;
+
+ protected IDiscoveryLocator getDiscoveryLocator() {
+ ServiceTracker serviceTracker = new ServiceTracker(Activator.getDefault().getContext(),IDiscoveryLocator.class.getName(), null);
+ serviceTracker.open();
+ IDiscoveryLocator result = (IDiscoveryLocator) serviceTracker.getService();
+ serviceTracker.close();
+ return result;
+ }
+
+ protected IDiscoveryAdvertiser getDiscoveryAdvertiser() {
+ ServiceTracker serviceTracker = new ServiceTracker(Activator.getDefault().getContext(),IDiscoveryAdvertiser.class.getName(), null);
+ serviceTracker.open();
+ IDiscoveryAdvertiser result = (IDiscoveryAdvertiser) serviceTracker.getService();
+ serviceTracker.close();
+ return result;
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ protected void tearDown() throws Exception {
+ serviceInfoFactory = null;
+ endpointDescriptionFactory = null;
+ discoveryAdvertiser = null;
+ discoveryLocator = null;
+ super.tearDown();
+ }
+
+ protected Object createOSGiObjectClass() {
+ return new String[] { DEFAULT_SERVICE_INTF };
+ }
+
+ protected String createOSGiEndpointFrameworkUUID() {
+ return UUID.randomUUID().toString();
+ }
+
+ protected String createOSGiEndpointId() {
+ return DEFAULT_ENDPOINT_ID;
+ }
+
+ protected Long createOSGiEndpointServiceId() {
+ return new Long(1);
+ }
+
+ protected EndpointDescription createRequiredEndpointDescription() {
+ Map<String,Object> props = new HashMap<String,Object>();
+ // Add required OSGi properties
+ addRequiredOSGiProperties(props);
+ createECFRemoteServiceId(props);
+ // Add extra properties
+ addExtraProperties(props);
+ return new EndpointDescription(props);
+ }
+
+ protected EndpointDescription createFullEndpointDescription() {
+ Map<String,Object> props = new HashMap<String,Object>();
+ // Add required OSGi properties
+ addRequiredOSGiProperties(props);
+ // Add full OSGi properties
+ addOptionalOSGiProperties(props);
+ // required ECF properties
+ // Add extra properties
+ addExtraProperties(props);
+ return new EndpointDescription(props);
+ }
+
+ protected void addExtraProperties(Map<String, Object> props) {
+ props.put(EXTRA_PROPERTY1, "com.foo.bar.propertyvalue1");
+ props.put(EXTRA_PROPERTY2, "com.foo.bar.propertyvalue2");
+ }
+
+ protected EndpointDescription createBadOSGiEndpointDescrption() throws Exception {
+ Map<String,Object> props = new HashMap<String,Object>();
+ // Add only ECF properties
+ // no OSGi properties
+ createECFRemoteServiceId(props);
+ // This should throw a runtime exception
+ return new EndpointDescription(props);
+ }
+
+ protected EndpointDescription createBadECFEndpointDescrption() throws Exception {
+ Map<String,Object> props = new HashMap<String,Object>();
+ // Add required OSGi properties
+ addRequiredOSGiProperties(props);
+ // Add full OSGi properties
+ addOptionalOSGiProperties(props);
+
+ // No ECF required properties
+ // This should throw a runtime exception
+ return new EndpointDescription(props);
+ }
+
+ protected String createOSGiServiceImportedConfig() {
+ return DEFAULT_SERVICE_IMPORTED_CONFIG;
+ }
+
+ protected ID createECFContainerID(Map<String,Object> props) {
+ return getIDFactory().createStringID(DEFAULT_ENDPOINT_ID);
+ }
+
+ protected ID createECFTargetID(Map<String,Object> props) {
+ return getIDFactory().createStringID(DEFAULT_ECF_TARGET_ID);
+ }
+
+ protected void createECFRemoteServiceId(Map<String,Object> props) {
+ props.put(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID, new Long(101));
+ }
+
+ protected void addRequiredOSGiProperties(Map<String,Object> props) {
+ // OBJECTCLASS
+ props.put(Constants.OBJECTCLASS,createOSGiObjectClass());
+ // endpoint.service.id
+ props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID, createOSGiEndpointServiceId());
+ // endpoint.framework.id
+ props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_FRAMEWORK_UUID, createOSGiEndpointFrameworkUUID());
+ // endpoint.id
+ props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_ID, createOSGiEndpointId());
+ // service imported configs
+ props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_IMPORTED_CONFIGS,createOSGiServiceImportedConfig());
+ }
+
+ protected void addOptionalOSGiProperties(Map<String,Object> props) {
+ props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.SERVICE_INTENTS, createOSGiServiceIntents());
+ props.put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_PACKAGE_VERSION_+DEFAULT_SERVICE_INTF_PACKAGE,DEFAULT_SERVICE_INTF_VERSION);
+ }
+
+
+ protected Object createOSGiServiceIntents() {
+ return new String[] { DEFAULT_SERVICE_INTENT1, DEFAULT_SERVICE_INTENT2 };
+ }
+
+ protected String createECFRSFilter(Map<String, Object> props) {
+ return DEFAULT_RSFILTER;
+ }
+
+ protected ID[] createECFIDFilterIDs(Map<String, Object> props) {
+ return new ID[] { getIDFactory().createGUID(), getIDFactory().createGUID() };
+ }
+
+ protected IServiceInfo createServiceInfoForDiscovery(EndpointDescription endpointDescription) {
+ return serviceInfoFactory.createServiceInfo(discoveryAdvertiser, endpointDescription);
+ }
+
+ protected org.osgi.service.remoteserviceadmin.EndpointDescription createEndpointDescriptionFromDiscovery(
+ IServiceInfo discoveredServiceInfo) {
+ DiscoveredEndpointDescription ded = endpointDescriptionFactory.createDiscoveredEndpointDescription(discoveryLocator, discoveredServiceInfo);
+ assertNotNull(ded);
+ return ded.getEndpointDescription();
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/Activator.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/Activator.java
index 64651403a..f9768d5d0 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/Activator.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/Activator.java
@@ -1,48 +1,48 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.tests.osgi.services.remoteserviceadmin;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
- public static final String PLUGIN_ID = "org.eclipse.ecf.tests.osgi.services.remoteserviceadmin";
-
- private static BundleContext context;
- private static Activator instance;
-
- public BundleContext getContext() {
- return context;
- }
-
- /*
- * (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
- */
- public void start(BundleContext bundleContext) throws Exception {
- Activator.context = bundleContext;
- instance = this;
- }
-
- /*
- * (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext bundleContext) throws Exception {
- Activator.context = null;
- instance = null;
- }
-
- public static Activator getDefault() {
- return instance;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010 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.tests.osgi.services.remoteserviceadmin;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ public static final String PLUGIN_ID = "org.eclipse.ecf.tests.osgi.services.remoteserviceadmin";
+
+ private static BundleContext context;
+ private static Activator instance;
+
+ public BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ instance = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ instance = null;
+ }
+
+ public static Activator getDefault() {
+ return instance;
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EDEFBundleGenerator.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EDEFBundleGenerator.java
index 4ddd1c333..e2b09c259 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EDEFBundleGenerator.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EDEFBundleGenerator.java
@@ -1,67 +1,67 @@
-package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.util.jar.Attributes;
-import java.util.jar.JarOutputStream;
-import java.util.jar.Manifest;
-import java.util.zip.ZipEntry;
-
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionWriter;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-
-public class EDEFBundleGenerator {
-
- private static final String MANIFEST_VERSION = "Manifest-Version"; //$NON-NLS-1$
- private static final String BUNDLE_MANIFEST_VERSION = "Bundle-ManifestVersion"; //$NON-NLS-1$
- private static final String BUNDLE_NAME = "Bundle-Name"; //$NON-NLS-1$
- private static final String BUNDLE_SYMBOLIC_NAME = "Bundle-SymbolicName"; //$NON-NLS-1$
- private static final String BUNDLE_VERSION = "Bundle-Version"; //$NON-NLS-1$
- private static final String REMOTE_SERVICE = "Remote-Service"; //$NON-NLS-1$
- private static final String EDEF_FILENAME = "edef.xml"; //$NON-NLS-1$
-
- private File targetBundleDirectory;
- private String targetBundleSymbolicName;
- private String targetBundleVersion;
- private EndpointDescriptionWriter edWriter;
-
- public EDEFBundleGenerator(File targetBundleDirectory, String targetBundleSymbolicName, String targetBundleVersion, EndpointDescriptionWriter edWriter) {
- this.targetBundleDirectory = targetBundleDirectory;
- this.targetBundleSymbolicName = targetBundleSymbolicName;
- this.targetBundleVersion = targetBundleVersion;
- this.edWriter = (edWriter==null)?new EndpointDescriptionWriter():edWriter;
- }
-
- public void generateEDEFBundle(EndpointDescription [] endpointDescriptions) throws IOException {
- Manifest mf = new Manifest();
- Attributes attribs = mf.getMainAttributes();
- attribs.putValue(MANIFEST_VERSION, "1.0"); //$NON-NLS-1$
- attribs.putValue(BUNDLE_MANIFEST_VERSION, "2"); //$NON-NLS-1$
- attribs.putValue(BUNDLE_NAME, "RSA EDEF - "+ targetBundleSymbolicName + "." + targetBundleVersion); //$NON-NLS-1$
- attribs.putValue(BUNDLE_SYMBOLIC_NAME, targetBundleSymbolicName);
- attribs.putValue(BUNDLE_VERSION, targetBundleVersion);
- attribs.putValue(REMOTE_SERVICE, EDEF_FILENAME);
-
- File targetBundleFile = new File(targetBundleDirectory, targetBundleSymbolicName+"_"+targetBundleVersion+".jar");
- if (targetBundleFile.exists()) throw new IOException("file "+targetBundleFile+" already exists. Cannot overrite");
-
- JarOutputStream jos = null;
- try {
- jos = new JarOutputStream(new FileOutputStream(targetBundleFile), mf);
- ZipEntry edefFileEntry = new ZipEntry(EDEF_FILENAME);
- jos.putNextEntry(edefFileEntry);
- OutputStreamWriter outsWriter = new OutputStreamWriter(jos);
- outsWriter.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>").append("\n");
- edWriter.writeEndpointDescriptions(outsWriter, endpointDescriptions);
- outsWriter.flush();
- jos.closeEntry();
- jos.finish();
- } finally {
- if (jos != null)
- jos.close();
- }
- }
-
-}
+package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.util.jar.Attributes;
+import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
+import java.util.zip.ZipEntry;
+
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionWriter;
+import org.osgi.service.remoteserviceadmin.EndpointDescription;
+
+public class EDEFBundleGenerator {
+
+ private static final String MANIFEST_VERSION = "Manifest-Version"; //$NON-NLS-1$
+ private static final String BUNDLE_MANIFEST_VERSION = "Bundle-ManifestVersion"; //$NON-NLS-1$
+ private static final String BUNDLE_NAME = "Bundle-Name"; //$NON-NLS-1$
+ private static final String BUNDLE_SYMBOLIC_NAME = "Bundle-SymbolicName"; //$NON-NLS-1$
+ private static final String BUNDLE_VERSION = "Bundle-Version"; //$NON-NLS-1$
+ private static final String REMOTE_SERVICE = "Remote-Service"; //$NON-NLS-1$
+ private static final String EDEF_FILENAME = "edef.xml"; //$NON-NLS-1$
+
+ private File targetBundleDirectory;
+ private String targetBundleSymbolicName;
+ private String targetBundleVersion;
+ private EndpointDescriptionWriter edWriter;
+
+ public EDEFBundleGenerator(File targetBundleDirectory, String targetBundleSymbolicName, String targetBundleVersion, EndpointDescriptionWriter edWriter) {
+ this.targetBundleDirectory = targetBundleDirectory;
+ this.targetBundleSymbolicName = targetBundleSymbolicName;
+ this.targetBundleVersion = targetBundleVersion;
+ this.edWriter = (edWriter==null)?new EndpointDescriptionWriter():edWriter;
+ }
+
+ public void generateEDEFBundle(EndpointDescription [] endpointDescriptions) throws IOException {
+ Manifest mf = new Manifest();
+ Attributes attribs = mf.getMainAttributes();
+ attribs.putValue(MANIFEST_VERSION, "1.0"); //$NON-NLS-1$
+ attribs.putValue(BUNDLE_MANIFEST_VERSION, "2"); //$NON-NLS-1$
+ attribs.putValue(BUNDLE_NAME, "RSA EDEF - "+ targetBundleSymbolicName + "." + targetBundleVersion); //$NON-NLS-1$
+ attribs.putValue(BUNDLE_SYMBOLIC_NAME, targetBundleSymbolicName);
+ attribs.putValue(BUNDLE_VERSION, targetBundleVersion);
+ attribs.putValue(REMOTE_SERVICE, EDEF_FILENAME);
+
+ File targetBundleFile = new File(targetBundleDirectory, targetBundleSymbolicName+"_"+targetBundleVersion+".jar");
+ if (targetBundleFile.exists()) throw new IOException("file "+targetBundleFile+" already exists. Cannot overrite");
+
+ JarOutputStream jos = null;
+ try {
+ jos = new JarOutputStream(new FileOutputStream(targetBundleFile), mf);
+ ZipEntry edefFileEntry = new ZipEntry(EDEF_FILENAME);
+ jos.putNextEntry(edefFileEntry);
+ OutputStreamWriter outsWriter = new OutputStreamWriter(jos);
+ outsWriter.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>").append("\n");
+ edWriter.writeEndpointDescriptions(outsWriter, endpointDescriptions);
+ outsWriter.flush();
+ jos.closeEntry();
+ jos.finish();
+ } finally {
+ if (jos != null)
+ jos.close();
+ }
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointDescriptionFactoryTest.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointDescriptionFactoryTest.java
index 66f31f2ff..fc07e0867 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointDescriptionFactoryTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointDescriptionFactoryTest.java
@@ -1,43 +1,43 @@
-package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.DiscoveredEndpointDescriptionFactory;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.ServiceInfoFactory;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription;
-
-public class EndpointDescriptionFactoryTest extends AbstractMetadataFactoryTest {
-
- protected void setUp() throws Exception {
- super.setUp();
- discoveryAdvertiser = getDiscoveryAdvertiser();
- Assert.isNotNull(discoveryAdvertiser);
- serviceInfoFactory = new ServiceInfoFactory();
- Assert.isNotNull(serviceInfoFactory);
- discoveryLocator = getDiscoveryLocator();
- Assert.isNotNull(discoveryLocator);
- endpointDescriptionFactory = new DiscoveredEndpointDescriptionFactory();
- Assert.isNotNull(endpointDescriptionFactory);
- }
-
- public void testCreateRequiredEndpointDescriptionFromServiceInfo() throws Exception {
- EndpointDescription published = createRequiredEndpointDescription();
- assertNotNull(published);
- IServiceInfo serviceInfo = createServiceInfoForDiscovery(published);
- assertNotNull(serviceInfo);
- org.osgi.service.remoteserviceadmin.EndpointDescription received = createEndpointDescriptionFromDiscovery(serviceInfo);
- assertNotNull(received);
- assertTrue(published.equals(received));
- }
-
- public void testCreateFullEndpointDescriptionFromServiceInfo() throws Exception {
- EndpointDescription published = createFullEndpointDescription();
- assertNotNull(published);
- IServiceInfo serviceInfo = createServiceInfoForDiscovery(published);
- assertNotNull(serviceInfo);
- org.osgi.service.remoteserviceadmin.EndpointDescription received = createEndpointDescriptionFromDiscovery(serviceInfo);
- assertNotNull(received);
- assertTrue(published.equals(received));
- }
-
-}
+package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.DiscoveredEndpointDescriptionFactory;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.ServiceInfoFactory;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription;
+
+public class EndpointDescriptionFactoryTest extends AbstractMetadataFactoryTest {
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ discoveryAdvertiser = getDiscoveryAdvertiser();
+ Assert.isNotNull(discoveryAdvertiser);
+ serviceInfoFactory = new ServiceInfoFactory();
+ Assert.isNotNull(serviceInfoFactory);
+ discoveryLocator = getDiscoveryLocator();
+ Assert.isNotNull(discoveryLocator);
+ endpointDescriptionFactory = new DiscoveredEndpointDescriptionFactory();
+ Assert.isNotNull(endpointDescriptionFactory);
+ }
+
+ public void testCreateRequiredEndpointDescriptionFromServiceInfo() throws Exception {
+ EndpointDescription published = createRequiredEndpointDescription();
+ assertNotNull(published);
+ IServiceInfo serviceInfo = createServiceInfoForDiscovery(published);
+ assertNotNull(serviceInfo);
+ org.osgi.service.remoteserviceadmin.EndpointDescription received = createEndpointDescriptionFromDiscovery(serviceInfo);
+ assertNotNull(received);
+ assertTrue(published.equals(received));
+ }
+
+ public void testCreateFullEndpointDescriptionFromServiceInfo() throws Exception {
+ EndpointDescription published = createFullEndpointDescription();
+ assertNotNull(published);
+ IServiceInfo serviceInfo = createServiceInfoForDiscovery(published);
+ assertNotNull(serviceInfo);
+ org.osgi.service.remoteserviceadmin.EndpointDescription received = createEndpointDescriptionFromDiscovery(serviceInfo);
+ assertNotNull(received);
+ assertTrue(published.equals(received));
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointListenerTest.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointListenerTest.java
index af75cbbfa..26794d38a 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointListenerTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/EndpointListenerTest.java
@@ -1,38 +1,38 @@
-package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
-
-import java.util.Dictionary;
-import java.util.Properties;
-
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.EndpointListener;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-import junit.framework.TestCase;
-
-public class EndpointListenerTest extends TestCase {
-
- private EndpointListener createEndpointListener() {
- return new EndpointListener() {
-
- public void endpointAdded(EndpointDescription endpoint,
- String matchedFilter) {
- System.out.println("endpointAdded endpoint="+endpoint+",matchedFilter="+matchedFilter);
- }
-
- public void endpointRemoved(EndpointDescription endpoint,
- String matchedFilter) {
- System.out.println("endpointRemoved endpoint="+endpoint+",matchedFilter="+matchedFilter);
- }
-
- };
- }
-
- public void testEndpointListenerNotification() throws Exception {
- Properties props = new Properties();
- props.put(org.osgi.service.remoteserviceadmin.EndpointListener.ENDPOINT_LISTENER_SCOPE,"("+RemoteConstants.ENDPOINT_ID+"=*)");
- ServiceRegistration endpointListenerRegistration = Activator.getDefault().getContext().registerService(EndpointListener.class.getName(), createEndpointListener(), (Dictionary) props);
- Thread.sleep(5000);
- endpointListenerRegistration.unregister();
- }
-}
+package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
+
+import java.util.Dictionary;
+import java.util.Properties;
+
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.remoteserviceadmin.EndpointDescription;
+import org.osgi.service.remoteserviceadmin.EndpointListener;
+import org.osgi.service.remoteserviceadmin.RemoteConstants;
+
+import junit.framework.TestCase;
+
+public class EndpointListenerTest extends TestCase {
+
+ private EndpointListener createEndpointListener() {
+ return new EndpointListener() {
+
+ public void endpointAdded(EndpointDescription endpoint,
+ String matchedFilter) {
+ System.out.println("endpointAdded endpoint="+endpoint+",matchedFilter="+matchedFilter);
+ }
+
+ public void endpointRemoved(EndpointDescription endpoint,
+ String matchedFilter) {
+ System.out.println("endpointRemoved endpoint="+endpoint+",matchedFilter="+matchedFilter);
+ }
+
+ };
+ }
+
+ public void testEndpointListenerNotification() throws Exception {
+ Properties props = new Properties();
+ props.put(org.osgi.service.remoteserviceadmin.EndpointListener.ENDPOINT_LISTENER_SCOPE,"("+RemoteConstants.ENDPOINT_ID+"=*)");
+ ServiceRegistration endpointListenerRegistration = Activator.getDefault().getContext().registerService(EndpointListener.class.getName(), createEndpointListener(), (Dictionary) props);
+ Thread.sleep(5000);
+ endpointListenerRegistration.unregister();
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/ServiceInfoFactoryTest.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/ServiceInfoFactoryTest.java
index f1bb631f4..71d31e857 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/ServiceInfoFactoryTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/ServiceInfoFactoryTest.java
@@ -1,44 +1,44 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.tests.osgi.services.remoteserviceadmin;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.discovery.IServiceInfo;
-import org.eclipse.ecf.osgi.services.remoteserviceadmin.ServiceInfoFactory;
-
-public abstract class ServiceInfoFactoryTest extends AbstractMetadataFactoryTest {
-
- protected void setUp() throws Exception {
- super.setUp();
- discoveryAdvertiser = getDiscoveryAdvertiser();
- Assert.isNotNull(discoveryAdvertiser);
- serviceInfoFactory = new ServiceInfoFactory();
- }
-
- public void testCreateServiceInfoFromMinimalEndpointDescription() throws Exception {
- IServiceInfo serviceInfo = createServiceInfoForDiscovery(createRequiredEndpointDescription());
- assertNotNull(serviceInfo);
- }
-
- public void testCreateServiceInfoFromFullEndpointDescription() throws Exception {
- IServiceInfo serviceInfo = createServiceInfoForDiscovery(createFullEndpointDescription());
- assertNotNull(serviceInfo);
- }
-
- public void testCreateBadOSGiEndpointDescription() throws Exception {
- try{
- createBadOSGiEndpointDescrption();
- fail();
- } catch (Exception e) {
- // this is test success
- }
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2010 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.tests.osgi.services.remoteserviceadmin;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ecf.discovery.IServiceInfo;
+import org.eclipse.ecf.osgi.services.remoteserviceadmin.ServiceInfoFactory;
+
+public abstract class ServiceInfoFactoryTest extends AbstractMetadataFactoryTest {
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ discoveryAdvertiser = getDiscoveryAdvertiser();
+ Assert.isNotNull(discoveryAdvertiser);
+ serviceInfoFactory = new ServiceInfoFactory();
+ }
+
+ public void testCreateServiceInfoFromMinimalEndpointDescription() throws Exception {
+ IServiceInfo serviceInfo = createServiceInfoForDiscovery(createRequiredEndpointDescription());
+ assertNotNull(serviceInfo);
+ }
+
+ public void testCreateServiceInfoFromFullEndpointDescription() throws Exception {
+ IServiceInfo serviceInfo = createServiceInfoForDiscovery(createFullEndpointDescription());
+ assertNotNull(serviceInfo);
+ }
+
+ public void testCreateBadOSGiEndpointDescription() throws Exception {
+ try{
+ createBadOSGiEndpointDescrption();
+ fail();
+ } catch (Exception e) {
+ // this is test success
+ }
+ }
+
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.protocol.msn/about.html b/tests/bundles/org.eclipse.ecf.tests.protocol.msn/about.html
index 8f7767892..2779fc4f6 100755
--- a/tests/bundles/org.eclipse.ecf.tests.protocol.msn/about.html
+++ b/tests/bundles/org.eclipse.ecf.tests.protocol.msn/about.html
@@ -1,29 +1,29 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 2, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
+
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.host.launch b/tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.host.launch
index e5278bf10..2a361c3d4 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.host.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.host.launch
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.ecf.tests.remoteservice.generic.GenericConcatHost"/>
-<booleanAttribute key="askclear" value="true"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<booleanAttribute key="clearws" value="false"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.ecf.tests.remoteservice.generic.host"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-New_configuration"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useProduct" value="false"/>
-<booleanAttribute key="usefeatures" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.ecf.tests.remoteservice.generic.GenericConcatHost"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.ecf.tests.remoteservice.generic.host"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-New_configuration"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="false"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.launch b/tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.launch
index 45c1340f2..a50c34328 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.generic/org.eclipse.ecf.tests.remoteservice.generic.launch
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.ecf.tests.remoteservice.generic"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.remoteservice.generic"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.remoteservice.generic"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.remoteservice.generic"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.ecf.tests.remoteservice.generic"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.remoteservice.generic"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.remoteservice.generic"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.remoteservice.generic"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rest/src/org/eclipse/ecf/tests/remoteservice/rest/RestPutServiceTest.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rest/src/org/eclipse/ecf/tests/remoteservice/rest/RestPutServiceTest.java
index f4a4bb51e..d4504a936 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rest/src/org/eclipse/ecf/tests/remoteservice/rest/RestPutServiceTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rest/src/org/eclipse/ecf/tests/remoteservice/rest/RestPutServiceTest.java
@@ -1,82 +1,82 @@
-package org.eclipse.ecf.tests.remoteservice.rest;
-
-import java.io.NotSerializableException;
-import java.util.Map;
-
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.security.ConnectContextFactory;
-import org.eclipse.ecf.remoteservice.IRemoteCall;
-import org.eclipse.ecf.remoteservice.IRemoteService;
-import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
-import org.eclipse.ecf.remoteservice.client.IRemoteCallParameter;
-import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
-import org.eclipse.ecf.remoteservice.client.IRemoteResponseDeserializer;
-import org.eclipse.ecf.remoteservice.client.IRemoteServiceClientContainerAdapter;
-import org.eclipse.ecf.remoteservice.client.RemoteCallParameter;
-import org.eclipse.ecf.remoteservice.rest.RestCallFactory;
-import org.eclipse.ecf.remoteservice.rest.RestCallableFactory;
-import org.eclipse.ecf.remoteservice.rest.client.HttpPutRequestType;
-
-@SuppressWarnings("unused")
-public class RestPutServiceTest extends AbstractRestTestCase {
-
- private String username = System.getProperty("rest.test.username","p126371rw");
- private String password = System.getProperty("rest.test.password","demo");
- private String uri = System.getProperty("rest.test.uri","http://phprestsql.sourceforge.net");
- private String resourcePath = System.getProperty("rest.test.resourcePath","/tutorial/user/7");
- private String method = System.getProperty("rest.test.method","putUser");
-
- private IContainer container;
- private IRemoteServiceRegistration registration;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- // Create container for service URI
- container = createRestContainer(uri);
- // Get adapter and set authentication info
- IRemoteServiceClientContainerAdapter adapter = (IRemoteServiceClientContainerAdapter) getRemoteServiceClientContainerAdapter(container);
-
- // Setup authentication
- adapter.setConnectContextForAuthentication(ConnectContextFactory.createUsernamePasswordConnectContext(username, password));
- // Setup response deserializer to do absolutely nothing (return null). Note this is specific to this service.
- adapter.setResponseDeserializer(new IRemoteResponseDeserializer() {
- public Object deserializeResponse(String endpoint,
- IRemoteCall call, IRemoteCallable callable,
- Map responseHeaders, String responseBody)
- throws NotSerializableException {
- return null;
- }});
-
- // Create callable and register
- IRemoteCallable callable = RestCallableFactory.createCallable(method,resourcePath,
- new IRemoteCallParameter[] { new RemoteCallParameter("body")} ,
- new HttpPutRequestType(HttpPutRequestType.STRING_REQUEST_ENTITY,"application/xml",-1,"UTF-8"));
- // register callable
- registration = adapter.registerCallables(new IRemoteCallable[] { callable } , null);
-
- }
-
-
- public void testPutCallSync() throws Exception {
-// IRemoteService restClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registration.getReference());
-// System.out.println("put uri="+uri+resourcePath);
-// String body = createBody();
-// System.out.println("body="+body);
-// System.out.print("making remote method call="+method+"...");
-// Object result = restClientService.callSync(RestCallFactory.createRestCall(method, new String[] { body }));
-// System.out.println("received result="+result);
- }
-
-
- private String createBody() {
- return "firstname=Scott\nsurname=Example\nemail=slewis@example.org\ncompany_uid=1";
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- registration.unregister();
- container.disconnect();
- }
-}
+package org.eclipse.ecf.tests.remoteservice.rest;
+
+import java.io.NotSerializableException;
+import java.util.Map;
+
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.security.ConnectContextFactory;
+import org.eclipse.ecf.remoteservice.IRemoteCall;
+import org.eclipse.ecf.remoteservice.IRemoteService;
+import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
+import org.eclipse.ecf.remoteservice.client.IRemoteCallParameter;
+import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
+import org.eclipse.ecf.remoteservice.client.IRemoteResponseDeserializer;
+import org.eclipse.ecf.remoteservice.client.IRemoteServiceClientContainerAdapter;
+import org.eclipse.ecf.remoteservice.client.RemoteCallParameter;
+import org.eclipse.ecf.remoteservice.rest.RestCallFactory;
+import org.eclipse.ecf.remoteservice.rest.RestCallableFactory;
+import org.eclipse.ecf.remoteservice.rest.client.HttpPutRequestType;
+
+@SuppressWarnings("unused")
+public class RestPutServiceTest extends AbstractRestTestCase {
+
+ private String username = System.getProperty("rest.test.username","p126371rw");
+ private String password = System.getProperty("rest.test.password","demo");
+ private String uri = System.getProperty("rest.test.uri","http://phprestsql.sourceforge.net");
+ private String resourcePath = System.getProperty("rest.test.resourcePath","/tutorial/user/7");
+ private String method = System.getProperty("rest.test.method","putUser");
+
+ private IContainer container;
+ private IRemoteServiceRegistration registration;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ // Create container for service URI
+ container = createRestContainer(uri);
+ // Get adapter and set authentication info
+ IRemoteServiceClientContainerAdapter adapter = (IRemoteServiceClientContainerAdapter) getRemoteServiceClientContainerAdapter(container);
+
+ // Setup authentication
+ adapter.setConnectContextForAuthentication(ConnectContextFactory.createUsernamePasswordConnectContext(username, password));
+ // Setup response deserializer to do absolutely nothing (return null). Note this is specific to this service.
+ adapter.setResponseDeserializer(new IRemoteResponseDeserializer() {
+ public Object deserializeResponse(String endpoint,
+ IRemoteCall call, IRemoteCallable callable,
+ Map responseHeaders, String responseBody)
+ throws NotSerializableException {
+ return null;
+ }});
+
+ // Create callable and register
+ IRemoteCallable callable = RestCallableFactory.createCallable(method,resourcePath,
+ new IRemoteCallParameter[] { new RemoteCallParameter("body")} ,
+ new HttpPutRequestType(HttpPutRequestType.STRING_REQUEST_ENTITY,"application/xml",-1,"UTF-8"));
+ // register callable
+ registration = adapter.registerCallables(new IRemoteCallable[] { callable } , null);
+
+ }
+
+
+ public void testPutCallSync() throws Exception {
+// IRemoteService restClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registration.getReference());
+// System.out.println("put uri="+uri+resourcePath);
+// String body = createBody();
+// System.out.println("body="+body);
+// System.out.print("making remote method call="+method+"...");
+// Object result = restClientService.callSync(RestCallFactory.createRestCall(method, new String[] { body }));
+// System.out.println("received result="+result);
+ }
+
+
+ private String createBody() {
+ return "firstname=Scott\nsurname=Example\nemail=slewis@example.org\ncompany_uid=1";
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ registration.unregister();
+ container.disconnect();
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs
index 7cea4b46e..055087ce2 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/.settings/org.eclipse.jdt.ui.prefs
@@ -1,10 +1,10 @@
-#Tue Jan 25 17:13:34 MSK 2011
-eclipse.preferences.version=1
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2010-2011 Naumen. All rights reserved. This\r\n * program and the accompanying materials are made available under the terms of\r\n * the Eclipse Public License v1.0 which accompanies this distribution, and is\r\n * available at http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\: Pavel Samolisov - initial API and implementation\r\n ******************************************************************************/\r\n${package_declaration}\r\n\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+#Tue Jan 25 17:13:34 MSK 2011
+eclipse.preferences.version=1
+formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=;
+org.eclipse.jdt.ui.javadoc=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2010-2011 Naumen. All rights reserved. This\r\n * program and the accompanying materials are made available under the terms of\r\n * the Eclipse Public License v1.0 which accompanies this distribution, and is\r\n * available at http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\: Pavel Samolisov - initial API and implementation\r\n ******************************************************************************/\r\n${package_declaration}\r\n\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/org.eclipse.ecf.tests.remoteservice.rpc.launch b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/org.eclipse.ecf.tests.remoteservice.rpc.launch
index 202cb311d..334961044 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/org.eclipse.ecf.tests.remoteservice.rpc.launch
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/org.eclipse.ecf.tests.remoteservice.rpc.launch
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ecf.tests.remoteservice.rpc"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.remoteservice.rpc"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.remoteservice.rpc"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.epp.package.rcp.product"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ecf.tests.remoteservice.rpc"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.ecf.tests.remoteservice.rpc"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ecf.tests.remoteservice.rpc"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.epp.package.rcp.product"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/apache/xmlrpc/webserver/XmlRpcServlet.properties b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/apache/xmlrpc/webserver/XmlRpcServlet.properties
index 9d5ba59c8..d34b15699 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/apache/xmlrpc/webserver/XmlRpcServlet.properties
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/apache/xmlrpc/webserver/XmlRpcServlet.properties
@@ -1,10 +1,10 @@
-############################################################################
-# Copyright (c) 2010-2011 Naumen, IBM Corp, 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
-############################################################################
-Echo = org.eclipse.ecf.internal.tests.remoteservice.rpc.server.EchoHandler
-Calc = org.eclipse.ecf.internal.tests.remoteservice.rpc.server.CalcHandler
+############################################################################
+# Copyright (c) 2010-2011 Naumen, IBM Corp, 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
+############################################################################
+Echo = org.eclipse.ecf.internal.tests.remoteservice.rpc.server.EchoHandler
+Calc = org.eclipse.ecf.internal.tests.remoteservice.rpc.server.CalcHandler
org.eclipse.ecf.tests.remoteservice.rpc.common.IEcho = org.eclipse.ecf.internal.tests.remoteservice.rpc.server.EchoHandler \ No newline at end of file
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/HttpServiceConnector.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/HttpServiceConnector.java
index 03d2a6553..e30910702 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/HttpServiceConnector.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/HttpServiceConnector.java
@@ -1,58 +1,58 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.tests.remoteservice.rpc;
-
-import javax.servlet.http.HttpServlet;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.http.HttpService;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-
-@SuppressWarnings("rawtypes")
-public class HttpServiceConnector extends ServiceTracker implements ServiceTrackerCustomizer {
-
- private String path;
-
- private HttpServlet servlet;
-
- @SuppressWarnings("unchecked")
- public HttpServiceConnector(BundleContext context, String path, HttpServlet servlet) {
- super(context, HttpService.class.getName(), null);
- this.path = path;
- this.servlet = servlet;
-
- open();
- }
-
- public Object addingService(ServiceReference reference) {
- @SuppressWarnings("unchecked")
- HttpService httpService = (HttpService) super.addingService(reference);
- if (httpService == null)
- return null;
-
- try {
- httpService.registerServlet(path, servlet, null, null);
- }
- catch (Exception e) {
- e.printStackTrace();
- }
-
- return httpService;
- }
-
- @SuppressWarnings("unchecked")
- public void removedService(ServiceReference reference, Object service) {
- HttpService httpService = (HttpService) service;
- httpService.unregister(path);
-
- super.removedService(reference, service);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.internal.tests.remoteservice.rpc;
+
+import javax.servlet.http.HttpServlet;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.http.HttpService;
+import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
+
+@SuppressWarnings("rawtypes")
+public class HttpServiceConnector extends ServiceTracker implements ServiceTrackerCustomizer {
+
+ private String path;
+
+ private HttpServlet servlet;
+
+ @SuppressWarnings("unchecked")
+ public HttpServiceConnector(BundleContext context, String path, HttpServlet servlet) {
+ super(context, HttpService.class.getName(), null);
+ this.path = path;
+ this.servlet = servlet;
+
+ open();
+ }
+
+ public Object addingService(ServiceReference reference) {
+ @SuppressWarnings("unchecked")
+ HttpService httpService = (HttpService) super.addingService(reference);
+ if (httpService == null)
+ return null;
+
+ try {
+ httpService.registerServlet(path, servlet, null, null);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return httpService;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void removedService(ServiceReference reference, Object service) {
+ HttpService httpService = (HttpService) service;
+ httpService.unregister(path);
+
+ super.removedService(reference, service);
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/CalcHandler.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/CalcHandler.java
index f405b80e7..e09c583aa 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/CalcHandler.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/CalcHandler.java
@@ -1,21 +1,21 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.tests.remoteservice.rpc.server;
-
-public class CalcHandler {
-
- public int add(int i1, int i2) {
- return i1 + i2;
- }
-
- public int sub(int i1, int i2) {
- return i1 - i2;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.internal.tests.remoteservice.rpc.server;
+
+public class CalcHandler {
+
+ public int add(int i1, int i2) {
+ return i1 + i2;
+ }
+
+ public int sub(int i1, int i2) {
+ return i1 - i2;
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/EchoHandler.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/EchoHandler.java
index 697060767..89d2151e5 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/EchoHandler.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/internal/tests/remoteservice/rpc/server/EchoHandler.java
@@ -1,20 +1,20 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.tests.remoteservice.rpc.server;
-
-import org.eclipse.ecf.tests.remoteservice.rpc.common.IEcho;
-
-public class EchoHandler implements IEcho {
-
- public String echo(String str) {
- System.out.println(str); // TODO using logger
- return str;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.internal.tests.remoteservice.rpc.server;
+
+import org.eclipse.ecf.tests.remoteservice.rpc.common.IEcho;
+
+public class EchoHandler implements IEcho {
+
+ public String echo(String str) {
+ System.out.println(str); // TODO using logger
+ return str;
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/AbstractRpcTestCase.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/AbstractRpcTestCase.java
index 3657b781c..e2add3b58 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/AbstractRpcTestCase.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/AbstractRpcTestCase.java
@@ -1,47 +1,47 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.tests.remoteservice.rpc;
-
-import java.util.Dictionary;
-import org.eclipse.ecf.core.ContainerCreateException;
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.IDCreateException;
-import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
-import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
-import org.eclipse.ecf.remoteservice.client.IRemoteServiceClientContainerAdapter;
-import org.eclipse.ecf.tests.ECFAbstractTestCase;
-
-public abstract class AbstractRpcTestCase extends ECFAbstractTestCase {
-
- protected IContainer createRpcContainer(String uri) throws ContainerCreateException {
- return getContainerFactory().createContainer(RpcConstants.RPC_CONTAINER_TYPE, uri);
- }
-
- protected IContainer createRpcContainer(ID rpcId) throws ContainerCreateException {
- return getContainerFactory().createContainer(RpcConstants.RPC_CONTAINER_TYPE, rpcId);
- }
-
- protected ID createRpcID(String id) throws IDCreateException {
- return getIDFactory().createID(RpcConstants.NAMESPACE, id);
- }
-
- protected IRemoteServiceClientContainerAdapter getRemoteServiceClientContainerAdapter(IContainer container) {
- return (IRemoteServiceClientContainerAdapter) container.getAdapter(IRemoteServiceClientContainerAdapter.class);
- }
-
- protected IRemoteServiceRegistration registerCallable(IContainer container, IRemoteCallable callable, Dictionary<String, Object> properties) {
- return getRemoteServiceClientContainerAdapter(container).registerCallables(new IRemoteCallable[] { callable }, properties);
- }
-
- protected IRemoteServiceRegistration registerCallable(IContainer container, IRemoteCallable[] callables, Dictionary<String, Object> properties) {
- return getRemoteServiceClientContainerAdapter(container).registerCallables(callables, properties);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.tests.remoteservice.rpc;
+
+import java.util.Dictionary;
+import org.eclipse.ecf.core.ContainerCreateException;
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.identity.IDCreateException;
+import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
+import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
+import org.eclipse.ecf.remoteservice.client.IRemoteServiceClientContainerAdapter;
+import org.eclipse.ecf.tests.ECFAbstractTestCase;
+
+public abstract class AbstractRpcTestCase extends ECFAbstractTestCase {
+
+ protected IContainer createRpcContainer(String uri) throws ContainerCreateException {
+ return getContainerFactory().createContainer(RpcConstants.RPC_CONTAINER_TYPE, uri);
+ }
+
+ protected IContainer createRpcContainer(ID rpcId) throws ContainerCreateException {
+ return getContainerFactory().createContainer(RpcConstants.RPC_CONTAINER_TYPE, rpcId);
+ }
+
+ protected ID createRpcID(String id) throws IDCreateException {
+ return getIDFactory().createID(RpcConstants.NAMESPACE, id);
+ }
+
+ protected IRemoteServiceClientContainerAdapter getRemoteServiceClientContainerAdapter(IContainer container) {
+ return (IRemoteServiceClientContainerAdapter) container.getAdapter(IRemoteServiceClientContainerAdapter.class);
+ }
+
+ protected IRemoteServiceRegistration registerCallable(IContainer container, IRemoteCallable callable, Dictionary<String, Object> properties) {
+ return getRemoteServiceClientContainerAdapter(container).registerCallables(new IRemoteCallable[] { callable }, properties);
+ }
+
+ protected IRemoteServiceRegistration registerCallable(IContainer container, IRemoteCallable[] callables, Dictionary<String, Object> properties) {
+ return getRemoteServiceClientContainerAdapter(container).registerCallables(callables, properties);
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcConstants.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcConstants.java
index 18e83783c..8306d2bca 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcConstants.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcConstants.java
@@ -1,37 +1,37 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.tests.remoteservice.rpc;
-
-public interface RpcConstants {
-
- public static final String RPC_CONTAINER_TYPE = "ecf.xmlrpc.client"; //$NON-NLS-1$
-
- public static final String NAMESPACE = "ecf.xmlrpc.namespace"; //$NON-NLS-1$
-
- public static final int HTTP_PORT = 8085;
-
- public static final String TEST_SERVLETS_PATH = "/xmlrpc"; //$NON-NLS-1$
-
- public static final String TEST_ECHO_TARGET = "http://localhost:" + HTTP_PORT + TEST_SERVLETS_PATH; //$NON-NLS-1$ //$NON-NLS-2$
-
- public static final String TEST_ECHO_METHOD = "Echo.echo"; //$NON-NLS-1$
-
- public static final String TEST_ECHO_METHOD_NAME = "echo"; //$NON-NLS-1$
-
- public static final String TEST_ECHO_METHOD_PARAM = "text"; //$NON-NLS-1$
-
- public static final String TEST_CALC_PLUS_METHOD = "Calc.add"; //$NON-NLS-1$
-
- public static final String TEST_CALC_PLUS_METHOD_NAME = "plus"; //$NON-NLS-1$
-
- public static final String TEST_CALC_PLUS_METHOD_PARAM1 = "val1"; //$NON-NLS-1$
-
- public static final String TEST_CALC_PLUS_METHOD_PARAM2 = "val2"; //$NON-NLS-1$
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.tests.remoteservice.rpc;
+
+public interface RpcConstants {
+
+ public static final String RPC_CONTAINER_TYPE = "ecf.xmlrpc.client"; //$NON-NLS-1$
+
+ public static final String NAMESPACE = "ecf.xmlrpc.namespace"; //$NON-NLS-1$
+
+ public static final int HTTP_PORT = 8085;
+
+ public static final String TEST_SERVLETS_PATH = "/xmlrpc"; //$NON-NLS-1$
+
+ public static final String TEST_ECHO_TARGET = "http://localhost:" + HTTP_PORT + TEST_SERVLETS_PATH; //$NON-NLS-1$ //$NON-NLS-2$
+
+ public static final String TEST_ECHO_METHOD = "Echo.echo"; //$NON-NLS-1$
+
+ public static final String TEST_ECHO_METHOD_NAME = "echo"; //$NON-NLS-1$
+
+ public static final String TEST_ECHO_METHOD_PARAM = "text"; //$NON-NLS-1$
+
+ public static final String TEST_CALC_PLUS_METHOD = "Calc.add"; //$NON-NLS-1$
+
+ public static final String TEST_CALC_PLUS_METHOD_NAME = "plus"; //$NON-NLS-1$
+
+ public static final String TEST_CALC_PLUS_METHOD_PARAM1 = "val1"; //$NON-NLS-1$
+
+ public static final String TEST_CALC_PLUS_METHOD_PARAM2 = "val2"; //$NON-NLS-1$
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcContainerTest.java
index ae8ef4604..ef7a06f12 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcContainerTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcContainerTest.java
@@ -1,53 +1,53 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.tests.remoteservice.rpc;
-
-import java.net.URI;
-import java.net.URL;
-import org.eclipse.ecf.core.ContainerTypeDescription;
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.remoteservice.rpc.client.RpcClientContainer;
-
-public class RpcContainerTest extends AbstractRpcTestCase {
-
- protected void tearDown() throws Exception {
- getContainerManager().removeAllContainers();
- }
-
- public void testCreateContainer() throws Exception {
- IContainer container = createRpcContainer(RpcConstants.TEST_ECHO_TARGET);
- assertNotNull(container);
- assertTrue(container instanceof RpcClientContainer);
- }
-
- public void testCreateContainer1() throws Exception {
- IContainer container = createRpcContainer(RpcConstants.TEST_ECHO_TARGET);
- assertNotNull(container);
- assertTrue(container instanceof RpcClientContainer);
- }
-
- public void testCreateContainer2() throws Exception {
- ContainerTypeDescription description = getContainerFactory()
- .getDescriptionByName(RpcConstants.RPC_CONTAINER_TYPE);
- IContainer container = getContainerFactory().createContainer(description,
- new Object[] { new URL(RpcConstants.TEST_ECHO_TARGET) });
- assertNotNull(container);
- assertTrue(container instanceof RpcClientContainer);
- }
-
- public void testCreateContainer3() throws Exception {
- ContainerTypeDescription description = getContainerFactory()
- .getDescriptionByName(RpcConstants.RPC_CONTAINER_TYPE);
- IContainer container = getContainerFactory().createContainer(description,
- new Object[] { new URI(RpcConstants.TEST_ECHO_TARGET) });
- assertNotNull(container);
- assertTrue(container instanceof RpcClientContainer);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.tests.remoteservice.rpc;
+
+import java.net.URI;
+import java.net.URL;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.remoteservice.rpc.client.RpcClientContainer;
+
+public class RpcContainerTest extends AbstractRpcTestCase {
+
+ protected void tearDown() throws Exception {
+ getContainerManager().removeAllContainers();
+ }
+
+ public void testCreateContainer() throws Exception {
+ IContainer container = createRpcContainer(RpcConstants.TEST_ECHO_TARGET);
+ assertNotNull(container);
+ assertTrue(container instanceof RpcClientContainer);
+ }
+
+ public void testCreateContainer1() throws Exception {
+ IContainer container = createRpcContainer(RpcConstants.TEST_ECHO_TARGET);
+ assertNotNull(container);
+ assertTrue(container instanceof RpcClientContainer);
+ }
+
+ public void testCreateContainer2() throws Exception {
+ ContainerTypeDescription description = getContainerFactory()
+ .getDescriptionByName(RpcConstants.RPC_CONTAINER_TYPE);
+ IContainer container = getContainerFactory().createContainer(description,
+ new Object[] { new URL(RpcConstants.TEST_ECHO_TARGET) });
+ assertNotNull(container);
+ assertTrue(container instanceof RpcClientContainer);
+ }
+
+ public void testCreateContainer3() throws Exception {
+ ContainerTypeDescription description = getContainerFactory()
+ .getDescriptionByName(RpcConstants.RPC_CONTAINER_TYPE);
+ IContainer container = getContainerFactory().createContainer(description,
+ new Object[] { new URI(RpcConstants.TEST_ECHO_TARGET) });
+ assertNotNull(container);
+ assertTrue(container instanceof RpcClientContainer);
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcNamespaceTest.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcNamespaceTest.java
index 62fabe1dc..370c786b9 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcNamespaceTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcNamespaceTest.java
@@ -1,43 +1,43 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.tests.remoteservice.rpc;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.remoteservice.rpc.identity.RpcNamespace;
-
-public class RpcNamespaceTest extends AbstractRpcTestCase {
-
- public void testCreation() {
- String desc = "description";
- RpcNamespace namespace = new RpcNamespace(RpcNamespace.NAME, desc);
- assertEquals(RpcNamespace.NAME, namespace.getName());
- assertEquals(desc, namespace.getDescription());
- }
-
- public void testCreateInstance() {
- RpcNamespace namespace = new RpcNamespace(RpcNamespace.NAME, null);
- Object[] parameters;
- try {
- String url = RpcConstants.TEST_ECHO_TARGET;
- parameters = new Object[] {new URL(url)};
- ID id = namespace.createInstance(parameters);
- assertEquals(url, id.getName());
- } catch (MalformedURLException e) {
- fail();
- }
- }
-
- public void testGetScheme() {
- RpcNamespace namespace = new RpcNamespace(RpcNamespace.NAME, null);
- assertEquals(RpcNamespace.SCHEME, namespace.getScheme());
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.tests.remoteservice.rpc;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.remoteservice.rpc.identity.RpcNamespace;
+
+public class RpcNamespaceTest extends AbstractRpcTestCase {
+
+ public void testCreation() {
+ String desc = "description";
+ RpcNamespace namespace = new RpcNamespace(RpcNamespace.NAME, desc);
+ assertEquals(RpcNamespace.NAME, namespace.getName());
+ assertEquals(desc, namespace.getDescription());
+ }
+
+ public void testCreateInstance() {
+ RpcNamespace namespace = new RpcNamespace(RpcNamespace.NAME, null);
+ Object[] parameters;
+ try {
+ String url = RpcConstants.TEST_ECHO_TARGET;
+ parameters = new Object[] {new URL(url)};
+ ID id = namespace.createInstance(parameters);
+ assertEquals(url, id.getName());
+ } catch (MalformedURLException e) {
+ fail();
+ }
+ }
+
+ public void testGetScheme() {
+ RpcNamespace namespace = new RpcNamespace(RpcNamespace.NAME, null);
+ assertEquals(RpcNamespace.SCHEME, namespace.getScheme());
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceAdapterTest.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceAdapterTest.java
index c7a63aea0..1bc5535e6 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceAdapterTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceAdapterTest.java
@@ -1,99 +1,99 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.tests.remoteservice.rpc;
-
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.remoteservice.Constants;
-import org.eclipse.ecf.remoteservice.IRemoteFilter;
-import org.eclipse.ecf.remoteservice.IRemoteService;
-import org.eclipse.ecf.remoteservice.IRemoteServiceID;
-import org.eclipse.ecf.remoteservice.IRemoteServiceListener;
-import org.eclipse.ecf.remoteservice.IRemoteServiceReference;
-import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
-import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
-import org.eclipse.ecf.remoteservice.client.IRemoteServiceClientContainerAdapter;
-import org.eclipse.ecf.remoteservice.client.RemoteCallableFactory;
-import org.eclipse.ecf.remoteservice.events.IRemoteServiceEvent;
-import org.eclipse.ecf.remoteservice.events.IRemoteServiceRegisteredEvent;
-import org.osgi.framework.InvalidSyntaxException;
-
-public class RpcRemoteServiceAdapterTest extends AbstractRpcTestCase {
-
- IContainer container;
-
- protected void setUp() throws Exception {
- super.setUp();
- container = createRpcContainer(RpcConstants.TEST_ECHO_TARGET);
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- container.disconnect();
- container.dispose();
- getContainerManager().removeAllContainers();
- }
-
- IRemoteServiceClientContainerAdapter getRemoteServiceClientContainerAdapter() {
- return super.getRemoteServiceClientContainerAdapter(container);
- }
-
- IRemoteServiceRegistration createRpcRegistration(String method) {
- IRemoteCallable callable = RemoteCallableFactory.createCallable(method);
- return registerCallable(container, callable, null);
- }
-
- public void testGetRemoteService() {
- IRemoteServiceRegistration registration = createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
- IRemoteServiceReference reference = registration.getReference();
- assertNotNull(reference);
- IRemoteService remoteService = getRemoteServiceClientContainerAdapter().getRemoteService(reference);
- assertNotNull(remoteService);
- }
-
- public void testGetRemoteServiceReference() {
- IRemoteServiceRegistration registration = createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
- IRemoteServiceReference remoteServiceReference = getRemoteServiceClientContainerAdapter().getRemoteServiceReference(registration.getID());
- assertEquals(registration.getReference(), remoteServiceReference);
- }
-
- public void testUngetRemoteService() {
- IRemoteServiceRegistration registration = createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
- IRemoteServiceReference reference = registration.getReference();
- getRemoteServiceClientContainerAdapter().getRemoteService(reference);
- assertTrue(getRemoteServiceClientContainerAdapter().ungetRemoteService(reference));
- }
-
- public void testRemoteServiceRegisteredEvent() {
- IRemoteServiceClientContainerAdapter adapter = getRemoteServiceClientContainerAdapter();
- adapter.addRemoteServiceListener(new IRemoteServiceListener() {
- public void handleServiceEvent(IRemoteServiceEvent event) {
- assertTrue(event instanceof IRemoteServiceRegisteredEvent);
- }
- });
- createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
- }
-
- public void testCreateRemoteFilter() {
- String filter = "(" + Constants.OBJECTCLASS + "=" + IRemoteService.class.getName() + ")";
- try {
- IRemoteFilter remoteFilter = getRemoteServiceClientContainerAdapter().createRemoteFilter(filter);
- assertNotNull(remoteFilter);
- } catch (InvalidSyntaxException e) {
- fail();
- }
- }
-
- public void testGetRemoteServiceID() {
- IRemoteServiceRegistration registration = createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
- long containerRelativeID = registration.getID().getContainerRelativeID();
- IRemoteServiceID remoteServiceID = getRemoteServiceClientContainerAdapter().getRemoteServiceID(container.getID(), containerRelativeID);
- assertEquals(registration.getID(), remoteServiceID);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.tests.remoteservice.rpc;
+
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.remoteservice.Constants;
+import org.eclipse.ecf.remoteservice.IRemoteFilter;
+import org.eclipse.ecf.remoteservice.IRemoteService;
+import org.eclipse.ecf.remoteservice.IRemoteServiceID;
+import org.eclipse.ecf.remoteservice.IRemoteServiceListener;
+import org.eclipse.ecf.remoteservice.IRemoteServiceReference;
+import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
+import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
+import org.eclipse.ecf.remoteservice.client.IRemoteServiceClientContainerAdapter;
+import org.eclipse.ecf.remoteservice.client.RemoteCallableFactory;
+import org.eclipse.ecf.remoteservice.events.IRemoteServiceEvent;
+import org.eclipse.ecf.remoteservice.events.IRemoteServiceRegisteredEvent;
+import org.osgi.framework.InvalidSyntaxException;
+
+public class RpcRemoteServiceAdapterTest extends AbstractRpcTestCase {
+
+ IContainer container;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ container = createRpcContainer(RpcConstants.TEST_ECHO_TARGET);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ container.disconnect();
+ container.dispose();
+ getContainerManager().removeAllContainers();
+ }
+
+ IRemoteServiceClientContainerAdapter getRemoteServiceClientContainerAdapter() {
+ return super.getRemoteServiceClientContainerAdapter(container);
+ }
+
+ IRemoteServiceRegistration createRpcRegistration(String method) {
+ IRemoteCallable callable = RemoteCallableFactory.createCallable(method);
+ return registerCallable(container, callable, null);
+ }
+
+ public void testGetRemoteService() {
+ IRemoteServiceRegistration registration = createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
+ IRemoteServiceReference reference = registration.getReference();
+ assertNotNull(reference);
+ IRemoteService remoteService = getRemoteServiceClientContainerAdapter().getRemoteService(reference);
+ assertNotNull(remoteService);
+ }
+
+ public void testGetRemoteServiceReference() {
+ IRemoteServiceRegistration registration = createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
+ IRemoteServiceReference remoteServiceReference = getRemoteServiceClientContainerAdapter().getRemoteServiceReference(registration.getID());
+ assertEquals(registration.getReference(), remoteServiceReference);
+ }
+
+ public void testUngetRemoteService() {
+ IRemoteServiceRegistration registration = createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
+ IRemoteServiceReference reference = registration.getReference();
+ getRemoteServiceClientContainerAdapter().getRemoteService(reference);
+ assertTrue(getRemoteServiceClientContainerAdapter().ungetRemoteService(reference));
+ }
+
+ public void testRemoteServiceRegisteredEvent() {
+ IRemoteServiceClientContainerAdapter adapter = getRemoteServiceClientContainerAdapter();
+ adapter.addRemoteServiceListener(new IRemoteServiceListener() {
+ public void handleServiceEvent(IRemoteServiceEvent event) {
+ assertTrue(event instanceof IRemoteServiceRegisteredEvent);
+ }
+ });
+ createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
+ }
+
+ public void testCreateRemoteFilter() {
+ String filter = "(" + Constants.OBJECTCLASS + "=" + IRemoteService.class.getName() + ")";
+ try {
+ IRemoteFilter remoteFilter = getRemoteServiceClientContainerAdapter().createRemoteFilter(filter);
+ assertNotNull(remoteFilter);
+ } catch (InvalidSyntaxException e) {
+ fail();
+ }
+ }
+
+ public void testGetRemoteServiceID() {
+ IRemoteServiceRegistration registration = createRpcRegistration(RpcConstants.TEST_ECHO_METHOD);
+ long containerRelativeID = registration.getID().getContainerRelativeID();
+ IRemoteServiceID remoteServiceID = getRemoteServiceClientContainerAdapter().getRemoteServiceID(container.getID(), containerRelativeID);
+ assertEquals(registration.getID(), remoteServiceID);
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceTest.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceTest.java
index 37589d850..ba66aed1f 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/RpcRemoteServiceTest.java
@@ -1,143 +1,143 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.tests.remoteservice.rpc;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.internal.tests.remoteservice.rpc.Activator;
-import org.eclipse.ecf.remoteservice.IRemoteCall;
-import org.eclipse.ecf.remoteservice.IRemoteCallListener;
-import org.eclipse.ecf.remoteservice.IRemoteService;
-import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
-import org.eclipse.ecf.remoteservice.RemoteCallFactory;
-import org.eclipse.ecf.remoteservice.client.IRemoteCallParameter;
-import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
-import org.eclipse.ecf.remoteservice.client.RemoteCallParameter;
-import org.eclipse.ecf.remoteservice.client.RemoteCallableFactory;
-import org.eclipse.ecf.remoteservice.events.IRemoteCallCompleteEvent;
-import org.eclipse.ecf.remoteservice.events.IRemoteCallEvent;
-import org.eclipse.ecf.tests.remoteservice.rpc.common.IEcho;
-import org.eclipse.equinox.concurrent.future.IFuture;
-
-@SuppressWarnings("restriction")
-public class RpcRemoteServiceTest extends AbstractRpcTestCase {
-
- private static final String ECHO_TEST_DATA = "Hello, world";
-
- IContainer container;
-
- IRemoteServiceRegistration registrationEcho;
-
- IRemoteServiceRegistration registrationEchoProxy;
-
- IRemoteServiceRegistration registrationCalc;
-
- protected void setUp() throws Exception {
- container = createRpcContainer(RpcConstants.TEST_ECHO_TARGET);
-
- IRemoteCallable callableEcho = RemoteCallableFactory.createCallable(RpcConstants.TEST_ECHO_METHOD_NAME, RpcConstants.TEST_ECHO_METHOD,
- new IRemoteCallParameter[]{new RemoteCallParameter(RpcConstants.TEST_ECHO_METHOD_PARAM)});
- registrationEcho = registerCallable(container, callableEcho, null);
-
- IRemoteCallable callableEchoProxy = RemoteCallableFactory.createCallable(IEcho.class.getName());
- registrationEchoProxy = registerCallable(container, callableEchoProxy, null);
-
- IRemoteCallable callableCalc = RemoteCallableFactory.createCallable(RpcConstants.TEST_CALC_PLUS_METHOD_NAME, RpcConstants.TEST_CALC_PLUS_METHOD,
- new IRemoteCallParameter[]{
- new RemoteCallParameter(RpcConstants.TEST_CALC_PLUS_METHOD_PARAM1),
- new RemoteCallParameter(RpcConstants.TEST_CALC_PLUS_METHOD_PARAM2)});
- registrationCalc = registerCallable(container, callableCalc, null);
- }
-
- protected void tearDown() throws Exception {
- registrationEcho.unregister();
- registrationEchoProxy.unregister();
- registrationCalc.unregister();
- container.disconnect();
- }
-
- public void testCallViaProxy() {
- IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationEchoProxy.getReference());
- try {
- IEcho echo = (IEcho) rpcClientService.getProxy(Activator.class.getClassLoader(), new Class[]{IEcho.class});
- assertNotNull(echo);
- Object result = echo.echo(ECHO_TEST_DATA);
- assertNotNull(result);
- assertEquals(result, ECHO_TEST_DATA);
- }
- catch (ECFException e) {
- e.printStackTrace();
- fail("Could not contact the service");
- }
- }
-
- public void testCallViaProxy2() {
- IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationEchoProxy.getReference());
- try {
- IEcho echo = (IEcho) rpcClientService.getProxy();
- assertNotNull(echo);
- Object result = echo.echo(ECHO_TEST_DATA);
- assertNotNull(result);
- assertEquals(result, ECHO_TEST_DATA);
- }
- catch (ECFException e) {
- e.printStackTrace();
- fail("Could not contact the service");
- }
- }
-
- public void testSyncCall() {
- IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationEcho.getReference());
- try {
- Object result = rpcClientService.callSync(getEchoCall());
- assertNotNull(result);
- assertTrue(ECHO_TEST_DATA.equals(result));
- } catch (ECFException e) {
- fail("Could not contact the service");
- }
- }
-
- public void testAsynCall() {
- IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationCalc.getReference());
- IFuture future = rpcClientService.callAsync(getCalcPlusCall());
- try {
- Object response = future.get();
- assertTrue(response instanceof Integer);
- } catch (OperationCanceledException e) {
- fail(e.getMessage());
- } catch (InterruptedException e) {
- fail(e.getMessage());
- }
- }
-
- public void testAsyncCallWithListener() throws Exception {
- IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationCalc.getReference());
- rpcClientService.callAsync(getCalcPlusCall(), new IRemoteCallListener() {
- public void handleEvent(IRemoteCallEvent event) {
- if (event instanceof IRemoteCallCompleteEvent) {
- IRemoteCallCompleteEvent cce = (IRemoteCallCompleteEvent) event;
- Object response = cce.getResponse();
- assertTrue(response instanceof Integer);
- syncNotify();
- }
- }
- });
- syncWaitForNotify(10000);
- }
-
- private IRemoteCall getEchoCall() {
- return RemoteCallFactory.createRemoteCall(RpcConstants.TEST_ECHO_METHOD_NAME, new Object[]{ECHO_TEST_DATA});
- }
-
- private IRemoteCall getCalcPlusCall() {
- return RemoteCallFactory.createRemoteCall(RpcConstants.TEST_CALC_PLUS_METHOD_NAME, new Object[]{new Integer(2), new Integer(3)});
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.tests.remoteservice.rpc;
+
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.util.ECFException;
+import org.eclipse.ecf.internal.tests.remoteservice.rpc.Activator;
+import org.eclipse.ecf.remoteservice.IRemoteCall;
+import org.eclipse.ecf.remoteservice.IRemoteCallListener;
+import org.eclipse.ecf.remoteservice.IRemoteService;
+import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
+import org.eclipse.ecf.remoteservice.RemoteCallFactory;
+import org.eclipse.ecf.remoteservice.client.IRemoteCallParameter;
+import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
+import org.eclipse.ecf.remoteservice.client.RemoteCallParameter;
+import org.eclipse.ecf.remoteservice.client.RemoteCallableFactory;
+import org.eclipse.ecf.remoteservice.events.IRemoteCallCompleteEvent;
+import org.eclipse.ecf.remoteservice.events.IRemoteCallEvent;
+import org.eclipse.ecf.tests.remoteservice.rpc.common.IEcho;
+import org.eclipse.equinox.concurrent.future.IFuture;
+
+@SuppressWarnings("restriction")
+public class RpcRemoteServiceTest extends AbstractRpcTestCase {
+
+ private static final String ECHO_TEST_DATA = "Hello, world";
+
+ IContainer container;
+
+ IRemoteServiceRegistration registrationEcho;
+
+ IRemoteServiceRegistration registrationEchoProxy;
+
+ IRemoteServiceRegistration registrationCalc;
+
+ protected void setUp() throws Exception {
+ container = createRpcContainer(RpcConstants.TEST_ECHO_TARGET);
+
+ IRemoteCallable callableEcho = RemoteCallableFactory.createCallable(RpcConstants.TEST_ECHO_METHOD_NAME, RpcConstants.TEST_ECHO_METHOD,
+ new IRemoteCallParameter[]{new RemoteCallParameter(RpcConstants.TEST_ECHO_METHOD_PARAM)});
+ registrationEcho = registerCallable(container, callableEcho, null);
+
+ IRemoteCallable callableEchoProxy = RemoteCallableFactory.createCallable(IEcho.class.getName());
+ registrationEchoProxy = registerCallable(container, callableEchoProxy, null);
+
+ IRemoteCallable callableCalc = RemoteCallableFactory.createCallable(RpcConstants.TEST_CALC_PLUS_METHOD_NAME, RpcConstants.TEST_CALC_PLUS_METHOD,
+ new IRemoteCallParameter[]{
+ new RemoteCallParameter(RpcConstants.TEST_CALC_PLUS_METHOD_PARAM1),
+ new RemoteCallParameter(RpcConstants.TEST_CALC_PLUS_METHOD_PARAM2)});
+ registrationCalc = registerCallable(container, callableCalc, null);
+ }
+
+ protected void tearDown() throws Exception {
+ registrationEcho.unregister();
+ registrationEchoProxy.unregister();
+ registrationCalc.unregister();
+ container.disconnect();
+ }
+
+ public void testCallViaProxy() {
+ IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationEchoProxy.getReference());
+ try {
+ IEcho echo = (IEcho) rpcClientService.getProxy(Activator.class.getClassLoader(), new Class[]{IEcho.class});
+ assertNotNull(echo);
+ Object result = echo.echo(ECHO_TEST_DATA);
+ assertNotNull(result);
+ assertEquals(result, ECHO_TEST_DATA);
+ }
+ catch (ECFException e) {
+ e.printStackTrace();
+ fail("Could not contact the service");
+ }
+ }
+
+ public void testCallViaProxy2() {
+ IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationEchoProxy.getReference());
+ try {
+ IEcho echo = (IEcho) rpcClientService.getProxy();
+ assertNotNull(echo);
+ Object result = echo.echo(ECHO_TEST_DATA);
+ assertNotNull(result);
+ assertEquals(result, ECHO_TEST_DATA);
+ }
+ catch (ECFException e) {
+ e.printStackTrace();
+ fail("Could not contact the service");
+ }
+ }
+
+ public void testSyncCall() {
+ IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationEcho.getReference());
+ try {
+ Object result = rpcClientService.callSync(getEchoCall());
+ assertNotNull(result);
+ assertTrue(ECHO_TEST_DATA.equals(result));
+ } catch (ECFException e) {
+ fail("Could not contact the service");
+ }
+ }
+
+ public void testAsynCall() {
+ IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationCalc.getReference());
+ IFuture future = rpcClientService.callAsync(getCalcPlusCall());
+ try {
+ Object response = future.get();
+ assertTrue(response instanceof Integer);
+ } catch (OperationCanceledException e) {
+ fail(e.getMessage());
+ } catch (InterruptedException e) {
+ fail(e.getMessage());
+ }
+ }
+
+ public void testAsyncCallWithListener() throws Exception {
+ IRemoteService rpcClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registrationCalc.getReference());
+ rpcClientService.callAsync(getCalcPlusCall(), new IRemoteCallListener() {
+ public void handleEvent(IRemoteCallEvent event) {
+ if (event instanceof IRemoteCallCompleteEvent) {
+ IRemoteCallCompleteEvent cce = (IRemoteCallCompleteEvent) event;
+ Object response = cce.getResponse();
+ assertTrue(response instanceof Integer);
+ syncNotify();
+ }
+ }
+ });
+ syncWaitForNotify(10000);
+ }
+
+ private IRemoteCall getEchoCall() {
+ return RemoteCallFactory.createRemoteCall(RpcConstants.TEST_ECHO_METHOD_NAME, new Object[]{ECHO_TEST_DATA});
+ }
+
+ private IRemoteCall getCalcPlusCall() {
+ return RemoteCallFactory.createRemoteCall(RpcConstants.TEST_CALC_PLUS_METHOD_NAME, new Object[]{new Integer(2), new Integer(3)});
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/common/IEcho.java b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/common/IEcho.java
index 7f96f2b05..f2b8fd319 100644
--- a/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/common/IEcho.java
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc/src/org/eclipse/ecf/tests/remoteservice/rpc/common/IEcho.java
@@ -1,15 +1,15 @@
-/*******************************************************************************
- * Copyright (c) 2010-2011 Naumen. 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:
- * Pavel Samolisov - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ecf.tests.remoteservice.rpc.common;
-
-public interface IEcho {
-
- public String echo(String str);
-}
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Naumen. 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:
+ * Pavel Samolisov - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ecf.tests.remoteservice.rpc.common;
+
+public interface IEcho {
+
+ public String echo(String str);
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.server.generic/.settings/org.eclipse.jdt.core.prefs b/tests/bundles/org.eclipse.ecf.tests.server.generic/.settings/org.eclipse.jdt.core.prefs
index 7add19402..c9c13eed1 100644
--- a/tests/bundles/org.eclipse.ecf.tests.server.generic/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.server.generic/.settings/org.eclipse.jdt.core.prefs
@@ -1,74 +1,74 @@
-#Tue Jan 11 19:49:54 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+#Tue Jan 11 19:49:54 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/tests/bundles/org.eclipse.ecf.tests.sync/.project b/tests/bundles/org.eclipse.ecf.tests.sync/.project
index 79a4ad3a4..fb3c43782 100755
--- a/tests/bundles/org.eclipse.ecf.tests.sync/.project
+++ b/tests/bundles/org.eclipse.ecf.tests.sync/.project
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.tests.sync</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.tests.sync</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.jdt.core.prefs b/tests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.jdt.core.prefs
index 0ec2e7151..a0b75fd53 100755
--- a/tests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-#Sun Oct 05 14:53:02 PDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Sun Oct 05 14:53:02 PDT 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.pde.core.prefs b/tests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.pde.core.prefs
index bb8f0a794..6a2c02513 100755
--- a/tests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.pde.core.prefs
+++ b/tests/bundles/org.eclipse.ecf.tests.sync/.settings/org.eclipse.pde.core.prefs
@@ -1,4 +1,4 @@
-#Sun Oct 05 14:53:03 PDT 2008
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+#Sun Oct 05 14:53:03 PDT 2008
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/tests/bundles/org.eclipse.ecf.tests.sync/about.html b/tests/bundles/org.eclipse.ecf.tests.sync/about.html
index 3ac3c743e..4c79781a5 100755
--- a/tests/bundles/org.eclipse.ecf.tests.sync/about.html
+++ b/tests/bundles/org.eclipse.ecf.tests.sync/about.html
@@ -1,28 +1,28 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) 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 <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
</html> \ No newline at end of file

Back to the top