Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * 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
  * 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.tomcat.bayeux.request;
 import static org.jboss.web.CoyoteMessages.MESSAGES;
Handshake request Bayeux message.

Guy A. Molinari
Filip Hanik
 public class PublishRequest extends RequestBase implements BayeuxRequest {
     JSONObject msgData = null;
     protected static HashMap<String,ObjectresponseTemplate = new HashMap<String,Object>();
     static {
     public PublishRequest(TomcatBayeux tbHttpEvent eventJSONObject jsReqthrows JSONException {

Check client request for validity. Per section 5.1.1 of the Bayuex spec a connect request must contain: 1) The channel identifier of the channel for publication. 2) The data to send.

HttpError This method returns null if no errors were found
     public HttpError validate() {
         if(==null|| (!this.getTomcatBayeux().hasChannel()))
             return new HttpError(400, .invalidBayeuxClientId(), null);
         if(==null || .length()==0)
             return new HttpError(400, .noBayeuxMessageData(), null);
         try {
             this. = new JSONObject();
         }catch (JSONException x) {
             return new HttpError(400, .invalidBayeuxMessageData(), x);
         if(==null|| (!this.getTomcatBayeux().hasClient()))
             return new HttpError(400, .invalidBayeuxClientId(), null);
         return null;//no error

Send the event message to all registered subscribers.
     public int process(int prevopsthrows BayeuxException {
         prevops = super.process(prevops);
          = (HashMap<StringObject>).clone();
         ClientImpl client = !=null?(ClientImpl)getTomcatBayeux().getClient():
         boolean success = false;
         HttpError error = validate();
         if (error == null) {
             ChannelImpl chimpl = (ChannelImpl)getTomcatBayeux().getChannel(,false);
             MessageImpl mimpl = (MessageImpl)getTomcatBayeux().newMessage(client);
            try {
                String[] keys = JSONObject.getNames();
                for (int i = 0; i < keys.lengthi++) {
                    mimpl.put(keys[i], .get(keys[i]));
                success = true;
            }catch (JSONException x) {
                throw new BayeuxException(x);
        if(!success) {
            if (client==nullclient = TomcatBayeux.getErrorClient();
        try {
            JSONObject obj = new JSONObject();
        } catch (ServletException x) {
            throw new BayeuxException(x);
        } catch (IOException x) {
            throw new BayeuxException(x);
        if (success && client!=null && client.hasMessages()) {
            //send out messages 
        return 0;
New to GrepCode? Check out our FAQ X