You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by cs...@apache.org on 2012/10/23 14:23:03 UTC
svn commit: r1401268 - in /cxf/dosgi/trunk: dsw/cxf-dsw/
dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/
dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/
dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/
dsw/cxf-dsw/src/main/java/...
Author: cschneider
Date: Tue Oct 23 12:23:01 2012
New Revision: 1401268
URL: http://svn.apache.org/viewvc?rev=1401268&view=rev
Log:
DOSGI-130 Switch to interfaces for some collections, remove dependency cycles
Added:
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
- copied, changed from r1400871, cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/IntentUtils.java (with props)
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/ClassUtils.java
- copied, changed from r1400871, cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/OsgiUtils.java
- copied, changed from r1400871, cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiUtils.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/Utils.java
- copied, changed from r1400871, cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/Utils.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/ClassUtilsTest.java
- copied, changed from r1400064, cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/ClassUtilsTest.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/OsgiUtilsTest.java
- copied, changed from r1400064, cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/OsgiUtilsTest.java
Removed:
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiUtils.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/Utils.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/ClassUtilsTest.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/OsgiUtilsTest.java
Modified:
cxf/dosgi/trunk/dsw/cxf-dsw/pom.xml
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ConfigTypeHandlerFactory.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSPojoConfigurationTypeHandler.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSUtils.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminInstance.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceadminFactory.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ClientServiceFactoryTest.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandlerTest.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCoreTest.java
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/UtilsTest.java
cxf/dosgi/trunk/felix/ (props changed)
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/pom.xml
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/pom.xml?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/pom.xml (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/pom.xml Tue Oct 23 12:23:01 2012
@@ -19,11 +19,9 @@
-->
<modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.cxf.dosgi</groupId>
<artifactId>cxf-dosgi-ri-dsw-cxf</artifactId>
<packaging>bundle</packaging>
<name>Distributed OSGi Distribution Software Bundle</name>
- <version>1.4-SNAPSHOT</version>
<parent>
<groupId>org.apache.cxf.dosgi</groupId>
Copied: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java (from r1400871, cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java)
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java?p2=cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java&p1=cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java&r1=1400871&r2=1401268&rev=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java Tue Oct 23 12:23:01 2012
@@ -28,6 +28,7 @@ import org.apache.cxf.common.logging.Log
import org.apache.cxf.dosgi.dsw.decorator.ServiceDecorator;
import org.apache.cxf.dosgi.dsw.decorator.ServiceDecoratorImpl;
import org.apache.cxf.dosgi.dsw.qos.IntentMap;
+import org.apache.cxf.dosgi.dsw.qos.IntentUtils;
import org.apache.cxf.dosgi.dsw.service.RemoteServiceadminFactory;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
@@ -65,7 +66,8 @@ public class Activator implements Manage
}
private RemoteServiceadminFactory registerRemoteServiceAdminService() {
- RemoteServiceadminFactory rsaf = new RemoteServiceadminFactory(bc);
+ IntentMap intentMap = IntentUtils.getIntentMap(bc);
+ RemoteServiceadminFactory rsaf = new RemoteServiceadminFactory(bc, intentMap);
Hashtable<String, Object> props = new Hashtable<String, Object>();
// TODO .... RemoteAdminService.XXX
@@ -73,8 +75,8 @@ public class Activator implements Manage
// props.put(DistributionProvider.PRODUCT_VERSION, getHeader("Bundle-Version"));
// props.put(DistributionProvider.VENDOR_NAME, getHeader("Bundle-Vendor"));
- String[] supportedIntents = getIntentMap().getIntents().keySet().toArray(new String[] {});
- String siString = OsgiUtils.formatIntents(supportedIntents);
+ String[] supportedIntents = intentMap.getIntents().keySet().toArray(new String[] {});
+ String siString = IntentUtils.formatIntents(supportedIntents);
props.put("remote.intents.supported", siString);
// // TODO make this a little smarter
@@ -91,10 +93,6 @@ public class Activator implements Manage
return rsaf;
}
- IntentMap getIntentMap() {
- return OsgiUtils.getIntentMap(bc);
- }
-
public void stop() {
LOG.fine("RemoteServiceAdmin Implementation is shutting down now");
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java Tue Oct 23 12:23:01 2012
@@ -32,8 +32,8 @@ import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
-import org.apache.cxf.dosgi.dsw.service.Utils;
+import org.apache.cxf.dosgi.dsw.qos.IntentUtils;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.osgi.framework.BundleContext;
import org.osgi.service.remoteserviceadmin.RemoteConstants;
@@ -134,7 +134,7 @@ public abstract class AbstractConfigurat
}
{
- String[] allIntents = Utils.mergeArrays(intents, Utils.getInetntsImplementedByTheService(sd));
+ String[] allIntents = IntentUtils.mergeArrays(intents, IntentUtils.getInetntsImplementedByTheService(sd));
props.put(RemoteConstants.SERVICE_INTENTS, allIntents);
}
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java Tue Oct 23 12:23:01 2012
@@ -35,10 +35,11 @@ import javax.xml.namespace.QName;
import org.apache.cxf.binding.BindingConfiguration;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.PackageUtils;
-import org.apache.cxf.dosgi.dsw.ClassUtils;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
import org.apache.cxf.dosgi.dsw.qos.IntentMap;
+import org.apache.cxf.dosgi.dsw.qos.IntentUtils;
+import org.apache.cxf.dosgi.dsw.util.ClassUtils;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.apache.cxf.endpoint.AbstractEndpointFactory;
import org.apache.cxf.feature.AbstractFeature;
import org.apache.cxf.frontend.ClientFactoryBean;
@@ -305,7 +306,7 @@ public abstract class AbstractPojoConfig
}
IntentMap getIntentMap(BundleContext callingContext) {
- return OsgiUtils.getIntentMap(callingContext);
+ return IntentUtils.getIntentMap(callingContext);
}
public String getType() {
@@ -314,11 +315,11 @@ public abstract class AbstractPojoConfig
private static String[] getRequestedIntents(Map sd) {
Collection<String> intents = Arrays.asList(
- OsgiUtils.parseIntents(OsgiUtils.getProperty(sd, RemoteConstants.SERVICE_EXPORTED_INTENTS)));
+ IntentUtils.parseIntents(OsgiUtils.getProperty(sd, RemoteConstants.SERVICE_EXPORTED_INTENTS)));
Collection<String> extraIntents = Arrays.asList(
- OsgiUtils.parseIntents(OsgiUtils.getProperty(sd, RemoteConstants.SERVICE_EXPORTED_INTENTS)));
+ IntentUtils.parseIntents(OsgiUtils.getProperty(sd, RemoteConstants.SERVICE_EXPORTED_INTENTS)));
Collection<String> oldIntents = Arrays.asList(
- OsgiUtils.parseIntents(OsgiUtils.getProperty(sd, Constants.EXPORTED_INTENTS_OLD)));
+ IntentUtils.parseIntents(OsgiUtils.getProperty(sd, Constants.EXPORTED_INTENTS_OLD)));
Set<String> allIntents = new HashSet<String>(intents.size() + extraIntents.size() + oldIntents.size());
allIntents.addAll(intents);
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ConfigTypeHandlerFactory.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ConfigTypeHandlerFactory.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ConfigTypeHandlerFactory.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ConfigTypeHandlerFactory.java Tue Oct 23 12:23:01 2012
@@ -25,7 +25,8 @@ import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
+import org.apache.cxf.dosgi.dsw.qos.IntentUtils;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.osgi.framework.BundleContext;
public final class ConfigTypeHandlerFactory {
@@ -79,7 +80,7 @@ public final class ConfigTypeHandlerFact
String intentsProperty = OsgiUtils.getProperty(serviceProperties, Constants.EXPORTED_INTENTS);
boolean hasHttpIntent = false, hasSoapIntent = false;
if (intentsProperty != null) {
- String[] intents = OsgiUtils.parseIntents(intentsProperty);
+ String[] intents = IntentUtils.parseIntents(intentsProperty);
for (int i = 0; i < intents.length; i++) {
if (intents[i].indexOf("SOAP") > -1) {
hasSoapIntent = true;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandler.java Tue Oct 23 12:23:01 2012
@@ -35,8 +35,8 @@ import org.apache.cxf.aegis.databinding.
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.databinding.DataBinding;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
import org.apache.cxf.dosgi.dsw.service.ExportRegistrationImpl;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.frontend.ClientProxyFactoryBean;
import org.apache.cxf.frontend.ServerFactoryBean;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSHttpServiceConfigurationTypeHandler.java Tue Oct 23 12:23:01 2012
@@ -26,8 +26,8 @@ import java.util.logging.Logger;
import org.apache.cxf.Bus;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
import org.apache.cxf.dosgi.dsw.service.ExportRegistrationImpl;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSPojoConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSPojoConfigurationTypeHandler.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSPojoConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSPojoConfigurationTypeHandler.java Tue Oct 23 12:23:01 2012
@@ -28,8 +28,8 @@ import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
import org.apache.cxf.dosgi.dsw.service.ExportRegistrationImpl;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.apache.cxf.jaxrs.client.Client;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSUtils.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSUtils.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSUtils.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/JaxRSUtils.java Tue Oct 23 12:23:01 2012
@@ -28,8 +28,8 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.dosgi.dsw.ClassUtils;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
+import org.apache.cxf.dosgi.dsw.util.ClassUtils;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.apache.cxf.jaxrs.model.UserResource;
import org.apache.cxf.jaxrs.provider.AegisElementProvider;
import org.apache.cxf.jaxrs.utils.ResourceUtils;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java Tue Oct 23 12:23:01 2012
@@ -26,8 +26,8 @@ import org.apache.cxf.aegis.databinding.
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.databinding.DataBinding;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
import org.apache.cxf.dosgi.dsw.service.ExportRegistrationImpl;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.frontend.ClientProxyFactoryBean;
import org.apache.cxf.frontend.ServerFactoryBean;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/WsdlConfigurationTypeHandler.java Tue Oct 23 12:23:01 2012
@@ -31,8 +31,8 @@ import org.apache.cxf.common.logging.Log
import org.apache.cxf.common.util.PackageUtils;
import org.apache.cxf.databinding.DataBinding;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
import org.apache.cxf.dosgi.dsw.service.ExportRegistrationImpl;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.jaxb.JAXBDataBinding;
Added: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/IntentUtils.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/IntentUtils.java?rev=1401268&view=auto
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/IntentUtils.java (added)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/IntentUtils.java Tue Oct 23 12:23:01 2012
@@ -0,0 +1,130 @@
+package org.apache.cxf.dosgi.dsw.qos;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
+import org.apache.cxf.dosgi.dsw.util.Utils;
+import org.apache.cxf.ws.policy.spring.PolicyNamespaceHandler;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.remoteserviceadmin.RemoteConstants;
+import org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext;
+
+public class IntentUtils {
+ private static final String[] INTENT_MAP = {
+ "/OSGI-INF/cxf/intents/intent-map.xml"
+ };
+
+ public static String formatIntents(String[] intents) {
+ StringBuilder sb = new StringBuilder();
+ boolean first = true;
+ for (String intent : intents) {
+ if (first) {
+ first = false;
+ } else {
+ sb.append(' ');
+ }
+ sb.append(intent);
+ }
+ return sb.toString();
+ }
+
+ public static String[] parseIntents(String intentsSequence) {
+ return intentsSequence == null ? new String[] {} : intentsSequence.split(" ");
+ }
+
+ public static IntentMap getIntentMap(BundleContext bundleContext) {
+ IntentMap im = IntentUtils.readIntentMap(bundleContext);
+ if (im == null) {
+ // Couldn't read an intent map
+ OsgiUtils.LOG.log(Level.FINE, "Using default intent map");
+ im = new IntentMap();
+ im.setIntents(new HashMap<String, Object>());
+ }
+ return im;
+ }
+
+ public static IntentMap readIntentMap(BundleContext bundleContext) {
+ List<String> springIntentLocations = new ArrayList<String>();
+ for (String mapFile : INTENT_MAP) {
+ if (bundleContext.getBundle().getResource(mapFile) == null) {
+ OsgiUtils.LOG.info("Could not find intent map file " + mapFile);
+ return null;
+ }
+ springIntentLocations.add("classpath:" + mapFile);
+ }
+
+ try {
+
+ // switch to cxf bundle classloader for spring
+ ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(PolicyNamespaceHandler.class.getClassLoader());
+
+ OsgiUtils.LOG.fine("Loading Intent map from "+springIntentLocations);
+ OsgiBundleXmlApplicationContext ctx = new OsgiBundleXmlApplicationContext(springIntentLocations
+ .toArray(new String[] {}));
+ ctx.setPublishContextAsService(false);
+ ctx.setBundleContext(bundleContext);
+ ctx.refresh();
+ OsgiUtils.LOG.fine("application context: " + ctx);
+ IntentMap im = (IntentMap)ctx.getBean("intentMap");
+ OsgiUtils.LOG.fine("retrieved intent map: " + im);
+
+ Thread.currentThread().setContextClassLoader(oldClassLoader);
+
+ return im;
+ } catch (Throwable t) {
+ OsgiUtils.LOG.log(Level.WARNING, "Intent map load failed: ", t);
+ return null;
+ }
+ }
+
+ @SuppressWarnings("rawtypes")
+ public static String[] getAllRequiredIntents(Map serviceProperties){
+ // Get the intents that need to be supported by the RSA
+ String[] requiredIntents = Utils.normalizeStringPlus(serviceProperties.get(RemoteConstants.SERVICE_EXPORTED_INTENTS));
+ if(requiredIntents==null){
+ requiredIntents = new String[0];
+ }
+
+ { // merge with extra intents;
+ String[] requiredExtraIntents = Utils.normalizeStringPlus(serviceProperties.get(RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA));
+ if(requiredExtraIntents!= null && requiredExtraIntents.length>0){
+
+ requiredIntents = IntentUtils.mergeArrays(requiredIntents, requiredExtraIntents);
+ }
+ }
+
+ return requiredIntents;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public static String[] getInetntsImplementedByTheService(Map serviceProperties){
+ // Get the Intents that are implemented by the service
+ String[] serviceIntents = Utils.normalizeStringPlus(serviceProperties.get(RemoteConstants.SERVICE_INTENTS));
+
+ return serviceIntents;
+ }
+
+ public static String[] mergeArrays(String[] a1,String[] a2){
+ if(a1==null) return a2;
+ if(a2==null) return a1;
+
+ List<String> list = new ArrayList<String>(a1.length+a2.length);
+
+ for (String s : a1) {
+ list.add(s);
+ }
+
+ for (String s : a2) {
+ if(!list.contains(s))
+ list.add(s);
+ }
+
+ return list.toArray(new String[list.size()]);
+ }
+
+}
Propchange: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/qos/IntentUtils.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java Tue Oct 23 12:23:01 2012
@@ -67,7 +67,7 @@ public class EventAdminHelper {
public void notifyEventAdmin(RemoteServiceAdminEvent rsae) {
- String topic = Utils.remoteServiceAdminEventTypeToString(rsae.getType());
+ String topic = remoteServiceAdminEventTypeToString(rsae.getType());
Properties props = new Properties();
setIfNotNull(props, "cause", rsae.getException());
@@ -131,4 +131,27 @@ public class EventAdminHelper {
return eas;
}
+ static String remoteServiceAdminEventTypeToString(int type){
+ switch (type) {
+ case RemoteServiceAdminEvent.EXPORT_ERROR:
+ return "EXPORT_ERROR";
+ case RemoteServiceAdminEvent.EXPORT_REGISTRATION:
+ return "EXPORT_REGISTRATION";
+ case RemoteServiceAdminEvent.EXPORT_UNREGISTRATION:
+ return "EXPORT_UNREGISTRATION";
+ case RemoteServiceAdminEvent.EXPORT_WARNING:
+ return "EXPORT_WARNING";
+ case RemoteServiceAdminEvent.IMPORT_ERROR:
+ return "IMPORT_ERROR";
+ case RemoteServiceAdminEvent.IMPORT_REGISTRATION:
+ return "IMPORT_REGISTRATION";
+ case RemoteServiceAdminEvent.IMPORT_UNREGISTRATION:
+ return "IMPORT_UNREGISTRATION";
+ case RemoteServiceAdminEvent.IMPORT_WARNING:
+ return "IMPORT_WARNING";
+ default:
+ return "UNKNOWN_EVENT";
+ }
+ }
+
}
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java Tue Oct 23 12:23:01 2012
@@ -33,13 +33,15 @@ import java.util.Properties;
import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.dosgi.dsw.ClassUtils;
import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
import org.apache.cxf.dosgi.dsw.handlers.ClientServiceFactory;
import org.apache.cxf.dosgi.dsw.handlers.ConfigTypeHandlerFactory;
import org.apache.cxf.dosgi.dsw.handlers.ConfigurationTypeHandler;
import org.apache.cxf.dosgi.dsw.qos.IntentMap;
+import org.apache.cxf.dosgi.dsw.qos.IntentUtils;
+import org.apache.cxf.dosgi.dsw.util.ClassUtils;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
+import org.apache.cxf.dosgi.dsw.util.Utils;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
@@ -60,8 +62,8 @@ public class RemoteServiceAdminCore impl
private final LinkedHashMap<EndpointDescription, Collection<ImportRegistrationImpl>> importedServices = new LinkedHashMap<EndpointDescription, Collection<ImportRegistrationImpl>>();
private BundleContext bctx;
-
private EventProducer eventProducer;
+ private IntentMap intentMap;
private volatile boolean useMasterMap = true;
private volatile String defaultPort;
@@ -79,9 +81,10 @@ public class RemoteServiceAdminCore impl
protected final static String DEFAULT_CONFIGURATION = Constants.WS_CONFIG_TYPE;
- public RemoteServiceAdminCore(BundleContext bc) {
+ public RemoteServiceAdminCore(BundleContext bc, IntentMap intentMap) {
bctx = bc;
eventProducer = new EventProducer(bctx);
+ this.intentMap = intentMap;
}
@SuppressWarnings("rawtypes")
@@ -136,19 +139,17 @@ public class RemoteServiceAdminCore impl
if (additionalProperties != null) {// overlay properties with the additionalProperies
- Utils.overlayProperties(serviceProperties,additionalProperties);
+ OsgiUtils.overlayProperties(serviceProperties,additionalProperties);
}
// Get the intents that need to be supported by the RSA
- String[] requiredIntents = Utils.getAllRequiredIntents(serviceProperties);
+ String[] requiredIntents = IntentUtils.getAllRequiredIntents(serviceProperties);
{
- IntentMap im = OsgiUtils.getIntentMap(bctx);
-
List<String> unsupportedIntents = new ArrayList<String>();
for (String ri : requiredIntents) {
- if (!im.getIntents().containsKey(ri)) {
+ if (!intentMap.getIntents().containsKey(ri)) {
unsupportedIntents.add(ri);
}
}
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminInstance.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminInstance.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminInstance.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminInstance.java Tue Oct 23 12:23:01 2012
@@ -25,7 +25,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.cxf.dosgi.dsw.OsgiUtils;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.service.remoteserviceadmin.EndpointDescription;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceadminFactory.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceadminFactory.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceadminFactory.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceadminFactory.java Tue Oct 23 12:23:01 2012
@@ -24,6 +24,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.dosgi.dsw.qos.IntentMap;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceFactory;
@@ -36,8 +37,8 @@ public class RemoteServiceadminFactory i
private RemoteServiceAdminCore rsaCore;
- public RemoteServiceadminFactory(BundleContext bc) {
- rsaCore = new RemoteServiceAdminCore(bc);
+ public RemoteServiceadminFactory(BundleContext bc, IntentMap intentMap) {
+ this.rsaCore = new RemoteServiceAdminCore(bc, intentMap);
}
public Object getService(Bundle b, ServiceRegistration sr) {
Copied: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/ClassUtils.java (from r1400871, cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java)
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/ClassUtils.java?p2=cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/ClassUtils.java&p1=cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java&r1=1400871&r2=1401268&rev=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/ClassUtils.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/ClassUtils.java Tue Oct 23 12:23:01 2012
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.dosgi.dsw;
+package org.apache.cxf.dosgi.dsw.util;
import java.util.ArrayList;
import java.util.Arrays;
Copied: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/OsgiUtils.java (from r1400871, cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiUtils.java)
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/OsgiUtils.java?p2=cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/OsgiUtils.java&p1=cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiUtils.java&r1=1400871&r2=1401268&rev=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/OsgiUtils.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/OsgiUtils.java Tue Oct 23 12:23:01 2012
@@ -16,188 +16,36 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.dosgi.dsw;
+package org.apache.cxf.dosgi.dsw.util;
-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.Map.Entry;
+import java.util.Properties;
+import java.util.Set;
import java.util.UUID;
-import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.dosgi.dsw.qos.IntentMap;
-import org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore;
-import org.apache.cxf.ws.policy.spring.PolicyNamespaceHandler;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.Namespace;
-import org.jdom.input.SAXBuilder;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.service.packageadmin.ExportedPackage;
import org.osgi.service.packageadmin.PackageAdmin;
import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext;
public final class OsgiUtils {
- private static final Logger LOG = LogUtils.getL7dLogger(OsgiUtils.class);
-
- private static final String REMOTE_SERVICES_HEADER_NAME = "Remote-Service";
- private static final String REMOTE_SERVICES_DIRECTORY = "OSGI-INF/remote-service";
- private static final String REMOTE_SERVICES_NS = "http://www.osgi.org/xmlns/sd/v1.0.0";
-
- static final String[] INTENT_MAP = {
- "/OSGI-INF/cxf/intents/intent-map.xml"
- };
-
- private static final String SERVICE_DESCRIPTION_ELEMENT = "service-description";
+ public static final Logger LOG = LogUtils.getL7dLogger(OsgiUtils.class);
private OsgiUtils() {
}
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public static List<Element> getAllDescriptionElements(Bundle b) {
- Object directory = null;
-
- Dictionary headers = b.getHeaders();
- if (headers != null) {
- directory = headers.get(REMOTE_SERVICES_HEADER_NAME);
- }
-
- if (directory == null) {
- directory = REMOTE_SERVICES_DIRECTORY;
- }
-
- Enumeration urls = b.findEntries(directory.toString(), "*.xml", false);
- if (urls == null) {
- return Collections.emptyList();
- }
-
- List<Element> elements = new ArrayList<Element>();
- while (urls.hasMoreElements()) {
- URL resourceURL = (URL)urls.nextElement();
- try {
- Document d = new SAXBuilder().build(resourceURL.openStream());
- Namespace ns = Namespace.getNamespace(REMOTE_SERVICES_NS);
- elements.addAll(d.getRootElement().getChildren(SERVICE_DESCRIPTION_ELEMENT, ns));
- } catch (Exception ex) {
- LOG.log(Level.WARNING, "Problem parsing: " + resourceURL, ex);
- }
- }
- return elements;
- }
-
- public static Filter createFilter(BundleContext bc, String filterValue) {
-
- if (filterValue == null) {
- return null;
- }
-
- try {
- return bc.createFilter(filterValue);
- } catch (InvalidSyntaxException ex) {
- LOG.warning("Invalid filter expression " + filterValue);
- } catch (Exception ex) {
- LOG.warning("Problem creating a Filter from " + filterValue);
- }
- return null;
- }
-
- public static String[] parseIntents(String intentsSequence) {
- return intentsSequence == null ? new String[] {} : intentsSequence.split(" ");
- }
-
- public static String formatIntents(String[] intents) {
- StringBuilder sb = new StringBuilder();
- boolean first = true;
- for (String intent : intents) {
- if (first) {
- first = false;
- } else {
- sb.append(' ');
- }
- sb.append(intent);
- }
- return sb.toString();
- }
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public static <T> OsgiService<T> getOsgiService(BundleContext bc, Class<T> serviceClass) {
- try {
- ServiceReference sr = bc.getServiceReference(serviceClass.getName());
- if (sr != null) {
- Object o = bc.getService(sr);
- if (o != null && serviceClass.isAssignableFrom(o.getClass())) {
- return new OsgiService(sr, o);
- }
- }
- } catch (Exception ex) {
- if (LOG.isLoggable(Level.FINE)) {
- LOG.fine("Problem retrieving an OSGI service " + serviceClass.getName() + ", exception : "
- + ex.getMessage());
- }
- }
- return null;
- }
-
- public static IntentMap getIntentMap(BundleContext bundleContext) {
- IntentMap im = readIntentMap(bundleContext);
- if (im == null) {
- // Couldn't read an intent map
- LOG.log(Level.FINE, "Using default intent map");
- im = new IntentMap();
- im.setIntents(new HashMap<String, Object>());
- }
- return im;
- }
-
- static IntentMap readIntentMap(BundleContext bundleContext) {
- List<String> springIntentLocations = new ArrayList<String>();
- for (String mapFile : INTENT_MAP) {
- if (bundleContext.getBundle().getResource(mapFile) == null) {
- LOG.info("Could not find intent map file " + mapFile);
- return null;
- }
- springIntentLocations.add("classpath:" + mapFile);
- }
-
- try {
-
- // switch to cxf bundle classloader for spring
- Thread.currentThread().setContextClassLoader(PolicyNamespaceHandler.class.getClassLoader());
-
- LOG.fine("Loading Intent map from "+springIntentLocations);
- OsgiBundleXmlApplicationContext ctx = new OsgiBundleXmlApplicationContext(springIntentLocations
- .toArray(new String[] {}));
- ctx.setPublishContextAsService(false);
- ctx.setBundleContext(bundleContext);
- ctx.refresh();
- LOG.fine("application context: " + ctx);
- IntentMap im = (IntentMap)ctx.getBean("intentMap");
- LOG.fine("retrieved intent map: " + im);
- // switch back
- Thread.currentThread().setContextClassLoader(RemoteServiceAdminCore.class.getClassLoader());
-
- return im;
- } catch (Throwable t) {
- LOG.log(Level.WARNING, "Intent map load failed: ", t);
- return null;
- }
- }
-
// TODO : move these property helpers into PropertyUtils ?
@SuppressWarnings("rawtypes")
@@ -303,5 +151,43 @@ public final class OsgiUtils {
return uuid;
}
}
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ public static void overlayProperties(Properties serviceProperties, Map additionalProperties) {
+ Enumeration<Object> keys = serviceProperties.keys();
+ // Maps lower case key to original key
+ HashMap<String,String> keysLowerCase = new HashMap<String, String>();
+ while(keys.hasMoreElements()){
+ Object o = keys.nextElement();
+ if (o instanceof String) {
+ String ks = (String)o;
+ keysLowerCase.put(ks.toLowerCase(), ks);
+ }
+ }
+
+ Set<Map.Entry> adProps = additionalProperties.entrySet();
+ for (Map.Entry e : adProps) {
+ // objectClass and service.id must not be overwritten
+ Object keyObj = e.getKey();
+ if (keyObj instanceof String && keyObj != null) {
+ String key = ((String)keyObj).toLowerCase();
+ if (org.osgi.framework.Constants.SERVICE_ID.toLowerCase().equals(key)
+ || org.osgi.framework.Constants.OBJECTCLASS.toLowerCase().equals(key)) {
+ LOG.info("exportService called with additional properties map that contained illegal key: "
+ + key + " The key is ignored");
+ continue;
+ }else if(keysLowerCase.containsKey(key)){
+ String origKey = keysLowerCase.get(key);
+ serviceProperties.put(origKey, e.getValue());
+ LOG.fine("Overwriting property [" + origKey + "] with value [" + e.getValue() + "]");
+ }else{
+ serviceProperties.put(e.getKey(), e.getValue());
+ keysLowerCase.put(e.getKey().toString().toLowerCase(), e.getKey().toString());
+ }
+ }
+
+
+ }
+ }
}
Copied: cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/Utils.java (from r1400871, cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/Utils.java)
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/Utils.java?p2=cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/Utils.java&p1=cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/Utils.java&r1=1400871&r2=1401268&rev=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/Utils.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/util/Utils.java Tue Oct 23 12:23:01 2012
@@ -16,21 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.dosgi.dsw.service;
+package org.apache.cxf.dosgi.dsw.util;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-import org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent;
public class Utils {
@@ -71,118 +64,6 @@ public class Utils {
return null;
}
-
-
-
-
- public static String remoteServiceAdminEventTypeToString(int type){
- switch (type) {
- case RemoteServiceAdminEvent.EXPORT_ERROR:
- return "EXPORT_ERROR";
- case RemoteServiceAdminEvent.EXPORT_REGISTRATION:
- return "EXPORT_REGISTRATION";
- case RemoteServiceAdminEvent.EXPORT_UNREGISTRATION:
- return "EXPORT_UNREGISTRATION";
- case RemoteServiceAdminEvent.EXPORT_WARNING:
- return "EXPORT_WARNING";
- case RemoteServiceAdminEvent.IMPORT_ERROR:
- return "IMPORT_ERROR";
- case RemoteServiceAdminEvent.IMPORT_REGISTRATION:
- return "IMPORT_REGISTRATION";
- case RemoteServiceAdminEvent.IMPORT_UNREGISTRATION:
- return "IMPORT_UNREGISTRATION";
- case RemoteServiceAdminEvent.IMPORT_WARNING:
- return "IMPORT_WARNING";
- default:
- return "UNKNOWN_EVENT";
- }
- }
-
-
- @SuppressWarnings("rawtypes")
- public static String[] getAllRequiredIntents(Map serviceProperties){
- // Get the intents that need to be supported by the RSA
- String[] requiredIntents = Utils.normalizeStringPlus(serviceProperties.get(RemoteConstants.SERVICE_EXPORTED_INTENTS));
- if(requiredIntents==null){
- requiredIntents = new String[0];
- }
-
- { // merge with extra intents;
- String[] requiredExtraIntents = Utils.normalizeStringPlus(serviceProperties.get(RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA));
- if(requiredExtraIntents!= null && requiredExtraIntents.length>0){
-
- requiredIntents = mergeArrays(requiredIntents, requiredExtraIntents);
- }
- }
-
- return requiredIntents;
- }
-
- @SuppressWarnings("rawtypes")
- public static String[] getInetntsImplementedByTheService(Map serviceProperties){
- // Get the Intents that are implemented by the service
- String[] serviceIntents = Utils.normalizeStringPlus(serviceProperties.get(RemoteConstants.SERVICE_INTENTS));
-
- return serviceIntents;
- }
-
-
- public static String[] mergeArrays(String[] a1,String[] a2){
- if(a1==null) return a2;
- if(a2==null) return a1;
-
- List<String> list = new ArrayList<String>(a1.length+a2.length);
-
- for (String s : a1) {
- list.add(s);
- }
-
- for (String s : a2) {
- if(!list.contains(s))
- list.add(s);
- }
-
- return list.toArray(new String[list.size()]);
- }
-
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public static void overlayProperties(Properties serviceProperties, Map additionalProperties) {
- Enumeration<Object> keys = serviceProperties.keys();
- // Maps lower case key to original key
- HashMap<String,String> keysLowerCase = new HashMap<String, String>();
- while(keys.hasMoreElements()){
- Object o = keys.nextElement();
- if (o instanceof String) {
- String ks = (String)o;
- keysLowerCase.put(ks.toLowerCase(), ks);
- }
- }
-
- Set<Map.Entry> adProps = additionalProperties.entrySet();
- for (Map.Entry e : adProps) {
- // objectClass and service.id must not be overwritten
- Object keyObj = e.getKey();
- if (keyObj instanceof String && keyObj != null) {
- String key = ((String)keyObj).toLowerCase();
- if (org.osgi.framework.Constants.SERVICE_ID.toLowerCase().equals(key)
- || org.osgi.framework.Constants.OBJECTCLASS.toLowerCase().equals(key)) {
- LOG.info("exportService called with additional properties map that contained illegal key: "
- + key + " The key is ignored");
- continue;
- }else if(keysLowerCase.containsKey(key)){
- String origKey = keysLowerCase.get(key);
- serviceProperties.put(origKey, e.getValue());
- LOG.fine("Overwriting property [" + origKey + "] with value [" + e.getValue() + "]");
- }else{
- serviceProperties.put(e.getKey(), e.getValue());
- keysLowerCase.put(e.getKey().toString().toLowerCase(), e.getKey().toString());
- }
- }
-
-
- }
- }
}
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ClientServiceFactoryTest.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ClientServiceFactoryTest.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ClientServiceFactoryTest.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ClientServiceFactoryTest.java Tue Oct 23 12:23:01 2012
@@ -23,7 +23,6 @@ import java.util.Map;
import junit.framework.TestCase;
-import org.apache.cxf.dosgi.dsw.hooks.TestService;
import org.apache.cxf.dosgi.dsw.service.ImportRegistrationImpl;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandlerTest.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandlerTest.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandlerTest.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/HttpServiceConfigurationTypeHandlerTest.java Tue Oct 23 12:23:01 2012
@@ -26,6 +26,7 @@ import java.util.Map;
import junit.framework.TestCase;
import org.apache.cxf.dosgi.dsw.Constants;
+import org.apache.cxf.dosgi.dsw.qos.IntentMap;
import org.apache.cxf.dosgi.dsw.service.ExportRegistrationImpl;
import org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore;
import org.apache.cxf.endpoint.AbstractEndpointFactory;
@@ -143,7 +144,8 @@ public class HttpServiceConfigurationTyp
final ServerFactoryBean sfb = createMockServerFactoryBean();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ IntentMap intentMap = new IntentMap();
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, intentMap );
Map<String, Object> handlerProps = new HashMap<String, Object>();
HttpServiceConfigurationTypeHandler h =
new HttpServiceConfigurationTypeHandler(dswContext, handlerProps) {
@@ -216,7 +218,8 @@ public class HttpServiceConfigurationTyp
final ServerFactoryBean sfb = createMockServerFactoryBean();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ IntentMap intentMap = new IntentMap();
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, intentMap);
Map<String, Object> handlerProps = new HashMap<String, Object>();
HttpServiceConfigurationTypeHandler h =
new HttpServiceConfigurationTypeHandler(dswContext, handlerProps) {
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java Tue Oct 23 12:23:01 2012
@@ -367,7 +367,7 @@ public class PojoConfigurationTypeHandle
AbstractEndpointFactory factory = control.createMock(AbstractEndpointFactory.class);
control.replay();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, intentMap);
AbstractPojoConfigurationTypeHandler p = new PojoConfigurationTypeHandler(dswContext, handlerProps) {
@Override
IntentMap getIntentMap(BundleContext callingContext) {
@@ -403,7 +403,7 @@ public class PojoConfigurationTypeHandle
AbstractEndpointFactory factory = control.createMock(AbstractEndpointFactory.class);
control.replay();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, intentMap);
PojoConfigurationTypeHandler p = new PojoConfigurationTypeHandler(dswContext, handlerProps) {
@Override
IntentMap getIntentMap(BundleContext callingContext) {
@@ -439,7 +439,7 @@ public class PojoConfigurationTypeHandle
AbstractEndpointFactory factory = control.createMock(AbstractEndpointFactory.class);
control.replay();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, intentMap);
PojoConfigurationTypeHandler p = new PojoConfigurationTypeHandler(dswContext, handlerProps) {
@Override
IntentMap getIntentMap(BundleContext callingContext) {
@@ -477,7 +477,7 @@ public class PojoConfigurationTypeHandle
AbstractEndpointFactory factory = control.createMock(AbstractEndpointFactory.class);
control.replay();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, intentMap);
PojoConfigurationTypeHandler p = new PojoConfigurationTypeHandler(dswContext, handlerProps) {
@Override
IntentMap getIntentMap(BundleContext callingContext) {
@@ -521,7 +521,7 @@ public class PojoConfigurationTypeHandle
AbstractEndpointFactory factory = control.createMock(AbstractEndpointFactory.class);
control.replay();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, intentMap);
PojoConfigurationTypeHandler p = new PojoConfigurationTypeHandler(dswContext, handlerProps) {
@Override
IntentMap getIntentMap(BundleContext callingContext) {
@@ -560,7 +560,7 @@ public class PojoConfigurationTypeHandle
AbstractEndpointFactory factory = control.createMock(AbstractEndpointFactory.class);
control.replay();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, intentMap);
PojoConfigurationTypeHandler p = new PojoConfigurationTypeHandler(dswContext, handlerProps) {
@Override
IntentMap getIntentMap(BundleContext callingContext) {
@@ -634,7 +634,7 @@ public class PojoConfigurationTypeHandle
AbstractEndpointFactory factory = control.createMock(AbstractEndpointFactory.class);
control.replay();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, masterIntentMap);
Map<String, Object> props = new HashMap<String, Object>();
props.put("osgi.remote.requires.intents", requestedIntents);
@@ -683,7 +683,7 @@ public class PojoConfigurationTypeHandle
AbstractEndpointFactory factory = control.createMock(AbstractEndpointFactory.class);
control.replay();
- RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext);
+ RemoteServiceAdminCore dp = new RemoteServiceAdminCore(dswContext, masterIntentMap);
Map<String, Object> props = new HashMap<String, Object>();
props.put("osgi.remote.requires.intents", "B A");
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCoreTest.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCoreTest.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCoreTest.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCoreTest.java Tue Oct 23 12:23:01 2012
@@ -25,6 +25,7 @@ import java.util.Map;
import java.util.Properties;
import org.apache.cxf.dosgi.dsw.handlers.ConfigurationTypeHandler;
+import org.apache.cxf.dosgi.dsw.qos.IntentMap;
import org.easymock.IMocksControl;
import org.easymock.classextension.EasyMock;
import org.osgi.framework.Bundle;
@@ -59,7 +60,8 @@ public class RemoteServiceAdminCoreTest
ServiceReference sref = c.createMock(ServiceReference.class);
EasyMock.expect(sref.getBundle()).andReturn(b).anyTimes();
- RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc);
+ IntentMap IntentMap = new IntentMap();
+ RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc, IntentMap );
c.replay();
@@ -90,7 +92,8 @@ public class RemoteServiceAdminCoreTest
EasyMock.expect(bc.getBundle()).andReturn(b).anyTimes();
EasyMock.expect(b.getSymbolicName()).andReturn("BundleName").anyTimes();
- RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc) {
+ IntentMap intentMap = new IntentMap();
+ RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc, intentMap ) {
@Override
protected void proxifyMatchingInterface(String interfaceName, ImportRegistrationImpl imReg,
ConfigurationTypeHandler handler,
@@ -155,7 +158,8 @@ public class RemoteServiceAdminCoreTest
c.replay();
- RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc);
+ IntentMap IntentMap = new IntentMap();
+ RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc, IntentMap );
Properties serviceProperties = new Properties();
@@ -178,7 +182,8 @@ public class RemoteServiceAdminCoreTest
c.replay();
- RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc);
+ IntentMap intentMap = new IntentMap();
+ RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(bc, intentMap );
Properties serviceProperties = new Properties();
Modified: cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/UtilsTest.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/UtilsTest.java?rev=1401268&r1=1401267&r2=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/UtilsTest.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/service/UtilsTest.java Tue Oct 23 12:23:01 2012
@@ -26,6 +26,8 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Properties;
+import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
+import org.apache.cxf.dosgi.dsw.util.Utils;
import org.junit.Test;
import org.osgi.framework.Constants;
@@ -78,7 +80,7 @@ public class UtilsTest {
{ // nothing should change here
Properties overload = new Properties();
- Utils.overlayProperties(copy,overload);
+ OsgiUtils.overlayProperties(copy,overload);
assertEquals(original.size(), copy.size());
for (Object key : Collections.list(original.keys())) {
@@ -93,7 +95,7 @@ public class UtilsTest {
Properties overload = new Properties();
overload.put("new", "prop");
- Utils.overlayProperties(copy,overload);
+ OsgiUtils.overlayProperties(copy,overload);
assertEquals(original.size()+1, copy.size());
for (Object key : Collections.list(original.keys())) {
@@ -111,7 +113,7 @@ public class UtilsTest {
overload.put("new", "prop");
overload.put("NEW", "prop");
- Utils.overlayProperties(copy,overload);
+ OsgiUtils.overlayProperties(copy,overload);
assertEquals(original.size()+1, copy.size());
for (Object key : Collections.list(original.keys())) {
@@ -128,7 +130,7 @@ public class UtilsTest {
Properties overload = new Properties();
overload.put(Constants.OBJECTCLASS, "assd");
overload.put(Constants.SERVICE_ID, "asasdasd");
- Utils.overlayProperties(copy,overload);
+ OsgiUtils.overlayProperties(copy,overload);
assertEquals(original.size(), copy.size());
for (Object key : Collections.list(original.keys())) {
@@ -142,7 +144,7 @@ public class UtilsTest {
{ // overwrite own prop
Properties overload = new Properties();
overload.put("MyProp", "newValue");
- Utils.overlayProperties(copy,overload);
+ OsgiUtils.overlayProperties(copy,overload);
assertEquals(original.size(), copy.size());
for (Object key : Collections.list(original.keys())) {
@@ -158,7 +160,7 @@ public class UtilsTest {
{ // overwrite own prop in different case
Properties overload = new Properties();
overload.put("MYPROP", "newValue");
- Utils.overlayProperties(copy,overload);
+ OsgiUtils.overlayProperties(copy,overload);
assertEquals(original.size(), copy.size());
for (Object key : Collections.list(original.keys())) {
Copied: cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/ClassUtilsTest.java (from r1400064, cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/ClassUtilsTest.java)
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/ClassUtilsTest.java?p2=cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/ClassUtilsTest.java&p1=cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/ClassUtilsTest.java&r1=1400064&r2=1401268&rev=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/ClassUtilsTest.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/ClassUtilsTest.java Tue Oct 23 12:23:01 2012
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.dosgi.dsw;
+package org.apache.cxf.dosgi.dsw.util;
import java.util.ArrayList;
import java.util.Collection;
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import junit.framework.TestCase;
public class ClassUtilsTest extends TestCase {
Copied: cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/OsgiUtilsTest.java (from r1400064, cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/OsgiUtilsTest.java)
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/OsgiUtilsTest.java?p2=cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/OsgiUtilsTest.java&p1=cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/OsgiUtilsTest.java&r1=1400064&r2=1401268&rev=1401268&view=diff
==============================================================================
--- cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/OsgiUtilsTest.java (original)
+++ cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/util/OsgiUtilsTest.java Tue Oct 23 12:23:01 2012
@@ -16,24 +16,20 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.dosgi.dsw;
+package org.apache.cxf.dosgi.dsw.util;
-import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
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 junit.framework.TestCase;
+import org.apache.cxf.dosgi.dsw.qos.IntentUtils;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
-import org.jdom.Element;
-import org.jdom.Namespace;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
@@ -45,193 +41,6 @@ import org.osgi.service.remoteserviceadm
public class OsgiUtilsTest extends TestCase {
-// public void testGetPublishableInterfacesAll() throws Exception {
-// doTestGetPublishableInterfaces("foo,bar,snafu",
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "bar", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesAllStringArray() throws Exception {
-// doTestGetPublishableInterfaces(new String[] {"foo", "bar", "snafu"},
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "bar", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesAllCollection() throws Exception {
-// doTestGetPublishableInterfaces(Arrays.asList("foo", "bar", "snafu"),
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "bar", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesSubset() throws Exception {
-// doTestGetPublishableInterfaces("foo,snafu",
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesSubsetStringArray() throws Exception {
-// doTestGetPublishableInterfaces(new String[] {"foo", "snafu"},
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesSubsetCollection() throws Exception {
-// doTestGetPublishableInterfaces(Arrays.asList("foo", "snafu"),
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesSuperset() throws Exception {
-// doTestGetPublishableInterfaces("foo,bar,snafu",
-// new String[] {"snafu", "bar"},
-// new String[] {"bar", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesSupersetStringArray() throws Exception {
-// doTestGetPublishableInterfaces(new String[] {"foo", "bar", "snafu"},
-// new String[] {"snafu", "bar"},
-// new String[] {"bar", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesSupersetCollection() throws Exception {
-// doTestGetPublishableInterfaces(Arrays.asList("foo", "bar", "snafu"),
-// new String[] {"snafu", "bar"},
-// new String[] {"bar", "snafu"});
-// }
-//
-// public void testGetPublishableInterfacesNonexistant() throws Exception {
-// doTestGetPublishableInterfaces("foo,bar,tofu",
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "bar"});
-// }
-//
-// public void testGetPublishableInterfacesNonexistantStringArray() throws Exception {
-// doTestGetPublishableInterfaces(new String[] {"foo", "bar", "tofu"},
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "bar"});
-// }
-//
-// public void testGetPublishableInterfacesNonexistantCollection() throws Exception {
-// doTestGetPublishableInterfaces(Arrays.asList("foo", "bar", "tofu"),
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"foo", "bar"});
-// }
-//
-// public void testGetPublishableInterfacesWildcarded() throws Exception {
-// doTestGetPublishableInterfaces("*",
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"snafu", "foo", "bar"});
-// }
-//
-// public void testGetPublishableInterfacesWildcardedInArray() throws Exception {
-// doTestGetPublishableInterfaces(Arrays.asList("*"),
-// new String[] {"snafu", "foo", "bar"},
-// new String[] {"snafu", "foo", "bar"});
-// }
-
-// public void doTestGetPublishableInterfaces(Object requested,
-// String[] actual,
-// String[] expected)
-// throws Exception {
-// ServiceEndpointDescription sd =
-// EasyMock.createMock(ServiceEndpointDescription.class);
-// ServiceReference sref = EasyMock.createMock(ServiceReference.class);
-// EasyMock.expect(sd.getProperty("service.exported.interfaces")).andReturn(requested);
-// EasyMock.expect(sd.getProperty("osgi.remote.interfaces")).andReturn(null);
-// EasyMock.expect(sref.getProperty(org.osgi.framework.Constants.OBJECTCLASS)).andReturn(actual);
-// EasyMock.replay(sd);
-// EasyMock.replay(sref);
-//
-// String[] ret = OsgiUtils.getPublishableInterfaces(sd, sref);
-//
-// assertNotNull(ret);
-// assertEquals(expected.length, ret.length);
-// for (int i = 0; i < expected.length; i++) {
-// assertEquals(expected[i], ret[i]);
-// }
-//
-// EasyMock.verify();
-// }
-
-// public void testGetRemoteReferencesFromRegistrationProperties() throws Exception {
-// final Map<String, Object> props = new HashMap<String, Object>();
-// props.put(org.osgi.framework.Constants.OBJECTCLASS, new String [] {"myClass"});
-// props.put("osgi.remote.interfaces", "*");
-// props.put(Constants.WS_DATABINDING_PROP_KEY, "jaxb");
-//
-// BundleContext bc = EasyMock.createNiceMock(BundleContext.class);
-// EasyMock.expect(bc.getServiceReferences(ServiceDecorator.class.getName(), null)).
-// andReturn(null).anyTimes();
-// EasyMock.replay(bc);
-//
-// Bundle b = EasyMock.createNiceMock(Bundle.class);
-// EasyMock.expect(b.getBundleContext()).andReturn(bc).anyTimes();
-// EasyMock.replay(b);
-//
-// ServiceReference sr = EasyMock.createMock(ServiceReference.class);
-// // set behaviour for getPropertyKeys() and getProperty() based on the map above.
-// EasyMock.expect(sr.getPropertyKeys()).
-// andReturn(props.keySet().toArray(new String [] {})).anyTimes();
-// EasyMock.expect(sr.getProperty((String) EasyMock.anyObject())).
-// andAnswer(new IAnswer<Object>() {
-// public Object answer() throws Throwable {
-// return props.get(EasyMock.getCurrentArguments()[0]);
-// }
-// }).anyTimes();
-// EasyMock.expect(sr.getBundle()).andReturn(b).anyTimes();
-// EasyMock.replay(sr);
-//
-// // Actual test starts here
-// ServiceEndpointDescription sd = OsgiUtils.getRemoteReference(sr, true);
-// assertEquals("*", sd.getProperties().get("osgi.remote.interfaces"));
-// assertEquals("jaxb", sd.getProperties().get(Constants.WS_DATABINDING_PROP_KEY));
-//
-// EasyMock.verify(sr);
-// }
-
-// public void testSetAdditionalDecoratorProperties() throws Exception {
-// final Map<String, Object> props = new HashMap<String, Object>();
-// props.put(org.osgi.framework.Constants.OBJECTCLASS, new String [] {"myClass"});
-//
-// ServiceDecorator decorator = new ServiceDecorator() {
-// public void decorate(ServiceReference sref, Map<String, Object> properties) {
-// properties.put("osgi.remote.interfaces", "*");
-// }
-// };
-//
-// ServiceReference decoratorRef = EasyMock.createMock(ServiceReference.class);
-// EasyMock.replay(decoratorRef);
-//
-// BundleContext bc = EasyMock.createNiceMock(BundleContext.class);
-// EasyMock.expect(bc.getServiceReferences(ServiceDecorator.class.getName(), null)).
-// andReturn(new ServiceReference [] {decoratorRef}).anyTimes();
-// EasyMock.expect(bc.getService(decoratorRef)).andReturn(decorator).anyTimes();
-// EasyMock.replay(bc);
-//
-// Bundle b = EasyMock.createNiceMock(Bundle.class);
-// EasyMock.expect(b.getBundleContext()).andReturn(bc).anyTimes();
-// EasyMock.replay(b);
-//
-// ServiceReference sr = EasyMock.createMock(ServiceReference.class);
-// // set behaviour for getPropertyKeys() and getProperty() based on the map above.
-// EasyMock.expect(sr.getPropertyKeys()).
-// andReturn(props.keySet().toArray(new String [] {})).anyTimes();
-// EasyMock.expect(sr.getProperty((String) EasyMock.anyObject())).
-// andAnswer(new IAnswer<Object>() {
-// public Object answer() throws Throwable {
-// return props.get(EasyMock.getCurrentArguments()[0]);
-// }
-// }).anyTimes();
-// EasyMock.expect(sr.getBundle()).andReturn(b).anyTimes();
-// EasyMock.replay(sr);
-//
-// // Actual test starts here
-// ServiceEndpointDescription sd = OsgiUtils.getRemoteReference(sr, true);
-// assertEquals("*", sd.getProperties().get("osgi.remote.interfaces"));
-//
-// EasyMock.verify(sr);
-// }
-
public void testNoIntentMap() {
Bundle b = EasyMock.createNiceMock(Bundle.class);
EasyMock.replay(b);
@@ -239,84 +48,18 @@ public class OsgiUtilsTest extends TestC
EasyMock.expect(bc.getBundle()).andReturn(b).anyTimes();
EasyMock.replay(bc);
- assertNull(OsgiUtils.readIntentMap(bc));
- assertNotNull(OsgiUtils.getIntentMap(bc));
+ assertNull(IntentUtils.readIntentMap(bc));
+ assertNotNull(IntentUtils.getIntentMap(bc));
}
public void testIntentsParsingAndFormatting() {
String initial = "A SOAP_1.1 integrity";
String[] expected = {"A", "SOAP_1.1", "integrity"};
- String[] actual = OsgiUtils.parseIntents(initial);
+ String[] actual = IntentUtils.parseIntents(initial);
assertTrue(Arrays.equals(expected, actual));
- assertEquals(initial, OsgiUtils.formatIntents(actual));
- }
-
- public void testNoRemoteServicesXMLFiles() {
- Bundle b = EasyMock.createNiceMock(Bundle.class);
- EasyMock.replay(b);
-
- List<Element> rsElements = OsgiUtils.getAllDescriptionElements(b);
- assertEquals(0, rsElements.size());
- }
-
- public void testRemoteServicesXMLFiles() {
- URL rs1URL = getClass().getResource("/test-resources/rs1.xml");
-
- Bundle b = EasyMock.createNiceMock(Bundle.class);
- EasyMock.expect(b.findEntries(
- EasyMock.eq("OSGI-INF/remote-service"),
- EasyMock.eq("*.xml"), EasyMock.anyBoolean())).andReturn(
- Collections.enumeration(Arrays.asList(rs1URL))).anyTimes();
- EasyMock.replay(b);
-
- List<Element> rsElements = OsgiUtils.getAllDescriptionElements(b);
- assertEquals(2, rsElements.size());
- Namespace ns = Namespace.getNamespace("http://www.osgi.org/xmlns/sd/v1.0.0");
- assertEquals("SomeService", rsElements.get(0).getChild("provide", ns).getAttributeValue("interface"));
- assertEquals("SomeOtherService", rsElements.get(1).getChild("provide", ns).getAttributeValue("interface"));
- }
-
- public void testMultiRemoteServicesXMLFiles() {
- URL rs1URL = getClass().getResource("/test-resources/rs1.xml");
- URL rs2URL = getClass().getResource("/test-resources/rs2.xml");
-
- Bundle b = EasyMock.createNiceMock(Bundle.class);
- EasyMock.expect(b.findEntries(
- EasyMock.eq("OSGI-INF/remote-service"),
- EasyMock.eq("*.xml"), EasyMock.anyBoolean())).andReturn(
- Collections.enumeration(Arrays.asList(rs1URL, rs2URL))).anyTimes();
- EasyMock.replay(b);
-
- List<Element> rsElements = OsgiUtils.getAllDescriptionElements(b);
- assertEquals(3, rsElements.size());
- Namespace ns = Namespace.getNamespace("http://www.osgi.org/xmlns/sd/v1.0.0");
- assertEquals("SomeService", rsElements.get(0).getChild("provide", ns).getAttributeValue("interface"));
- assertEquals("SomeOtherService", rsElements.get(1).getChild("provide", ns).getAttributeValue("interface"));
- assertEquals("org.example.Service", rsElements.get(2).getChild("provide", ns).getAttributeValue("interface"));
- }
-
- @SuppressWarnings("unchecked")
- public void testRemoteServicesXMLFileAlternateLocation() {
- URL rs1URL = getClass().getResource("/test-resources/rs1.xml");
- Dictionary headers = new Hashtable();
- headers.put("Remote-Service", "META-INF/osgi");
- headers.put("Bundle-Name", "testing bundle");
-
- Bundle b = EasyMock.createNiceMock(Bundle.class);
- EasyMock.expect(b.getHeaders()).andReturn(headers).anyTimes();
- EasyMock.expect(b.findEntries(
- EasyMock.eq("META-INF/osgi"),
- EasyMock.eq("*.xml"), EasyMock.anyBoolean())).andReturn(
- Collections.enumeration(Arrays.asList(rs1URL))).anyTimes();
- EasyMock.replay(b);
-
- List<Element> rsElements = OsgiUtils.getAllDescriptionElements(b);
- assertEquals(2, rsElements.size());
- Namespace ns = Namespace.getNamespace("http://www.osgi.org/xmlns/sd/v1.0.0");
- assertEquals("SomeService", rsElements.get(0).getChild("provide", ns).getAttributeValue("interface"));
- assertEquals("SomeOtherService", rsElements.get(1).getChild("provide", ns).getAttributeValue("interface"));
+ assertEquals(initial, IntentUtils.formatIntents(actual));
}
public void testMultiValuePropertyAsString() {
Propchange: cxf/dosgi/trunk/felix/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Oct 23 12:23:01 2012
@@ -1,3 +1,5 @@
.settings
.project
+
+target