You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2008/09/01 17:08:10 UTC

svn commit: r690991 [1/20] - in /cxf/sandbox/dosgi: ./ discovery/ discovery/local/ discovery/local/src/ discovery/local/src/main/ discovery/local/src/main/java/ discovery/local/src/main/java/org/ discovery/local/src/main/java/org/apache/ discovery/loca...

Author: sergeyb
Date: Mon Sep  1 08:08:01 2008
New Revision: 690991

URL: http://svn.apache.org/viewvc?rev=690991&view=rev
Log:
Initial contribution of Distributed OSGi DSW Reference Implementation based on CXF. 
  
Distributed OSGi is defined by the OSGi Alliance in the Enterprise Expert Group in RFC 119, for details on RFC 119 please refer to the OSGi 4.2 early release draft available at http://www.osgi.org/download/osgi-4.2-early-draft.pdf 
  
Contributed on September 1st, 2008 by IONA Technologies.

Added:
    cxf/sandbox/dosgi/
    cxf/sandbox/dosgi/discovery/
    cxf/sandbox/dosgi/discovery/local/
    cxf/sandbox/dosgi/discovery/local/pom.xml   (with props)
    cxf/sandbox/dosgi/discovery/local/src/
    cxf/sandbox/dosgi/discovery/local/src/main/
    cxf/sandbox/dosgi/discovery/local/src/main/java/
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/Activator.java   (with props)
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/LocalDiscoveryService.java   (with props)
    cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/ServiceDescriptionImpl.java   (with props)
    cxf/sandbox/dosgi/discovery/local/src/test/
    cxf/sandbox/dosgi/discovery/local/src/test/resources/
    cxf/sandbox/dosgi/discovery/local/src/test/resources/remote-services.xml   (with props)
    cxf/sandbox/dosgi/discovery/pom.xml   (with props)
    cxf/sandbox/dosgi/dsw/
    cxf/sandbox/dosgi/dsw/cxf-dsw/
    cxf/sandbox/dosgi/dsw/cxf-dsw/pom.xml   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiService.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiUtils.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ClientServiceFactory.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ConfigTypeHandlerFactory.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ConfigurationTypeHandler.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ServiceInvocationHandler.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/hooks/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/hooks/AbstractClientHook.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/hooks/AbstractHook.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/hooks/CxfListenerHook.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/hooks/CxfPublishHook.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/hooks/EndpointInfo.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/hooks/ServiceHookUtils.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/IntentMap.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/IntentMapBeanInfo.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderImpl.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/ServiceDescriptionImpl.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/resources/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/resources/META-INF/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/resources/META-INF/osgi/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/resources/META-INF/osgi/intent-map.xml   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/cxf/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/hooks/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/hooks/BundleTestContext.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/hooks/CxfListenerHookTest.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/hooks/CxfPublishHookTest.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/hooks/TestService.java   (with props)
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/resources/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/resources/META-INF/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/resources/META-INF/osgi/
    cxf/sandbox/dosgi/dsw/cxf-dsw/src/test/resources/META-INF/osgi/remote-services.xml   (with props)
    cxf/sandbox/dosgi/dsw/pom.xml   (with props)
    cxf/sandbox/dosgi/felix/
    cxf/sandbox/dosgi/felix/framework/
    cxf/sandbox/dosgi/felix/framework/LICENSE   (with props)
    cxf/sandbox/dosgi/felix/framework/NOTICE   (with props)
    cxf/sandbox/dosgi/felix/framework/pom.xml   (with props)
    cxf/sandbox/dosgi/felix/framework/src/
    cxf/sandbox/dosgi/felix/framework/src/main/
    cxf/sandbox/dosgi/felix/framework/src/main/java/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/BundleImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/BundleInfo.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/BundleProtectionDomain.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/ExportedPackageImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/FakeURLStreamHandler.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/Felix.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/FelixBundle.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/FilterImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/FindEntriesEnumeration.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/GetEntryPathsEnumeration.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/Logger.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/PackageAdminActivator.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/StartLevelActivator.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/StartLevelImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/SystemBundleArchive.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/URLHandlers.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/URLHandlersActivator.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/URLHandlersContentHandlerProxy.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/URLHandlersServiceTracker.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/URLHandlersStreamHandlerProxy.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/BundleArchive.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/BundleCache.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/BundleRevision.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/ContentDirectoryContent.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/DirectoryContent.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/DirectoryRevision.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/ext/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/ext/FelixBundleContext.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/ext/SecurityProvider.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/ContentClassLoader.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/ModuleDefinition.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4SearchPolicy.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4SearchPolicyCore.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4Wire.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/R4WireModule.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/ResolveException.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/ResolveListener.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/searchpolicy/URLPolicyImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/CompoundEnumeration.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/EventDispatcher.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/FelixConstants.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/IteratorToEnumeration.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/JarFileX.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/MapToDictionary.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ObjectInputStreamX.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/SecureAction.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/SecurityManagerEx.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/StringMap.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/Util.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/VersionRange.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/AttributeNotFoundException.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/Driver.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/EvaluationException.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/Evaluator.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/LdapLexer.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/Mapper.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/Operator.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/ParseException.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/Parser.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/ldap/Unknown.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/manifestparser/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/manifestparser/Capability.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/manifestparser/R4Attribute.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/manifestparser/R4Directive.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/manifestparser/R4Library.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/manifestparser/R4LibraryClause.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/framework/util/manifestparser/Requirement.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/ICapability.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/IContent.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/IContentLoader.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/IModule.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/IModuleDefinition.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/IModuleFactory.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/IRequirement.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/ISearchPolicy.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/IURLPolicy.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/IWire.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/ModuleEvent.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/ModuleListener.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/apache/felix/moduleloader/ResourceNotFoundException.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/framework/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/framework/AdminPermission.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/framework/FrameworkUtil.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/framework/ServiceException.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/framework/hooks/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/framework/hooks/service/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/framework/hooks/service/ListenerHook.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/service/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/service/discovery/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/service/discovery/Discovery.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/service/discovery/FindServiceCallback.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/service/discovery/ServiceDescription.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/service/discovery/ServiceListener.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/service/dsw/
    cxf/sandbox/dosgi/felix/framework/src/main/java/org/osgi/service/dsw/DistributionProvider.java   (with props)
    cxf/sandbox/dosgi/felix/framework/src/main/resources/
    cxf/sandbox/dosgi/felix/framework/src/main/resources/org/
    cxf/sandbox/dosgi/felix/framework/src/main/resources/org/apache/
    cxf/sandbox/dosgi/felix/framework/src/main/resources/org/apache/felix/
    cxf/sandbox/dosgi/felix/framework/src/main/resources/org/apache/felix/framework/
    cxf/sandbox/dosgi/felix/framework/src/main/resources/org/apache/felix/framework/Felix.properties   (with props)
    cxf/sandbox/dosgi/felix/main/
    cxf/sandbox/dosgi/felix/main/LICENSE   (with props)
    cxf/sandbox/dosgi/felix/main/NOTICE   (with props)
    cxf/sandbox/dosgi/felix/main/discovery/
    cxf/sandbox/dosgi/felix/main/discovery/conf/
    cxf/sandbox/dosgi/felix/main/etc/
    cxf/sandbox/dosgi/felix/main/etc/logging.properties   (with props)
    cxf/sandbox/dosgi/felix/main/pom.xml   (with props)
    cxf/sandbox/dosgi/felix/main/src/
    cxf/sandbox/dosgi/felix/main/src/main/
    cxf/sandbox/dosgi/felix/main/src/main/java/
    cxf/sandbox/dosgi/felix/main/src/main/java/org/
    cxf/sandbox/dosgi/felix/main/src/main/java/org/apache/
    cxf/sandbox/dosgi/felix/main/src/main/java/org/apache/felix/
    cxf/sandbox/dosgi/felix/main/src/main/java/org/apache/felix/main/
    cxf/sandbox/dosgi/felix/main/src/main/java/org/apache/felix/main/AutoActivator.java   (with props)
    cxf/sandbox/dosgi/felix/main/src/main/java/org/apache/felix/main/Main.java   (with props)
    cxf/sandbox/dosgi/felix/main/src/main/resources/
    cxf/sandbox/dosgi/felix/main/src/main/resources/config.properties   (with props)
    cxf/sandbox/dosgi/felix/main/src/main/resources/default.properties   (with props)
    cxf/sandbox/dosgi/felix/pom.xml   (with props)
    cxf/sandbox/dosgi/felix/profiles/
    cxf/sandbox/dosgi/felix/profiles/pom.xml   (with props)
    cxf/sandbox/dosgi/felix/profiles/src/
    cxf/sandbox/dosgi/felix/profiles/src/main/
    cxf/sandbox/dosgi/felix/profiles/src/main/java/
    cxf/sandbox/dosgi/felix/profiles/src/main/java/felix/
    cxf/sandbox/dosgi/felix/profiles/src/main/java/felix/EmptyClass.java   (with props)
    cxf/sandbox/dosgi/felix/profiles/src/main/resources/
    cxf/sandbox/dosgi/felix/profiles/src/main/resources/client_bundles.txt   (with props)
    cxf/sandbox/dosgi/felix/profiles/src/main/resources/server_bundles.txt   (with props)
    cxf/sandbox/dosgi/felix/profiles/src/test/
    cxf/sandbox/dosgi/felix/profiles/src/test/java/
    cxf/sandbox/dosgi/felix/profiles/src/test/resources/
    cxf/sandbox/dosgi/felix/remote-debug.txt   (with props)
    cxf/sandbox/dosgi/felix/shell.tui/
    cxf/sandbox/dosgi/felix/shell.tui/LICENSE   (with props)
    cxf/sandbox/dosgi/felix/shell.tui/NOTICE   (with props)
    cxf/sandbox/dosgi/felix/shell.tui/pom.xml   (with props)
    cxf/sandbox/dosgi/felix/shell.tui/src/
    cxf/sandbox/dosgi/felix/shell.tui/src/main/
    cxf/sandbox/dosgi/felix/shell.tui/src/main/java/
    cxf/sandbox/dosgi/felix/shell.tui/src/main/java/org/
    cxf/sandbox/dosgi/felix/shell.tui/src/main/java/org/apache/
    cxf/sandbox/dosgi/felix/shell.tui/src/main/java/org/apache/felix/
    cxf/sandbox/dosgi/felix/shell.tui/src/main/java/org/apache/felix/shell/
    cxf/sandbox/dosgi/felix/shell.tui/src/main/java/org/apache/felix/shell/tui/
    cxf/sandbox/dosgi/felix/shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java   (with props)
    cxf/sandbox/dosgi/parent/
    cxf/sandbox/dosgi/parent/pom.xml   (with props)
    cxf/sandbox/dosgi/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/
    cxf/sandbox/dosgi/samples/greeter/
    cxf/sandbox/dosgi/samples/greeter/client/
    cxf/sandbox/dosgi/samples/greeter/client/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/greeter/client/src/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/org/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/org/apache/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/org/apache/cxf/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/Activator.java   (with props)
    cxf/sandbox/dosgi/samples/greeter/client/src/main/resources/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/resources/META-INF/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/resources/META-INF/osgi/
    cxf/sandbox/dosgi/samples/greeter/client/src/main/resources/META-INF/osgi/intent-map.xml   (with props)
    cxf/sandbox/dosgi/samples/greeter/client/src/main/resources/META-INF/osgi/remote-services.xml   (with props)
    cxf/sandbox/dosgi/samples/greeter/impl/
    cxf/sandbox/dosgi/samples/greeter/impl/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/greeter/impl/src/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/apache/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/apache/cxf/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/apache/cxf/dosgi/samples/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/apache/cxf/dosgi/samples/greeter/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/apache/cxf/dosgi/samples/greeter/impl/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/apache/cxf/dosgi/samples/greeter/impl/Activator.java   (with props)
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/java/org/apache/cxf/dosgi/samples/greeter/impl/GreeterServiceImpl.java   (with props)
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/resources/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/resources/META-INF/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/resources/META-INF/osgi/
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/resources/META-INF/osgi/intent-map.xml   (with props)
    cxf/sandbox/dosgi/samples/greeter/impl/src/main/resources/META-INF/osgi/remote-services.xml   (with props)
    cxf/sandbox/dosgi/samples/greeter/interface/
    cxf/sandbox/dosgi/samples/greeter/interface/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/greeter/interface/src/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/org/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/org/apache/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/org/apache/cxf/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/org/apache/cxf/dosgi/samples/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/org/apache/cxf/dosgi/samples/greeter/
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/org/apache/cxf/dosgi/samples/greeter/GreeterService.java   (with props)
    cxf/sandbox/dosgi/samples/greeter/interface/src/main/java/org/apache/cxf/dosgi/samples/greeter/GreetingPhrase.java   (with props)
    cxf/sandbox/dosgi/samples/greeter/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/
    cxf/sandbox/dosgi/samples/simple_pojo/client/
    cxf/sandbox/dosgi/samples/simple_pojo/client/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/cxf/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/cxf/dosgi/samples/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/cxf/dosgi/samples/pojo/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/client/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/client/Activator.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/client/HelloServiceClient.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/resources/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/resources/META-INF/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/resources/META-INF/osgi/
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/resources/META-INF/osgi/intent-map.xml   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/client/src/main/resources/META-INF/osgi/remote-services.xml   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/impl/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/dosgi/samples/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/dosgi/samples/pojo/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/impl/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/impl/Activator.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/impl/GreeterServiceImpl.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/impl/HelloServiceImpl.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/resources/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/resources/META-INF/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/resources/META-INF/osgi/
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/resources/META-INF/osgi/intent-map.xml   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/impl/src/main/resources/META-INF/osgi/remote-services.xml   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/interface/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/pom.xml   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/dosgi/samples/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/dosgi/samples/pojo/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/GreeterException.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/GreeterService.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/GreetingPhrase.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/interface/src/main/java/org/apache/cxf/dosgi/samples/pojo/hello/HelloService.java   (with props)
    cxf/sandbox/dosgi/samples/simple_pojo/pom.xml   (with props)
    cxf/sandbox/dosgi/systests/
    cxf/sandbox/dosgi/systests/basic/
    cxf/sandbox/dosgi/systests/basic/pom.xml   (with props)
    cxf/sandbox/dosgi/systests/basic/src/
    cxf/sandbox/dosgi/systests/basic/src/test/
    cxf/sandbox/dosgi/systests/basic/src/test/java/
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/apache/
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/apache/cxf/
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/apache/cxf/dosgi/
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/apache/cxf/dosgi/systests/
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/apache/cxf/dosgi/systests/basic/
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/apache/cxf/dosgi/systests/basic/BasicPublishHookTest.java   (with props)
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/apache/cxf/dosgi/systests/basic/ListenerHookServiceListenerTest.java   (with props)
    cxf/sandbox/dosgi/systests/basic/src/test/java/org/apache/cxf/dosgi/systests/basic/ListenerHookSyncTest.java   (with props)
    cxf/sandbox/dosgi/systests/basic/src/test/resources/
    cxf/sandbox/dosgi/systests/basic/src/test/resources/META-INF/
    cxf/sandbox/dosgi/systests/basic/src/test/resources/META-INF/osgi/
    cxf/sandbox/dosgi/systests/basic/src/test/resources/META-INF/osgi/intent-map.xml   (with props)
    cxf/sandbox/dosgi/systests/basic/src/test/resources/META-INF/osgi/remote-services.xml   (with props)
    cxf/sandbox/dosgi/systests/pom.xml   (with props)

