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 2017/01/03 16:41:49 UTC
cxf-dosgi git commit: Cleanup util package
Repository: cxf-dosgi
Updated Branches:
refs/heads/master 0a4950cfe -> 4de42394b
Cleanup util package
Project: http://git-wip-us.apache.org/repos/asf/cxf-dosgi/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf-dosgi/commit/4de42394
Tree: http://git-wip-us.apache.org/repos/asf/cxf-dosgi/tree/4de42394
Diff: http://git-wip-us.apache.org/repos/asf/cxf-dosgi/diff/4de42394
Branch: refs/heads/master
Commit: 4de42394b1b37f34d6c3e924eb49cf9d2b9870e4
Parents: 0a4950c
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Tue Jan 3 17:41:34 2017 +0100
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Tue Jan 3 17:41:34 2017 +0100
----------------------------------------------------------------------
common/bnd.bnd | 3 +-
.../dosgi/common/endpoint/ServerEndpoint.java | 49 ++++++++
.../common/intent/impl/IntentManagerImpl.java | 18 ++-
.../cxf/dosgi/common/policy/Exporter.java | 4 +
.../cxf/dosgi/common/util/ClassUtils.java | 86 --------------
.../apache/cxf/dosgi/common/util/OsgiUtils.java | 78 -------------
.../cxf/dosgi/common/util/PropertyHelper.java | 64 +++++++++++
.../cxf/dosgi/common/util/ServerEndpoint.java | 49 --------
.../cxf/dosgi/common/util/StringPlus.java | 72 ------------
.../cxf/dosgi/common/util/ClassUtilsTest.java | 114 -------------------
.../cxf/dosgi/common/util/OsgiUtilsTest.java | 70 ------------
.../dosgi/common/util/PropertyHelperTest.java | 71 ++++++++++++
.../cxf/dosgi/dsw/handlers/rest/RsProvider.java | 16 +--
.../cxf/dosgi/dsw/handlers/ws/WsProvider.java | 10 +-
.../cxf/dosgi/dsw/handlers/ws/WsdlSupport.java | 10 +-
.../ws/PojoConfigurationTypeHandlerTest.java | 2 +-
16 files changed, 216 insertions(+), 500 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/bnd.bnd
----------------------------------------------------------------------
diff --git a/common/bnd.bnd b/common/bnd.bnd
index 5bee711..a8b330b 100644
--- a/common/bnd.bnd
+++ b/common/bnd.bnd
@@ -3,5 +3,6 @@ Export-Package: \
org.apache.cxf.dosgi.common.httpservice,\
org.apache.cxf.dosgi.common.util,\
org.apache.cxf.dosgi.common.intent,\
- org.apache.cxf.dosgi.common.proxy
+ org.apache.cxf.dosgi.common.proxy,\
+ org.apache.cxf.dosgi.common.endpoint
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/main/java/org/apache/cxf/dosgi/common/endpoint/ServerEndpoint.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/endpoint/ServerEndpoint.java b/common/src/main/java/org/apache/cxf/dosgi/common/endpoint/ServerEndpoint.java
new file mode 100644
index 0000000..080b1c5
--- /dev/null
+++ b/common/src/main/java/org/apache/cxf/dosgi/common/endpoint/ServerEndpoint.java
@@ -0,0 +1,49 @@
+/**
+ * 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.common.endpoint;
+
+import java.io.IOException;
+
+import org.apache.aries.rsa.spi.Endpoint;
+import org.apache.cxf.endpoint.Server;
+import org.osgi.service.remoteserviceadmin.EndpointDescription;
+
+public class ServerEndpoint implements Endpoint {
+ private EndpointDescription desc;
+ private Server server;
+
+ public ServerEndpoint(EndpointDescription desc, Server server) {
+ this.desc = desc;
+ this.server = server;
+ }
+
+ public Server getServer() {
+ return this.server;
+ }
+
+ @Override
+ public void close() throws IOException {
+ this.server.destroy();
+ }
+
+ @Override
+ public EndpointDescription description() {
+ return this.desc;
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/main/java/org/apache/cxf/dosgi/common/intent/impl/IntentManagerImpl.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/intent/impl/IntentManagerImpl.java b/common/src/main/java/org/apache/cxf/dosgi/common/intent/impl/IntentManagerImpl.java
index de0247e..596f427 100644
--- a/common/src/main/java/org/apache/cxf/dosgi/common/intent/impl/IntentManagerImpl.java
+++ b/common/src/main/java/org/apache/cxf/dosgi/common/intent/impl/IntentManagerImpl.java
@@ -29,7 +29,7 @@ import java.util.Set;
import java.util.concurrent.Callable;
import org.apache.cxf.dosgi.common.intent.IntentManager;
-import org.apache.cxf.dosgi.common.util.OsgiUtils;
+import org.apache.cxf.dosgi.common.util.PropertyHelper;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Filter;
import org.osgi.framework.FrameworkUtil;
@@ -182,22 +182,18 @@ public class IntentManagerImpl implements IntentManager {
public Set<String> getExported(Map<String, Object> sd) {
Set<String> allIntents = new HashSet<String>();
- Collection<String> intents = OsgiUtils
+ Collection<String> intents = PropertyHelper
.getMultiValueProperty(sd.get(RemoteConstants.SERVICE_EXPORTED_INTENTS));
- if (intents != null) {
- allIntents.addAll(parseIntents(intents));
- }
- Collection<String> intents2 = OsgiUtils
+ allIntents.addAll(parseIntents(intents));
+ Collection<String> intents2 = PropertyHelper
.getMultiValueProperty(sd.get(RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA));
- if (intents2 != null) {
- allIntents.addAll(parseIntents(intents2));
- }
+ allIntents.addAll(parseIntents(intents2));
return allIntents;
}
public Set<String> getImported(Map<String, Object> sd) {
- Collection<String> intents = OsgiUtils.getMultiValueProperty(sd.get(RemoteConstants.SERVICE_INTENTS));
- return intents == null ? new HashSet<String>() : new HashSet<String>(intents);
+ Collection<String> intents = PropertyHelper.getMultiValueProperty(sd.get(RemoteConstants.SERVICE_INTENTS));
+ return new HashSet<String>(intents);
}
private static Collection<String> parseIntents(Collection<String> intents) {
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/main/java/org/apache/cxf/dosgi/common/policy/Exporter.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/policy/Exporter.java b/common/src/main/java/org/apache/cxf/dosgi/common/policy/Exporter.java
index bf2578c..e9fab2e 100644
--- a/common/src/main/java/org/apache/cxf/dosgi/common/policy/Exporter.java
+++ b/common/src/main/java/org/apache/cxf/dosgi/common/policy/Exporter.java
@@ -28,6 +28,10 @@ import org.apache.aries.rsa.spi.ExportPolicy;
import org.osgi.framework.ServiceReference;
import org.osgi.service.component.annotations.Component;
+/**
+ * This export policy allows to export services with just the rs or ws address property.
+ * This policy must be configured in the Aries RSA TopologyManager config to be activated.
+ */
@Component //
(//
immediate = true, //
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/main/java/org/apache/cxf/dosgi/common/util/ClassUtils.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/util/ClassUtils.java b/common/src/main/java/org/apache/cxf/dosgi/common/util/ClassUtils.java
deleted file mode 100644
index 9190b6c..0000000
--- a/common/src/main/java/org/apache/cxf/dosgi/common/util/ClassUtils.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * 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.common.util;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cxf.helpers.CastUtils;
-import org.osgi.framework.BundleContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class ClassUtils {
-
- private static final Logger LOG = LoggerFactory.getLogger(ClassUtils.class);
-
- private ClassUtils() {
- }
-
- public static List<Object> loadProviderClasses(BundleContext callingContext,
- Map<String, Object> sd, String propName) {
- Object serviceProviders = sd.get(propName);
- if (serviceProviders != null) {
- if (serviceProviders.getClass().isArray()) {
- if (serviceProviders.getClass().getComponentType() == String.class) {
- return loadProviders(callingContext, (String[])serviceProviders);
- } else {
- return Arrays.asList((Object[])serviceProviders);
- }
- } else if (serviceProviders.getClass() == String.class) {
- String[] classNames = serviceProviders.toString().split(",");
- return loadProviders(callingContext, classNames);
- } else if (serviceProviders instanceof List) {
- List<Object> list = CastUtils.cast((List<?>)serviceProviders);
- if (!list.isEmpty()) {
- List<Object> providers;
- if (list.get(0).getClass() == String.class) {
- providers = loadProviders(callingContext, list.toArray(new String[]{}));
- } else {
- providers = list;
- }
- return providers;
- }
- } else {
- return Arrays.asList(serviceProviders);
- }
- }
- return Collections.emptyList();
-
- }
-
- private static List<Object> loadProviders(BundleContext callingContext, String[] classNames) {
- List<Object> providers = new ArrayList<Object>();
- for (String className : classNames) {
- try {
- String realName = className.trim();
- if (!realName.isEmpty()) {
- Class<?> pClass = callingContext.getBundle().loadClass(realName);
- providers.add(pClass.newInstance());
- }
- } catch (Exception ex) {
- LOG.warn("Provider " + className.trim() + " can not be loaded or created " + ex.getMessage(), ex);
- }
- }
- return providers;
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/main/java/org/apache/cxf/dosgi/common/util/OsgiUtils.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/util/OsgiUtils.java b/common/src/main/java/org/apache/cxf/dosgi/common/util/OsgiUtils.java
deleted file mode 100644
index aa24903..0000000
--- a/common/src/main/java/org/apache/cxf/dosgi/common/util/OsgiUtils.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * 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.common.util;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class OsgiUtils {
-
- public static final Logger LOG = LoggerFactory.getLogger(OsgiUtils.class);
-
- private OsgiUtils() {
- }
-
- public static boolean getBooleanProperty(Map<String, Object> sd, String name) {
- return toBoolean(sd.get(name));
- }
-
- public static boolean toBoolean(Object value) {
- return value instanceof Boolean && (Boolean) value
- || value instanceof String && Boolean.parseBoolean((String)value);
- }
-
- @SuppressWarnings("unchecked")
- public static Collection<String> getMultiValueProperty(Object property) {
- if (property == null) {
- return null;
- } else if (property instanceof Collection) {
- return (Collection<String>)property;
- } else if (property instanceof String[]) {
- return Arrays.asList((String[])property);
- } else {
- return Collections.singleton(property.toString());
- }
- }
-
- public static String getProperty(EndpointDescription endpoint, String name) {
- return getProperty(endpoint.getProperties(), name);
- }
-
- public static String getProperty(Map<String, Object> dict, String name) {
- Object value = dict.get(name);
- return value instanceof String ? (String) value : null;
- }
-
- public static String getFirstNonEmptyStringProperty(Map<String, Object> dict, String ... keys) {
- for (String key : keys) {
- String value = getProperty(dict, key);
- if (value != null) {
- return value;
- }
- }
- return null;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/main/java/org/apache/cxf/dosgi/common/util/PropertyHelper.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/util/PropertyHelper.java b/common/src/main/java/org/apache/cxf/dosgi/common/util/PropertyHelper.java
new file mode 100644
index 0000000..6a5c64c
--- /dev/null
+++ b/common/src/main/java/org/apache/cxf/dosgi/common/util/PropertyHelper.java
@@ -0,0 +1,64 @@
+/**
+ * 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.common.util;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public final class PropertyHelper {
+
+ public static final Logger LOG = LoggerFactory.getLogger(PropertyHelper.class);
+
+ private PropertyHelper() {
+ }
+
+ @SuppressWarnings("unchecked")
+ public static Collection<String> getMultiValueProperty(Object property) {
+ if (property == null) {
+ return Collections.emptyList();
+ } else if (property instanceof Collection) {
+ return (Collection<String>)property;
+ } else if (property instanceof String[]) {
+ return Arrays.asList((String[])property);
+ } else {
+ return Collections.singleton(property.toString());
+ }
+ }
+
+ public static String getProperty(Map<String, Object> dict, String name) {
+ Object value = dict.get(name);
+ return value instanceof String ? (String) value : null;
+ }
+
+ public static String getFirstNonEmptyStringProperty(Map<String, Object> dict, String ... keys) {
+ for (String key : keys) {
+ String value = getProperty(dict, key);
+ if (value != null) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/main/java/org/apache/cxf/dosgi/common/util/ServerEndpoint.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/util/ServerEndpoint.java b/common/src/main/java/org/apache/cxf/dosgi/common/util/ServerEndpoint.java
deleted file mode 100644
index 5d6d1a7..0000000
--- a/common/src/main/java/org/apache/cxf/dosgi/common/util/ServerEndpoint.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * 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.common.util;
-
-import java.io.IOException;
-
-import org.apache.aries.rsa.spi.Endpoint;
-import org.apache.cxf.endpoint.Server;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-
-public class ServerEndpoint implements Endpoint {
- private EndpointDescription desc;
- private Server server;
-
- public ServerEndpoint(EndpointDescription desc, Server server) {
- this.desc = desc;
- this.server = server;
- }
-
- public Server getServer() {
- return this.server;
- }
-
- @Override
- public void close() throws IOException {
- this.server.destroy();
- }
-
- @Override
- public EndpointDescription description() {
- return this.desc;
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/main/java/org/apache/cxf/dosgi/common/util/StringPlus.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/cxf/dosgi/common/util/StringPlus.java b/common/src/main/java/org/apache/cxf/dosgi/common/util/StringPlus.java
deleted file mode 100644
index c7123b2..0000000
--- a/common/src/main/java/org/apache/cxf/dosgi/common/util/StringPlus.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * 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.common.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class StringPlus {
-
- private static final Logger LOG = LoggerFactory.getLogger(StringPlus.class);
-
- private StringPlus() {
- // never constructed
- }
-
- @SuppressWarnings("rawtypes")
- public static String[] normalize(Object object) {
- if (object instanceof String) {
- String s = (String)object;
- String[] values = s.split(",");
- List<String> list = new ArrayList<String>();
- for (String val : values) {
- String actualValue = val.trim();
- if (!actualValue.isEmpty()) {
- list.add(actualValue);
- }
- }
- return list.toArray(new String[list.size()]);
- }
-
- if (object instanceof String[]) {
- return (String[])object;
- }
-
- if (object instanceof Collection) {
- Collection col = (Collection)object;
- List<String> ar = new ArrayList<String>(col.size());
- for (Object o : col) {
- if (o instanceof String) {
- String s = (String)o;
- ar.add(s);
- } else {
- LOG.warn("stringPlus contained non string element in list! Element was skipped");
- }
- }
- return ar.toArray(new String[ar.size()]);
- }
-
- return null;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/test/java/org/apache/cxf/dosgi/common/util/ClassUtilsTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/cxf/dosgi/common/util/ClassUtilsTest.java b/common/src/test/java/org/apache/cxf/dosgi/common/util/ClassUtilsTest.java
deleted file mode 100644
index 233a18a..0000000
--- a/common/src/test/java/org/apache/cxf/dosgi/common/util/ClassUtilsTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- * 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.common.util;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.easymock.EasyMock;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-import junit.framework.TestCase;
-
-public class ClassUtilsTest extends TestCase {
-
- public void testLoadProvidersAsString() throws Exception {
- BundleContext bc = mockBundleContext();
- Map<String, Object> sd = Collections.<String, Object>singletonMap("providers", Provider.class.getName());
- List<Object> providers = ClassUtils.loadProviderClasses(bc, sd, "providers");
- assertEquals(1, providers.size());
- assertTrue(providers.get(0) instanceof Provider);
- }
-
- public void testLoadProvidersAsStringArray() throws Exception {
- BundleContext bc = mockBundleContext();
- Map<String, Object> sd = Collections.<String, Object>singletonMap("providers",
- new String[]{Provider.class.getName()});
- List<Object> providers = ClassUtils.loadProviderClasses(bc, sd, "providers");
- assertEquals(1, providers.size());
- assertTrue(providers.get(0) instanceof Provider);
- }
-
- public void testLoadProvidersAsObject() throws Exception {
- Map<String, Object> sd = Collections.<String, Object>singletonMap("providers", new Provider());
- List<Object> providers = ClassUtils.loadProviderClasses(null, sd, "providers");
- assertEquals(1, providers.size());
- assertTrue(providers.get(0) instanceof Provider);
- }
-
- public void testLoadProvidersAsObjectArray() throws Exception {
- Map<String, Object> sd = Collections.<String, Object>singletonMap("providers", new Object[]{new Provider()});
- List<Object> providers = ClassUtils.loadProviderClasses(null, sd, "providers");
- assertEquals(1, providers.size());
- assertTrue(providers.get(0) instanceof Provider);
- }
-
- public void testLoadProvidersAsObjectList() throws Exception {
- List<Object> list = new LinkedList<Object>();
- list.add(new Provider());
- Map<String, Object> sd = Collections.<String, Object>singletonMap("providers", list);
- List<Object> providers = ClassUtils.loadProviderClasses(null, sd, "providers");
- assertEquals(1, providers.size());
- assertTrue(providers.get(0) instanceof Provider);
- }
-
- public void testLoadProvidersAsStringList() throws Exception {
- List<Object> list = new LinkedList<Object>();
- list.add(Provider.class.getName());
- Map<String, Object> sd = Collections.<String, Object>singletonMap("providers", list);
- List<Object> providers = ClassUtils.loadProviderClasses(mockBundleContext(), sd, "providers");
- assertEquals(1, providers.size());
- assertTrue(providers.get(0) instanceof Provider);
- }
-
- private BundleContext mockBundleContext() throws Exception {
- BundleContext bc = EasyMock.createMock(BundleContext.class);
- Bundle bundle = EasyMock.createMock(Bundle.class);
- bc.getBundle();
- EasyMock.expectLastCall().andReturn(bundle);
- bundle.loadClass(Provider.class.getName());
- EasyMock.expectLastCall().andReturn(Provider.class);
- EasyMock.replay(bc, bundle);
- return bc;
- }
-
- @SuppressWarnings({ "serial", "rawtypes" })
- private static class MyMapSubclass extends HashMap {
- }
-
- @SuppressWarnings("serial")
- static class MySubclassOne extends MyMapSubclass {
- }
-
- @SuppressWarnings("serial")
- static class MySubclassTwo extends MySubclassOne {
- }
-
- @SuppressWarnings("serial")
- static class MySubclassThree extends MySubclassTwo {
- }
-
- @SuppressWarnings("serial")
- static class MySubclassFour extends MySubclassThree {
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/test/java/org/apache/cxf/dosgi/common/util/OsgiUtilsTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/cxf/dosgi/common/util/OsgiUtilsTest.java b/common/src/test/java/org/apache/cxf/dosgi/common/util/OsgiUtilsTest.java
deleted file mode 100644
index 9aabeef..0000000
--- a/common/src/test/java/org/apache/cxf/dosgi/common/util/OsgiUtilsTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * 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.common.util;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-import junit.framework.TestCase;
-
-public class OsgiUtilsTest extends TestCase {
-
- public void testMultiValuePropertyAsString() {
- assertEquals(Collections.singleton("hi"),
- OsgiUtils.getMultiValueProperty("hi"));
- }
-
- public void testMultiValuePropertyAsArray() {
- assertEquals(Arrays.asList("a", "b"),
- OsgiUtils.getMultiValueProperty(new String[] {"a", "b"}));
- }
-
- public void testMultiValuePropertyAsCollection() {
- List<String> list = new ArrayList<String>();
- list.add("1");
- list.add("2");
- list.add("3");
- assertEquals(list, OsgiUtils.getMultiValueProperty(list));
- }
-
- public void testMultiValuePropertyNull() {
- assertNull(OsgiUtils.getMultiValueProperty(null));
- }
-
- public void testGetProperty() {
- Map<String, Object> p = new HashMap<String, Object>();
- p.put(RemoteConstants.ENDPOINT_ID, "http://google.de");
- p.put("notAString", new Object());
- p.put(org.osgi.framework.Constants.OBJECTCLASS, new String[]{"my.class"});
- p.put(RemoteConstants.SERVICE_IMPORTED_CONFIGS, new String[]{"my.config"});
-
- EndpointDescription endpoint = new EndpointDescription(p);
-
- assertNull(OsgiUtils.getProperty(endpoint, "unknownProp"));
- assertEquals(p.get(RemoteConstants.ENDPOINT_ID), OsgiUtils.getProperty(endpoint, RemoteConstants.ENDPOINT_ID));
- assertEquals(null, OsgiUtils.getProperty(endpoint, "notAString"));
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/common/src/test/java/org/apache/cxf/dosgi/common/util/PropertyHelperTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/cxf/dosgi/common/util/PropertyHelperTest.java b/common/src/test/java/org/apache/cxf/dosgi/common/util/PropertyHelperTest.java
new file mode 100644
index 0000000..41e8115
--- /dev/null
+++ b/common/src/test/java/org/apache/cxf/dosgi/common/util/PropertyHelperTest.java
@@ -0,0 +1,71 @@
+/**
+ * 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.common.util;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.osgi.service.remoteserviceadmin.EndpointDescription;
+import org.osgi.service.remoteserviceadmin.RemoteConstants;
+
+import junit.framework.TestCase;
+
+public class PropertyHelperTest extends TestCase {
+
+ public void testMultiValuePropertyAsString() {
+ assertEquals(Collections.singleton("hi"),
+ PropertyHelper.getMultiValueProperty("hi"));
+ }
+
+ public void testMultiValuePropertyAsArray() {
+ assertEquals(Arrays.asList("a", "b"),
+ PropertyHelper.getMultiValueProperty(new String[] {"a", "b"}));
+ }
+
+ public void testMultiValuePropertyAsCollection() {
+ List<String> list = new ArrayList<String>();
+ list.add("1");
+ list.add("2");
+ list.add("3");
+ assertEquals(list, PropertyHelper.getMultiValueProperty(list));
+ }
+
+ public void testMultiValuePropertyNull() {
+ assertTrue(PropertyHelper.getMultiValueProperty(null).isEmpty());
+ }
+
+ public void testGetProperty() {
+ Map<String, Object> p = new HashMap<String, Object>();
+ p.put(RemoteConstants.ENDPOINT_ID, "http://google.de");
+ p.put("notAString", new Object());
+ p.put(org.osgi.framework.Constants.OBJECTCLASS, new String[]{"my.class"});
+ p.put(RemoteConstants.SERVICE_IMPORTED_CONFIGS, new String[]{"my.config"});
+
+ EndpointDescription endpoint = new EndpointDescription(p);
+
+ assertNull(PropertyHelper.getProperty(endpoint.getProperties(), "unknownProp"));
+ assertEquals(p.get(RemoteConstants.ENDPOINT_ID),
+ PropertyHelper.getProperty(endpoint.getProperties(), RemoteConstants.ENDPOINT_ID));
+ assertEquals(null, PropertyHelper.getProperty(endpoint.getProperties(), "notAString"));
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/provider-rs/src/main/java/org/apache/cxf/dosgi/dsw/handlers/rest/RsProvider.java
----------------------------------------------------------------------
diff --git a/provider-rs/src/main/java/org/apache/cxf/dosgi/dsw/handlers/rest/RsProvider.java b/provider-rs/src/main/java/org/apache/cxf/dosgi/dsw/handlers/rest/RsProvider.java
index 66f6ff1..032bb46 100644
--- a/provider-rs/src/main/java/org/apache/cxf/dosgi/dsw/handlers/rest/RsProvider.java
+++ b/provider-rs/src/main/java/org/apache/cxf/dosgi/dsw/handlers/rest/RsProvider.java
@@ -18,7 +18,7 @@
*/
package org.apache.cxf.dosgi.dsw.handlers.rest;
-import static org.apache.cxf.dosgi.common.util.OsgiUtils.getMultiValueProperty;
+import static org.apache.cxf.dosgi.common.util.PropertyHelper.getMultiValueProperty;
import static org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED;
import static org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED;
@@ -40,11 +40,11 @@ import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.binding.BindingConfiguration;
import org.apache.cxf.databinding.DataBinding;
+import org.apache.cxf.dosgi.common.endpoint.ServerEndpoint;
import org.apache.cxf.dosgi.common.httpservice.HttpServiceManager;
import org.apache.cxf.dosgi.common.intent.IntentManager;
import org.apache.cxf.dosgi.common.proxy.ProxyFactory;
-import org.apache.cxf.dosgi.common.util.OsgiUtils;
-import org.apache.cxf.dosgi.common.util.ServerEndpoint;
+import org.apache.cxf.dosgi.common.util.PropertyHelper;
import org.apache.cxf.endpoint.AbstractEndpointFactory;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.feature.Feature;
@@ -96,7 +96,7 @@ public class RsProvider implements DistributionProvider {
Set<String> intentNames = intentManager.getImported(endpoint.getProperties());
List<Object> intents = intentManager.getRequiredIntents(intentNames);
Class<?> iClass = interfaces[0];
- String address = OsgiUtils.getProperty(endpoint, RsConstants.RS_ADDRESS_PROPERTY);
+ String address = PropertyHelper.getProperty(endpoint.getProperties(), RsConstants.RS_ADDRESS_PROPERTY);
if (address == null) {
LOG.warn("Remote address is unavailable");
return null;
@@ -128,13 +128,13 @@ public class RsProvider implements DistributionProvider {
if (!configTypeSupported(endpointProps, RsConstants.RS_CONFIG_TYPE)) {
return null;
}
- String contextRoot = OsgiUtils.getProperty(endpointProps, RsConstants.RS_HTTP_SERVICE_CONTEXT);
+ String contextRoot = PropertyHelper.getProperty(endpointProps, RsConstants.RS_HTTP_SERVICE_CONTEXT);
String address;
Class<?> iClass = exportedInterfaces[0];
if (contextRoot == null) {
address = getServerAddress(endpointProps, iClass);
} else {
- address = OsgiUtils.getProperty(endpointProps, RsConstants.RS_ADDRESS_PROPERTY);
+ address = PropertyHelper.getProperty(endpointProps, RsConstants.RS_ADDRESS_PROPERTY);
if (address == null) {
address = "/";
}
@@ -215,7 +215,7 @@ public class RsProvider implements DistributionProvider {
factory.setResourceProvider(iClass, new SingletonResourceProvider(serviceBean));
factory.setAddress(address);
addContextProperties(factory, sd, RsConstants.RS_CONTEXT_PROPS_PROP_KEY);
- String location = OsgiUtils.getProperty(sd, RsConstants.RS_WADL_LOCATION);
+ String location = PropertyHelper.getProperty(sd, RsConstants.RS_WADL_LOCATION);
setWadlLocation(callingContext, factory, location);
return factory;
}
@@ -242,7 +242,7 @@ public class RsProvider implements DistributionProvider {
}
private String getServerAddress(Map<String, Object> sd, Class<?> iClass) {
- String address = OsgiUtils.getProperty(sd, RsConstants.RS_ADDRESS_PROPERTY);
+ String address = PropertyHelper.getProperty(sd, RsConstants.RS_ADDRESS_PROPERTY);
return address == null ? httpServiceManager.getDefaultAddress(iClass) : address;
}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java
----------------------------------------------------------------------
diff --git a/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java b/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java
index 3958c8b..27fe72b 100644
--- a/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java
+++ b/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java
@@ -18,7 +18,7 @@
*/
package org.apache.cxf.dosgi.dsw.handlers.ws;
-import static org.apache.cxf.dosgi.common.util.OsgiUtils.getMultiValueProperty;
+import static org.apache.cxf.dosgi.common.util.PropertyHelper.getMultiValueProperty;
import static org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_CONFIGS_SUPPORTED;
import static org.osgi.service.remoteserviceadmin.RemoteConstants.REMOTE_INTENTS_SUPPORTED;
@@ -38,11 +38,11 @@ import org.apache.cxf.aegis.databinding.AegisDatabinding;
import org.apache.cxf.binding.BindingConfiguration;
import org.apache.cxf.binding.soap.SoapBindingConfiguration;
import org.apache.cxf.databinding.DataBinding;
+import org.apache.cxf.dosgi.common.endpoint.ServerEndpoint;
import org.apache.cxf.dosgi.common.httpservice.HttpServiceManager;
import org.apache.cxf.dosgi.common.intent.IntentManager;
import org.apache.cxf.dosgi.common.proxy.ProxyFactory;
-import org.apache.cxf.dosgi.common.util.OsgiUtils;
-import org.apache.cxf.dosgi.common.util.ServerEndpoint;
+import org.apache.cxf.dosgi.common.util.PropertyHelper;
import org.apache.cxf.endpoint.AbstractEndpointFactory;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.feature.Feature;
@@ -164,7 +164,7 @@ public class WsProvider implements DistributionProvider {
Class<?> iClass = exportedInterfaces[0];
String address = getPojoAddress(endpointProps, iClass);
ServerFactoryBean factory = createServerFactoryBean(endpointProps, iClass);
- String contextRoot = OsgiUtils.getProperty(endpointProps, WsConstants.WS_HTTP_SERVICE_CONTEXT);
+ String contextRoot = PropertyHelper.getProperty(endpointProps, WsConstants.WS_HTTP_SERVICE_CONTEXT);
final Long sid = (Long) endpointProps.get(RemoteConstants.ENDPOINT_SERVICE_ID);
Set<String> intentNames = intentManager.getExported(endpointProps);
@@ -239,7 +239,7 @@ public class WsProvider implements DistributionProvider {
}
protected String getClientAddress(Map<String, Object> sd) {
- return OsgiUtils.getFirstNonEmptyStringProperty(sd, WsConstants.WS_ADDRESS_PROPERTY,
+ return PropertyHelper.getFirstNonEmptyStringProperty(sd, WsConstants.WS_ADDRESS_PROPERTY,
RemoteConstants.ENDPOINT_ID);
}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsdlSupport.java
----------------------------------------------------------------------
diff --git a/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsdlSupport.java b/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsdlSupport.java
index 810e445..83794c5 100644
--- a/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsdlSupport.java
+++ b/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsdlSupport.java
@@ -24,7 +24,7 @@ import java.util.Map;
import javax.xml.namespace.QName;
import org.apache.cxf.common.util.PackageUtils;
-import org.apache.cxf.dosgi.common.util.OsgiUtils;
+import org.apache.cxf.dosgi.common.util.PropertyHelper;
import org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory;
import org.osgi.framework.BundleContext;
@@ -36,7 +36,7 @@ public final class WsdlSupport {
public static void setWsdlProperties(AbstractWSDLBasedEndpointFactory factory, //
BundleContext context, //
Map<String, Object> sd) {
- String location = OsgiUtils.getProperty(sd, WsConstants.WS_WSDL_LOCATION);
+ String location = PropertyHelper.getProperty(sd, WsConstants.WS_WSDL_LOCATION);
if (location != null) {
URL wsdlURL = context.getBundle().getResource(location);
if (wsdlURL != null) {
@@ -58,8 +58,8 @@ public final class WsdlSupport {
protected static QName getServiceQName(Class<?> iClass, Map<String, Object> sd, String nsPropName,
String namePropName) {
- String serviceNs = OsgiUtils.getProperty(sd, nsPropName);
- String serviceName = OsgiUtils.getProperty(sd, namePropName);
+ String serviceNs = PropertyHelper.getProperty(sd, nsPropName);
+ String serviceName = PropertyHelper.getProperty(sd, namePropName);
if (iClass == null && (serviceNs == null || serviceName == null)) {
return null;
}
@@ -73,7 +73,7 @@ public final class WsdlSupport {
}
protected static QName getPortQName(String ns, Map<String, Object> sd, String propName) {
- String portName = OsgiUtils.getProperty(sd, propName);
+ String portName = PropertyHelper.getProperty(sd, propName);
if (portName == null) {
return null;
}
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/4de42394/provider-ws/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ws/PojoConfigurationTypeHandlerTest.java
----------------------------------------------------------------------
diff --git a/provider-ws/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ws/PojoConfigurationTypeHandlerTest.java b/provider-ws/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ws/PojoConfigurationTypeHandlerTest.java
index b4b2f57..acbb992 100644
--- a/provider-ws/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ws/PojoConfigurationTypeHandlerTest.java
+++ b/provider-ws/src/test/java/org/apache/cxf/dosgi/dsw/handlers/ws/PojoConfigurationTypeHandlerTest.java
@@ -28,10 +28,10 @@ import javax.xml.namespace.QName;
import org.apache.aries.rsa.spi.Endpoint;
import org.apache.aries.rsa.util.EndpointHelper;
+import org.apache.cxf.dosgi.common.endpoint.ServerEndpoint;
import org.apache.cxf.dosgi.common.httpservice.HttpServiceManager;
import org.apache.cxf.dosgi.common.intent.IntentManager;
import org.apache.cxf.dosgi.common.intent.impl.IntentManagerImpl;
-import org.apache.cxf.dosgi.common.util.ServerEndpoint;
import org.apache.cxf.dosgi.dsw.handlers.jaxws.MyJaxWsEchoService;
import org.apache.cxf.dosgi.dsw.handlers.simple.MySimpleEchoService;
import org.apache.cxf.endpoint.EndpointImpl;