Index: branches/supervisor/.classpath
===================================================================
--- branches/supervisor/.classpath	(revision 106)
+++ branches/supervisor/.classpath	(revision 107)
@@ -23,5 +23,5 @@
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7 [1.7.0_40]">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
Index: branches/supervisor/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- branches/supervisor/.settings/org.eclipse.jdt.core.prefs	(revision 106)
+++ branches/supervisor/.settings/org.eclipse.jdt.core.prefs	(revision 107)
@@ -11,2 +11,282 @@
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
 org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=140
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
Index: branches/supervisor/.settings/org.eclipse.jdt.ui.prefs
===================================================================
--- branches/supervisor/.settings/org.eclipse.jdt.ui.prefs	(revision 107)
+++ branches/supervisor/.settings/org.eclipse.jdt.ui.prefs	(revision 107)
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+formatter_profile=_Sergi style
+formatter_settings_version=12
Index: branches/supervisor/src/main/java/omq/Remote.java
===================================================================
--- branches/supervisor/src/main/java/omq/Remote.java	(revision 106)
+++ branches/supervisor/src/main/java/omq/Remote.java	(revision 107)
@@ -22,3 +22,7 @@
 	 */
 	public String getRef();
+	
+	public String getUID();
+
+	public void setUID(String uID);
 }
Index: branches/supervisor/src/main/java/omq/client/proxy/Proxymq.java
===================================================================
--- branches/supervisor/src/main/java/omq/client/proxy/Proxymq.java	(revision 106)
+++ branches/supervisor/src/main/java/omq/client/proxy/Proxymq.java	(revision 107)
@@ -47,4 +47,5 @@
 
 	private String reference;
+	private String UID;
 	private transient String exchange;
 	private transient String multiExchange;
@@ -72,9 +73,10 @@
 	 * Proxymq Constructor.
 	 * 
-	 * This constructor uses an reference to know which object will call. It also uses
-	 * Properties to set where to send the messages
+	 * This constructor uses an reference to know which object will call. It
+	 * also uses Properties to set where to send the messages
 	 * 
 	 * @param reference
-	 *            The reference represents the unique identifier of a remote object
+	 *            The reference represents the unique identifier of a remote
+	 *            object
 	 * @param clazz
 	 *            It represents the real class of the remote object. With this
@@ -119,4 +121,11 @@
 				return getRef();
 			}
+			if (methodName.equals("getUID")) {
+				return getUID();
+			}
+			if (methodName.equals("setUID")) {
+				setUID((String) arguments[0]);
+				return null;
+			}
 			if (methodName.equals("equals")) {
 				if (arguments[0] instanceof Remote) {
@@ -168,14 +177,17 @@
 		}
 
+		// TODO look this carefully
+		String appId = UID == null ? reference : UID;
+
 		// Add the correlation ID and create a replyTo property
-		BasicProperties props = new BasicProperties.Builder().appId(reference).correlationId(corrId).replyTo(replyQueueName).type(serializerType)
-				.deliveryMode(deliveryMode).build();
+		BasicProperties props = new BasicProperties.Builder().appId(appId).correlationId(corrId).replyTo(replyQueueName)
+				.type(serializerType).deliveryMode(deliveryMode).build();
 
 		// Publish the message
 		byte[] bytesRequest = serializer.serialize(serializerType, request);
 		broker.publishMessge(exchange, routingkey, props, bytesRequest);
-		logger.debug("Proxymq: " + reference + " invokes '" + request.getMethod() + "' , corrID: " + corrId + ", exchange: " + exchange + ", replyQueue: "
-				+ replyQueueName + ", serializerType: " + serializerType + ", multi call: " + request.isMulti() + ", async call: " + request.isAsync()
-				+ ", delivery mode: " + deliveryMode);
+		logger.debug("Proxymq: " + reference + " invokes '" + request.getMethod() + "' , corrID: " + corrId + ", exchange: " + exchange
+				+ ", replyQueue: " + replyQueueName + ", serializerType: " + serializerType + ", multi call: " + request.isMulti()
+				+ ", async call: " + request.isAsync() + ", delivery mode: " + deliveryMode);
 	}
 
@@ -362,3 +374,13 @@
 	}
 
+	@Override
+	public String getUID() {
+		return UID;
+	}
+
+	@Override
+	public void setUID(String uID) {
+		this.UID = uID;
+	}
+
 }
Index: branches/supervisor/src/main/java/omq/common/broker/RemoteBroker.java
===================================================================
--- branches/supervisor/src/main/java/omq/common/broker/RemoteBroker.java	(revision 106)
+++ branches/supervisor/src/main/java/omq/common/broker/RemoteBroker.java	(revision 107)
@@ -6,5 +6,4 @@
 
 import omq.Remote;