Added: cxf/sandbox/dosgi/discovery/local/pom.xml
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/discovery/local/pom.xml?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/discovery/local/pom.xml (added)
+++ cxf/sandbox/dosgi/discovery/local/pom.xml Mon Sep  1 08:08:01 2008
@@ -0,0 +1,84 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.cxf</groupId>
+    <artifactId>cxf-dosgi-ri-discovery-local</artifactId>
+    <packaging>bundle</packaging>
+    <name>CXF Distributed OSGI Local Discovery Service Bundle</name>
+    <version>1.0-SNAPSHOT</version>
+
+    <parent>
+      <groupId>org.apache.cxf</groupId>
+      <artifactId>cxf-dosgi-ri-parent</artifactId>
+      <version>1.0-SNAPSHOT</version>
+      <relativePath>../../parent/pom.xml</relativePath>
+    </parent>
+
+    <properties>
+        <topDirectoryLocation>../..</topDirectoryLocation>
+        <bundle.import.package>*</bundle.import.package>
+        <bundle.export.package>org.apache.cxf.dosgi.discovery.local.*</bundle.export.package>
+    </properties>
+    
+    <dependencies>
+        <dependency> 
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.framework</artifactId>
+            <version>1.1.0-cxf_dosgi-SNAPSHOT</version>
+        </dependency> 
+        <dependency>  
+            <groupId>org.jdom</groupId>  
+            <artifactId>com.springsource.org.jdom</artifactId>  
+            <version>1.0.0</version> 
+        </dependency>
+        <dependency>
+           <groupId>junit</groupId>
+           <artifactId>junit</artifactId>
+           <scope>test</scope>
+        </dependency>  
+        <dependency>
+           <groupId>org.easymock</groupId>
+           <artifactId>easymockclassextension</artifactId>
+           <scope>test</scope>
+         </dependency>
+    </dependencies> 
+
+    <build>
+      <plugins>
+        <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Bundle-Name>CXF Local Discovery Service Bundle</Bundle-Name>
+                        <Bundle-Description>This bundle contains the implementation required by the CXF Local Discovery Service Bundle</Bundle-Description>
+                        <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+                        <Bundle-Activator>org.apache.cxf.dosgi.discovery.local.Activator</Bundle-Activator>
+                        <Import-Package>${bundle.import.package}</Import-Package>
+                        <Export-Package>${bundle.export.package}</Export-Package> 
+                    </instructions>
+                </configuration>
+            </plugin> 
+         </plugins>
+    </build>    
+
+</project>

