2626import jakarta .servlet .ServletException ;
2727import jakarta .servlet .http .HttpServletRequest ;
2828import jakarta .servlet .http .HttpServletResponse ;
29+ import org .apache .activemq .web .util .ViewUtils ;
2930
3031/**
3132 * A simple rendering of the contents of a queue appear as a list of message
3536 */
3637public class SimpleMessageRenderer implements MessageRenderer {
3738
38- private String contentType = "text/xml" ;
39+ protected static final String DEFAULT_CONTENT_TYPE = "text/xml" ;
40+
3941 private int maxMessages ;
4042
4143 public void renderMessages (HttpServletRequest request , HttpServletResponse response , QueueBrowser browser ) throws IOException , JMSException , ServletException {
42- // lets use XML by default
44+ // XML is used by default unless a child class overrides this method
4345 response .setContentType (getContentType ());
4446 PrintWriter writer = response .getWriter ();
4547 printHeader (writer , browser , request );
@@ -53,10 +55,10 @@ public void renderMessages(HttpServletRequest request, HttpServletResponse respo
5355 printFooter (writer , browser , request );
5456 }
5557
56- public void renderMessage (PrintWriter writer , HttpServletRequest request , HttpServletResponse response , QueueBrowser browser , Message message ) throws JMSException , ServletException {
58+ public void renderMessage (PrintWriter writer , HttpServletRequest request , HttpServletResponse response , QueueBrowser browser , Message message ) throws JMSException {
5759 // lets just write the message IDs for now
5860 writer .print ("<message id='" );
59- writer .print (message .getJMSMessageID ());
61+ writer .print (ViewUtils . escapeXml ( message .getJMSMessageID () ));
6062 writer .println ("'/>" );
6163 }
6264
@@ -71,25 +73,21 @@ public void setMaxMessages(int maxMessages) {
7173 }
7274
7375 public String getContentType () {
74- return contentType ;
75- }
76-
77- public void setContentType (String contentType ) {
78- this .contentType = contentType ;
76+ return DEFAULT_CONTENT_TYPE ;
7977 }
8078
8179 // Implementation methods
8280 // -------------------------------------------------------------------------
8381
84- protected void printHeader (PrintWriter writer , QueueBrowser browser , HttpServletRequest request ) throws IOException , JMSException , ServletException {
82+ protected void printHeader (PrintWriter writer , QueueBrowser browser , HttpServletRequest request ) throws IOException , JMSException {
8583 writer .println ("" );
8684 writer .print ("<messages queue='" );
87- writer .print (browser .getQueue ());
85+ writer .print (ViewUtils . escapeXml ( String . valueOf ( browser .getQueue ()) ));
8886 writer .print ("'" );
8987 String selector = browser .getMessageSelector ();
9088 if (selector != null ) {
9189 writer .print (" selector='" );
92- writer .print (selector );
90+ writer .print (ViewUtils . escapeXml ( selector ) );
9391 writer .print ("'" );
9492 }
9593 writer .println (">" );
0 commit comments