-import omq.client.annotation.SyncMethod;
 import omq.exception.RemoteException;
 import omq.exception.RetryException;
@@ -19,8 +18,6 @@
 	public void deleteObject(String reference) throws RemoteException, IOException;
 
-	@SyncMethod(retry = 1, timeout = 1000)
 	public boolean hasObject(String reference) throws RetryException;
 
-	@SyncMethod(retry = 1, timeout = 1000)
 	public HasObject hasObjectInfo(String reference) throws RetryException;
 
Index: branches/supervisor/src/main/java/omq/common/broker/RemoteBrokerImpl.java
===================================================================
--- branches/supervisor/src/main/java/omq/common/broker/RemoteBrokerImpl.java	(revision 106)
+++ branches/supervisor/src/main/java/omq/common/broker/RemoteBrokerImpl.java	(revision 107)
@@ -50,10 +50,11 @@
 	@Override
 	public HasObject hasObjectInfo(String reference) throws RetryException {
+		System.out.println("Hola soc un broker"+ getRef() + ", "+getUID()+ ", fil: "+Thread.currentThread().getId());
 		if (getBroker().getRemoteObjs().containsKey(reference)) {
 			RemoteObject r = getBroker().getRemoteObjs().get(reference);
 			int numThreads = r.getPool().getWorkers().size();
-			return new HasObject(this.getRef(), reference, true, numThreads);
+			return new HasObject(this.getUID(), reference, true, numThreads);
 		}
-		return new HasObject(this.getRef(), reference, false, 0);
+		return new HasObject(this.getUID(), reference, false, 0);
 	}
 
Index: branches/supervisor/src/main/java/omq/common/broker/RemoteMultiBroker.java
===================================================================
--- branches/supervisor/src/main/java/omq/common/broker/RemoteMultiBroker.java	(revision 106)
+++ branches/supervisor/src/main/java/omq/common/broker/RemoteMultiBroker.java	(revision 107)
@@ -1,5 +1,3 @@
 package omq.common.broker;
-
-import java.util.Set;
 
 import omq.Remote;