Propchange: cxf/sandbox/dosgi/discovery/local/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/discovery/local/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/sandbox/dosgi/discovery/local/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/Activator.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/Activator.java?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/Activator.java (added)
+++ cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/Activator.java Mon Sep  1 08:08:01 2008
@@ -0,0 +1,74 @@
+/** 
+  * Licensed to the Apache Software Foundation (ASF) under one 
+  * or more contributor license agreements. See the NOTICE file 
+  * distributed with this work for additional information 
+  * regarding copyright ownership. The ASF licenses this file 
+  * to you 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. 
+  */
+package org.apache.cxf.dosgi.discovery.local;
+
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.logging.Logger;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.service.cm.ConfigurationException;
+import org.osgi.service.cm.ManagedService;
+import org.osgi.service.discovery.Discovery;
+
+
+
+public class Activator implements BundleActivator, ManagedService {
+
+    private static final Logger LOG = Logger.getLogger(Activator.class.getName());
+    
+    private static final String CONFIG_SERVICE_PID = "discovery";
+    private LocalDiscoveryService discoveryService;
+    
+    public void start(BundleContext context) {
+
+        LOG.info("Registering ManagedService for LocalDiscoveryService bundle with service PID "
+                 + CONFIG_SERVICE_PID);
+        context.registerService(ManagedService.class.getName(), 
+                                this, getDefaults());
+        
+        LOG.info("Registering LocalDiscoveryService service object");
+        discoveryService = new LocalDiscoveryService(context);
+        
+        context.registerService(
+                Discovery.class.getName(), 
+                discoveryService,
+                new Hashtable());
+    }
+
+    public void stop(BundleContext context) {
+        discoveryService.shutdown();
+    }
+
+    private Dictionary<String, String> getDefaults() {
+        Dictionary<String, String> defaults = new Hashtable<String, String>();
+        defaults.put(Constants.SERVICE_PID, CONFIG_SERVICE_PID);        
+        return defaults;
+    } 
+    
+    public void updated(Dictionary props) throws ConfigurationException {
+        if (props != null 
+            && CONFIG_SERVICE_PID.equals(props.get(Constants.SERVICE_PID))) {
+            discoveryService.updateProperties(props);
+        }
+    }
+}

