You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/11/09 23:57:33 UTC
svn commit: r593683 - in /incubator/cxf/branches/2.0.x-fixes: ./
api/src/main/java/org/apache/cxf/ws/addressing/
rt/core/src/main/java/org/apache/cxf/interceptor/
rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/
Author: dkulp
Date: Fri Nov 9 14:57:32 2007
New Revision: 593683
URL: http://svn.apache.org/viewvc?rev=593683&view=rev
Log:
Merged revisions 593444 via svnmerge from
https://svn.apache.org/repos/asf/incubator/cxf/trunk
........
r593444 | mmao | 2007-11-09 02:48:19 -0500 (Fri, 09 Nov 2007) | 6 lines
CXF-1186, CXF-1172
* WS-Addressing is working with the API approach
* Complete the system tests
* Logging interceptors more programmatic
........
Added:
incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingMessage.java
- copied unchanged from r593444, incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingMessage.java
Modified:
incubator/cxf/branches/2.0.x-fixes/ (props changed)
incubator/cxf/branches/2.0.x-fixes/api/src/main/java/org/apache/cxf/ws/addressing/WSAContextUtils.java
incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java
incubator/cxf/branches/2.0.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
Propchange: incubator/cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: incubator/cxf/branches/2.0.x-fixes/api/src/main/java/org/apache/cxf/ws/addressing/WSAContextUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/api/src/main/java/org/apache/cxf/ws/addressing/WSAContextUtils.java?rev=593683&r1=593682&r2=593683&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/api/src/main/java/org/apache/cxf/ws/addressing/WSAContextUtils.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/api/src/main/java/org/apache/cxf/ws/addressing/WSAContextUtils.java Fri Nov 9 14:57:32 2007
@@ -60,7 +60,7 @@
*/
public static boolean retrieveUsingAddressing(Message message) {
Boolean override = (Boolean)message.get(USING_PROPERTY);
- return override != null && override.booleanValue();
+ return override == null || (override != null && override.booleanValue());
}
/**
Modified: incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java?rev=593683&r1=593682&r2=593683&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java Fri Nov 9 14:57:32 2007
@@ -37,16 +37,29 @@
public class LoggingInInterceptor extends AbstractPhaseInterceptor<Message> {
private static final Logger LOG = LogUtils.getL7dLogger(LoggingInInterceptor.class);
+ private final LoggingMessage buffer = new LoggingMessage("Inbound Message\n----------------------------");
private int limit = 100 * 1024;
+ private boolean enabled;
+
public LoggingInInterceptor() {
super(Phase.RECEIVE);
}
public LoggingInInterceptor(int lim) {
- super(Phase.RECEIVE);
+ this();
limit = lim;
}
+
+ public LoggingInInterceptor(boolean b) {
+ this();
+ this.enabled = b;
+ }
+
+ public LoggingMessage getBuffer() {
+ return this.buffer;
+ }
+
public void setLimit(int lim) {
limit = lim;
}
@@ -56,52 +69,53 @@
}
public void handleMessage(Message message) throws Fault {
+ if (enabled || LOG.isLoggable(Level.INFO)) {
+ logging(message);
+ }
+ }
- if (LOG.isLoggable(Level.INFO)) {
- StringBuilder buffer = new StringBuilder(2048);
-
- buffer.append("Inbound Message\n")
- .append("--------------------------------------");
-
- String encoding = (String)message.get(Message.ENCODING);
- if (encoding != null) {
- buffer.append("\nEncoding: " + encoding);
- }
- Object headers = message.get(Message.PROTOCOL_HEADERS);
- if (headers != null) {
- buffer.append("\nHeaders: " + headers);
- }
+ private void logging(Message message) throws Fault {
+ String encoding = (String)message.get(Message.ENCODING);
+
+ if (encoding != null) {
+ buffer.getEncoding().append(encoding);
+ }
+ Object headers = message.get(Message.PROTOCOL_HEADERS);
+
+ if (headers != null) {
+ buffer.getHeader().append(headers);
+ }
- InputStream is = message.getContent(InputStream.class);
- if (is != null) {
- CachedOutputStream bos = new CachedOutputStream();
- try {
- IOUtils.copy(is, bos);
-
- bos.flush();
- is.close();
-
- message.setContent(InputStream.class, bos.getInputStream());
- if (bos.getTempFile() != null) {
- //large thing on disk...
- buffer.append("\nMessage (saved to tmp file):\n");
- buffer.append("Filename: " + bos.getTempFile().getAbsolutePath() + "\n");
- } else {
- buffer.append("\nMessage:\n");
- }
- if (bos.size() > limit) {
- buffer.append("(message truncated to " + limit + " bytes)\n");
- }
- bos.writeCacheTo(buffer, limit);
-
- bos.close();
- } catch (IOException e) {
- throw new Fault(e);
+ InputStream is = message.getContent(InputStream.class);
+ if (is != null) {
+ CachedOutputStream bos = new CachedOutputStream();
+ try {
+ IOUtils.copy(is, bos);
+
+ bos.flush();
+ is.close();
+
+ message.setContent(InputStream.class, bos.getInputStream());
+ if (bos.getTempFile() != null) {
+ //large thing on disk...
+ buffer.getMessage().append("\nMessage (saved to tmp file):\n");
+ buffer.getMessage().append("Filename: " + bos.getTempFile().getAbsolutePath() + "\n");
+ } else {
+ buffer.getMessage().append("\nMessage:\n");
}
+ if (bos.size() > limit) {
+ buffer.getMessage().append("(message truncated to " + limit + " bytes)\n");
+ }
+ bos.writeCacheTo(buffer.getPayload(), limit);
+
+ bos.close();
+ } catch (IOException e) {
+ throw new Fault(e);
}
- buffer.append("\n--------------------------------------");
+ }
+
+ if (LOG.isLoggable(Level.INFO)) {
LOG.info(buffer.toString());
}
}
-
}
Modified: incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java?rev=593683&r1=593682&r2=593683&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingOutInterceptor.java Fri Nov 9 14:57:32 2007
@@ -37,18 +37,24 @@
public class LoggingOutInterceptor extends AbstractPhaseInterceptor {
private static final Logger LOG = LogUtils.getL7dLogger(LoggingOutInterceptor.class);
+ private final LoggingMessage buffer = new LoggingMessage("Outbound Message\n---------------------------");
private int limit = 100 * 1024;
+ private boolean enabled;
public LoggingOutInterceptor() {
super(Phase.PRE_STREAM);
addBefore(StaxOutInterceptor.class.getName());
}
public LoggingOutInterceptor(int lim) {
- super(Phase.PRE_STREAM);
- addBefore(StaxOutInterceptor.class.getName());
+ this();
limit = lim;
}
+
+ public LoggingOutInterceptor(boolean b) {
+ this();
+ this.enabled = b;
+ }
public void setLimit(int lim) {
limit = lim;
@@ -58,20 +64,22 @@
return limit;
}
+ public LoggingMessage getBuffer() {
+ return this.buffer;
+ }
public void handleMessage(Message message) throws Fault {
final OutputStream os = message.getContent(OutputStream.class);
if (os == null) {
return;
}
- if (!LOG.isLoggable(Level.INFO)) {
- return;
+
+ if (LOG.isLoggable(Level.INFO) || enabled) {
+ // Write the output while caching it for the log message
+ final CacheAndWriteOutputStream newOut = new CacheAndWriteOutputStream(os);
+ message.setContent(OutputStream.class, newOut);
+ newOut.registerCallback(new LoggingCallback());
}
-
- // Write the output while caching it for the log message
- final CacheAndWriteOutputStream newOut = new CacheAndWriteOutputStream(os);
- message.setContent(OutputStream.class, newOut);
- newOut.registerCallback(new LoggingCallback());
}
class LoggingCallback implements CachedOutputStreamCallback {
@@ -81,31 +89,27 @@
}
public void onClose(CachedOutputStream cos) {
-
- StringBuilder buffer = new StringBuilder(2048);
-
if (cos.getTempFile() == null) {
- buffer.append("Outbound Message:\n");
+ //buffer.append("Outbound Message:\n");
if (cos.size() > limit) {
- buffer.append("(message truncated to " + limit + " bytes)\n");
+ buffer.getMessage().append("(message truncated to " + limit + " bytes)\n");
}
- buffer.append("--------------------------------------\n");
} else {
- buffer.append("Outbound Message (saved to tmp file):\n");
- buffer.append("Filename: " + cos.getTempFile().getAbsolutePath() + "\n");
+ buffer.getMessage().append("Outbound Message (saved to tmp file):\n");
+ buffer.getMessage().append("Filename: " + cos.getTempFile().getAbsolutePath() + "\n");
if (cos.size() > limit) {
- buffer.append("(message truncated to " + limit + " bytes)\n");
+ buffer.getMessage().append("(message truncated to " + limit + " bytes)\n");
}
- buffer.append("--------------------------------------\n");
}
try {
- cos.writeCacheTo(buffer, limit);
+ cos.writeCacheTo(buffer.getPayload(), limit);
} catch (Exception ex) {
//ignore
}
- buffer.append("--------------------------------------\n");
- LOG.info(buffer.toString());
+
+ if (LOG.isLoggable(Level.INFO)) {
+ LOG.info(buffer.toString());
+ }
}
-
}
}
Modified: incubator/cxf/branches/2.0.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java?rev=593683&r1=593682&r2=593683&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java Fri Nov 9 14:57:32 2007
@@ -22,7 +22,6 @@
import java.text.MessageFormat;
import java.util.Collection;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -65,14 +64,14 @@
* is used in all chains.
*/
protected final Map<String, String> messageIDs =
- new HashMap<String, String>();
+ new ConcurrentHashMap<String, String>();
/**
* Whether the endpoint supports WS-Addressing.
*/
- private Map<Endpoint, Boolean> usingAddressing = new ConcurrentHashMap<Endpoint, Boolean>();
- private boolean usingAddressingAdvisory;
+ private final Map<Endpoint, Boolean> usingAddressing = new ConcurrentHashMap<Endpoint, Boolean>();
+ private boolean usingAddressingAdvisory = true;
private boolean allowDuplicates = true;
@@ -85,7 +84,7 @@
/**
* Indicates if duplicate messageIDs are allowed.
- * @return true iff duplicate messageIDs are allowed
+ * @return true if duplicate messageIDs are allowed
*/
public boolean allowDuplicates() {
return allowDuplicates;
@@ -147,13 +146,17 @@
* @pre message is outbound
*/
private boolean usingAddressing(Message message) {
- boolean ret = false;
+ boolean ret = true;
if (ContextUtils.isRequestor(message)) {
- ret = usingAddressingAdvisory
- || WSAContextUtils.retrieveUsingAddressing(message)
- || hasUsingAddressing(message)
+ if (hasUsingAddressing(message)
|| hasAddressingAssertion(message)
- || hasUsingAddressingAssertion(message);
+ || hasUsingAddressingAssertion(message)) {
+ return true;
+ }
+ if (!usingAddressingAdvisory
+ || !WSAContextUtils.retrieveUsingAddressing(message)) {
+ ret = false;
+ }
} else {
ret = getMAPs(message, false, false) != null;
}
@@ -205,8 +208,7 @@
private boolean hasAddressingAssertion(Message message) {
AssertionInfoMap aim = message.get(AssertionInfoMap.class);
if (null == aim) {
- return false;
-
+ return false;
}
Collection<AssertionInfo> ais = aim.get(MetadataConstants.ADDRESSING_ASSERTION_QNAME);
if (null == ais || ais.size() == 0) {