@@ -9,7 +7,4 @@
 
 public interface RemoteMultiBroker extends Remote {
-	@MultiMethod
-	@SyncMethod(retry = 1, timeout = 1000)
-	public Set<String> getRemoteObjects();
 
 	@MultiMethod
Index: branches/supervisor/src/main/java/omq/server/InvocationThread.java
===================================================================
--- branches/supervisor/src/main/java/omq/server/InvocationThread.java	(revision 106)
+++ branches/supervisor/src/main/java/omq/server/InvocationThread.java	(revision 107)
@@ -172,8 +172,4 @@
 		channel = broker.getNewChannel();
 
-		/*
-		 * Default queue, Round Robin behaviour
-		 */
-
 		// Get info about which exchange and queue will use
 		String exchange = env.getProperty(ParameterQueue.RPC_EXCHANGE, "");
@@ -242,4 +238,5 @@
 		 */
 
+		// Disable Round Robin behavior 
 		boolean autoAck = false;
 
Index: branches/supervisor/src/main/java/omq/server/MultiInvocationThread.java
===================================================================
--- branches/supervisor/src/main/java/omq/server/MultiInvocationThread.java	(revision 107)
+++ branches/supervisor/src/main/java/omq/server/MultiInvocationThread.java	(revision 107)
@@ -0,0 +1,5 @@
+package omq.server;
+
+public class MultiInvocationThread {
+
+}
Index: branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java
===================================================================
--- branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java	(revision 106)
+++ branches/supervisor/src/main/java/omq/supervisor/SupervisorImpl.java	(revision 107)
@@ -1,10 +1,10 @@
 package omq.supervisor;
 
-import java.util.ArrayList;
+import java.lang.reflect.Proxy;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import omq.client.proxy.Proxymq;
 import omq.common.broker.HasObject;
 import omq.common.broker.RemoteBroker;
@@ -15,6 +15,6 @@
 import org.apache.log4j.Logger;
 
+import com.rabbitmq.client.AMQP.Queue.DeclareOk;
 import com.rabbitmq.client.Channel;
-import com.rabbitmq.client.AMQP.Queue.DeclareOk;
 
 public class SupervisorImpl extends RemoteObject implements Supervisor, Runnable {
@@ -29,13 +29,11 @@
 	private long sleep;
 	private Map<String, OmqSettings> objectSettings;
-	// TODO: Set<?>
 	private RemoteMultiBroker multiBroker;
 	private Map<String, RemoteBroker> brokerMap;
-	private List<RemoteBroker> brokers;
 
 	public SupervisorImpl(String brokerSet, long sleep) {
 		this.brokerSet = brokerSet;
 		this.sleep = sleep;
-		brokers = new ArrayList<RemoteBroker>();
+		brokerMap = new HashMap<String, RemoteBroker>();
 		objectSettings = new HashMap<String, OmqSettings>();
 	}
@@ -72,5 +70,10 @@
 		if (brokerSet.equals(brokerSet) && !brokerMap.containsKey(brokerName)) {
 			logger.info("Broker " + brokerName + " subscrived");
-			RemoteBroker broker = getBroker().lookup(brokerName, RemoteBroker.class);
+			// RemoteBroker broker = getBroker().lookup(brokerSet,
+			// RemoteBroker.class);
+			Proxymq proxy = new Proxymq(brokerSet, RemoteBroker.class, getBroker());
+			Class<?>[] array = { RemoteBroker.class };
+			RemoteBroker broker = (RemoteBroker) Proxy.newProxyInstance(RemoteBroker.class.getClassLoader(), array, proxy);
+			broker.setUID(brokerName);
 			brokerMap.put(brokerSet, broker);
 		} else {
@@ -86,5 +89,28 @@
 			throw new Exception("JAJAJAJAJA");
 		}
+		
+		HasObject[] hasList = multiBroker.hasObjectInfo(reference);
+
+		int minObjects = settings.getMinNumberObjects();
+		int numBrokers = hasList.length;
+		int numObjects = 0;
+
+		for (HasObject h : hasList) {
+			if (h.hasObject()) {
+				numObjects++;
+			}
+		}
+		System.out.println("NumObjects " + numObjects + " numBrokers " + numBrokers);
+
+		int i = 0;
+		while (numObjects <= minObjects && i < numBrokers) {
+			HasObject h = hasList[i++];
+			if (h.hasObject()) {
+				brokerMap.get(h.getBrokerName()).spawnObject(reference, settings.getClassName());
+				numObjects++;
+			}
+		}
 		objectSettings.put(reference, settings);
+
 	}
 
@@ -114,14 +140,14 @@
 	@Override
 	public void unbindObject(OmqSettings settings, HasObject[] hasList, int numObjects) throws Exception {
-		String reference = settings.getReference();
-
-		int minObjects = settings.getMinNumberObjects();
-
-		for (RemoteBroker broker : brokers) {
-			if (broker.hasObject(reference) && (numObjects - 1) >= minObjects) {
-				broker.deleteObject(reference);
-				break;
-			}
-		}
+		// String reference = settings.getReference();
+		//
+		// int minObjects = settings.getMinNumberObjects();
+		//
+		// for (RemoteBroker broker : brokers) {
+		// if (broker.hasObject(reference) && (numObjects - 1) >= minObjects) {
+		// broker.deleteObject(reference);
+		// break;
+		// }
+		// }
 
 	}
@@ -166,12 +192,4 @@
 	}
 