Propchange: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/Activator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/Activator.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/LocalDiscoveryService.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/LocalDiscoveryService.java?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/LocalDiscoveryService.java (added)
+++ cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/LocalDiscoveryService.java Mon Sep  1 08:08:01 2008
@@ -0,0 +1,437 @@
+/** 
+  * Licensed to the Apache Software Foundation (ASF) under one 
+  * or more contributor license agreements. See the NOTICE file 
+  * distributed with this work for additional information 
+  * regarding copyright ownership. The ASF licenses this file 
+  * to you 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. 
+  */
+package org.apache.cxf.dosgi.discovery.local;
+
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.logging.Logger;
+
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.Namespace;
+import org.jdom.input.SAXBuilder;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.Filter;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.service.discovery.Discovery;
+import org.osgi.service.discovery.FindServiceCallback;
+import org.osgi.service.discovery.ServiceDescription;
+import org.osgi.service.discovery.ServiceListener;
+
+public class LocalDiscoveryService implements Discovery {
+    
+    private static final Logger LOG = Logger.getLogger(LocalDiscoveryService.class.getName());
+    
+
+    private static final String DEFAULT_SERVICES_LOCATION = 
+        "/discovery/conf/remote-services.xml";
+    private static final String REMOTE_SERVICES_ENTRY = 
+        "/META-INF/osgi/remote-services.xml";
+    private static final String REMOTE_SERVICES_NS =
+        "http://www.osgi.org/xmlns/rs/v1.0.0";
+    
+    
+    private static final String NAME_ATTRIBUTE = "name";
+    private static final String INTERFACE_ATTRIBUTE = "interface";
+    
+    // TODO : these properties should be configurable
+    private static final long ASYNC_WAIT_TIME = 5000L;
+    private static final long CONFIG_CHECK_TIME = 5000L;
+    
+    // this is effectively a set which allows for multiple service descriptions with the
+    // same interface name but different properties and takes care of itself with respect to concurrency 
+    private ConcurrentHashMap<ServiceDescription, ServiceDescription> servicesInfo = 
+        new ConcurrentHashMap<ServiceDescription, ServiceDescription>();
+    private ConcurrentHashMap<ServiceListener, Filter> listeners = 
+        new ConcurrentHashMap<ServiceListener, Filter>();
+    private BundleContext bc;
+    
+    private boolean attachedToBundle;
+    private boolean isShutdown;
+    
+    private BlockingQueue<Callable<Boolean>> asyncChecks 
+        = new LinkedBlockingQueue<Callable<Boolean>>();
+    private Thread asyncChecksThread;
+    private Thread configChecksThread;
+    private long lastConfigModification;
+    
+    public LocalDiscoveryService(BundleContext bc) {
+        this.bc = bc;
+        readMetadata();
+        if (!attachedToBundle) {
+            configChecksThread = new Thread(new ConfigCheckRunnable());
+            configChecksThread.start();
+        }
+    }
+
+    public void updateProperties(Dictionary props) {
+    }
+    
+    public void addServiceListener(ServiceListener sl, ServiceDescription sd) {
+        addServiceListener(sl, createFilterExpression(sd));
+    }
+
+    public void addServiceListener(ServiceListener sl, String filter) {
+        listeners.put(sl, createFilter(filter));
+    }
+    
+    public void addServiceListener(ServiceListener sl) {
+        listeners.put(sl, null);
+    }
+
+    public void removeServiceListener(ServiceListener sl) {
+        listeners.remove(sl);
+    }
+    
+    public boolean isCached(ServiceDescription sd) {
+        return servicesInfo.containsKey(sd);
+    }
+    
+    public Collection getCachedServiceDescriptions() {
+        return Collections.unmodifiableCollection(servicesInfo.values());
+    } 
+    
+    public Collection<ServiceDescription> findService(ServiceDescription sDesc) {
+        return findService(createFilterExpression(sDesc));
+    }
+    
+    @SuppressWarnings("unchecked")
+    public Collection<ServiceDescription> findService(String filter) {
+        return findServiceWithFilter(createFilter(filter));
+    }
+    
+    @SuppressWarnings("unchecked")
+    public Collection<ServiceDescription> findServiceWithFilter(Filter f) {
+        if (f == null) {
+            return Collections.emptyList();    
+        }
+        
+        List<ServiceDescription> sds = new ArrayList<ServiceDescription>();
+        
+        for (ServiceDescription sd : servicesInfo.values()) {
+            if (f.match(getServiceProperties(sd))) {
+                sds.add(sd);
+            }
+        }
+        return sds;
+    }
+    
+    public void findService(String filter, FindServiceCallback listener) {
+        Filter f = createFilter(filter); 
+        if (f != null) {
+            doFindService(f, listener);
+        }
+    }
+    
+    public void findService(ServiceDescription sdesc, FindServiceCallback listener) {
+        findService(createFilterExpression(sdesc), listener);        
+    }
+    
+    private void doFindService(final Filter f, final FindServiceCallback listener) {
+        if (attachedToBundle) {
+            checkServices(f, listener);
+            return;
+        }
+        
+        synchronized (this) {
+            if (isShutdown) {
+                return;
+            }
+            if (asyncChecksThread == null) {
+                asyncChecksThread = new Thread(new AsyncCheckRunnable());
+                asyncChecksThread.start();
+            }
+        }
+        asyncChecks.add(new Callable<Boolean>() {
+
+            public Boolean call() throws Exception {
+                return checkServices(f, listener); 
+            }
+            
+        });
+    }
+    
+    private boolean checkServices(Filter f, FindServiceCallback listener) {
+        Collection<ServiceDescription> sds = findServiceWithFilter(f);
+        if (sds.isEmpty()) {
+            return false;
+        } else {
+            listener.servicesFound(sds);
+            return true;
+        }
+    }
+    
+    public boolean publishService(ServiceDescription sd) {
+        return publishService(sd, false);
+    }
+    
+    public boolean publishService(ServiceDescription sd, boolean autoPublish) {
+        servicesInfo.putIfAbsent(sd, sd);
+        for (Map.Entry<ServiceListener, Filter> entry : listeners.entrySet()) {
+            if (entry.getValue() == null 
+                || entry.getValue().match(getServiceProperties(sd))) {
+                entry.getKey().serviceAvailable(sd);
+            }
+        }
+        return true;
+    }
+    
+    public void unpublishService(ServiceDescription sd) {
+        servicesInfo.remove(sd);
+        for (Map.Entry<ServiceListener, Filter> entry : listeners.entrySet()) {
+            if (entry.getValue() == null 
+                || entry.getValue().match(getServiceProperties(sd))) {
+                entry.getKey().serviceUnavailable(sd);
+            }
+        }
+    }        
+
+    private void readMetadata() {
+        
+        InputStream is = getRemoteServicesStream();
+        if (is != null) {
+            try {
+                readRemoteServices(is);    
+            } catch (Exception ex) {
+                LOG.warning("Problem parsing remote-services.xml :" 
+                                   + ex.getMessage());
+            } finally {
+                try {
+                    is.close();
+                } catch (IOException ex) {
+                   // ignore
+                }
+            }
+        }
+    }
+    
+    private InputStream getRemoteServicesStream() {
+        
+        
+        // check default location
+        File f = new File(System.getProperty("user.dir") + DEFAULT_SERVICES_LOCATION);
+        if (f.exists()) {
+            long lastModified = f.lastModified();
+            if (lastModified == lastConfigModification) {
+                return null;
+            }
+            lastConfigModification = lastModified;
+            
+            try {
+                LOG.info("Found remote-services.xml at " + f.getAbsolutePath());
+                return f.toURL().openStream();
+            } catch (Exception ex) {
+                LOG.warning("remote-services.xml at " + f.getAbsolutePath() 
+                                   + " can not be accessed");                
+            }
+        }
+        
+        // check if remoteservices.xml are attached to this bundle
+        URL resourceURL = bc.getBundle().getEntry(REMOTE_SERVICES_ENTRY);
+        if (resourceURL != null) {
+            try {
+                InputStream is = resourceURL.openStream();
+                attachedToBundle = true;
+                return is; 
+            } catch (IOException ex) {
+                LOG.warning("Problem accessing remote-services.xml class resource");                
+            }    
+        }
+        return null;
+    }
+    
+    
+    
+    @SuppressWarnings("unchecked")
+    private void readRemoteServices(InputStream is) throws Exception {
+
+        Document d = new SAXBuilder().build(is);
+        Namespace ns = Namespace.getNamespace(REMOTE_SERVICES_NS);
+        List<Element> references = d.getRootElement().getChildren("reference", ns);
+        
+        servicesInfo.clear();
+        
+        for (Element ref : references) {
+            List<String> iNames = getInterfaceNames(ref.getChildren("provide", ns));
+            if (iNames.isEmpty()) {
+                continue;
+            }
+            
+            ServiceDescription sd = new ServiceDescriptionImpl(iNames,  
+                          getProperties(ref.getChildren("property", ns)));
+            servicesInfo.putIfAbsent(sd, sd);
+        }
+        
+    }
+    
+    private Map<String, Object> getProperties(List<Element> elementProps) {
+        
+        Map<String, Object> props = new HashMap<String, Object>();
+        
+        for (Element p : elementProps) {
+            String key = p.getAttributeValue(NAME_ATTRIBUTE);
+            if (key != null) {
+                props.put(key, p.getTextTrim());
+            }
+        }
+        
+        return props;
+    }
+ 
+    private static List<String> getInterfaceNames(List<Element> elements) {
+        
+        List<String> names = new ArrayList<String>();
+        
+        for (Element p : elements) {
+            String name = p.getAttributeValue(INTERFACE_ATTRIBUTE);
+            if (name != null) {
+                names.add(name);
+            }
+        }
+        
+        return names;
+    }
+    
+    public void shutdown() {
+        synchronized (this) {
+            isShutdown = true;
+            if (asyncChecksThread != null) {
+                asyncChecksThread.interrupt();
+            }
+        }    
+        if (configChecksThread != null) {
+            configChecksThread.interrupt();
+        }
+    }
+    
+    private class AsyncCheckRunnable implements Runnable {
+
+        public void run() {
+            while (!Thread.currentThread().isInterrupted()) {
+                try {
+                    // wait untill we have at least one task
+                    Callable<Boolean> task = asyncChecks.take();
+                    Collection<Callable<Boolean>> remainingTasks = null;
+                    if (asyncChecks.size() > 0) {
+                        remainingTasks = 
+                            new ArrayList<Callable<Boolean>>(asyncChecks);
+                    } else {
+                        remainingTasks = Collections.emptyList();
+                    }
+                    // try the first task
+                    if (!tryTask(task)) {
+                        asyncChecks.add(task);
+                    }
+                    
+                    // try the rest
+                    for (Callable<Boolean> c : remainingTasks) {
+                        if (tryTask(c)) {
+                            asyncChecks.remove(c);
+                        } 
+                    }
+                    
+                    Thread.sleep(ASYNC_WAIT_TIME);
+                } catch (InterruptedException ex) {
+                    Thread.currentThread().interrupt();
+                }
+            }
+            
+        }
+        
+        
+        private boolean tryTask(Callable<Boolean> task) {
+            try {
+                return task.call();
+            } catch (Exception ex) {
+                return false;
+            }
+        }
+    }
+    
+    private class ConfigCheckRunnable implements Runnable {
+
+        public void run() {
+            while (!Thread.currentThread().isInterrupted()) {
+                try {
+                    Thread.sleep(CONFIG_CHECK_TIME);
+                    readMetadata();
+                } catch (InterruptedException ex) {
+                    Thread.currentThread().interrupt();
+                }
+            }
+            
+        }
+        
+    }
+    
+    
+    private static String createFilterExpression(ServiceDescription sd) {
+        
+        StringBuilder f = new StringBuilder();
+        f.append('(').append(Constants.OBJECTCLASS).append('=').append(sd.getInterfaceName()).append(')');
+        for (Object key : sd.getPropertyKeys()) {
+            f.append("&&");
+            f.append('(').append(key.toString()).append('=')
+             .append(sd.getProperty(key.toString())).append(')');
+        }
+        return f.toString();
+        
+    }
+    
+    private Filter createFilter(String filterValue) {
+        
+        if (filterValue == null) {
+            return null;
+        }
+        
+        try {
+            return bc.createFilter(filterValue); 
+        } catch (InvalidSyntaxException ex) {
+            System.out.println("Invalid filter expression " + filterValue);
+        } catch (Exception ex) {
+            System.out.println("Problem creating a Filter from " + filterValue); 
+        }
+        return null;
+    }
+
+    @SuppressWarnings("unchecked")
+    private Dictionary<String, Object> getServiceProperties(ServiceDescription sd) {
+        Dictionary<String, Object> d = new Hashtable<String, Object>(sd.getProperties());
+        d.put(Constants.OBJECTCLASS, new String[]{sd.getInterfaceName()});
+        return d;
+    }
+    
+}
+    

