cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From serg...@apache.org
Subject svn commit: r1446285 - in /cxf/trunk: common/xerces-xsd-validation/ parent/ rt/frontend/jaxrs/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/tl/ rt/frontend/jaxrs/src/main/java/org/...
Date Thu, 14 Feb 2013 17:55:23 GMT
Author: sergeyb
Date: Thu Feb 14 17:55:21 2013
New Revision: 1446285

URL: http://svn.apache.org/r1446285
Log:
[CXF-4380] Upgrade to JAX-RS 2.0 API m16

Added:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java   (with props)
Modified:
    cxf/trunk/common/xerces-xsd-validation/pom.xml
    cxf/trunk/parent/pom.xml
    cxf/trunk/rt/frontend/jaxrs/pom.xml
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkHeaderProvider.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RuntimeDelegateImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriInfoImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/tl/ThreadLocalUriInfo.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/AnnotationUtils.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkHeaderProviderTest.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java
    cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
    cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
    cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/JaxrsClientCallback.java
    cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
    cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientRequestFilterInterceptor.java
    cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientResponseFilterInterceptor.java
    cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/client/OAuthClientUtils.java
    cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java
    cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/OAuthJSONProvider.java
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/failover/FailoverTest.java
    cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/saml/JAXRSSamlTest.java
    cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/xml/JAXRSXmlSecTest.java

