You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2015/04/24 13:28:49 UTC
[1/2] cxf git commit: [CXF-6369] Updating a test and ConfigurationImpl
Repository: cxf
Updated Branches:
refs/heads/3.0.x-fixes 4298cba6d -> 11068eb42
[CXF-6369] Updating a test and ConfigurationImpl
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/11068eb4
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/11068eb4
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/11068eb4
Branch: refs/heads/3.0.x-fixes
Commit: 11068eb42d8598f41fb9632722eac0303be46316
Parents: 1ef051a
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Fri Apr 24 12:27:41 2015 +0100
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Fri Apr 24 12:28:33 2015 +0100
----------------------------------------------------------------------
.../main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java | 2 +-
.../java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/11068eb4/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java
index 5333298..57b65c8 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java
@@ -141,7 +141,7 @@ public class ConfigurationImpl implements Configuration {
@Override
public boolean isRegistered(Object obj) {
- return providers.containsKey(obj);
+ return isRegistered(obj.getClass());
}
@Override
http://git-wip-us.apache.org/repos/asf/cxf/blob/11068eb4/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java
index 21645b2..b5dbd6c 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java
@@ -43,8 +43,10 @@ public class ConfigurationImplTest extends Assert {
assertFalse(c.isRegistered(ContainerResponseFilter.class));
assertFalse(c.register(filter,
Collections.<Class<?>, Integer>singletonMap(ContainerResponseFilter.class, 1000)));
+ assertFalse(c.register(ContainerResponseFilterImpl.class,
+ Collections.<Class<?>, Integer>singletonMap(ContainerResponseFilter.class, 1000)));
}
- private static class ContainerResponseFilterImpl implements ContainerResponseFilter {
+ public static class ContainerResponseFilterImpl implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
[2/2] cxf git commit: [CXF-6369] Preventing duplicate registrations
in ConfigurationImpl
Posted by se...@apache.org.
[CXF-6369] Preventing duplicate registrations in ConfigurationImpl
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/1ef051a5
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/1ef051a5
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/1ef051a5
Branch: refs/heads/3.0.x-fixes
Commit: 1ef051a55ff58fc0f1480957b13b32f73508e2ea
Parents: 4298cba
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Fri Apr 24 12:21:41 2015 +0100
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Fri Apr 24 12:28:33 2015 +0100
----------------------------------------------------------------------
.../cxf/jaxrs/impl/ConfigurationImpl.java | 13 ++++-
.../cxf/jaxrs/impl/ConfigurationImplTest.java | 58 ++++++++++++++++++++
2 files changed, 69 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/1ef051a5/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java
index fa29eb0..5333298 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java
@@ -25,14 +25,17 @@ import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Logger;
import javax.ws.rs.RuntimeType;
import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.Feature;
+import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.jaxrs.utils.AnnotationUtils;
public class ConfigurationImpl implements Configuration {
+ private static final Logger LOG = LogUtils.getL7dLogger(ConfigurationImpl.class);
private Map<String, Object> props = new HashMap<String, Object>();
private RuntimeType runtimeType;
private Map<Object, Map<Class<?>, Integer>> providers =
@@ -144,7 +147,7 @@ public class ConfigurationImpl implements Configuration {
@Override
public boolean isRegistered(Class<?> cls) {
for (Object o : getInstances()) {
- if (cls.isAssignableFrom(o.getClass())) {
+ if (cls == o.getClass()) {
return true;
}
}
@@ -168,10 +171,15 @@ public class ConfigurationImpl implements Configuration {
register(provider, initContractsMap(bindingPriority, contracts));
}
- public void register(Object provider, Map<Class<?>, Integer> contracts) {
+ public boolean register(Object provider, Map<Class<?>, Integer> contracts) {
if (provider.getClass() == Class.class) {
provider = createProvider((Class<?>)provider);
}
+ if (isRegistered(provider)) {
+ LOG.warning("Provider " + provider.getClass().getName() + " has already been registered");
+ return false;
+ }
+
Map<Class<?>, Integer> metadata = providers.get(provider);
if (metadata == null) {
metadata = new HashMap<Class<?>, Integer>();
@@ -182,6 +190,7 @@ public class ConfigurationImpl implements Configuration {
metadata.put(contract, contracts.get(contract));
}
}
+ return true;
}
public static Map<Class<?>, Integer> initContractsMap(int bindingPriority, Class<?>... contracts) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/1ef051a5/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java
new file mode 100644
index 0000000..21645b2
--- /dev/null
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ConfigurationImplTest.java
@@ -0,0 +1,58 @@
+/**
+ * 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.jaxrs.impl;
+
+import java.io.IOException;
+import java.util.Collections;
+
+import javax.ws.rs.RuntimeType;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ConfigurationImplTest extends Assert {
+
+ @Test
+ public void testIsRegistered() {
+ ConfigurationImpl c = new ConfigurationImpl(RuntimeType.SERVER);
+ ContainerResponseFilter filter = new ContainerResponseFilterImpl();
+ assertTrue(c.register(filter,
+ Collections.<Class<?>, Integer>singletonMap(ContainerResponseFilter.class, 1000)));
+ assertTrue(c.isRegistered(filter));
+ assertTrue(c.isRegistered(ContainerResponseFilterImpl.class));
+ assertFalse(c.isRegistered(ContainerResponseFilter.class));
+ assertFalse(c.register(filter,
+ Collections.<Class<?>, Integer>singletonMap(ContainerResponseFilter.class, 1000)));
+ }
+ private static class ContainerResponseFilterImpl implements ContainerResponseFilter {
+
+ @Override
+ public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
+ throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+ }
+
+}