Propchange: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/LocalDiscoveryService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/LocalDiscoveryService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/ServiceDescriptionImpl.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/ServiceDescriptionImpl.java?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/ServiceDescriptionImpl.java (added)
+++ cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/ServiceDescriptionImpl.java Mon Sep  1 08:08:01 2008
@@ -0,0 +1,109 @@
+/** 
+  * Licensed to the Apache Software Foundation (ASF) under one 
+  * or more contributor license agreements. See the NOTICE file 
+  * distributed with this work for additional information 
+  * regarding copyright ownership. The ASF licenses this file 
+  * to you 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. 
+  */
+package org.apache.cxf.dosgi.discovery.local;
+
+import java.net.URL;
+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 org.osgi.service.discovery.ServiceDescription;
+
+public class ServiceDescriptionImpl implements ServiceDescription {
+
+    private List<String> interfaceNames; 
+    private Map<String, Object> properties;
+    
+    @SuppressWarnings("unchecked")
+    public ServiceDescriptionImpl(String interfaceName) {
+        this(Collections.singletonList(interfaceName), Collections.EMPTY_MAP);
+    }
+    
+    @SuppressWarnings("unchecked")
+    public ServiceDescriptionImpl(List<String> interfaceNames) {
+        this(interfaceNames, Collections.EMPTY_MAP);
+    }
+    
+    public ServiceDescriptionImpl(List<String> interfaceNames,
+                                  Dictionary userProperties) {
+        this.interfaceNames = interfaceNames;
+        properties = new HashMap<String, Object>();
+        if (userProperties != null) {
+            for (Enumeration keys = userProperties.keys(); keys.hasMoreElements();) {
+                Object key = keys.nextElement();
+                properties.put(key.toString(), userProperties.get(key));
+            }
+        }
+    }
+    
+    public ServiceDescriptionImpl(List<String> interfaceNames,
+                                  Map<String, Object> remoteProperties) {
+        this.interfaceNames = interfaceNames;
+        properties = remoteProperties;
+    }
+    
+    public Object getProperty(String key) {
+        return properties.get(key);
+    }
+
+    public Map getProperties() {
+        return Collections.unmodifiableMap(properties);
+    }
+
+    public Collection getPropertyKeys() {
+        return getProperties().keySet();
+    }
+
+    
+    @Override
+    public int hashCode() {
+        return interfaceNames.get(0).hashCode() + 37 * properties.hashCode();
+    }
+    
+    @Override
+    public boolean equals(Object obj) {
+        if (!(obj instanceof ServiceDescription)) {
+            return false;
+        }
+        ServiceDescription other = (ServiceDescription)obj;
+        
+        return interfaceNames.get(0).equals(other.getInterfaceName())
+               && properties.equals(other.getProperties());
+    }
+
+    public String getInterfaceName() {
+        return interfaceNames.get(0);
+    }
+
+    public URL getLocation() {
+        return null;
+    }
+
+    public String getProtocolSpecificInterfaceName() {
+        return null;
+    }
+
+    public String getVersion() {
+        return null;
+    }
+}