Modified: cxf/trunk/common/xerces-xsd-validation/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/common/xerces-xsd-validation/pom.xml?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/common/xerces-xsd-validation/pom.xml (original)
+++ cxf/trunk/common/xerces-xsd-validation/pom.xml Thu Feb 14 17:55:21 2013
@@ -39,8 +39,8 @@
       <version>${project.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-annotation_1.0_spec</artifactId>
+         <groupId>javax.annotation</groupId>
+         <artifactId>javax.annotation-api</artifactId>
     </dependency>
     <dependency>
       <groupId>junit</groupId>

Modified: cxf/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/parent/pom.xml (original)
+++ cxf/trunk/parent/pom.xml Thu Feb 14 17:55:21 2013
@@ -102,7 +102,7 @@
         <cxf.httpcomponents.core.version.range>[4.2.1,4.3.0)</cxf.httpcomponents.core.version.range>
         <cxf.james.mim4j.version>0.7.2</cxf.james.mim4j.version>
         <cxf.mina.version>2.0.5</cxf.mina.version>
-        <cxf.geronimo.annotation.version>1.1.1</cxf.geronimo.annotation.version>
+        <cxf.javax.annotation-api.version>1.2-b02</cxf.javax.annotation-api.version>
         <cxf.geronimo.jms.version>1.1.1</cxf.geronimo.jms.version>
         <cxf.geronimo.j2ee.management.version>1.0.1</cxf.geronimo.j2ee.management.version>
         <cxf.geronimo.jpa.version>1.0</cxf.geronimo.jpa.version>
@@ -110,7 +110,7 @@
         <cxf.geronimo.servlet25.version>1.1.2</cxf.geronimo.servlet25.version>
         <cxf.geronimo.transaction.version>1.1.1</cxf.geronimo.transaction.version>
         <cxf.geronimo.ws.metadata.version>1.1.3</cxf.geronimo.ws.metadata.version>
-        <cxf.javax.ws.rs.version>2.0-m15</cxf.javax.ws.rs.version>
+        <cxf.javax.ws.rs.version>2.0-m16</cxf.javax.ws.rs.version>
         <cxf.jaxb21.version>2.1</cxf.jaxb21.version>
         <cxf.jaxb21.impl.version>2.1.13</cxf.jaxb21.impl.version>
         <cxf.jaxb21.xjc.version>2.1.13</cxf.jaxb21.xjc.version>
@@ -1223,9 +1223,9 @@
                 <version>0.5.1</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-annotation_1.0_spec</artifactId>
-                <version>${cxf.geronimo.annotation.version}</version>
+                <groupId>javax.annotation</groupId>
+                <artifactId>javax.annotation-api</artifactId>
+                <version>${cxf.javax.annotation-api.version}</version>
             </dependency>
             <dependency>
                 <groupId>${cxf.servlet-api.group}</groupId>

Modified: cxf/trunk/rt/frontend/jaxrs/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/pom.xml?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/pom.xml (original)
+++ cxf/trunk/rt/frontend/jaxrs/pom.xml Thu Feb 14 17:55:21 2013
@@ -81,6 +81,10 @@
             <artifactId>javax.ws.rs-api</artifactId>
         </dependency>
         <dependency>
+                <groupId>javax.annotation</groupId>
+                <artifactId>javax.annotation-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>cxf-rt-bindings-xml</artifactId>
             <version>${project.version}</version>

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java Thu Feb 14 17:55:21 2013
@@ -18,7 +18,13 @@
  */
 package org.apache.cxf.jaxrs.impl;
 
+import java.util.Collection;
+import java.util.Collections;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 import javax.ws.rs.ServiceUnavailableException;
@@ -47,7 +53,7 @@ public class AsyncResponseImpl implement
     private boolean resumedByApplication;
     private TimeoutHandler timeoutHandler;
     
-    private CompletionCallback completionCallback;
+    private List<CompletionCallback> completionCallbacks;
     private Throwable unmappedThrowable;
     
     public AsyncResponseImpl(Message inMessage) {
@@ -131,14 +137,15 @@ public class AsyncResponseImpl implement
     }
 
     @Override
-    public synchronized void setTimeout(long time, TimeUnit unit) throws IllegalStateException {
+    public synchronized boolean setTimeout(long time, TimeUnit unit) throws IllegalStateException {
         if (isCancelledOrNotSuspended()) {
-            throw new IllegalStateException();
+            return false;
         }
         inMessage.getExchange().put(AsyncResponse.class, this);
         long timeout = TimeUnit.MILLISECONDS.convert(time, unit);
         initialSuspend = false;
         cont.suspend(timeout);
+        return true;
     }
 
     @Override
@@ -147,62 +154,80 @@ public class AsyncResponseImpl implement
     }
 
     @Override
-    public boolean register(Class<?> callback) throws NullPointerException {
-        return register(callback, CompletionCallback.class)[0];
+    public Collection<Class<?>> register(Class<?> callback) throws NullPointerException {
+        return register(callback, new Class<?>[]{}).get(callback);
     }
 
     @Override
-    public boolean[] register(Class<?> callback, Class<?>... callbacks) throws NullPointerException {
+    public Map<Class<?>, Collection<Class<?>>> register(Class<?> callback, Class<?>... callbacks) 
+        throws NullPointerException {
         try {
-            return register(callback.newInstance(), CompletionCallback.class);    
+            Object[] extraCallbacks = new Object[callbacks.length];
+            for (int i = 0; i < callbacks.length; i++) {
+                extraCallbacks[i] = callbacks[i].newInstance();
+            }
+            return register(callback.newInstance(), extraCallbacks);    
         } catch (Throwable t) {
-            return new boolean[]{false};
+            return Collections.emptyMap();
         }
         
     }
 
-    //TODO: API bug, boolean[] needs to be returned...
     @Override
-    public boolean register(Object callback) throws NullPointerException {
-        return register(callback, CompletionCallback.class)[0];
+    public Collection<Class<?>> register(Object callback) throws NullPointerException {
+        return register(callback, new Object[]{}).get(callback.getClass());
     }
 
-    //TODO: API bug, has to be Class<?>...
     @Override
-    public boolean[] register(Object callback, Object... callbacks) throws NullPointerException {
-        boolean[] result = new boolean[callbacks.length];
+    public Map<Class<?>, Collection<Class<?>>> register(Object callback, Object... callbacks) 
+        throws NullPointerException {
+        Map<Class<?>, Collection<Class<?>>> map = 
+            new HashMap<Class<?>, Collection<Class<?>>>();
+    
+        Object[] allCallbacks = new Object[1 + callbacks.length];
+        allCallbacks[0] = callback;
+        System.arraycopy(allCallbacks, 1, callbacks, 0, callbacks.length);
         
-        for (int i = 0; i < callbacks.length; i++) {
-            Object interf = callbacks[i];
-            if (interf == null) {
+        for (int i = 0; i < allCallbacks.length; i++) {
+            if (allCallbacks[i] == null) {
                 throw new NullPointerException();
             }
-            Class<?> cls = (Class<?>)interf;
-            if (cls == CompletionCallback.class && callback instanceof CompletionCallback) {
-                completionCallback = (CompletionCallback)callback;
-                result[i] = true;
-            } else {
-                result[i] = false;
+            Class<?> callbackCls = allCallbacks[i].getClass();
+            Collection<Class<?>> knownCallbacks = map.get(callbackCls);
+            if (knownCallbacks == null) {
+                knownCallbacks = new LinkedList<Class<?>>();
+                map.put(callbackCls, knownCallbacks);
+            }
+            
+            if (allCallbacks[i] instanceof CompletionCallback) {
+                knownCallbacks.add(CompletionCallback.class);
+                if (completionCallbacks == null) {
+                    completionCallbacks = new LinkedList<CompletionCallback>();
+                    completionCallbacks.add((CompletionCallback)allCallbacks[i]);        
+                }
             }
         }
-        return result;
+        return map;
     }
     
     @Override
     public void onComplete() {
         done = true;
-        if (completionCallback != null) {
-            completionCallback.onComplete(unmappedThrowable);
-        }
+        updateCompletionCallbacks(unmappedThrowable);
     }
 
     @Override
     public void onError(Throwable error) {
-        if (completionCallback != null) {
+        updateCompletionCallbacks(error);
+    }
+    
+    private void updateCompletionCallbacks(Throwable error) {
+        if (completionCallbacks != null) {
             Throwable actualError = error instanceof Fault ? ((Fault)error).getCause() : error;
-            completionCallback.onComplete(actualError);
+            for (CompletionCallback completionCallback : completionCallbacks) {
+                completionCallback.onComplete(actualError);
+            }
         }
-        
     }
     
     public synchronized boolean suspendContinuationIfNeeded() {

Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java?rev=1446285&view=auto
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java Thu Feb 14 17:55:21 2013
@@ -0,0 +1,236 @@
+/**
+ * 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.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.ws.rs.core.Link;
+import javax.ws.rs.core.Link.Builder;
+import javax.ws.rs.core.UriBuilder;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.cxf.common.util.StringUtils;
+
+public class LinkBuilderImpl implements Builder {
+    private static final String DOUBLE_QUOTE = "\"";
+    private UriBuilder ub;
+    private Map<String, String> params = new HashMap<String, String>(6);
+    
+    @Override
+    public Link build(Object... values) {
+        URI uri = ub.build(values);
+        return new LinkImpl(uri, params);
+    }
+
+    @Override
+    public Link buildRelativized(UriInfo uriInfo, Object... values) {
+        URI uri = ub.build(values);
+        return new LinkImpl(uriInfo.relativize(uri), params);
+    }
+
+    @Override
+    public Link buildResolved(UriInfo uriInfo, Object... values) {
+        URI uri = ub.build(values);
+        return new LinkImpl(uriInfo.resolve(uri), params);
+    }
+
+    @Override
+    public Builder link(Link link) {
+        ub = UriBuilder.fromLink(link);
+        params.putAll(link.getParams());
+        return this;
+    }
+
+    @Override
+    public Builder link(String link) {
+        String[] tokens = StringUtils.split(link, ";");
+        for (String token : tokens) {
+            String theToken = token.trim();
+            if (theToken.startsWith("<") && theToken.endsWith(">")) {
+                ub = UriBuilder.fromUri(theToken.substring(1, theToken.length() - 1));
+            } else {
+                int i = theToken.indexOf('=');
+                if (i != -1) {
+                    String name = theToken.substring(0, i);
+                    String value = stripQuotes(theToken.substring(i + 1));
+                    params.put(name, value);
+                }
+            }
+        }
+        return this;
+    }
+
+    @Override
+    public Builder param(String name, String value) {
+        checkNotNull(name);
+        checkNotNull(value);
+        params.put(name, value);
+        return this;
+    }
+
+    @Override
+    public Builder rel(String rel) {
+        return param(Link.REL, rel);
+    }
+
+    @Override
+    public Builder title(String title) {
+        return param(Link.TITLE, title);
+    }
+
+    @Override
+    public Builder type(String type) {
+        return param(Link.TYPE, type);
+    }
+
+    @Override
+    public Builder uri(URI uri) {
+        ub = UriBuilder.fromUri(uri);
+        return this;
+    }
+
+    @Override
+    public Builder uri(String uri) {
+        ub = UriBuilder.fromUri(uri);
+        return this;
+    }
+
+    @Override
+    public Builder uriBuilder(UriBuilder builder) {
+        this.ub = builder;
+        return this;
+    }
+
+    private String stripQuotes(String value) {
+        return value.replaceAll(DOUBLE_QUOTE, "");
+    }
+
+    private void checkNotNull(String value) {
+        if (value == null) {
+            throw new IllegalArgumentException(value);
+        }
+    }
+    
+    static class LinkImpl extends Link {
+        private static final Set<String> MAIN_PARAMETERS = 
+            new HashSet<String>(Arrays.asList(Link.REL, Link.TITLE, Link.TYPE));
+        
+        private URI uri;
+        private Map<String, String> params;
+        public LinkImpl(URI uri, Map<String, String> params) {
+            this.uri = uri;
+            this.params = params;
+        }
+        
+        @Override
+        public Map<String, String> getParams() {
+            return Collections.unmodifiableMap(params);
+        }
+
+        @Override
+        public String getRel() {
+            return params.get(Link.REL);
+        }
+
+        @Override
+        public List<String> getRels() {
+            String rel = getRel();
+            if (rel == null) {
+                return Collections.<String>emptyList();
+            } else {
+                String[] values = rel.split(" ");
+                List<String> rels = new ArrayList<String>(values.length);
+                for (String val : values) {
+                    rels.add(val.trim());
+                }
+                return rels;
+            }
+        }
+
+        @Override
+        public String getTitle() {
+            return params.get(Link.TITLE);
+        }
+
+        @Override
+        public String getType() {
+            return params.get(Link.TYPE);
+        }
+
+        @Override
+        public URI getUri() {
+            return uri;
+        }
+
+        @Override
+        public UriBuilder getUriBuilder() {
+            return UriBuilder.fromUri(uri);
+        }
+
+        @Override
+        public String toString() {
+            StringBuilder sb = new StringBuilder();
+            sb.append("<").append(uri.toString()).append(">");
+            String rel = getRel();
+            if (rel != null) {
+                sb.append(";").append(Link.REL).append("=\"").append(rel).append("\"");
+            }
+            String title = getTitle();
+            if (title != null) {
+                sb.append(";").append(Link.TITLE).append("=\"").append(title).append("\"");
+            }
+            String type = getType();
+            if (type != null) {
+                sb.append(";").append(Link.TYPE).append("=\"").append(type).append("\"");
+            }
+            for (Map.Entry<String, String> entry : params.entrySet()) {
+                if (!MAIN_PARAMETERS.contains(entry.getKey())) {
+                    sb.append(";").append(entry.getKey()).append("=\"")
+                        .append(entry.getValue()).append("\"");
+                }
+            }
+            return sb.toString();
+        } 
+    
+        @Override
+        public int hashCode() {
+            return uri.hashCode() + 37 * params.hashCode();
+        }
+        
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof Link) {
+                Link other = (Link)o;
+                return uri.equals(other.getUri()) 
+                    && getParams().equals(other.getParams());
+            } else {
+                return false;
+            }
+        }
+    }
+    
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkHeaderProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkHeaderProvider.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkHeaderProvider.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkHeaderProvider.java Thu Feb 14 17:55:21 2013
@@ -50,7 +50,7 @@ public class LinkHeaderProvider implemen
         if (!value.startsWith("<") || closeIndex < 2) {
             throw new IllegalArgumentException("Link URI is missing");
         }
-        Link.Builder builder = new Link.Builder();
+        Link.Builder builder = new LinkBuilderImpl();
         builder.uri(value.substring(1, closeIndex).trim());
         if (closeIndex < value.length() - 1) {
             

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java Thu Feb 14 17:55:21 2013
@@ -34,7 +34,8 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import javax.ws.rs.MessageProcessingException;
+import javax.ws.rs.ProcessingException;
+import javax.ws.rs.client.ResponseProcessingException;
 import javax.ws.rs.core.EntityTag;
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.HttpHeaders;
@@ -267,28 +268,28 @@ public final class ResponseImpl extends 
         }
     }
     
-    public <T> T readEntity(Class<T> cls) throws MessageProcessingException, IllegalStateException {
+    public <T> T readEntity(Class<T> cls) throws ProcessingException, IllegalStateException {
         return readEntity(cls, new Annotation[]{});
     }
 
-    public <T> T readEntity(GenericType<T> genType) throws MessageProcessingException, IllegalStateException {
+    public <T> T readEntity(GenericType<T> genType) throws ProcessingException, IllegalStateException {
         return readEntity(genType, new Annotation[]{});
     }
 
-    public <T> T readEntity(Class<T> cls, Annotation[] anns) throws MessageProcessingException,
+    public <T> T readEntity(Class<T> cls, Annotation[] anns) throws ProcessingException,
         IllegalStateException {
         
         return doReadEntity(cls, cls, anns);
     }
 
     @SuppressWarnings("unchecked")
-    public <T> T readEntity(GenericType<T> genType, Annotation[] anns) throws MessageProcessingException,
+    public <T> T readEntity(GenericType<T> genType, Annotation[] anns) throws ProcessingException,
         IllegalStateException {
         return doReadEntity((Class<T>)genType.getRawType(), 
                             genType.getType(), anns);
     }
     
-    public <T> T doReadEntity(Class<T> cls, Type t, Annotation[] anns) throws MessageProcessingException,
+    public <T> T doReadEntity(Class<T> cls, Type t, Annotation[] anns) throws ProcessingException,
         IllegalStateException {
         
         checkEntityIsClosed();
@@ -321,14 +322,14 @@ public final class ResponseImpl extends 
                                                                 mediaType, 
                                                                 responseMessage));
                 } catch (Exception ex) {
-                    throw new MessageProcessingException(ex);
+                    throw new ResponseProcessingException(this, ex);
                 } finally {
                     closeIfNotBufferred(cls);
                 }
             }
         }
         
-        throw new MessageProcessingException("No Message Body reader is available");
+        throw new ResponseProcessingException(this, "No Message Body reader is available");
     }
     
     private void closeIfNotBufferred(Class<?> responseCls) {
@@ -337,7 +338,7 @@ public final class ResponseImpl extends 
         }
     }
     
-    public boolean bufferEntity() throws MessageProcessingException {
+    public boolean bufferEntity() throws ProcessingException {
         if (entityClosed) {
             throw new IllegalStateException();
         }
@@ -347,20 +348,20 @@ public final class ResponseImpl extends 
                 entity = IOUtils.loadIntoBAIS(oldEntity);
                 entityBufferred = true;
             } catch (IOException ex) {
-                throw new MessageProcessingException(ex);
+                throw new ResponseProcessingException(this, ex);
             }
         }
         return entityBufferred;
     }
 
-    public void close() throws MessageProcessingException {
+    public void close() throws ProcessingException {
         if (!entityClosed) {
             if (entity instanceof InputStream) {
                 try {
                     ((InputStream)entity).close();
                     entity = null;
                 } catch (IOException ex) {
-                    throw new MessageProcessingException(ex);
+                    throw new ResponseProcessingException(this, ex);
                 }
             }
             entityClosed = true;

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RuntimeDelegateImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RuntimeDelegateImpl.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RuntimeDelegateImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RuntimeDelegateImpl.java Thu Feb 14 17:55:21 2013
@@ -113,6 +113,13 @@ public class RuntimeDelegateImpl extends
         Server server = bean.create();
         return endpointType.cast(server);
     }
+
+
+
+    @Override
+    public Link.Builder createLinkBuilder() {
+        return new LinkBuilderImpl();
+    }
     
 
 }

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriInfoImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriInfoImpl.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriInfoImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriInfoImpl.java Thu Feb 14 17:55:21 2013
@@ -45,7 +45,9 @@ import org.apache.cxf.message.MessageUti
 public class UriInfoImpl implements UriInfo {
     private static final Logger LOG = LogUtils.getL7dLogger(UriInfoImpl.class);
     private static final String CASE_INSENSITIVE_QUERIES = "org.apache.cxf.http.case_insensitive_queries";
-
+    private static final String CURRENT_PATH_SEGMENT = ".";
+    private static final String PARENT_PATH_SEGMENT = "..";
+    
     private MultivaluedMap<String, String> templateParams;
     private Message message;
     private OperationResourceInfoStack stack;
@@ -214,4 +216,87 @@ public class UriInfoImpl implements UriI
         }
         return address + path;
     }
+
+    @Override
+    public URI relativize(URI uri) {
+        URI resolved = resolve(uri);
+        URI requestURI = getRequestUri();
+        if (!getUriPrefix(resolved).equals(getUriPrefix(requestURI))) {
+            return resolved;
+        }
+        List<PathSegment> resolvedSegments = JAXRSUtils.getPathSegments(resolved.getRawPath(), false);
+        List<PathSegment> requestSegments = JAXRSUtils.getPathSegments(requestURI.getRawPath(), false);
+        
+        int count = 0;
+        for (int i = resolvedSegments.size() - 1; i >= 0; i--) {
+            if (i <= requestSegments.size() - 1) {
+                String resolvedPath = resolvedSegments.get(i).getPath();
+                String requestPath = requestSegments.get(i).getPath();
+                if (!resolvedPath.equals(requestPath)) {
+                    count++;
+                }
+            }
+        }
+        StringBuilder sb = new StringBuilder();
+        
+        for (int i = 0; i < count; i++) {
+            if (i != 0) {
+                sb.append("/");
+            }
+            sb.append(PARENT_PATH_SEGMENT);
+        }
+        for (int i = count + 1; i < resolvedSegments.size(); i++) {
+            if (i != 0) {
+                sb.append("/");
+            }
+            sb.append(resolvedSegments.get(i).getPath());
+        }
+        return URI.create(sb.toString());
+    }
+    
+    private static String getUriPrefix(URI uri) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(uri.getScheme()).append(uri.getHost()).append(uri.getPort());
+        
+        return sb.toString();
+    }
+
+    @Override
+    public URI resolve(URI uri) {
+        if (!uri.isAbsolute()) {
+            String uriValue = uri.toString();
+            boolean parentPathSegmentAvail = uriValue.contains(PARENT_PATH_SEGMENT)
+                || uriValue.contains(CURRENT_PATH_SEGMENT); 
+            uri = getBaseUriBuilder().path(uriValue).build();
+            if (parentPathSegmentAvail) {
+                List<PathSegment> segments = JAXRSUtils.getPathSegments(uri.getRawPath(), false);
+                List<PathSegment> actualSegments = new LinkedList<PathSegment>();
+                UriBuilder ub = UriBuilder.fromUri(uri).replacePath(null);
+                for (PathSegment ps : segments) {
+                    if (PARENT_PATH_SEGMENT.equals(ps.getPath()) && !actualSegments.isEmpty()) {
+                        actualSegments.remove(actualSegments.size() - 1);
+                    } else if (!CURRENT_PATH_SEGMENT.equals(ps.getPath())) {
+                        actualSegments.add(ps);
+                    }
+                }
+                for (PathSegment ps : actualSegments) {
+                    ub.segment(ps.toString());
+                }
+                uri = ub.build();
+            }
+        }
+        return uri;
+    }
+    
+    @Override
+    public URI relativize(URI arg0, URI arg1) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public URI resolve(URI arg0, URI arg1) {
+        // TODO Auto-generated method stub
+        return null;
+    }
 }

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/tl/ThreadLocalUriInfo.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/tl/ThreadLocalUriInfo.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/tl/ThreadLocalUriInfo.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/tl/ThreadLocalUriInfo.java Thu Feb 14 17:55:21 2013
@@ -100,4 +100,24 @@ public class ThreadLocalUriInfo extends 
         return get().getMatchedURIs(decode);
     }
 
+    @Override
+    public URI relativize(URI uri) {
+        return get().relativize(uri);
+    }
+
+    @Override
+    public URI relativize(URI uri1, URI uri2) {
+        return get().relativize(uri1, uri2);
+    }
+
+    @Override
+    public URI resolve(URI uri) {
+        return get().resolve(uri);
+    }
+
+    @Override
+    public URI resolve(URI uri1, URI uri2) {
+        return get().resolve(uri1, uri2);
+    }
+
 }

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java Thu Feb 14 17:55:21 2013
@@ -30,7 +30,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.ws.rs.BindingPriority;
+import javax.ws.rs.Priorities;
 import javax.ws.rs.RuntimeType;
 import javax.ws.rs.container.ContainerRequestFilter;
 import javax.ws.rs.container.ContainerResponseFilter;
@@ -458,7 +458,7 @@ public final class ServerProviderFactory
         
         @Override
         public FeatureContext register(Object provider, Class<?>... contracts) {
-            return register(provider, BindingPriority.USER, contracts);
+            return register(provider, Priorities.USER, contracts);
         }
         
         //@Override
@@ -487,7 +487,7 @@ public final class ServerProviderFactory
 
         @Override
         public FeatureContext register(Class<?> providerClass, Class<?>... contracts) {
-            return register(providerClass, BindingPriority.USER, contracts);
+            return register(providerClass, Priorities.USER, contracts);
         }
 
         @Override
@@ -686,12 +686,6 @@ public final class ServerProviderFactory
             return false;
         }
         
-        @Override
-        public FeatureContext setProperty(String name, Object value) {
-            // TODO Auto-generated method stub
-            return null;
-        }
-        
         private Object createProvider(Class<?> cls) {
             try {
                 return cls.newInstance();
@@ -699,6 +693,12 @@ public final class ServerProviderFactory
                 throw new RuntimeException(ex); 
             }
         }
+
+        @Override
+        public FeatureContext property(String arg0, Object arg1) {
+            // TODO Auto-generated method stub
+            return null;
+        }
     }
     
     private static class ExceptionMapperComparator implements 

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/AnnotationUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/AnnotationUtils.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/AnnotationUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/AnnotationUtils.java Thu Feb 14 17:55:21 2013
@@ -29,12 +29,12 @@ import java.util.ResourceBundle;
 import java.util.Set;
 import java.util.logging.Logger;
 
+import javax.annotation.Priority;
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.ws.rs.BeanParam;
-import javax.ws.rs.BindingPriority;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.CookieParam;
 import javax.ws.rs.DefaultValue;
@@ -45,6 +45,7 @@ import javax.ws.rs.MatrixParam;
 import javax.ws.rs.NameBinding;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
+import javax.ws.rs.Priorities;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.container.ResourceContext;
@@ -130,8 +131,8 @@ public final class AnnotationUtils {
     }
 
     public static int getBindingPriority(Class<?> providerCls) {
-        BindingPriority b = providerCls.getAnnotation(BindingPriority.class);
-        return b == null ? BindingPriority.USER : b.value();
+        Priority b = providerCls.getAnnotation(Priority.class);
+        return b == null ? Priorities.USER : b.value();
     }
     public static List<String> getNameBindings(Annotation[] targetAnns) {
         if (targetAnns.length == 0) {

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java Thu Feb 14 17:55:21 2013
@@ -52,6 +52,7 @@ import javax.servlet.http.HttpServletRes
 import javax.ws.rs.BadRequestException;
 import javax.ws.rs.ClientErrorException;
 import javax.ws.rs.Consumes;
+import javax.ws.rs.ForbiddenException;
 import javax.ws.rs.InternalServerErrorException;
 import javax.ws.rs.NotAcceptableException;
 import javax.ws.rs.NotAllowedException;
@@ -161,6 +162,7 @@ public final class JAXRSUtils {
         EXCEPTIONS_MAP = new HashMap<Integer, Class<?>>();
         EXCEPTIONS_MAP.put(400, BadRequestException.class);
         EXCEPTIONS_MAP.put(401, NotAuthorizedException.class);
+        EXCEPTIONS_MAP.put(403, ForbiddenException.class);
         EXCEPTIONS_MAP.put(404, NotFoundException.class);
         EXCEPTIONS_MAP.put(405, NotAllowedException.class);
         EXCEPTIONS_MAP.put(406, NotAcceptableException.class);

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkHeaderProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkHeaderProviderTest.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkHeaderProviderTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkHeaderProviderTest.java Thu Feb 14 17:55:21 2013
@@ -52,9 +52,10 @@ public class LinkHeaderProviderTest exte
     @Test
     public void testToString() {
         String headerValue = "<http://bar>;rel=next;title=\"Next Link\";type=text/xml;method=get";
+        String expected = "<http://bar>;rel=\"next\";title=\"Next Link\";type=\"text/xml\";method=\"get\"";
         Link l = Link.valueOf(headerValue);
         String result = l.toString();
-        assertEquals(result, headerValue);
+        assertEquals(expected, result);
     }
     
         

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java Thu Feb 14 17:55:21 2013
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.jaxrs.impl;
 
+import java.net.URI;
 import java.util.List;
 
 import javax.ws.rs.core.MultivaluedMap;
@@ -50,6 +51,43 @@ public class UriInfoImplTest extends Ass
     }
     
     @Test
+    public void testResolve() {
+        UriInfoImpl u = new UriInfoImpl(mockMessage("http://localhost:8080/baz", null), null);
+        assertEquals("Wrong base path", "http://localhost:8080/baz", 
+                     u.getBaseUri().toString());
+        URI resolved = u.resolve(URI.create("a"));
+        assertEquals("http://localhost:8080/baz/a", resolved.toString());
+    }
+    
+    @Test
+    public void testResolveNormalizeSimple() {
+        UriInfoImpl u = new UriInfoImpl(mockMessage("http://localhost:8080/baz", null), null);
+        assertEquals("Wrong base path", "http://localhost:8080/baz", 
+                     u.getBaseUri().toString());
+        URI resolved = u.resolve(URI.create("./a"));
+        assertEquals("http://localhost:8080/baz/a", resolved.toString());
+    }
+    
+    @Test
+    public void testRelativize() {
+        UriInfoImpl u = new UriInfoImpl(
+            mockMessage("http://localhost:8080/app/root", "/a/b/c"), null);
+        assertEquals("Wrong Request Uri", "http://localhost:8080/app/root/a/b/c", 
+                     u.getRequestUri().toString());
+        URI relativized = u.relativize(URI.create("http://localhost:8080/app/root/a/d/e"));
+        assertEquals("../../d/e", relativized.toString());
+    }
+    
+    @Test
+    public void testResolveNormalizeComplex() throws Exception {
+        UriInfoImpl u = new UriInfoImpl(mockMessage("http://localhost:8080/baz/1/2/3/", null), null);
+        assertEquals("Wrong base path", "http://localhost:8080/baz/1/2/3/", 
+                     u.getBaseUri().toString());
+        URI resolved = u.resolve(new URI("../../a"));
+        assertEquals("http://localhost:8080/baz/1/a", resolved.toString());
+    }
+    
+    @Test
     public void testGetAbsolutePath() {
         
         UriInfoImpl u = new UriInfoImpl(mockMessage("http://localhost:8080/baz", "/bar"),

Modified: cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java (original)
+++ cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java Thu Feb 14 17:55:21 2013
@@ -38,8 +38,9 @@ import java.util.Map;
 import java.util.ResourceBundle;
 import java.util.logging.Logger;
 
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientException;
+import javax.ws.rs.client.ResponseProcessingException;
 import javax.ws.rs.core.Cookie;
 import javax.ws.rs.core.EntityTag;
 import javax.ws.rs.core.HttpHeaders;
@@ -479,7 +480,7 @@ public abstract class AbstractClient imp
                 reportMessageHandlerProblem("MSG_READER_PROBLEM", cls, contentType, ex, r);
             }
         } else {
-            reportMessageHandlerProblem("NO_MSG_READER", cls, contentType, null, null);
+            reportMessageHandlerProblem("NO_MSG_READER", cls, contentType, null, r);
         }
         return null;                                                
     }
@@ -520,10 +521,10 @@ public abstract class AbstractClient imp
     protected void checkClientException(Message outMessage, Exception ex) throws Exception {
         Integer responseCode = getResponseCode(outMessage.getExchange());
         if (responseCode == null) {
-            if (ex instanceof ClientException) {
+            if (ex instanceof ProcessingException) {
                 throw ex;
             } else if (ex != null) {
-                throw new ClientException(ex);
+                throw new ProcessingException(ex);
             } else if (!outMessage.getExchange().isOneWay() || cfg.isResponseExpectedForOneway()) {
                 waitForResponseCode(outMessage.getExchange());
             }
@@ -544,7 +545,7 @@ public abstract class AbstractClient imp
         }
         
         if (getResponseCode(exchange) == null) {
-            throw new ClientException("Response timeout");
+            throw new ProcessingException("Response timeout");
         }
     }
     
@@ -710,7 +711,11 @@ public abstract class AbstractClient imp
                                                    cls,
                                                    ct.toString());
         LOG.severe(errorMsg.toString());
-        throw new ClientException(errorMsg.toString(), cause);
+        if (response == null) {
+            throw new ProcessingException(errorMsg.toString(), cause);
+        } else {
+            throw new ResponseProcessingException(response, errorMsg.toString(), cause);
+        }
     }
     
     private static MediaType getResponseContentType(Response r) {

Modified: cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java (original)
+++ cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java Thu Feb 14 17:55:21 2013
@@ -37,8 +37,8 @@ import java.util.Map;
 import java.util.ResourceBundle;
 import java.util.logging.Logger;
 
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientException;
 import javax.ws.rs.container.AsyncResponse;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
@@ -610,7 +610,7 @@ public class ClientProxyImpl extends Abs
                                                    m.getDeclaringClass().getName(), 
                                                    m.getName());
         LOG.severe(errorMsg.toString());
-        throw new ClientException(errorMsg.toString());
+        throw new ProcessingException(errorMsg.toString());
     }
     
     private class BodyWriter extends AbstractBodyWriter {

Modified: cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/JaxrsClientCallback.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/JaxrsClientCallback.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/JaxrsClientCallback.java (original)
+++ cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/JaxrsClientCallback.java Thu Feb 14 17:55:21 2013
@@ -26,7 +26,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 
-import javax.ws.rs.client.ClientException;
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.client.InvocationCallback;
 
 import org.apache.cxf.endpoint.ClientCallback;
@@ -104,13 +104,13 @@ class JaxrsClientCallback<T> extends Cli
     @Override
     public void handleException(Map<String, Object> ctx, final Throwable ex) {
         context = ctx;
-        if (ex instanceof ClientException) {
+        if (ex instanceof ProcessingException) {
             exception = ex;
         } else {
-            exception = new ClientException(ex);
+            exception = new ProcessingException(ex);
         }
         if (handler != null) {
-            handler.failed((ClientException)exception);
+            handler.failed((ProcessingException)exception);
         }
         done = true;
         synchronized (this) {

Modified: cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java (original)
+++ cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java Thu Feb 14 17:55:21 2013
@@ -31,9 +31,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Future;
 
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.client.AsyncInvoker;
-import javax.ws.rs.client.ClientException;
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.InvocationCallback;
 import javax.ws.rs.core.Cookie;
@@ -944,8 +944,8 @@ public class WebClient extends AbstractC
         } catch (Exception ex) {
             throw ex instanceof WebApplicationException 
                 ? (WebApplicationException)ex 
-                : ex instanceof ClientException 
-                ? new ClientException(ex) : new RuntimeException(ex); 
+                : ex instanceof ProcessingException 
+                ? (ProcessingException)ex : new ProcessingException(ex); 
         }
         
         Response response = null;
@@ -988,8 +988,8 @@ public class WebClient extends AbstractC
             
             return r;
         } catch (Throwable ex) {
-            throw (ex instanceof ClientException) ? (ClientException)ex
-                                                  : new ClientException(ex);
+            throw (ex instanceof ProcessingException) ? (ProcessingException)ex
+                                                  : new ProcessingException(ex);
         } finally {
             ClientProviderFactory.getInstance(outMessage).clearThreadLocalProxies();
         }

Modified: cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientRequestFilterInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientRequestFilterInterceptor.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientRequestFilterInterceptor.java (original)
+++ cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientRequestFilterInterceptor.java Thu Feb 14 17:55:21 2013
@@ -21,7 +21,7 @@ package org.apache.cxf.jaxrs.client.spec
 import java.io.IOException;
 import java.util.List;
 
-import javax.ws.rs.client.ClientException;
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.client.ClientRequestContext;
 import javax.ws.rs.client.ClientRequestFilter;
 import javax.ws.rs.core.Response;
@@ -74,7 +74,7 @@ public class ClientRequestFilterIntercep
                         return;
                     }
                 } catch (IOException ex) {
-                    throw new ClientException(ex);
+                    throw new ProcessingException(ex);
                 }
             }
         }

Modified: cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientResponseFilterInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientResponseFilterInterceptor.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientResponseFilterInterceptor.java (original)
+++ cxf/trunk/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientResponseFilterInterceptor.java Thu Feb 14 17:55:21 2013
@@ -23,7 +23,7 @@ import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 
-import javax.ws.rs.client.ClientException;
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.client.ClientRequestContext;
 import javax.ws.rs.client.ClientResponseContext;
 import javax.ws.rs.client.ClientResponseFilter;
@@ -62,7 +62,7 @@ public class ClientResponseFilterInterce
                 try {
                     filter.getProvider().filter(reqContext, respContext);
                 } catch (IOException ex) {
-                    throw new ClientException(ex);
+                    throw new ProcessingException(ex);
                 }
             }
         }

Modified: cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/client/OAuthClientUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/client/OAuthClientUtils.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/client/OAuthClientUtils.java (original)
+++ cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/client/OAuthClientUtils.java Thu Feb 14 17:55:21 2013
@@ -23,8 +23,8 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientException;
 import javax.ws.rs.core.UriBuilder;
 
 import net.oauth.OAuth;
@@ -172,7 +172,7 @@ public final class OAuthClientUtils {
             }
             return sb.toString();
         } catch (Exception ex) {
-            throw new ClientException(ex);
+            throw new ProcessingException(ex);
         }
     }
     

Modified: cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java (original)
+++ cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java Thu Feb 14 17:55:21 2013
@@ -24,7 +24,8 @@ import java.net.URI;
 import java.util.Collections;
 import java.util.Map;
 
-import javax.ws.rs.client.ClientException;
+import javax.ws.rs.ProcessingException;
+import javax.ws.rs.client.ResponseProcessingException;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriBuilder;
 
@@ -164,7 +165,7 @@ public final class OAuthClientUtils {
                     String data = consumer.getKey() + ":" + consumer.getSecret();
                     sb.append(Base64Utility.encode(data.getBytes("UTF-8")));
                 } catch (Exception ex) {
-                    throw new ClientException(ex);
+                    throw new ProcessingException(ex);
                 }
                 accessTokenService.header("Authorization", sb.toString());
             } else {
@@ -180,7 +181,7 @@ public final class OAuthClientUtils {
         try {
             map = new OAuthJSONProvider().readJSONResponse((InputStream)response.getEntity());
         } catch (IOException ex) {
-            throw new ClientException(ex);
+            throw new ResponseProcessingException(response, ex);
         }
         if (200 == response.getStatus()) {
             ClientAccessToken token = fromMapToClientToken(map);
@@ -284,7 +285,7 @@ public final class OAuthClientUtils {
             String macKey = token.getParameters().get(OAuthConstants.MAC_TOKEN_KEY);
             sb.append(macAuthData.toAuthorizationHeader(macAlgo, macKey));
         } else {
-            throw new ClientException(new OAuthServiceException("Unsupported token type"));
+            throw new ProcessingException(new OAuthServiceException("Unsupported token type"));
         }
         
     }

Modified: cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/OAuthJSONProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/OAuthJSONProvider.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/OAuthJSONProvider.java (original)
+++ cxf/trunk/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/OAuthJSONProvider.java Thu Feb 14 17:55:21 2013
@@ -28,9 +28,9 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 import javax.ws.rs.Consumes;
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.Produces;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientException;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.ext.MessageBodyReader;
@@ -158,7 +158,7 @@ public class OAuthJSONProvider implement
             return Collections.emptyMap();
         }
         if (!str.startsWith("{") || !str.endsWith("}")) {
-            throw new ClientException("JSON Sequence is broken");
+            throw new ProcessingException("JSON Sequence is broken");
         }
         Map<String, String> map = new LinkedHashMap<String, String>();
         

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java Thu Feb 14 17:55:21 2013
@@ -28,7 +28,7 @@ import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.ws.rs.BindingPriority;
+import javax.annotation.Priority;
 import javax.ws.rs.NameBinding;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.container.ContainerRequestContext;
@@ -104,7 +104,7 @@ public class BookServer20 extends Abstra
     }
     
     @PreMatching
-    @BindingPriority(1)
+    @Priority(1)
     private static class PreMatchContainerRequestFilter implements ContainerRequestFilter {
 
         @Override
@@ -121,7 +121,7 @@ public class BookServer20 extends Abstra
     }
     
     @PreMatching
-    @BindingPriority(3)
+    @Priority(3)
     private static class PreMatchContainerRequestFilter2 implements ContainerRequestFilter {
 
         @Override
@@ -137,7 +137,7 @@ public class BookServer20 extends Abstra
     
         
     @PreMatching
-    @BindingPriority(2)
+    @Priority(2)
     private static class PreMatchDynamicContainerRequestFilter implements ContainerRequestFilter {
 
         @Override
@@ -174,7 +174,7 @@ public class BookServer20 extends Abstra
         
     }
     
-    @BindingPriority(3)
+    @Priority(3)
     public static class PostMatchContainerResponseFilter implements ContainerResponseFilter {
 
         @Override
@@ -185,7 +185,7 @@ public class BookServer20 extends Abstra
         
     }
     
-    @BindingPriority(1)
+    @Priority(1)
     public static class PostMatchContainerResponseFilter2 implements ContainerResponseFilter {
 
         @Override
@@ -200,7 +200,7 @@ public class BookServer20 extends Abstra
         }
         
     }
-    @BindingPriority(4)
+    @Priority(4)
     @CustomHeaderAdded
     @PostMatchMode
     public static class PostMatchContainerResponseFilter3 implements ContainerResponseFilter {
@@ -215,7 +215,7 @@ public class BookServer20 extends Abstra
         
     }
     
-    @BindingPriority(2)
+    @Priority(2)
     public static class PostMatchDynamicContainerResponseFilter implements ContainerResponseFilter {
 
         @Override

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Thu Feb 14 17:55:21 2013
@@ -32,9 +32,10 @@ import java.util.List;
 import java.util.Map;
 
 import javax.ws.rs.NotAcceptableException;
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.ServerErrorException;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientException;
+import javax.ws.rs.client.ResponseProcessingException;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
@@ -187,7 +188,7 @@ public class JAXRSClientServerBookTest e
         try {
             store.getBook("123");
             fail("ClientException expected");
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             // expected
         }
     }
@@ -1142,12 +1143,12 @@ public class JAXRSClientServerBookTest e
         assertEquals(444L, book.getId());
     }
     
-    @Test(expected = ClientException.class)
+    @Test(expected = ResponseProcessingException.class)
     public void testEmptyJSON() {
         doTestEmptyResponse("application/json");
     }
     
-    @Test(expected = ClientException.class)
+    @Test(expected = ResponseProcessingException.class)
     public void testEmptyJAXB() {
         doTestEmptyResponse("application/xml");
     }
@@ -1159,7 +1160,7 @@ public class JAXRSClientServerBookTest e
         wc.get(Book.class);
     }
     
-    @Test(expected = ClientException.class)
+    @Test(expected = ResponseProcessingException.class)
     public void testEmptyResponseProxy() {
         BookStore store = JAXRSClientFactory.create("http://localhost:" + PORT, BookStore.class);
         WebClient.getConfig(store).getInInterceptors().add(new ReplaceStatusInterceptor());

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/failover/FailoverTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/failover/FailoverTest.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/failover/FailoverTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/failover/FailoverTest.java Thu Feb 14 17:55:21 2013
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import javax.ws.rs.InternalServerErrorException;
-import javax.ws.rs.client.ClientException;
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.core.Response;
 
 import org.apache.cxf.clustering.FailoverFeature;
@@ -151,7 +151,7 @@ public class FailoverTest extends Abstra
         strategyTest(Server.ADDRESS1, feature, Server.ADDRESS2, Server.ADDRESS3, true, false, false);
     }
     
-    @Test(expected = ClientException.class)    
+    @Test(expected = ProcessingException.class)    
     public void testSequentialStrategyFailure() throws Exception {
         FailoverFeature feature = 
             getFeature(false, false, "http://localhost:" + NON_PORT + "/non-existent"); 
@@ -176,7 +176,7 @@ public class FailoverTest extends Abstra
         try {
             store.getBook("1");
             fail("Exception expected");
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             assertEquals(10, strategy.getTotalCount());
             assertEquals(5, strategy.getAddressCount(address));
             assertEquals(5, strategy.getAddressCount(address2));

Modified: cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/saml/JAXRSSamlTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/saml/JAXRSSamlTest.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/saml/JAXRSSamlTest.java (original)
+++ cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/saml/JAXRSSamlTest.java Thu Feb 14 17:55:21 2013
@@ -23,8 +23,8 @@ import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientException;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.Bus;
@@ -41,6 +41,7 @@ import org.apache.cxf.rs.security.saml.S
 import org.apache.cxf.rs.security.xml.XmlSigOutInterceptor;
 import org.apache.cxf.systest.jaxrs.security.Book;
 import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -64,7 +65,7 @@ public class JAXRSSamlTest extends Abstr
             assertEquals(123L, book.getId());
         } catch (WebApplicationException ex) {
             fail(ex.getMessage());
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             if (ex.getCause() != null && ex.getCause().getMessage() != null) {
                 fail(ex.getCause().getMessage());
             } else {
@@ -89,7 +90,7 @@ public class JAXRSSamlTest extends Abstr
             assertEquals(125L, book.getId());
         } catch (WebApplicationException ex) {
             fail(ex.getMessage());
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             if (ex.getCause() != null && ex.getCause().getMessage() != null) {
                 fail(ex.getCause().getMessage());
             } else {
@@ -121,7 +122,7 @@ public class JAXRSSamlTest extends Abstr
             assertEquals(123L, book.getId());
         } catch (WebApplicationException ex) {
             fail(ex.getMessage());
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             if (ex.getCause() != null && ex.getCause().getMessage() != null) {
                 fail(ex.getCause().getMessage());
             } else {
@@ -146,7 +147,7 @@ public class JAXRSSamlTest extends Abstr
             assertEquals(125L, book.getId());
         } catch (WebApplicationException ex) {
             fail(ex.getMessage());
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             if (ex.getCause() != null && ex.getCause().getMessage() != null) {
                 fail(ex.getCause().getMessage());
             } else {
@@ -172,7 +173,7 @@ public class JAXRSSamlTest extends Abstr
             assertEquals(125L, book.getId());
         } catch (WebApplicationException ex) {
             fail(ex.getMessage());
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             if (ex.getCause() != null && ex.getCause().getMessage() != null) {
                 fail(ex.getCause().getMessage());
             } else {

Modified: cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/xml/JAXRSXmlSecTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/xml/JAXRSXmlSecTest.java?rev=1446285&r1=1446284&r2=1446285&view=diff
==============================================================================
--- cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/xml/JAXRSXmlSecTest.java (original)
+++ cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/xml/JAXRSXmlSecTest.java Thu Feb 14 17:55:21 2013
@@ -24,8 +24,8 @@ import java.util.HashMap;
 import java.util.Map;
 
 import javax.ws.rs.BadRequestException;
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientException;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.bus.spring.SpringBusFactory;
@@ -88,7 +88,7 @@ public class JAXRSXmlSecTest extends Abs
             assertEquals(126L, book.getId());
         } catch (WebApplicationException ex) {
             fail(ex.getMessage());
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             if (ex.getCause() != null && ex.getCause().getMessage() != null) {
                 fail(ex.getCause().getMessage());
             } else {
@@ -138,7 +138,7 @@ public class JAXRSXmlSecTest extends Abs
             assertEquals(126L, book.getId());
         } catch (WebApplicationException ex) {
             fail(ex.getMessage());
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             if (ex.getCause() != null && ex.getCause().getMessage() != null) {
                 fail(ex.getCause().getMessage());
             } else {
@@ -300,7 +300,7 @@ public class JAXRSXmlSecTest extends Abs
             } else {
                 fail(ex.getMessage());
             }
-        } catch (ClientException ex) {
+        } catch (ProcessingException ex) {
             if (ex.getCause() != null && ex.getCause().getMessage() != null) {
                 fail(ex.getCause().getMessage());
             } else {



Mime
View raw message