-	public List<RemoteBroker> getBrokers() {
-		return brokers;
-	}
-
-	public void setBrokers(List<RemoteBroker> brokers) {
-		this.brokers = brokers;
-	}
-
 	public String getBrokerSet() {
 		return brokerSet;
Index: branches/supervisor/src/test/java/omq/test/supervisor/SleepTest.java
===================================================================
--- branches/supervisor/src/test/java/omq/test/supervisor/SleepTest.java	(revision 106)
+++ branches/supervisor/src/test/java/omq/test/supervisor/SleepTest.java	(revision 107)
@@ -25,6 +25,6 @@
 		env1.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
 		env1.setProperty(ParameterQueue.RABBIT_PORT, "5672");
-		env1.setProperty(ParameterQueue.MIN_POOL_THREADS, "4");
-		env1.setProperty(ParameterQueue.MAX_POOL_THREADS, "4");
+		env1.setProperty(ParameterQueue.MIN_POOL_THREADS, "1");
+		env1.setProperty(ParameterQueue.MAX_POOL_THREADS, "1");
 
 		Broker broker = new Broker(env1);
@@ -37,6 +37,6 @@
 		env2.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
 		env2.setProperty(ParameterQueue.RABBIT_PORT, "5672");
-		env2.setProperty(ParameterQueue.MIN_POOL_THREADS, "4");
-		env2.setProperty(ParameterQueue.MAX_POOL_THREADS, "4");
+		env2.setProperty(ParameterQueue.MIN_POOL_THREADS, "1");
+		env2.setProperty(ParameterQueue.MAX_POOL_THREADS, "1");
 
 		Broker broker2 = new Broker(env2);
Index: branches/supervisor/src/test/java/test/multi/Beer.java
===================================================================
--- branches/supervisor/src/test/java/test/multi/Beer.java	(revision 107)
+++ branches/supervisor/src/test/java/test/multi/Beer.java	(revision 107)
@@ -0,0 +1,17 @@
+package test.multi;
+
+import omq.Remote;
+import omq.client.annotation.AsyncMethod;
+import omq.client.annotation.MultiMethod;
+import omq.client.annotation.SyncMethod;
+
+public interface Beer extends Remote {
+	
+	@MultiMethod
+	@SyncMethod(retry = 1, timeout = 500)
+	public int getCl();
+	
+	@AsyncMethod
+	public void setCl(int cl);
+}
+
Index: branches/supervisor/src/test/java/test/multi/BeerImpl.java
===================================================================
--- branches/supervisor/src/test/java/test/multi/BeerImpl.java	(revision 107)
+++ branches/supervisor/src/test/java/test/multi/BeerImpl.java	(revision 107)
@@ -0,0 +1,24 @@
+package test.multi;
+
+import omq.server.RemoteObject;
+
+public class BeerImpl extends RemoteObject implements Beer {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int cl;
+
+	@Override
+	public int getCl() {
+		return cl;
+	}
+
+	@Override
+	public void setCl(int cl) {
+		this.cl = cl;
+	}
+
+}
Index: branches/supervisor/src/test/java/test/multi/BeerTest.java
===================================================================
--- branches/supervisor/src/test/java/test/multi/BeerTest.java	(revision 107)
+++ branches/supervisor/src/test/java/test/multi/BeerTest.java	(revision 107)
@@ -0,0 +1,55 @@
+package test.multi;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Properties;
+
+import omq.common.broker.Broker;
+import omq.common.util.ParameterQueue;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class BeerTest {
+
+	private static Broker broker;
+	private static ClientBeer beer;
+
+	@BeforeClass
+	public static void server() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
+		
+		Broker b1 = new Broker(env);
+		Broker b2 = new Broker(env);
+		
+		b1.bind("beer", new BeerImpl());
+		b2.bind("beer", new BeerImpl());
+		System.out.println("Server started");
+	}
+	
+	
+	@Test
+	public void test() throws Exception{
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
+		broker = new Broker(env);
+		beer = broker.lookup("beer", ClientBeer.class);
+		
+		beer.setCl(25);
+		Thread.sleep(500);
+		beer.setCl(33);
+		Thread.sleep(500);
+		assertEquals(2, beer.getCl().length);
+	}
+}
Index: branches/supervisor/src/test/java/test/multi/ClientBeer.java
===================================================================
--- branches/supervisor/src/test/java/test/multi/ClientBeer.java	(revision 107)
+++ branches/supervisor/src/test/java/test/multi/ClientBeer.java	(revision 107)
@@ -0,0 +1,15 @@
+package test.multi;
+
+import omq.Remote;
+import omq.client.annotation.AsyncMethod;
+import omq.client.annotation.MultiMethod;
+import omq.client.annotation.SyncMethod;
+
+public interface ClientBeer extends Remote{
+	@MultiMethod
+	@SyncMethod(retry = 1, timeout = 500)
+	public int[] getCl();
+	
+	@AsyncMethod
+	public void setCl(int cl);
+}
Index: branches/supervisor/src/test/java/test/multiBroker/MultiBrokerTest.java
===================================================================
--- branches/supervisor/src/test/java/test/multiBroker/MultiBrokerTest.java	(revision 107)
+++ branches/supervisor/src/test/java/test/multiBroker/MultiBrokerTest.java	(revision 107)
@@ -0,0 +1,58 @@
+package test.multiBroker;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Properties;
+
+import omq.common.broker.Broker;
+import omq.common.broker.RemoteBroker;
+import omq.common.broker.RemoteBrokerImpl;
+import omq.common.broker.RemoteMultiBroker;
+import omq.common.util.ParameterQueue;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class MultiBrokerTest {
+
+	private static Broker broker;
+	private static RemoteMultiBroker multiBroker;
+	private static RemoteBroker brokerProxy;
+
+	@BeforeClass
+	public static void server() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
+		env.setProperty(ParameterQueue.MIN_POOL_THREADS, "1");
+		env.setProperty(ParameterQueue.MAX_POOL_THREADS, "1");
+		
+		Broker b1 = new Broker(env);
+		Broker b2 = new Broker(env);
+		
+		b1.bind("broker", "broker1", new RemoteBrokerImpl());
+		b2.bind("broker", "broker2", new RemoteBrokerImpl());
+		System.out.println("Server started");
+	}
+	
+	
+	@Test
+	public void test() throws Exception{
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
+		broker = new Broker(env);
+		multiBroker = broker.lookup("broker", RemoteMultiBroker.class);
+//		brokerProxy = broker.lookup("broker", RemoteBroker.class);
+		
+		assertEquals(2, multiBroker.hasObjectInfo("hola").length);
+	}
+}
Index: branches/supervisor/src/test/java/test/queues/Beer.java
===================================================================
--- branches/supervisor/src/test/java/test/queues/Beer.java	(revision 107)
+++ branches/supervisor/src/test/java/test/queues/Beer.java	(revision 107)
@@ -0,0 +1,8 @@
+package test.queues;
+
+import omq.Remote;
+
+public interface Beer extends Remote{
+	public int getCl();
+	public void setCl(int cl);
+}
Index: branches/supervisor/src/test/java/test/queues/BeerImpl.java
===================================================================
--- branches/supervisor/src/test/java/test/queues/BeerImpl.java	(revision 107)
+++ branches/supervisor/src/test/java/test/queues/BeerImpl.java	(revision 107)
@@ -0,0 +1,25 @@
+package test.queues;
+
+import omq.server.RemoteObject;
+
+public class BeerImpl extends RemoteObject implements Beer {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int cl;
+
+	@Override
+	public int getCl() {
+		System.out.println("Hola soc una birra" + getRef() + ", " + getUID() + ", fil: " + Thread.currentThread().getId());
+		return cl;
+	}
+
+	@Override
+	public void setCl(int cl) {
+		this.cl = cl;
+	}
+
+}
Index: branches/supervisor/src/test/java/test/queues/BeerTest.java
===================================================================
--- branches/supervisor/src/test/java/test/queues/BeerTest.java	(revision 107)
+++ branches/supervisor/src/test/java/test/queues/BeerTest.java	(revision 107)
@@ -0,0 +1,60 @@
+package test.queues;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Properties;
+
+import omq.common.broker.Broker;
+import omq.common.util.ParameterQueue;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class BeerTest {
+
+	private static Broker broker;
+
+	@BeforeClass
+	public static void server() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Get host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
+
+		Broker b1 = new Broker(env);
+		Broker b2 = new Broker(env);
+
+		b1.bind("beer", "beer1", new BeerImpl());
+		b2.bind("beer", "beer2", new BeerImpl());
+		System.out.println("Server started");
+	}
+
+	@Test
+	public void test() throws Exception {
+		Properties env = new Properties();
+		env.setProperty(ParameterQueue.USER_NAME, "guest");
+		env.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbimq (where it is)
+		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
+		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
+		broker = new Broker(env);
+		Beer beer1 = broker.lookup("beer", Beer.class);
+		beer1.setUID("beer1");
+		Beer beer2 = broker.lookup("beer", Beer.class);
+		beer2.setUID("beer2");
+		
+		beer1.setCl(25);
+		beer2.setCl(33);
+
+		Thread.sleep(500);
+
+		assertEquals(25, beer1.getCl());
+		assertEquals(33, beer2.getCl());
+		// Thread.sleep(500000);
+
+	}
+}
Index: branches/supervisor/target/classes/log4j.xml
===================================================================
--- branches/supervisor/target/classes/log4j.xml	(revision 107)
+++ branches/supervisor/target/classes/log4j.xml	(revision 107)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
+        <param name="Threshold" value="DEBUG" />
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d{[yyyy-MM-dd HH:mm:ss]} %-5p %c:%L - %m%n" />
+        </layout>
+    </appender>
+
+    <appender class="org.apache.log4j.rolling.RollingFileAppender" name="A2">
+        <param value="true" name="append"/>
+        <param value="logs/objectmq-temp.log" name="File"/>
+
+        <rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
+            <param name="fileNamePattern" value="logs/objectmq-%i.log" />
+            <param name="MinIndex" value="0"/> 
+            <param name="MaxIndex" value="1"/> 
+        </rollingPolicy>
+        
+        <triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy"> 
+            <param name="MaxFileSize" value="10000000"/> 
+        </triggeringPolicy> 
+        
+        <layout class="org.apache.log4j.PatternLayout">
+            <param value="%d{[yyyy-MM-dd HH:mm:ss]} %-5p %c:%L - %m%n" name="ConversionPattern"/>
+        </layout>        
+    </appender>
+
+  <root> 
+    <priority value ="DEBUG" /> 
+    <appender-ref ref="consoleAppender" />
+    <appender-ref ref="A2" />  
+  </root>
+  
+</log4j:configuration>