Propchange: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/ServiceDescriptionImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/discovery/local/src/main/java/org/apache/cxf/dosgi/discovery/local/ServiceDescriptionImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/sandbox/dosgi/discovery/local/src/test/resources/remote-services.xml
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/discovery/local/src/test/resources/remote-services.xml?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/discovery/local/src/test/resources/remote-services.xml (added)
+++ cxf/sandbox/dosgi/discovery/local/src/test/resources/remote-services.xml Mon Sep  1 08:08:01 2008
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+
+<remote-references xmlns="http://www.osgi.org/xmlns/rs/v1.0.0">
+<reference>
+<provide interface="org.apache.cxf.dosgi.samples.pojo.hello.GreeterService"/>
+<property name="org.osgi.remote.publish">true</property>
+<property name="org.osgi.remote.intents">SOAP HTTP</property>
+<property name="org.osgi.remote.configuration.type">pojo</property>
+<property name="org.osgi.remote.address">http://localhost:9005/greeter</property>
+</reference>
+<reference>
+<provide interface="org.apache.cxf.dosgi.samples.pojo.hello.GreeterService"/>
+<property name="org.osgi.remote.publish">true</property>
+<property name="org.osgi.remote.intents">SOAP HTTP</property>
+<property name="org.osgi.remote.configuration.type">pojo</property>
+<property name="org.osgi.remote.address">http://localhost:10000/greeter</property>
+</reference>
+</remote-references>
\ No newline at end of file

