docs: public static AbstractAuditLogger newJMSInstance(Map<String, Object> properties) {
          AsyncAuditLogProducer logger = new AsyncAuditLogProducer();
          boolean transacted = true;
          if (properties.containsKey("jbpm.audit.jms.transacted")) {
          	Object transactedObj = properties.get("jbpm.audit.jms.transacted");
          	if (transactedObj instanceof Boolean) {
          		transacted = (Boolean) properties.get("jbpm.audit.jms.transacted");
          	} else {
          		transacted = Boolean.parseBoolean(transactedObj.toString());
          	}
          }
          
          logger.setTransacted(transacted);
          
          // set connection factory and queue if given as property
          if (properties.containsKey("jbpm.audit.jms.connection.factory")) {
              ConnectionFactory connFactory = (ConnectionFactory) properties.get("jbpm.audit.jms.connection.factory"); 
              logger.setConnectionFactory(connFactory);
          }                
          if (properties.containsKey("jbpm.audit.jms.queue")) {
              Queue queue = (Queue) properties.get("jbpm.audit.jms.queue"); 
              logger.setQueue(queue);
          }
          try {
              // look up connection factory and queue if given as property
              if (properties.containsKey("jbpm.audit.jms.connection.factory.jndi")) {
                  ConnectionFactory connFactory = (ConnectionFactory) InitialContext.doLookup(
                          (String)properties.get("jbpm.audit.jms.connection.factory.jndi")); 
                  logger.setConnectionFactory(connFactory);
              }                
              if (properties.containsKey("jbpm.audit.jms.queue.jndi")) {
                  Queue queue = (Queue) InitialContext.doLookup((String)properties.get("jbpm.audit.jms.queue.jndi")); 
                 logger.setQueue(queue);
              }
          } catch (NamingException e) {
              throw new RuntimeException("Error when looking up ConnectionFactory/Queue", e);
          }
          
          return logger;
      }