public void setStringProperty(final String name, final String value) throws JMSException {
    checkProperty(name, value);

    if (HornetQMessage.JMSXGROUPID.equals(name)) {
      message.putStringProperty(
          org.hornetq.api.core.Message.HDR_GROUP_ID, SimpleString.toSimpleString(value));
    } else {
      message.putStringProperty(new SimpleString(name), SimpleString.toSimpleString(value));
    }
  }
  public String getStringProperty(final String name) throws JMSException {
    if (HornetQMessage.JMSXDELIVERYCOUNT.equals(name)) {
      return String.valueOf(message.getDeliveryCount());
    }

    try {
      if (HornetQMessage.JMSXGROUPID.equals(name)) {
        return message.getStringProperty(org.hornetq.api.core.Message.HDR_GROUP_ID);
      } else {
        return message.getStringProperty(new SimpleString(name));
      }
    } catch (HornetQPropertyConversionException e) {
      throw new MessageFormatException(e.getMessage());
    }
  }
 public boolean propertyExists(final String name) throws JMSException {
   return message.containsProperty(new SimpleString(name))
       || name.equals(HornetQMessage.JMSXDELIVERYCOUNT)
       || HornetQMessage.JMSXGROUPID.equals(name)
           && message.containsProperty(org.hornetq.api.core.Message.HDR_GROUP_ID);
 }