Propchange: cxf/sandbox/dosgi/discovery/local/src/test/resources/remote-services.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/discovery/local/src/test/resources/remote-services.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/sandbox/dosgi/discovery/local/src/test/resources/remote-services.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/sandbox/dosgi/discovery/pom.xml
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/discovery/pom.xml?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/discovery/pom.xml (added)
+++ cxf/sandbox/dosgi/discovery/pom.xml Mon Sep  1 08:08:01 2008
@@ -0,0 +1,41 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.cxf</groupId>
+    <artifactId>cxf-dosgi-ri-discovery</artifactId>
+    <packaging>pom</packaging>
+    <name>Distributed OSGI Discovery Service Modules</name>
+    <version>1.0-SNAPSHOT</version>
+
+    <parent>
+      <groupId>org.apache.cxf</groupId>
+      <artifactId>cxf-dosgi-ri-parent</artifactId>
+      <version>1.0-SNAPSHOT</version>
+      <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+
+    <modules>
+      <module>local</module>
+    </modules>
+    
+
+</project>

Propchange: cxf/sandbox/dosgi/discovery/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/discovery/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/sandbox/dosgi/discovery/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/sandbox/dosgi/dsw/cxf-dsw/pom.xml
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/dsw/cxf-dsw/pom.xml?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/dsw/cxf-dsw/pom.xml (added)
+++ cxf/sandbox/dosgi/dsw/cxf-dsw/pom.xml Mon Sep  1 08:08:01 2008
@@ -0,0 +1,94 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.cxf</groupId>
+    <artifactId>cxf-dosgi-ri-dsw-cxf</artifactId>
+    <packaging>bundle</packaging>
+    <name>CXF Distribution Software Bundle</name>
+    <version>1.0-SNAPSHOT</version>
+
+    <parent>
+       <groupId>org.apache.cxf</groupId>
+       <artifactId>cxf-dosgi-ri-parent</artifactId>
+       <version>1.0-SNAPSHOT</version>
+       <relativePath>../../parent/pom.xml</relativePath>
+    </parent>
+
+    <properties>
+        <topDirectoryLocation>../..</topDirectoryLocation>
+        <bundle.import.package>*</bundle.import.package>
+        <bundle.export.package>org.apache.cxf.dosgi.*</bundle.export.package>
+    </properties>
+    
+    <dependencies>
+        <dependency>
+   	   <groupId>org.apache.cxf</groupId>
+	   <artifactId>cxf-bundle-minimal</artifactId>
+	   <version>${cxf.version}</version>
+        </dependency>
+        <dependency> 
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.framework</artifactId>
+            <version>1.1.0-cxf_dosgi-SNAPSHOT</version>
+        </dependency> 
+        <dependency>  
+            <groupId>org.jdom</groupId>  
+            <artifactId>com.springsource.org.jdom</artifactId>  
+            <version>1.0.0</version> 
+        </dependency>
+        <dependency>
+           <groupId>junit</groupId>
+           <artifactId>junit</artifactId>
+           <scope>test</scope>
+        </dependency>  
+        <dependency>
+           <groupId>org.easymock</groupId>
+           <artifactId>easymockclassextension</artifactId>
+           <scope>test</scope>
+         </dependency>
+        <dependency>
+          <groupId>org.springframework.osgi</groupId>
+          <artifactId>spring-osgi-core</artifactId>
+          <version>${spring.osgi.version}</version>
+        </dependency> 
+    </dependencies> 
+
+    <build>
+      <plugins>
+        <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Bundle-Name>CXF Distributed Software Bundle</Bundle-Name>
+                        <Bundle-Description>This bundle contains the implementation required by the CXF Distributed Software Bundle</Bundle-Description>
+                        <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+                        <Bundle-Activator>org.apache.cxf.dosgi.dsw.Activator</Bundle-Activator>
+                        <Import-Package>${bundle.import.package}</Import-Package>
+                        <Export-Package>${bundle.export.package}</Export-Package> 
+                        <DynamicImport-Package>*</DynamicImport-Package>
+                    </instructions>
+                </configuration>
+            </plugin> 
+         </plugins>
+    </build>    
+
+</project>

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java (added)
+++ cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java Mon Sep  1 08:08:01 2008
@@ -0,0 +1,111 @@
+/** 
+  * Licensed to the Apache Software Foundation (ASF) under one 
+  * or more contributor license agreements. See the NOTICE file 
+  * distributed with this work for additional information 
+  * regarding copyright ownership. The ASF licenses this file 
+  * to you 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. 
+  */
+package org.apache.cxf.dosgi.dsw;
+
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+
+import org.apache.cxf.dosgi.dsw.hooks.CxfListenerHook;
+import org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook;
+import org.apache.cxf.dosgi.dsw.service.DistributionProviderImpl;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.hooks.service.ListenerHook;
+import org.osgi.service.cm.ConfigurationException;
+import org.osgi.service.cm.ManagedService;
+import org.osgi.service.dsw.DistributionProvider;
+
+public class Activator implements BundleActivator, ServiceListener, ManagedService {
+
+    private static final String CONFIG_SERVICE_PID = "cxf-dsw";
+    
+    private CxfPublishHook pHook;
+    private CxfListenerHook lHook;
+    private volatile BundleContext bc;
+    private ExecutorService execService = 
+        new ThreadPoolExecutor(5, 10, 50, TimeUnit.SECONDS, 
+                               new LinkedBlockingQueue<Runnable>());
+    
+    public void start(BundleContext context) {
+        bc = context; 
+        // should we have a seperate PID for a find and publish hook ? 
+        context.registerService(ManagedService.class.getName(), 
+                                this, getDefaults());
+        
+        pHook = new CxfPublishHook(context);
+        lHook = new CxfListenerHook(context);
+        context.registerService(ListenerHook.class.getName(), lHook, new Hashtable());
+
+        context.registerService(DistributionProvider.class.getName(), 
+                                new DistributionProviderImpl(),
+                                new Hashtable());
+        
+        context.addServiceListener(this);
+                 
+    }
+
+    public void stop(BundleContext context) {
+        execService.shutdown();
+        pHook.removeEndpoints();
+    }
+
+    private Dictionary<String, String> getDefaults() {
+        Dictionary<String, String> defaults = new Hashtable<String, String>();
+        defaults.put(Constants.SERVICE_PID, CONFIG_SERVICE_PID);        
+        return defaults;
+    }
+    
+    public void updated(Dictionary props) throws ConfigurationException {
+        if (props != null 
+            && CONFIG_SERVICE_PID.equals(props.get(Constants.SERVICE_PID))) {
+            pHook.updateProperties(props);
+            lHook.updateProperties(props);
+        }
+    }
+
+    public void serviceChanged(ServiceEvent event) {
+        
+        final ServiceReference sref = event.getServiceReference();
+        
+        if (event.getType() == ServiceEvent.REGISTERED) {
+            
+            execService.execute(new Runnable(){
+                public void run() {
+                    pHook.publishEndpoint(sref);
+                }
+            });
+            
+        } else if (event.getType() == ServiceEvent.UNREGISTERING) {
+            // this should be timely enough
+            pHook.removeEndpoint(sref);
+        }  
+        
+    }
+
+}

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java (added)
+++ cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java Mon Sep  1 08:08:01 2008
@@ -0,0 +1,39 @@
+/** 
+  * Licensed to the Apache Software Foundation (ASF) under one 
+  * or more contributor license agreements. See the NOTICE file 
+  * distributed with this work for additional information 
+  * regarding copyright ownership. The ASF licenses this file 
+  * to you 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. 
+  */
+package org.apache.cxf.dosgi.dsw;
+
+public final class ClassUtils {
+
+    private ClassUtils() {
+        
+    }
+    
+    public static Class<?> getInterfaceClass(Object service, String interfaceName) {
+        for (Class iClass : service.getClass().getInterfaces()) {
+            if (iClass.getName().equals(interfaceName)) {
+                return iClass;
+            }
+        }
+        if (service.getClass().getName().equals(interfaceName)) {
+            return service.getClass();
+        }
+        return null;
+    }
+    
+}

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java (added)
+++ cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java Mon Sep  1 08:08:01 2008
@@ -0,0 +1,56 @@
+/** 
+  * Licensed to the Apache Software Foundation (ASF) under one 
+  * or more contributor license agreements. See the NOTICE file 
+  * distributed with this work for additional information 
+  * regarding copyright ownership. The ASF licenses this file 
+  * to you 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. 
+  */
+package org.apache.cxf.dosgi.dsw;
+
+public class Constants {
+    
+    public static final String REMOTE_PROPERTY_PREFIX = "org.osgi.remote";
+    
+    public static final String PUBLISH_PROPERTY = REMOTE_PROPERTY_PREFIX + ".publish";
+    public static final String INTENTS_PROPERTY = REMOTE_PROPERTY_PREFIX + ".intents";
+    public static final String CONFIG_TYPE_PROPERTY = REMOTE_PROPERTY_PREFIX + ".configuration.type";
+    
+    // TODO : these config type properties should better be enums ? 
+    
+    // SCA
+    public static final String SCA_CONFIG_TYPE = "sca";
+    public static final String SCA_REMOTE_BINDINGS = REMOTE_PROPERTY_PREFIX + ".bindings";
+    public static final String SCA_REMOTE_POLICIES = REMOTE_PROPERTY_PREFIX + ".policies";
+    
+    // WSDL
+    public static final String WSDL_CONFIG_TYPE = "wsdl";
+    public static final String WSDL_ADDRESS = REMOTE_PROPERTY_PREFIX + ".wsdl";
+    public static final String SERVICE_NAMESPACE = REMOTE_PROPERTY_PREFIX + ".service.ns";
+    
+    // POJO
+    public static final String POJO_CONFIG_TYPE = "pojo";
+    public static final String POJO_ADDRESS_PROPERTY = REMOTE_PROPERTY_PREFIX + ".address";
+    
+    // Common Configuration Properties
+    public static final String CHECK_BUNDLE = "check.bundle";
+    public static final String DEFAULT_PORT_CONFIG = "default.port";
+    public static final String DEFAULT_HOST_CONFIG = "default.host";
+    public static final String DEFAULT_PORT_VALUE = "9000";
+    public static final String DEFAULT_HOST_VALUE = "localhost";
+    public final static String USE_MASTER_MAP = "use.master.map";
+    
+    // DSW Identification
+    public static final String DSW_CLIENT_ID = "org.osgi.remote.dsw.client";
+    public static final String DSW_SERVER_ID = "org.osgi.remote.dsw.server";
+}

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiService.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiService.java?rev=690991&view=auto
==============================================================================
--- cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiService.java (added)
+++ cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiService.java Mon Sep  1 08:08:01 2008
@@ -0,0 +1,40 @@
+/** 
+  * Licensed to the Apache Software Foundation (ASF) under one 
+  * or more contributor license agreements. See the NOTICE file 
+  * distributed with this work for additional information 
+  * regarding copyright ownership. The ASF licenses this file 
+  * to you 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. 
+  */
+package org.apache.cxf.dosgi.dsw;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+public class OsgiService<T> {
+    private ServiceReference sr;
+    private T serviceObject;
+    
+    public OsgiService(ServiceReference sref, T service) {
+        sr = sref;
+        serviceObject = service;
+    }
+    
+    public T getService() {
+        return serviceObject;
+    }
+    
+    public void ungetService(BundleContext bc) {
+        bc.ungetService(sr);
+    }
+}

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/dosgi/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date