code: private String addConstraint(AbstractConstraint<?> constraint) throws PropertyException{
  		Validate.notNull(constraint);
  		String constraintName = String.format(CONSTRAINT_FORMAT, getNextConstraintIndex());
  		props.setProperty(constraintName, constraint.toString());
  		addConstraintNameToList(constraintName);
  		return constraintName;
  	}
docs: Adds the given routing constraint to the context properties.<br>
  This requires to generate a new name for the constraint (e.g. CONSTRAINT_1) <br>
  and storing a string-representation of this constraint under this name.<br>
  Additionally, the new constraint name is stored in the property field which is summing up all constraint names (CONSTRAINTS).
  @param constraint The routing constraint to add.
  @return The newly generated name for the constraint under which it is accessible.
  @throws ParameterException if the given routing constraint is <code>null</code>.
  @throws PropertyException if the constraint property name cannot be generated or the constraint cannot be stored.
  @see #getNextConstraintIndex()