cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: svn commit: r1354452 - in /cxf/branches/2.4.x-fixes: ./ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/
Date Thu, 05 Jul 2012 09:15:46 GMT
Hi Willem, Freeman

Willem, the fix looks OK, thanks for doing it,
I was doing the merge to 2.5.x manually so that led to that broken code

Cheers, Sergey

On 05/07/12 10:08, Sergey Beryozkin wrote:
> Oh, sorry, completely missed it. Will look asap
>
> Cheers, Sergey
>
> On 05/07/12 10:02, Willem Jiang wrote:
>> I just committed a quick fix for it.
>> Sergey, if you have time, please double check it.
>>
>>
>> On Wed Jul 4 08:44:12 2012, Freeman Fang wrote:
>>> Hi Sergey,
>>>
>>> This commit break some jaxrs tests in 2.5.x branch, they're
>>>
>>> org.apache.cxf.jaxrs.utils.InjectionUtilsTest.testHandleParameterWithXmlAdapterOnInterface
>>>
>>>
>>>
>>>
>>> org.apache.cxf.jaxrs.ext.codegen.CodeGeneratorProviderTest.testBookStoreAsInterface
>>>
>>>
>>>
>>>
>>> org.apache.cxf.jaxrs.ext.codegen.CodeGeneratorProviderTest.testBookStoreAsClass
>>>
>>>
>>>
>>>
>>> org.apache.cxf.jaxrs.ext.codegen.CodeGeneratorProviderTest.testBookStoreTypesOnly
>>>
>>>
>>>
>>>
>>> Those test failed since Project CXF-2.5.x #337[1] on CI and afterwards.
>>>
>>> The reason for CodeGeneratorProviderTest failure is because there's
>>> another extra "Books.class" in addition to the classes listed, as
>>> CodeGeneratorProviderTest get removed from trunk and 2.6.x branches,
>>> so I'm not sure CodeGeneratorProviderTest is still valid based on
>>> current jaxrs code.
>>>
>>> The InjectionUtilsTest failed because the code
>>> Object id = InjectionUtils.handleParameter(value,
>>> true,
>>> Id.class,
>>> new Annotation[] {},
>>> ParameterType.PATH,
>>> createMessage());
>>>
>>> now return id as a String.class, but not the expected Id.class.
>>>
>>> Could you please take a look?
>>>
>>>
>>> [1]https://builds.apache.org/job/CXF-2.5.x/337/#showFailuresLink
>>>
>>> Thanks
>>> Freeman
>>>
>>> On 2012-6-27, at 下午7:58, sergeyb@apache.org wrote:
>>>
>>>> Author: sergeyb
>>>> Date: Wed Jun 27 11:58:32 2012
>>>> New Revision: 1354452
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=1354452&view=rev
>>>> Log:
>>>> Merged revisions 1354451 via svnmerge from
>>>> https://svn.apache.org/repos/asf/cxf/branches/2.5.x-fixes
>>>>
>>>> ................
>>>> r1354451 | sergeyb | 2012-06-27 12:55:57 +0100 (Wed, 27 Jun 2012) |
>>>> 24 lines
>>>>
>>>> Merged revisions 1354447 via svnmerge from
>>>> https://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes
>>>>
>>>> ................
>>>> r1354447 | sergeyb | 2012-06-27 12:51:30 +0100 (Wed, 27 Jun 2012)
>>>> | 17 lines
>>>>
>>>> Merged revisions 1354441-1354442,1354446 via svnmerge from
>>>> https://svn.apache.org/repos/asf/cxf/trunk
>>>>
>>>> ........
>>>> r1354441 | sergeyb | 2012-06-27 12:44:38 +0100 (Wed, 27 Jun
>>>> 2012) | 1 line
>>>>
>>>> [CXF-4396] Checking a port when 0.0.0.0 address gets replaced
>>>> ........
>>>> r1354442 | sergeyb | 2012-06-27 12:45:33 +0100 (Wed, 27 Jun
>>>> 2012) | 1 line
>>>>
>>>> [CXF-4379] Passing corect type for adapters bound to interfaces
>>>> to be discoverd
>>>> ........
>>>> r1354446 | sergeyb | 2012-06-27 12:49:57 +0100 (Wed, 27 Jun
>>>> 2012) | 1 line
>>>>
>>>> [CXF-4379] Minor optimization
>>>> ........
>>>> ................
>>>> ................
>>>>
>>>> Modified:
>>>> cxf/branches/2.4.x-fixes/ (props changed)
>>>>
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
>>>>
>>>>
>>>>
>>>>
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
>>>>
>>>>
>>>>
>>>>
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXBUtils.java
>>>>
>>>>
>>>>
>>>>
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
>>>>
>>>>
>>>>
>>>>
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java
>>>>
>>>>
>>>>
>>>>
>>>> Propchange: cxf/branches/2.4.x-fixes/
>>>> ------------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>> Merged /cxf/branches/2.5.x-fixes:r1354451
>>>> Merged /cxf/trunk:r1354441-1354446
>>>> Merged /cxf/branches/2.6.x-fixes:r1354447
>>>>
>>>> Propchange: cxf/branches/2.4.x-fixes/
>>>> ------------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>> Binary property 'svnmerge-integrated' - no diff available.
>>>>
>>>> Modified:
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
>>>>
>>>>
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java?rev=1354452&r1=1354451&r2=1354452&view=diff
>>>>
>>>>
>>>>
>>>> ==============================================================================
>>>>
>>>>
>>>>
>>>> ---
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
>>>>
>>>>
>>>> (original)
>>>> +++
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
>>>>
>>>>
>>>> Wed Jun 27 11:58:32 2012
>>>> @@ -200,7 +200,10 @@ public final class HttpUtils {
>>>> if (!absolute) {
>>>> u = URI.create(base + u.toString());
>>>> } else {
>>>> - u = URI.create(u.toString().replace(ANY_IP_ADDRESS,
>>>> serverAndPort));
>>>> + int originalPort = u.getPort();
>>>> + String replaceValue = originalPort == -1 ?
>>>> ANY_IP_ADDRESS
>>>> + : ANY_IP_ADDRESS + ":" + originalPort;
>>>> + u = URI.create(u.toString().replace(replaceValue,
>>>> serverAndPort));
>>>> }
>>>> }
>>>> return u;
>>>>
>>>> Modified:
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
>>>>
>>>>
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java?rev=1354452&r1=1354451&r2=1354452&view=diff
>>>>
>>>>
>>>>
>>>> ==============================================================================
>>>>
>>>>
>>>>
>>>> ---
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
>>>>
>>>>
>>>> (original)
>>>> +++
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
>>>>
>>>>
>>>> Wed Jun 27 11:58:32 2012
>>>> @@ -366,10 +366,11 @@ public final class InjectionUtils {
>>>> result = createFromParameterHandler(value, pClass, message);
>>>> }
>>>>
>>>> - if (result != null && adapterHasToBeUsed) {
>>>> + if (adapterHasToBeUsed) {
>>>> // as the last resort, try XmlJavaTypeAdapters
>>>> + Object valueToReplace = result != null ? result : value;
>>>> try {
>>>> - result = JAXBUtils.convertWithAdapter(result,
>>>> paramAnns);
>>>> + result =
>>>> JAXBUtils.convertWithAdapter(valueToReplace, pClass, paramAnns);
>>>> } catch (Throwable ex) {
>>>> result = null;
>>>> }
>>>>
>>>> Modified:
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXBUtils.java
>>>>
>>>>
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXBUtils.java?rev=1354452&r1=1354451&r2=1354452&view=diff
>>>>
>>>>
>>>>
>>>> ==============================================================================
>>>>
>>>>
>>>>
>>>> ---
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXBUtils.java
>>>>
>>>>
>>>> (original)
>>>> +++
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXBUtils.java
>>>>
>>>>
>>>> Wed Jun 27 11:58:32 2012
>>>> @@ -29,10 +29,11 @@ public final class JAXBUtils {
>>>>
>>>> }
>>>>
>>>> - public static Object convertWithAdapter(Object obj,
>>>> + public static Object convertWithAdapter(Object obj,
>>>> + Class<?> adapterClass,
>>>> Annotation[] anns) {
>>>> return useAdapter(obj,
>>>> - getAdapter(obj.getClass(), anns),
>>>> + getAdapter(adapterClass, anns),
>>>> false,
>>>> obj);
>>>> }
>>>>
>>>> Modified:
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
>>>>
>>>>
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java?rev=1354452&r1=1354451&r2=1354452&view=diff
>>>>
>>>>
>>>>
>>>> ==============================================================================
>>>>
>>>>
>>>>
>>>> ---
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
>>>>
>>>>
>>>> (original)
>>>> +++
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
>>>>
>>>>
>>>> Wed Jun 27 11:58:32 2012
>>>> @@ -178,6 +178,29 @@ public class HttpUtilsTest extends Asser
>>>> assertEquals("http://localhost:8080/bar/foo", u.toString());
>>>> }
>>>>
>>>> + @Test
>>>> + public void testReplaceAnyIPAddressWithPort() {
>>>> + Message m = new MessageImpl();
>>>> + HttpServletRequest req =
>>>> EasyMock.createMock(HttpServletRequest.class);
>>>> + m.put(AbstractHTTPDestination.HTTP_REQUEST, req);
>>>> + req.getScheme();
>>>> + EasyMock.expectLastCall().andReturn("http");
>>>> + req.getServerName();
>>>> + EasyMock.expectLastCall().andReturn("localhost");
>>>> + req.getLocalPort();
>>>> + EasyMock.expectLastCall().andReturn(8080);
>>>> + EasyMock.replay(req);
>>>> + URI u =
>>>> HttpUtils.toAbsoluteUri(URI.create("http://0.0.0.0:8080/bar/foo"), m);
>>>> + assertEquals("http://localhost:8080/bar/foo", u.toString());
>>>> + }
>>>> +
>>>> + @Test
>>>> + public void testReplaceLocalHostWithPort() {
>>>> + Message m = new MessageImpl();
>>>> + URI u =
>>>> HttpUtils.toAbsoluteUri(URI.create("http://localhost:8080/bar/foo"),
>>>> m);
>>>> + assertEquals("http://localhost:8080/bar/foo", u.toString());
>>>> + }
>>>> +
>>>> private void doTestGetBaseAddress(String baseURI, String expected) {
>>>> Message m = new MessageImpl();
>>>> Exchange exchange = new ExchangeImpl();
>>>>
>>>> Modified:
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java
>>>>
>>>>
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java?rev=1354452&r1=1354451&r2=1354452&view=diff
>>>>
>>>>
>>>>
>>>> ==============================================================================
>>>>
>>>>
>>>>
>>>> ---
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java
>>>>
>>>>
>>>> (original)
>>>> +++
>>>> cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java
>>>>
>>>>
>>>> Wed Jun 27 11:58:32 2012
>>>> @@ -18,6 +18,7 @@
>>>> */
>>>> package org.apache.cxf.jaxrs.utils;
>>>>
>>>> +import java.lang.annotation.Annotation;
>>>> import java.util.ArrayList;
>>>> import java.util.Collection;
>>>> import java.util.HashSet;
>>>> @@ -27,13 +28,44 @@ import java.util.Set;
>>>> import java.util.SortedSet;
>>>> import java.util.TreeSet;
>>>>
>>>> +import javax.ws.rs.core.Application;
>>>> import javax.ws.rs.core.MultivaluedMap;
>>>> +import javax.xml.bind.annotation.adapters.XmlAdapter;
>>>> +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
>>>> +
>>>> +import org.apache.cxf.endpoint.Endpoint;
>>>> +import org.apache.cxf.jaxrs.model.ParameterType;
>>>> +import org.apache.cxf.jaxrs.provider.ProviderFactory;
>>>> +import org.apache.cxf.message.Exchange;
>>>> +import org.apache.cxf.message.ExchangeImpl;
>>>> +import org.apache.cxf.message.Message;
>>>> +import org.apache.cxf.message.MessageImpl;
>>>> +import org.easymock.EasyMock;
>>>>
>>>> import org.junit.Assert;
>>>> import org.junit.Test;
>>>>
>>>> public class InjectionUtilsTest extends Assert {
>>>>
>>>> +
>>>> + @Test
>>>> + public void testHandleParameterWithXmlAdapterOnInterface()
>>>> throws Exception {
>>>> + // Arrange
>>>> + String value = "1.1";
>>>> +
>>>> + // Act
>>>> + Object id = InjectionUtils.handleParameter(value,
>>>> + true,
>>>> + Id.class,
>>>> + new Annotation[] {},
>>>> + ParameterType.PATH,
>>>> + createMessage());
>>>> +
>>>> + // Assert
>>>> + assertTrue(id instanceof Id);
>>>> + assertEquals(value, ((Id)id).getId());
>>>> + }
>>>> +
>>>> public void testCollectionTypeFromArray() {
>>>> assertNull(InjectionUtils.getCollectionType(String[].class));
>>>> }
>>>> @@ -179,4 +211,62 @@ public class InjectionUtilsTest extends
>>>> }
>>>> }
>>>>
>>>> + private Message createMessage() {
>>>> + ProviderFactory factory = ProviderFactory.getInstance();
>>>> + Message m = new MessageImpl();
>>>> + m.put("org.apache.cxf.http.case_insensitive_queries", false);
>>>> + Exchange e = new ExchangeImpl();
>>>> + m.setExchange(e);
>>>> + e.setInMessage(m);
>>>> + Endpoint endpoint = EasyMock.createMock(Endpoint.class);
>>>> + endpoint.getEndpointInfo();
>>>> + EasyMock.expectLastCall().andReturn(null).anyTimes();
>>>> + endpoint.get(Application.class.getName());
>>>> + EasyMock.expectLastCall().andReturn(null);
>>>> + endpoint.size();
>>>> + EasyMock.expectLastCall().andReturn(0).anyTimes();
>>>> + endpoint.isEmpty();
>>>> + EasyMock.expectLastCall().andReturn(true).anyTimes();
>>>> + endpoint.get(ProviderFactory.class.getName());
>>>> + EasyMock.expectLastCall().andReturn(factory).anyTimes();
>>>> + EasyMock.replay(endpoint);
>>>> + e.put(Endpoint.class, endpoint);
>>>> + return m;
>>>> + }
>>>> +
>>>> + public static class Adapter extends XmlAdapter<String, Id> {
>>>> +
>>>> + @Override
>>>> + public String marshal(final Id id) throws Exception {
>>>> + return id.getId();
>>>> + }
>>>> +
>>>> + @Override
>>>> + public Id unmarshal(final String idStr) throws Exception {
>>>> + Id id = new DelegatingId();
>>>> + id.setId(idStr);
>>>> + return id;
>>>> + }
>>>> + }
>>>> +
>>>> + @XmlJavaTypeAdapter(Adapter.class)
>>>> + public interface Id {
>>>> + String getId();
>>>> +
>>>> + void setId(String id);
>>>> + }
>>>> +
>>>> + public static class DelegatingId implements Id {
>>>> +
>>>> + private String id;
>>>> +
>>>> + public String getId() {
>>>> + return this.id;
>>>> + }
>>>> +
>>>> + public void setId(String id) {
>>>> + this.id = id;
>>>> + }
>>>> +
>>>> + }
>>>> }
>>>>
>>>>
>>>
>>> ---------------------------------------------
>>> Freeman Fang
>>>
>>> FuseSource
>>> Email:ffang@fusesource.com
>>> Web: fusesource.com
>>> Twitter: freemanfang
>>> Blog: http://freemanfang.blogspot.com
>>> http://blog.sina.com.cn/u/1473905042
>>> weibo: http://weibo.com/u/1473905042
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Willem
>> ----------------------------------
>> FuseSource
>> Web: http://www.fusesource.com
>> Blog: http://willemjiang.blogspot.com (English)
>> http://jnn.javaeye.com (Chinese)
>> Twitter: willemjiang
>> Weibo: willemjiang
>>
>
>



Mime
View raw message