diff --git a/.classpath b/.classpath
index fd307b509eafb5c6d0ae946fa9ebb6b00d730614..60252b002326b29ed1af03b50e72cf86555a0cab 100644
--- a/.classpath
+++ b/.classpath
@@ -1,38 +1,38 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" path="src/performancetest/java"/>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" path="conf"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" path="src/performancetest/java"/>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" path="conf"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 28f559fe7e7a625102643ff06297cba345e9adb1..db2cf951f0e1df06eda81efc054aae16abbe172f 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,387 +1,387 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,LOW
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,BETTER
-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_lambda_body=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=165
-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=1
-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_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=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=do not 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=do not 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_lambda_arrow=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_lambda_arrow=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=false
-org.eclipse.jdt.core.formatter.join_wrapped_lines=false
-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=165
-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
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,BETTER
+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_lambda_body=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=165
+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=1
+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_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=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=do not 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=do not 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_lambda_arrow=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_lambda_arrow=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=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+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=165
+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
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f5c99a7f6655acb89125f8623b27ce1001d82b75
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1 @@
+language: java
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 58ff7143640d9c18c15411e62537a079469cadc7..848195e22fc20bdf29c53e5937750a363f0a3367 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,369 +1,371 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<groupId>net.sourceforge.teetime-stages</groupId>
-	<artifactId>teetime-stages</artifactId>
-	<version>2.1-SNAPSHOT</version>
-	<packaging>jar</packaging>
-
-	<name>TeeTime-Stages</name>
-	<inceptionYear>2015</inceptionYear>
-	<url>http://teetime-framework.github.io</url>
-	<description>Kieker specific stages for the TeeTime framework</description>
-
-	<licenses>
-		<license>
-			<name>Apache License, Version 2.0</name>
-			<url>http://christianwulf.github.io/teetime/LICENSE.txt</url>
-		</license>
-	</licenses>
-
-	<properties>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<java.version>1.8</java.version>
-	</properties>
-
-
-	<repositories>
-		<repository>
-			<!-- for SNAPSHOT versions -->
-			<id>sonatype.oss.snapshots</id>
-			<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
-		</repository>
-	</repositories>
-
-	<distributionManagement>
-		<snapshotRepository>
-			<id>teetime-deployment</id>
-			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
-		</snapshotRepository>
-		<repository>
-			<id>teetime-deployment</id>
-			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
-		</repository>
-	</distributionManagement>
-
-	<developers>
-		<developer>
-			<id>chw</id>
-			<name>Christian Wulf</name>
-			<email>chw@informatik.uni-kiel.de</email>
-			<organization>Christian-Albrechts-Universitaet zu Kiel</organization>
-			<organizationUrl>http://www.se.informatik.uni-kiel.de/en/team/christian-wulf</organizationUrl>
-		</developer>
-		<developer>
-			<id>ntd</id>
-			<name>Nelson Tavares de Sousa</name>
-			<email>ntd@informatik.uni-kiel.de</email>
-			<organization>Christian-Albrechts-Universitaet zu Kiel</organization>
-			<organizationUrl>http://www.se.uni-kiel.de/en</organizationUrl>
-		</developer>
-	</developers>
-
-	<scm>
-		<connection>scm:git:https://build.se.informatik.uni-kiel.de/gitlab/chw/teetime.git</connection>
-		<developerConnection>scm:git:ssh://gitlab@build.se.informatik.uni-kiel.de:chw/teetime.git</developerConnection>
-		<url>https://build.se.informatik.uni-kiel.de/gitlab/chw/teetime/</url>
-	</scm>
-
-	<dependencies>
-		<dependency>
-			<groupId>net.sourceforge.teetime</groupId>
-			<artifactId>teetime</artifactId>
-			<version>2.1-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>net.kieker-monitoring</groupId>
-			<artifactId>kieker</artifactId>
-			<version>1.11</version>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.11</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.hamcrest</groupId>
-			<artifactId>hamcrest-library</artifactId>
-			<version>1.3</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-api</artifactId>
-			<version>1.7.7</version>
-		</dependency>
-		<dependency>
-			<groupId>ch.qos.logback</groupId>
-			<artifactId>logback-classic</artifactId>
-			<version>1.1.2</version>
-			<scope>runtime</scope>
-		</dependency>
-		<dependency>
-			<groupId>com.google.guava</groupId>
-			<artifactId>guava</artifactId>
-			<version>18.0</version>
-		</dependency>
-		<dependency>
-			<groupId>com.tinkerpop.blueprints</groupId>
-			<artifactId>blueprints-core</artifactId>
-			<version>2.6.0</version>
-		</dependency>
-	</dependencies>
-
-	<build>
-		<plugins>
-
-			<!-- we want JDK 1.6 source and binary compatibility -->
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.1</version>
-
-				<configuration>
-					<source>${java.version}</source>
-					<target>${java.version}</target>
-				</configuration>
-			</plugin>
-
-			<!-- goals to check for plugin updates: versions:display-plugin-updates -->
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>versions-maven-plugin</artifactId>
-				<version>2.1</version>
-			</plugin>
-
-			<!-- goals to build a jar with binaries: jar:jar, jar:test-jar -->
-			<!-- <plugin> -->
-			<!-- <groupId>org.apache.maven.plugins</groupId> -->
-			<!-- <artifactId>maven-jar-plugin</artifactId> -->
-			<!-- <version>2.5</version> -->
-			<!-- <executions> -->
-			<!-- <execution> -->
-			<!-- <goals> -->
-			<!-- <goal>test-jar</goal> -->
-			<!-- </goals> -->
-			<!-- </execution> -->
-			<!-- </executions> -->
-			<!-- </plugin> -->
-
-			<!-- copies all dependencies as separate jars into the target folder -->
-			<!-- <plugin> -->
-			<!-- <groupId>org.apache.maven.plugins</groupId> -->
-			<!-- <artifactId>maven-dependency-plugin</artifactId> -->
-			<!-- <version>2.10</version> -->
-			<!-- <executions> -->
-			<!-- <execution> -->
-			<!-- <id>copy-dependencies</id> -->
-			<!-- <phase>package</phase> -->
-			<!-- <goals> -->
-			<!-- <goal>copy-dependencies</goal> -->
-			<!-- </goals> -->
-			<!-- </execution> -->
-			<!-- </executions> -->
-			<!-- </plugin> -->
-
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-source-plugin</artifactId>
-				<version>2.2.1</version>
-				<executions>
-					<execution>
-						<id>attach-sources</id>
-						<goals>
-							<goal>jar-no-fork</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-javadoc-plugin</artifactId>
-				<version>2.9.1</version>
-				<configuration>
-					<failOnError>false</failOnError>
-				</configuration>
-				<executions>
-					<execution>
-						<id>attach-javadocs</id>
-						<goals>
-							<goal>jar</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-
-			<plugin>
-				<groupId>org.sonatype.plugins</groupId>
-				<artifactId>nexus-staging-maven-plugin</artifactId>
-				<version>1.6.3</version>
-				<extensions>true</extensions>
-				<configuration>
-					<serverId>teetime-deployment</serverId>
-					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
-					<autoReleaseAfterClose>false</autoReleaseAfterClose>
-				</configuration>
-			</plugin>
-
-			<!-- Checkstyle -->
-			<!-- <plugin> -->
-			<!-- <groupId>org.apache.maven.plugins</groupId> -->
-			<!-- <artifactId>maven-checkstyle-plugin</artifactId> -->
-			<!-- <version>2.12</version> -->
-			<!-- <executions> -->
-			<!-- <execution> -->
-			<!-- <phase>test</phase> -->
-			<!-- <goals> -->
-			<!-- <goal>check</goal> -->
-			<!-- </goals> -->
-			<!-- <configuration> -->
-			<!-- <configLocation>${project.basedir}/conf/quality-config/cs-conf.xml</configLocation> -->
-			<!-- <includeTestSourceDirectory>true</includeTestSourceDirectory> -->
-			<!-- <encoding>UTF-8</encoding> -->
-			<!-- <consoleOutput>true</consoleOutput> -->
-			<!-- <failsOnError>false</failsOnError> -->
-			<!-- <failOnViolation>false</failOnViolation> -->
-			<!-- <linkXRef>false</linkXRef> -->
-			<!-- </configuration> -->
-			<!-- </execution> -->
-			<!-- </executions> -->
-			<!-- </plugin> -->
-
-			<!-- Findbugs -->
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>findbugs-maven-plugin</artifactId>
-				<version>3.0.0</version>
-				<configuration>
-					<effort>Max</effort>
-					<threshold>Low</threshold>
-					<includeTests>true</includeTests>
-					<failOnError>false</failOnError>
-					<excludeFilterFile>${project.basedir}/conf/quality-config/fb-filter.xml</excludeFilterFile>
-				</configuration>
-				<executions>
-					<execution>
-						<phase>test</phase>
-						<goals>
-							<goal>findbugs</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-
-			<!-- PMD -->
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-pmd-plugin</artifactId>
-				<version>3.2</version>
-				<configuration>
-					<rulesets>
-						<ruleset>${project.basedir}/conf/quality-config/pmd-ruleset.xml</ruleset>
-					</rulesets>
-					<includeTests>true</includeTests>
-					<targetJdk>${java.version}</targetJdk>
-					<failOnError>false</failOnError>
-				</configuration>
-				<executions>
-					<execution>
-						<phase>test</phase>
-						<goals>
-							<goal>pmd</goal>
-							<goal>cpd</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-
-
-			<!-- Copyright Header -->
-			<plugin>
-				<groupId>com.mycila</groupId>
-				<artifactId>license-maven-plugin</artifactId>
-				<version>2.7</version>
-				<configuration>
-					<header>com/mycila/maven/plugin/license/templates/APACHE-2.txt</header>
-					<properties>
-						<owner>Christian Wulf, Nelson Tavares de Sousa</owner>
-						<email>http://christianwulf.github.io/teetime</email>
-					</properties>
-					<includes>
-						<include>**/*.java</include>
-					</includes>
-				</configuration>
-				<executions>
-					<execution>
-						<phase>test</phase>
-						<goals>
-							<goal>format</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-
-
-
-	<profiles>
-		<profile>
-			<id>performancetest</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.codehaus.mojo</groupId>
-						<artifactId>build-helper-maven-plugin</artifactId>
-						<version>1.9.1</version>
-						<executions>
-							<execution>
-								<id>add-test-source</id>
-								<phase>generate-test-sources</phase>
-								<goals>
-									<goal>add-test-source</goal>
-								</goals>
-								<configuration>
-									<sources>
-										<source>src/performancetest/java</source>
-									</sources>
-								</configuration>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-			<activation>
-			</activation>
-		</profile>
-		<profile>
-			<id>signing</id>
-			<activation>
-				<property>
-					<name>sign-jars</name>
-					<value>true</value>
-				</property>
-			</activation>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-gpg-plugin</artifactId>
-						<version>1.5</version>
-						<executions>
-							<execution>
-								<id>sign-artifacts</id>
-								<phase>verify</phase>
-								<goals>
-									<goal>sign</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
-
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>net.sourceforge.teetime-stages</groupId>
+	<artifactId>teetime-stages</artifactId>
+	<version>2.1-SNAPSHOT</version>
+	<packaging>jar</packaging>
+
+	<name>TeeTime-Stages</name>
+	<inceptionYear>2015</inceptionYear>
+	<url>http://teetime-framework.github.io</url>
+	<description>Kieker specific stages for the TeeTime framework</description>
+
+	<licenses>
+		<license>
+			<name>Apache License, Version 2.0</name>
+			<url>http://christianwulf.github.io/teetime/LICENSE.txt</url>
+		</license>
+	</licenses>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<java.version>1.6</java.version>
+	</properties>
+
+
+	<repositories>
+		<repository>
+			<!-- for SNAPSHOT versions -->
+			<id>sonatype.oss.snapshots</id>
+			<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
+		</repository>
+	</repositories>
+
+	<distributionManagement>
+		<snapshotRepository>
+			<id>teetime-deployment</id>
+			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
+		</snapshotRepository>
+		<repository>
+			<id>teetime-deployment</id>
+			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
+		</repository>
+	</distributionManagement>
+
+	<developers>
+		<developer>
+			<id>chw</id>
+			<name>Christian Wulf</name>
+			<email>chw@informatik.uni-kiel.de</email>
+			<organization>Christian-Albrechts-Universitaet zu Kiel</organization>
+			<organizationUrl>http://www.se.informatik.uni-kiel.de/en/team/christian-wulf</organizationUrl>
+		</developer>
+		<developer>
+			<id>ntd</id>
+			<name>Nelson Tavares de Sousa</name>
+			<email>ntd@informatik.uni-kiel.de</email>
+			<organization>Christian-Albrechts-Universitaet zu Kiel</organization>
+			<organizationUrl>http://www.se.uni-kiel.de/en</organizationUrl>
+		</developer>
+	</developers>
+
+	<scm>
+		<connection>scm:git:https://build.se.informatik.uni-kiel.de/gitlab/chw/teetime.git</connection>
+		<developerConnection>scm:git:ssh://gitlab@build.se.informatik.uni-kiel.de:chw/teetime.git</developerConnection>
+		<url>https://build.se.informatik.uni-kiel.de/gitlab/chw/teetime/</url>
+	</scm>
+
+	<dependencies>
+		<dependency>
+			<groupId>net.sourceforge.teetime</groupId>
+			<artifactId>teetime</artifactId>
+			<version>2.1-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>net.kieker-monitoring</groupId>
+			<artifactId>kieker</artifactId>
+			<version>1.11</version>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.11</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.hamcrest</groupId>
+			<artifactId>hamcrest-library</artifactId>
+			<version>1.3</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>1.7.7</version>
+		</dependency>
+		<dependency>
+			<groupId>ch.qos.logback</groupId>
+			<artifactId>logback-classic</artifactId>
+			<version>1.1.2</version>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.google.guava</groupId>
+			<artifactId>guava</artifactId>
+			<version>18.0</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.19.1</version>
+				<configuration>
+					<forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
+				</configuration>
+			</plugin>
+			<!-- we want JDK 1.6 source and binary compatibility -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.1</version>
+
+				<configuration>
+					<source>${java.version}</source>
+					<target>${java.version}</target>
+				</configuration>
+			</plugin>
+
+			<!-- goals to check for plugin updates: versions:display-plugin-updates -->
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>versions-maven-plugin</artifactId>
+				<version>2.1</version>
+			</plugin>
+
+			<!-- goals to build a jar with binaries: jar:jar, jar:test-jar -->
+			<!-- <plugin> -->
+			<!-- <groupId>org.apache.maven.plugins</groupId> -->
+			<!-- <artifactId>maven-jar-plugin</artifactId> -->
+			<!-- <version>2.5</version> -->
+			<!-- <executions> -->
+			<!-- <execution> -->
+			<!-- <goals> -->
+			<!-- <goal>test-jar</goal> -->
+			<!-- </goals> -->
+			<!-- </execution> -->
+			<!-- </executions> -->
+			<!-- </plugin> -->
+
+			<!-- copies all dependencies as separate jars into the target folder -->
+			<!-- <plugin> -->
+			<!-- <groupId>org.apache.maven.plugins</groupId> -->
+			<!-- <artifactId>maven-dependency-plugin</artifactId> -->
+			<!-- <version>2.10</version> -->
+			<!-- <executions> -->
+			<!-- <execution> -->
+			<!-- <id>copy-dependencies</id> -->
+			<!-- <phase>package</phase> -->
+			<!-- <goals> -->
+			<!-- <goal>copy-dependencies</goal> -->
+			<!-- </goals> -->
+			<!-- </execution> -->
+			<!-- </executions> -->
+			<!-- </plugin> -->
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+				<version>2.2.1</version>
+				<executions>
+					<execution>
+						<id>attach-sources</id>
+						<goals>
+							<goal>jar-no-fork</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<version>2.9.1</version>
+				<configuration>
+					<failOnError>false</failOnError>
+				</configuration>
+				<executions>
+					<execution>
+						<id>attach-javadocs</id>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<groupId>org.sonatype.plugins</groupId>
+				<artifactId>nexus-staging-maven-plugin</artifactId>
+				<version>1.6.3</version>
+				<extensions>true</extensions>
+				<configuration>
+					<serverId>teetime-deployment</serverId>
+					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
+					<autoReleaseAfterClose>false</autoReleaseAfterClose>
+				</configuration>
+			</plugin>
+
+			<!-- Checkstyle -->
+			<!-- <plugin> -->
+			<!-- <groupId>org.apache.maven.plugins</groupId> -->
+			<!-- <artifactId>maven-checkstyle-plugin</artifactId> -->
+			<!-- <version>2.12</version> -->
+			<!-- <executions> -->
+			<!-- <execution> -->
+			<!-- <phase>test</phase> -->
+			<!-- <goals> -->
+			<!-- <goal>check</goal> -->
+			<!-- </goals> -->
+			<!-- <configuration> -->
+			<!-- <configLocation>${project.basedir}/conf/quality-config/cs-conf.xml</configLocation> -->
+			<!-- <includeTestSourceDirectory>true</includeTestSourceDirectory> -->
+			<!-- <encoding>UTF-8</encoding> -->
+			<!-- <consoleOutput>true</consoleOutput> -->
+			<!-- <failsOnError>false</failsOnError> -->
+			<!-- <failOnViolation>false</failOnViolation> -->
+			<!-- <linkXRef>false</linkXRef> -->
+			<!-- </configuration> -->
+			<!-- </execution> -->
+			<!-- </executions> -->
+			<!-- </plugin> -->
+
+			<!-- Findbugs -->
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>findbugs-maven-plugin</artifactId>
+				<version>3.0.0</version>
+				<configuration>
+					<effort>Max</effort>
+					<threshold>Low</threshold>
+					<includeTests>true</includeTests>
+					<failOnError>false</failOnError>
+					<excludeFilterFile>${project.basedir}/conf/quality-config/fb-filter.xml</excludeFilterFile>
+				</configuration>
+				<executions>
+					<execution>
+						<phase>test</phase>
+						<goals>
+							<goal>findbugs</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+			<!-- PMD -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-pmd-plugin</artifactId>
+				<version>3.2</version>
+				<configuration>
+					<rulesets>
+						<ruleset>${project.basedir}/conf/quality-config/pmd-ruleset.xml</ruleset>
+					</rulesets>
+					<includeTests>true</includeTests>
+					<targetJdk>${java.version}</targetJdk>
+					<failOnError>false</failOnError>
+				</configuration>
+				<executions>
+					<execution>
+						<phase>test</phase>
+						<goals>
+							<goal>pmd</goal>
+							<goal>cpd</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+
+			<!-- Copyright Header -->
+			<plugin>
+				<groupId>com.mycila</groupId>
+				<artifactId>license-maven-plugin</artifactId>
+				<version>2.7</version>
+				<configuration>
+					<header>com/mycila/maven/plugin/license/templates/APACHE-2.txt</header>
+					<properties>
+						<owner>Christian Wulf, Nelson Tavares de Sousa</owner>
+						<email>http://teetime-framework.github.io</email>
+					</properties>
+					<includes>
+						<include>**/*.java</include>
+					</includes>
+				</configuration>
+				<executions>
+					<execution>
+						<phase>test</phase>
+						<goals>
+							<goal>format</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+
+
+	<profiles>
+		<profile>
+			<id>performancetest</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>build-helper-maven-plugin</artifactId>
+						<version>1.9.1</version>
+						<executions>
+							<execution>
+								<id>add-test-source</id>
+								<phase>generate-test-sources</phase>
+								<goals>
+									<goal>add-test-source</goal>
+								</goals>
+								<configuration>
+									<sources>
+										<source>src/performancetest/java</source>
+									</sources>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+			<activation>
+			</activation>
+		</profile>
+		<profile>
+			<id>signing</id>
+			<activation>
+				<property>
+					<name>sign-jars</name>
+					<value>true</value>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-gpg-plugin</artifactId>
+						<version>1.5</version>
+						<executions>
+							<execution>
+								<id>sign-artifacts</id>
+								<phase>verify</phase>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+
+</project>
diff --git a/src/main/java/kieker/analysis/TraceAnalysis.java b/src/main/java/kieker/analysis/TraceAnalysis.java
index 2be3f3291dde9d61b42e3c9b1df89633a283c613..c0f18e61bcda17afe6c28af9c7ae904813f4d48e 100644
--- a/src/main/java/kieker/analysis/TraceAnalysis.java
+++ b/src/main/java/kieker/analysis/TraceAnalysis.java
@@ -1,44 +1,44 @@
-/**
- *
- */
-package kieker.analysis;
-
-import java.io.File;
-
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
-
-import teetime.framework.Execution;
-
-/**
- *
- */
-public final class TraceAnalysis {
-
-	public static void main(final String[] args) {
-
-		// TODO Temp
-		File importDirectory = new File("example/event monitoring log");
-
-		final TraceAnalysisConfiguration traceAnalysisConfiguration = new TraceAnalysisConfiguration(importDirectory);
-		final Execution<TraceAnalysisConfiguration> analysis = new Execution<>(traceAnalysisConfiguration);
-		analysis.executeBlocking();
-
-		/*
-		 *
-		 *
-		 *
-		 * TODO
-		 */
-
-		Graph graph = new TinkerGraph();
-
-		Vertex vertex = graph.addVertex(101);
-
-		Edge edge = vertex.addEdge("Label", vertex);
-
-	}
-
-}
+/**
+ *
+ */
+package kieker.analysis;
+
+import java.io.File;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.Vertex;
+import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
+
+import teetime.framework.Execution;
+
+/**
+ *
+ */
+public final class TraceAnalysis {
+
+	public static void main(final String[] args) {
+
+		// TODO Temp
+		File importDirectory = new File("example/event monitoring log");
+
+		final TraceAnalysisConfiguration traceAnalysisConfiguration = new TraceAnalysisConfiguration(importDirectory);
+		final Execution<TraceAnalysisConfiguration> analysis = new Execution<>(traceAnalysisConfiguration);
+		analysis.executeBlocking();
+
+		/*
+		 *
+		 *
+		 *
+		 * TODO
+		 */
+
+		Graph graph = new TinkerGraph();
+
+		Vertex vertex = graph.addVertex(101);
+
+		Edge edge = vertex.addEdge("Label", vertex);
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
index 11de06acc784a021d2389717dbd2c4fdb37d7e37..e78b6a3561d27758714121ac2a4052b332ef6d1d 100644
--- a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
+++ b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
@@ -1,155 +1,155 @@
-/**
- *
- */
-package kieker.analysis;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.tinkerpop.blueprints.Graph;
-
-import kieker.analysis.dev.DependencyCreatorStage;
-import kieker.analysis.dev.DependencyStatisticsDecoratorStage;
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.domain.AggregatedTrace;
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-import kieker.analysis.stage.tracediagnosis.AllowedRecordsFilter;
-import kieker.analysis.stage.tracediagnosis.BeginEndOfMonitoringDetector;
-import kieker.analysis.stage.tracediagnosis.OperationCallHandlerComposite;
-import kieker.analysis.stage.tracediagnosis.ReadingComposite;
-import kieker.analysis.stage.tracediagnosis.TraceAggregationComposite;
-import kieker.analysis.stage.tracediagnosis.TraceReconstructionComposite;
-import kieker.analysis.trace.graphoutput.DotGraphWriter;
-import kieker.analysis.trace.graphoutput.GraphMLWriter;
-import kieker.analysis.trace.traversal.AggrTraceTraverserStage;
-import kieker.analysis.trace.traversal.TraceTraverserStage;
-import kieker.analysis.util.graph.NamedGraph;
-import kieker.common.record.IMonitoringRecord;
-import kieker.common.record.misc.KiekerMetadataRecord;
-
-import teetime.framework.Configuration;
-import teetime.stage.CollectorSink;
-import teetime.stage.MultipleInstanceOfFilter;
-import teetime.stage.basic.distributor.Distributor;
-import teetime.stage.basic.distributor.strategy.CopyByReferenceStrategy;
-
-/**
- *
- */
-
-public class TraceAnalysisConfiguration extends Configuration {
-
-	private final List<OperationCall> operationCalls = new ArrayList<>(1000);
-	private final List<AggregatedOperationCall> aggregatedOperationCalls = new ArrayList<>(1000);
-
-	private final List<KiekerMetadataRecord> metadataRecords = new ArrayList<>(1000);
-	private final TraceReconstructionComposite reconstruction;
-	private final BeginEndOfMonitoringDetector beginEndOfMonitoringDetector;
-	private final AllowedRecordsFilter allowedRecordsFilter;
-
-	public TraceAnalysisConfiguration(final File importDirectory) {
-		// Create the stages
-		final ReadingComposite reader = new ReadingComposite(importDirectory);
-		final MultipleInstanceOfFilter<IMonitoringRecord> typeFilter = new MultipleInstanceOfFilter<>();
-		final Distributor<Trace> distributor = new Distributor<>(new CopyByReferenceStrategy());
-		final TraceAggregationComposite aggregation = new TraceAggregationComposite();
-		final CollectorSink<KiekerMetadataRecord> metadataCollector = new CollectorSink<>(this.metadataRecords);
-		final OperationCallHandlerComposite operationCallHandler = new OperationCallHandlerComposite(this.operationCalls, this.aggregatedOperationCalls);
-
-		this.allowedRecordsFilter = new AllowedRecordsFilter();
-		this.beginEndOfMonitoringDetector = new BeginEndOfMonitoringDetector();
-		this.reconstruction = new TraceReconstructionComposite(true); // TODO Temp. Get Data from PropertyModel
-
-		// Connect the stages
-		super.connectPorts(reader.getOutputPort(), allowedRecordsFilter.getInputPort());
-		super.connectPorts(allowedRecordsFilter.getOutputPort(), typeFilter.getInputPort());
-		super.connectPorts(typeFilter.getOutputPortForType(IMonitoringRecord.class), this.beginEndOfMonitoringDetector.getInputPort());
-		super.connectPorts(this.beginEndOfMonitoringDetector.getOutputPort(), this.reconstruction.getInputPort());
-		super.connectPorts(this.reconstruction.getOutputPort(), distributor.getInputPort());
-		super.connectPorts(distributor.getNewOutputPort(), operationCallHandler.getInputPort());
-		super.connectPorts(distributor.getNewOutputPort(), aggregation.getInputPort());
-		super.connectPorts(typeFilter.getOutputPortForType(KiekerMetadataRecord.class), metadataCollector.getInputPort());
-
-		// Graph Creation
-		// TODO move to own composite(s)
-
-		String graphFilesOutputDir = "example/event monitoring log/output"; // TODO Temp hard coded
-
-		TraceTraverserStage traceTraverserStage = new TraceTraverserStage();
-		final Distributor<NamedGraph<Graph>> graphDistributor = new Distributor<>(new CopyByReferenceStrategy());
-		GraphMLWriter graphMLWriter = new GraphMLWriter(graphFilesOutputDir);
-		DotGraphWriter dotGraphWriter = new DotGraphWriter(graphFilesOutputDir);
-
-		super.connectPorts(distributor.getNewOutputPort(), traceTraverserStage.getInputPort());
-		super.connectPorts(traceTraverserStage.getOutputPort(), graphDistributor.getInputPort());
-		super.connectPorts(graphDistributor.getNewOutputPort(), graphMLWriter.getInputPort());
-		super.connectPorts(graphDistributor.getNewOutputPort(), dotGraphWriter.getInputPort());
-
-		final Distributor<AggregatedTrace> aggregatedTraceDistributor = new Distributor<>(new CopyByReferenceStrategy());
-		AggrTraceTraverserStage aggrTraceTraverser = new AggrTraceTraverserStage();
-		final Distributor<NamedGraph<Graph>> graphDistributor2 = new Distributor<>(new CopyByReferenceStrategy());
-		GraphMLWriter graphMLWriter2 = new GraphMLWriter(graphFilesOutputDir);
-		DotGraphWriter dotGraphWriter2 = new DotGraphWriter(graphFilesOutputDir);
-
-		super.connectPorts(aggregation.getOutputPort(), aggregatedTraceDistributor.getInputPort());
-
-		super.connectPorts(aggregatedTraceDistributor.getNewOutputPort(), aggrTraceTraverser.getInputPort());
-		super.connectPorts(aggrTraceTraverser.getOutputPort(), graphDistributor2.getInputPort());
-		super.connectPorts(graphDistributor2.getNewOutputPort(), graphMLWriter2.getInputPort());
-		super.connectPorts(graphDistributor2.getNewOutputPort(), dotGraphWriter2.getInputPort());
-
-		DependencyCreatorStage dependencyCreatorStage = new DependencyCreatorStage();
-		DependencyStatisticsDecoratorStage dependencyStatisticsDecoratorStage = new DependencyStatisticsDecoratorStage();
-		super.connectPorts(aggregatedTraceDistributor.getNewOutputPort(), dependencyCreatorStage.getInputPort());
-		super.connectPorts(dependencyCreatorStage.getOutputPort(), dependencyStatisticsDecoratorStage.getInputPort());
-
-		/*
-		 *
-		 *
-		 */
-
-		// TODO Temp Some examples for nested graphs
-		//
-		// final NestedGraphFactory nestedGraphFactory = new NestedGraphFactory();
-		// final ObjectProducer<NestedGraph<Graph>> nestedGraphProducerStage = new ObjectProducer<>(1, nestedGraphFactory);
-		// final NestedGraphPrinterStage nestedGraphPrinterStage = new NestedGraphPrinterStage();
-		//
-		// super.connectPorts(nestedGraphProducerStage.getOutputPort(), nestedGraphPrinterStage.getInputPort());
-
-	}
-
-	public long getBeginTimestamp() {
-		return this.beginEndOfMonitoringDetector.getBeginTimestamp();
-	}
-
-	public long getEndTimestamp() {
-		return this.beginEndOfMonitoringDetector.getEndTimestamp();
-	}
-
-	public int countIncompleteTraces() {
-		return this.reconstruction.countIncompleteTraces();
-	}
-
-	public int countDanglingEvents() {
-		return this.reconstruction.countDanglingRecords();
-	}
-
-	public int countIgnoredRecords() {
-		return this.allowedRecordsFilter.getIgnoredRecords();
-	}
-
-	public List<KiekerMetadataRecord> getMetadataRecords() {
-		return this.metadataRecords;
-	}
-
-	public List<OperationCall> getOperationCalls() {
-		return this.operationCalls;
-	}
-
-	public List<AggregatedOperationCall> getAggregatedOperationCalls() {
-		return this.aggregatedOperationCalls;
-	}
-
-}
+/**
+ *
+ */
+package kieker.analysis;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.tinkerpop.blueprints.Graph;
+
+import kieker.analysis.dev.DependencyCreatorStage;
+import kieker.analysis.dev.DependencyStatisticsDecoratorStage;
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.domain.AggregatedTrace;
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+import kieker.analysis.stage.tracediagnosis.AllowedRecordsFilter;
+import kieker.analysis.stage.tracediagnosis.BeginEndOfMonitoringDetector;
+import kieker.analysis.stage.tracediagnosis.OperationCallHandlerComposite;
+import kieker.analysis.stage.tracediagnosis.ReadingComposite;
+import kieker.analysis.stage.tracediagnosis.TraceAggregationComposite;
+import kieker.analysis.stage.tracediagnosis.TraceReconstructionComposite;
+import kieker.analysis.trace.graphoutput.DotGraphWriter;
+import kieker.analysis.trace.graphoutput.GraphMLWriter;
+import kieker.analysis.trace.traversal.AggrTraceTraverserStage;
+import kieker.analysis.trace.traversal.TraceTraverserStage;
+import kieker.analysis.util.graph.NamedGraph;
+import kieker.common.record.IMonitoringRecord;
+import kieker.common.record.misc.KiekerMetadataRecord;
+
+import teetime.framework.Configuration;
+import teetime.stage.CollectorSink;
+import teetime.stage.MultipleInstanceOfFilter;
+import teetime.stage.basic.distributor.Distributor;
+import teetime.stage.basic.distributor.strategy.CopyByReferenceStrategy;
+
+/**
+ *
+ */
+
+public class TraceAnalysisConfiguration extends Configuration {
+
+	private final List<OperationCall> operationCalls = new ArrayList<>(1000);
+	private final List<AggregatedOperationCall> aggregatedOperationCalls = new ArrayList<>(1000);
+
+	private final List<KiekerMetadataRecord> metadataRecords = new ArrayList<>(1000);
+	private final TraceReconstructionComposite reconstruction;
+	private final BeginEndOfMonitoringDetector beginEndOfMonitoringDetector;
+	private final AllowedRecordsFilter allowedRecordsFilter;
+
+	public TraceAnalysisConfiguration(final File importDirectory) {
+		// Create the stages
+		final ReadingComposite reader = new ReadingComposite(importDirectory);
+		final MultipleInstanceOfFilter<IMonitoringRecord> typeFilter = new MultipleInstanceOfFilter<>();
+		final Distributor<Trace> distributor = new Distributor<>(new CopyByReferenceStrategy());
+		final TraceAggregationComposite aggregation = new TraceAggregationComposite();
+		final CollectorSink<KiekerMetadataRecord> metadataCollector = new CollectorSink<>(this.metadataRecords);
+		final OperationCallHandlerComposite operationCallHandler = new OperationCallHandlerComposite(this.operationCalls, this.aggregatedOperationCalls);
+
+		this.allowedRecordsFilter = new AllowedRecordsFilter();
+		this.beginEndOfMonitoringDetector = new BeginEndOfMonitoringDetector();
+		this.reconstruction = new TraceReconstructionComposite(true); // TODO Temp. Get Data from PropertyModel
+
+		// Connect the stages
+		super.connectPorts(reader.getOutputPort(), allowedRecordsFilter.getInputPort());
+		super.connectPorts(allowedRecordsFilter.getOutputPort(), typeFilter.getInputPort());
+		super.connectPorts(typeFilter.getOutputPortForType(IMonitoringRecord.class), this.beginEndOfMonitoringDetector.getInputPort());
+		super.connectPorts(this.beginEndOfMonitoringDetector.getOutputPort(), this.reconstruction.getInputPort());
+		super.connectPorts(this.reconstruction.getOutputPort(), distributor.getInputPort());
+		super.connectPorts(distributor.getNewOutputPort(), operationCallHandler.getInputPort());
+		super.connectPorts(distributor.getNewOutputPort(), aggregation.getInputPort());
+		super.connectPorts(typeFilter.getOutputPortForType(KiekerMetadataRecord.class), metadataCollector.getInputPort());
+
+		// Graph Creation
+		// TODO move to own composite(s)
+
+		String graphFilesOutputDir = "example/event monitoring log/output"; // TODO Temp hard coded
+
+		TraceTraverserStage traceTraverserStage = new TraceTraverserStage();
+		final Distributor<NamedGraph<Graph>> graphDistributor = new Distributor<>(new CopyByReferenceStrategy());
+		GraphMLWriter graphMLWriter = new GraphMLWriter(graphFilesOutputDir);
+		DotGraphWriter dotGraphWriter = new DotGraphWriter(graphFilesOutputDir);
+
+		super.connectPorts(distributor.getNewOutputPort(), traceTraverserStage.getInputPort());
+		super.connectPorts(traceTraverserStage.getOutputPort(), graphDistributor.getInputPort());
+		super.connectPorts(graphDistributor.getNewOutputPort(), graphMLWriter.getInputPort());
+		super.connectPorts(graphDistributor.getNewOutputPort(), dotGraphWriter.getInputPort());
+
+		final Distributor<AggregatedTrace> aggregatedTraceDistributor = new Distributor<>(new CopyByReferenceStrategy());
+		AggrTraceTraverserStage aggrTraceTraverser = new AggrTraceTraverserStage();
+		final Distributor<NamedGraph<Graph>> graphDistributor2 = new Distributor<>(new CopyByReferenceStrategy());
+		GraphMLWriter graphMLWriter2 = new GraphMLWriter(graphFilesOutputDir);
+		DotGraphWriter dotGraphWriter2 = new DotGraphWriter(graphFilesOutputDir);
+
+		super.connectPorts(aggregation.getOutputPort(), aggregatedTraceDistributor.getInputPort());
+
+		super.connectPorts(aggregatedTraceDistributor.getNewOutputPort(), aggrTraceTraverser.getInputPort());
+		super.connectPorts(aggrTraceTraverser.getOutputPort(), graphDistributor2.getInputPort());
+		super.connectPorts(graphDistributor2.getNewOutputPort(), graphMLWriter2.getInputPort());
+		super.connectPorts(graphDistributor2.getNewOutputPort(), dotGraphWriter2.getInputPort());
+
+		DependencyCreatorStage dependencyCreatorStage = new DependencyCreatorStage();
+		DependencyStatisticsDecoratorStage dependencyStatisticsDecoratorStage = new DependencyStatisticsDecoratorStage();
+		super.connectPorts(aggregatedTraceDistributor.getNewOutputPort(), dependencyCreatorStage.getInputPort());
+		super.connectPorts(dependencyCreatorStage.getOutputPort(), dependencyStatisticsDecoratorStage.getInputPort());
+
+		/*
+		 *
+		 *
+		 */
+
+		// TODO Temp Some examples for nested graphs
+		//
+		// final NestedGraphFactory nestedGraphFactory = new NestedGraphFactory();
+		// final ObjectProducer<NestedGraph<Graph>> nestedGraphProducerStage = new ObjectProducer<>(1, nestedGraphFactory);
+		// final NestedGraphPrinterStage nestedGraphPrinterStage = new NestedGraphPrinterStage();
+		//
+		// super.connectPorts(nestedGraphProducerStage.getOutputPort(), nestedGraphPrinterStage.getInputPort());
+
+	}
+
+	public long getBeginTimestamp() {
+		return this.beginEndOfMonitoringDetector.getBeginTimestamp();
+	}
+
+	public long getEndTimestamp() {
+		return this.beginEndOfMonitoringDetector.getEndTimestamp();
+	}
+
+	public int countIncompleteTraces() {
+		return this.reconstruction.countIncompleteTraces();
+	}
+
+	public int countDanglingEvents() {
+		return this.reconstruction.countDanglingRecords();
+	}
+
+	public int countIgnoredRecords() {
+		return this.allowedRecordsFilter.getIgnoredRecords();
+	}
+
+	public List<KiekerMetadataRecord> getMetadataRecords() {
+		return this.metadataRecords;
+	}
+
+	public List<OperationCall> getOperationCalls() {
+		return this.operationCalls;
+	}
+
+	public List<AggregatedOperationCall> getAggregatedOperationCalls() {
+		return this.aggregatedOperationCalls;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/AggregatedTraceCallsDecorator.java b/src/main/java/kieker/analysis/dev/AggregatedTraceCallsDecorator.java
index 9690149337dbb50ee830a65355d50c09a862ee90..e3665cb83751f99e2b3140a5d323c8db92abca52 100644
--- a/src/main/java/kieker/analysis/dev/AggregatedTraceCallsDecorator.java
+++ b/src/main/java/kieker/analysis/dev/AggregatedTraceCallsDecorator.java
@@ -1,59 +1,59 @@
-package kieker.analysis.dev;
-
-import java.util.Iterator;
-
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.domain.AggregatedTrace;
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * This stage assigns normal {@link OperationCall} to {@link AggregatedOperationCall}.
- *
- * @author Sören Henning
- *
- */
-public class AggregatedTraceCallsDecorator extends AbstractTransformation<AggregatedTrace, AggregatedTrace> {
-
-	/*
-	 * TODO Separate logic
-	 *
-	 * - use Visitor pattern
-	 * - use a new trace traverser (AggTrace-List<Trace>-Traverser)
-	 * - maybe the Trace-Traverser and AggTrace-List<Trace>-Traverser can share logic
-	 *
-	 */
-
-	@Override
-	protected void execute(final AggregatedTrace aggregatedTrace) {
-
-		AggregatedOperationCall aggregatedOperationCall = aggregatedTrace.getRootOperationCall();
-
-		for (Trace trace : aggregatedTrace.getTraces()) {
-
-			transformCall(aggregatedOperationCall, trace.getRootOperationCall());
-		}
-
-		this.getOutputPort().send(aggregatedTrace);
-	}
-
-	public void transformTrace(final AggregatedTrace aggregatedTrace, final Trace trace) {
-
-		transformCall(aggregatedTrace.getRootOperationCall(), trace.getRootOperationCall());
-	}
-
-	public void transformCall(final AggregatedOperationCall aggregatedOperationCall, final OperationCall operationCall) {
-
-		// This would be the visit() method
-		aggregatedOperationCall.addBaseOperationCall(operationCall);
-
-		Iterator<AggregatedOperationCall> aggCallIterator = aggregatedOperationCall.getChildren().iterator();
-		Iterator<OperationCall> callIterator = operationCall.getChildren().iterator();
-		while (aggCallIterator.hasNext() && callIterator.hasNext()) {
-			transformCall(aggCallIterator.next(), callIterator.next());
-		}
-	}
-
-}
+package kieker.analysis.dev;
+
+import java.util.Iterator;
+
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.domain.AggregatedTrace;
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * This stage assigns normal {@link OperationCall} to {@link AggregatedOperationCall}.
+ *
+ * @author Sören Henning
+ *
+ */
+public class AggregatedTraceCallsDecorator extends AbstractTransformation<AggregatedTrace, AggregatedTrace> {
+
+	/*
+	 * TODO Separate logic
+	 *
+	 * - use Visitor pattern
+	 * - use a new trace traverser (AggTrace-List<Trace>-Traverser)
+	 * - maybe the Trace-Traverser and AggTrace-List<Trace>-Traverser can share logic
+	 *
+	 */
+
+	@Override
+	protected void execute(final AggregatedTrace aggregatedTrace) {
+
+		AggregatedOperationCall aggregatedOperationCall = aggregatedTrace.getRootOperationCall();
+
+		for (Trace trace : aggregatedTrace.getTraces()) {
+
+			transformCall(aggregatedOperationCall, trace.getRootOperationCall());
+		}
+
+		this.getOutputPort().send(aggregatedTrace);
+	}
+
+	public void transformTrace(final AggregatedTrace aggregatedTrace, final Trace trace) {
+
+		transformCall(aggregatedTrace.getRootOperationCall(), trace.getRootOperationCall());
+	}
+
+	public void transformCall(final AggregatedOperationCall aggregatedOperationCall, final OperationCall operationCall) {
+
+		// This would be the visit() method
+		aggregatedOperationCall.addBaseOperationCall(operationCall);
+
+		Iterator<AggregatedOperationCall> aggCallIterator = aggregatedOperationCall.getChildren().iterator();
+		Iterator<OperationCall> callIterator = operationCall.getChildren().iterator();
+		while (aggCallIterator.hasNext() && callIterator.hasNext()) {
+			transformCall(aggCallIterator.next(), callIterator.next());
+		}
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/ComponentDependencyGraphCreatorStage.java b/src/main/java/kieker/analysis/dev/ComponentDependencyGraphCreatorStage.java
index 0191c8e1e186eec9e3d865553d31b758e4457150..08582c7f37b8fd51f9e5518b65329a4bb0e8bd10 100644
--- a/src/main/java/kieker/analysis/dev/ComponentDependencyGraphCreatorStage.java
+++ b/src/main/java/kieker/analysis/dev/ComponentDependencyGraphCreatorStage.java
@@ -1,19 +1,19 @@
-package kieker.analysis.dev;
-
-import com.tinkerpop.blueprints.Graph;
-
-import kieker.analysis.domain.OperationsDependency;
-
-import teetime.stage.basic.AbstractTransformation;
-
-public class ComponentDependencyGraphCreatorStage extends AbstractTransformation<OperationsDependency, Graph> {
-
-	@Override
-	protected void execute(final OperationsDependency operationsDependency) {
-
-		// Loop trough nodes
-		// Loop trough edges
-
-	}
-
-}
+package kieker.analysis.dev;
+
+import com.tinkerpop.blueprints.Graph;
+
+import kieker.analysis.domain.OperationsDependency;
+
+import teetime.stage.basic.AbstractTransformation;
+
+public class ComponentDependencyGraphCreatorStage extends AbstractTransformation<OperationsDependency, Graph> {
+
+	@Override
+	protected void execute(final OperationsDependency operationsDependency) {
+
+		// Loop trough nodes
+		// Loop trough edges
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/DependencyCreator.java b/src/main/java/kieker/analysis/dev/DependencyCreator.java
index 93b6e47b4c122364fd566df32f61870324f2b406..419f43406a13e64988c0b3a12d711ec455f15037 100644
--- a/src/main/java/kieker/analysis/dev/DependencyCreator.java
+++ b/src/main/java/kieker/analysis/dev/DependencyCreator.java
@@ -1,26 +1,26 @@
-package kieker.analysis.dev;
-
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.domain.OperationsDependency;
-import kieker.analysis.trace.traversal.OperationCallVisitor;
-
-public class DependencyCreator extends OperationCallVisitor<AggregatedOperationCall> {
-
-	private final OperationsDependency operationsDependency;
-
-	public DependencyCreator(final OperationsDependency operationsDependency) {
-		this.operationsDependency = operationsDependency;
-	}
-
-	@Override
-	public void visit(final AggregatedOperationCall operationCall) {
-
-		operationsDependency.addCall(operationCall);
-
-	}
-
-	public OperationsDependency getOperationsDependency() {
-		return operationsDependency;
-	}
-
-}
+package kieker.analysis.dev;
+
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.domain.OperationsDependency;
+import kieker.analysis.trace.traversal.OperationCallVisitor;
+
+public class DependencyCreator extends OperationCallVisitor<AggregatedOperationCall> {
+
+	private final OperationsDependency operationsDependency;
+
+	public DependencyCreator(final OperationsDependency operationsDependency) {
+		this.operationsDependency = operationsDependency;
+	}
+
+	@Override
+	public void visit(final AggregatedOperationCall operationCall) {
+
+		operationsDependency.addCall(operationCall);
+
+	}
+
+	public OperationsDependency getOperationsDependency() {
+		return operationsDependency;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/DependencyCreatorStage.java b/src/main/java/kieker/analysis/dev/DependencyCreatorStage.java
index 0c3403633e62aa2dece0b698333f9cd515b74351..01602930895e68ae1e1e48470d69a9791df6f9cd 100644
--- a/src/main/java/kieker/analysis/dev/DependencyCreatorStage.java
+++ b/src/main/java/kieker/analysis/dev/DependencyCreatorStage.java
@@ -1,27 +1,27 @@
-package kieker.analysis.dev;
-
-import kieker.analysis.domain.AggregatedTrace;
-import kieker.analysis.domain.OperationsDependency;
-import kieker.analysis.trace.traversal.TraceTraverser;
-
-import teetime.stage.basic.AbstractTransformation;
-
-public class DependencyCreatorStage extends AbstractTransformation<AggregatedTrace, OperationsDependency> {
-
-	private final OperationsDependency operationsDependency = new OperationsDependency();
-	private final DependencyCreator dependencyCreator = new DependencyCreator(operationsDependency);
-
-	@Override
-	protected void execute(final AggregatedTrace trace) {
-		new TraceTraverser<>(dependencyCreator).traverse(trace);
-	}
-
-	@Override
-	public void onTerminating() throws Exception { // NOPMD (the throws clause is forced by the framework)
-
-		this.getOutputPort().send(operationsDependency);
-
-		super.onTerminating();
-	}
-
-}
+package kieker.analysis.dev;
+
+import kieker.analysis.domain.AggregatedTrace;
+import kieker.analysis.domain.OperationsDependency;
+import kieker.analysis.trace.traversal.TraceTraverser;
+
+import teetime.stage.basic.AbstractTransformation;
+
+public class DependencyCreatorStage extends AbstractTransformation<AggregatedTrace, OperationsDependency> {
+
+	private final OperationsDependency operationsDependency = new OperationsDependency();
+	private final DependencyCreator dependencyCreator = new DependencyCreator(operationsDependency);
+
+	@Override
+	protected void execute(final AggregatedTrace trace) {
+		new TraceTraverser<>(dependencyCreator).traverse(trace);
+	}
+
+	@Override
+	public void onTerminating() throws Exception { // NOPMD (the throws clause is forced by the framework)
+
+		this.getOutputPort().send(operationsDependency);
+
+		super.onTerminating();
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/DependencyStatisticsDecorator.java b/src/main/java/kieker/analysis/dev/DependencyStatisticsDecorator.java
index 569e9ed73266d9b77307481c6c45c6d174eeece0..a91a378a06ecb3865f7da4426569964f44bde92e 100644
--- a/src/main/java/kieker/analysis/dev/DependencyStatisticsDecorator.java
+++ b/src/main/java/kieker/analysis/dev/DependencyStatisticsDecorator.java
@@ -1,37 +1,37 @@
-package kieker.analysis.dev;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.domain.OperationsDependency;
-import kieker.analysis.traceanalysisutil.Statistics;
-import kieker.analysis.traceanalysisutil.StatisticsUtility;
-
-/**
- * @author Sören Henning
- *
- */
-// TODO Maybe make static
-public class DependencyStatisticsDecorator {
-
-	public void decorate(final OperationsDependency operationsDependency) {
-
-		for (AggregatedOperationCall operation : operationsDependency.getOperations()) {
-
-			List<Long> durations = operation.getBaseOperationCalls().stream()
-					.map(call -> call.getDuration()).collect(Collectors.toList());
-
-			Statistics statistics = StatisticsUtility.calculateStatistics(durations);
-
-			operation.setTotalDuration(statistics.getTotalDuration());
-			operation.setMaxDuration(statistics.getMaxDuration());
-			operation.setMinDuration(statistics.getMinDuration());
-			operation.setMeanDuration(statistics.getMeanDuration());
-			operation.setMedianDuration(statistics.getMedianDuration());
-
-		}
-
-	}
-
-}
+package kieker.analysis.dev;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.domain.OperationsDependency;
+import kieker.analysis.traceanalysisutil.Statistics;
+import kieker.analysis.traceanalysisutil.StatisticsUtility;
+
+/**
+ * @author Sören Henning
+ *
+ */
+// TODO Maybe make static
+public class DependencyStatisticsDecorator {
+
+	public void decorate(final OperationsDependency operationsDependency) {
+
+		for (AggregatedOperationCall operation : operationsDependency.getOperations()) {
+
+			List<Long> durations = operation.getBaseOperationCalls().stream()
+					.map(call -> call.getDuration()).collect(Collectors.toList());
+
+			Statistics statistics = StatisticsUtility.calculateStatistics(durations);
+
+			operation.setTotalDuration(statistics.getTotalDuration());
+			operation.setMaxDuration(statistics.getMaxDuration());
+			operation.setMinDuration(statistics.getMinDuration());
+			operation.setMeanDuration(statistics.getMeanDuration());
+			operation.setMedianDuration(statistics.getMedianDuration());
+
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/DependencyStatisticsDecoratorStage.java b/src/main/java/kieker/analysis/dev/DependencyStatisticsDecoratorStage.java
index 6fbe87ff77b21f9eeb9bfee659567d368057ff1b..75fb19d0c45a48d9b4f60e2d4357c7e20371b679 100644
--- a/src/main/java/kieker/analysis/dev/DependencyStatisticsDecoratorStage.java
+++ b/src/main/java/kieker/analysis/dev/DependencyStatisticsDecoratorStage.java
@@ -1,28 +1,28 @@
-package kieker.analysis.dev;
-
-import kieker.analysis.domain.OperationsDependency;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * @author Sören Henning
- *
- */
-public class DependencyStatisticsDecoratorStage extends AbstractTransformation<OperationsDependency, OperationsDependency> {
-
-	private final DependencyStatisticsDecorator statisticsDecorator = new DependencyStatisticsDecorator();
-
-	@Override
-	protected void execute(final OperationsDependency operationsDependency) {
-
-		statisticsDecorator.decorate(operationsDependency);
-
-		// TODO Temporary final stage -> print result
-		operationsDependency.printDependenncies();
-		operationsDependency.printOperations();
-
-		this.getOutputPort().send(operationsDependency);
-
-	}
-
-}
+package kieker.analysis.dev;
+
+import kieker.analysis.domain.OperationsDependency;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * @author Sören Henning
+ *
+ */
+public class DependencyStatisticsDecoratorStage extends AbstractTransformation<OperationsDependency, OperationsDependency> {
+
+	private final DependencyStatisticsDecorator statisticsDecorator = new DependencyStatisticsDecorator();
+
+	@Override
+	protected void execute(final OperationsDependency operationsDependency) {
+
+		statisticsDecorator.decorate(operationsDependency);
+
+		// TODO Temporary final stage -> print result
+		operationsDependency.printDependenncies();
+		operationsDependency.printOperations();
+
+		this.getOutputPort().send(operationsDependency);
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/nestedgraph/NestedGraph.java b/src/main/java/kieker/analysis/dev/nestedgraph/NestedGraph.java
index 1005fc529877b4db05fb1670484eded527d6297d..e6e59ba294b45edb81cc874f31bf5b274252a57b 100644
--- a/src/main/java/kieker/analysis/dev/nestedgraph/NestedGraph.java
+++ b/src/main/java/kieker/analysis/dev/nestedgraph/NestedGraph.java
@@ -1,172 +1,172 @@
-package kieker.analysis.dev.nestedgraph;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Features;
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.GraphQuery;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.blueprints.util.StringFactory;
-import com.tinkerpop.blueprints.util.wrappers.WrapperGraph;
-import com.tinkerpop.blueprints.util.wrappers.partition.PartitionGraph;
-
-public class NestedGraph<T extends Graph> implements Graph, WrapperGraph<T> {
-
-	protected PartitionGraph<T> baseGraph;
-
-	private final Features features;
-
-	private static final String PARTITION_KEY = "__nested-graph-partition";
-
-	private static final String DEFAULT_PARTITION = "";
-
-	private final Set<NestedGraphPartition> partitions = new HashSet<>();
-
-	public NestedGraph(final T baseGraph) {
-		this.baseGraph = new PartitionGraph<>(baseGraph, PARTITION_KEY, DEFAULT_PARTITION);
-		this.features = this.baseGraph.getFeatures().copyFeatures();
-		this.features.isWrapper = true;
-	}
-
-	public void addPartition(final NestedGraphPartition partition) {
-		partitions.add(partition);
-	}
-
-	public Iterable<NestedGraphPartition> getPartitions() {
-		return partitions;
-	}
-
-	public Iterable<Vertex> getVerticesForPartition(final NestedGraphPartition partition) {
-
-		baseGraph.removeReadPartition(DEFAULT_PARTITION);
-		baseGraph.addReadPartition(partition.getName());
-
-		Set<Vertex> vertices = new HashSet<Vertex>();
-		for (Vertex vertex : baseGraph.getVertices()) {
-			vertices.add(vertex);
-		}
-
-		baseGraph.removeReadPartition(partition.getName());
-		baseGraph.addReadPartition(DEFAULT_PARTITION);
-
-		return vertices;
-	}
-
-	public Iterable<Edge> getEdgesForPartition(final NestedGraphPartition partition) {
-
-		baseGraph.removeReadPartition(DEFAULT_PARTITION);
-		baseGraph.addReadPartition(partition.getName());
-
-		Set<Edge> edges = new HashSet<Edge>();
-		for (Edge edge : baseGraph.getEdges()) {
-			edges.add(edge);
-		}
-
-		baseGraph.removeReadPartition(partition.getName());
-		baseGraph.addReadPartition(DEFAULT_PARTITION);
-
-		return edges;
-	}
-
-	public Vertex addVertexToPartition(final Object id, final NestedGraphPartition partition) {
-
-		baseGraph.setWritePartition(partition.getName());
-
-		Vertex vertex = baseGraph.addVertex(id);
-
-		baseGraph.setWritePartition(DEFAULT_PARTITION);
-
-		return vertex;
-
-	}
-
-	public Edge addEdgeToPartition(final Object id, final Vertex outVertex, final Vertex inVertex, final String label, final NestedGraphPartition partition) {
-
-		baseGraph.setWritePartition(partition.getName());
-
-		Edge edge = baseGraph.addEdge(id, outVertex, inVertex, label);
-
-		baseGraph.setWritePartition(DEFAULT_PARTITION);
-
-		return edge;
-
-	}
-
-	@Override
-	public Vertex addVertex(final Object id) {
-		return baseGraph.addVertex(id);
-	}
-
-	@Override
-	public Vertex getVertex(final Object id) {
-		return baseGraph.getVertex(id);
-	}
-
-	@Override
-	public Iterable<Vertex> getVertices() {
-		return this.baseGraph.getVertices();
-	}
-
-	@Override
-	public Iterable<Vertex> getVertices(final String key, final Object value) {
-		return this.baseGraph.getVertices(key, value);
-	}
-
-	@Override
-	public Edge addEdge(final Object id, final Vertex outVertex, final Vertex inVertex, final String label) {
-		return baseGraph.addEdge(id, outVertex, inVertex, label);
-	}
-
-	@Override
-	public Edge getEdge(final Object id) {
-		return baseGraph.getEdge(id);
-	}
-
-	@Override
-	public Iterable<Edge> getEdges() {
-		return baseGraph.getEdges();
-	}
-
-	@Override
-	public Iterable<Edge> getEdges(final String key, final Object value) {
-		return this.baseGraph.getEdges(key, value);
-	}
-
-	@Override
-	public void removeEdge(final Edge edge) {
-		baseGraph.removeEdge(edge);
-	}
-
-	@Override
-	public void removeVertex(final Vertex vertex) {
-		baseGraph.removeVertex(vertex);
-	}
-
-	@Override
-	public T getBaseGraph() {
-		return baseGraph.getBaseGraph();
-	}
-
-	@Override
-	public GraphQuery query() {
-		return this.baseGraph.query();
-	}
-
-	@Override
-	public String toString() {
-		return StringFactory.graphString(this, this.baseGraph.toString());
-	}
-
-	@Override
-	public Features getFeatures() {
-		return this.features;
-	}
-
-	@Override
-	public void shutdown() {
-		this.baseGraph.shutdown();
-	}
-
-}
+package kieker.analysis.dev.nestedgraph;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Features;
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.GraphQuery;
+import com.tinkerpop.blueprints.Vertex;
+import com.tinkerpop.blueprints.util.StringFactory;
+import com.tinkerpop.blueprints.util.wrappers.WrapperGraph;
+import com.tinkerpop.blueprints.util.wrappers.partition.PartitionGraph;
+
+public class NestedGraph<T extends Graph> implements Graph, WrapperGraph<T> {
+
+	protected PartitionGraph<T> baseGraph;
+
+	private final Features features;
+
+	private static final String PARTITION_KEY = "__nested-graph-partition";
+
+	private static final String DEFAULT_PARTITION = "";
+
+	private final Set<NestedGraphPartition> partitions = new HashSet<>();
+
+	public NestedGraph(final T baseGraph) {
+		this.baseGraph = new PartitionGraph<>(baseGraph, PARTITION_KEY, DEFAULT_PARTITION);
+		this.features = this.baseGraph.getFeatures().copyFeatures();
+		this.features.isWrapper = true;
+	}
+
+	public void addPartition(final NestedGraphPartition partition) {
+		partitions.add(partition);
+	}
+
+	public Iterable<NestedGraphPartition> getPartitions() {
+		return partitions;
+	}
+
+	public Iterable<Vertex> getVerticesForPartition(final NestedGraphPartition partition) {
+
+		baseGraph.removeReadPartition(DEFAULT_PARTITION);
+		baseGraph.addReadPartition(partition.getName());
+
+		Set<Vertex> vertices = new HashSet<Vertex>();
+		for (Vertex vertex : baseGraph.getVertices()) {
+			vertices.add(vertex);
+		}
+
+		baseGraph.removeReadPartition(partition.getName());
+		baseGraph.addReadPartition(DEFAULT_PARTITION);
+
+		return vertices;
+	}
+
+	public Iterable<Edge> getEdgesForPartition(final NestedGraphPartition partition) {
+
+		baseGraph.removeReadPartition(DEFAULT_PARTITION);
+		baseGraph.addReadPartition(partition.getName());
+
+		Set<Edge> edges = new HashSet<Edge>();
+		for (Edge edge : baseGraph.getEdges()) {
+			edges.add(edge);
+		}
+
+		baseGraph.removeReadPartition(partition.getName());
+		baseGraph.addReadPartition(DEFAULT_PARTITION);
+
+		return edges;
+	}
+
+	public Vertex addVertexToPartition(final Object id, final NestedGraphPartition partition) {
+
+		baseGraph.setWritePartition(partition.getName());
+
+		Vertex vertex = baseGraph.addVertex(id);
+
+		baseGraph.setWritePartition(DEFAULT_PARTITION);
+
+		return vertex;
+
+	}
+
+	public Edge addEdgeToPartition(final Object id, final Vertex outVertex, final Vertex inVertex, final String label, final NestedGraphPartition partition) {
+
+		baseGraph.setWritePartition(partition.getName());
+
+		Edge edge = baseGraph.addEdge(id, outVertex, inVertex, label);
+
+		baseGraph.setWritePartition(DEFAULT_PARTITION);
+
+		return edge;
+
+	}
+
+	@Override
+	public Vertex addVertex(final Object id) {
+		return baseGraph.addVertex(id);
+	}
+
+	@Override
+	public Vertex getVertex(final Object id) {
+		return baseGraph.getVertex(id);
+	}
+
+	@Override
+	public Iterable<Vertex> getVertices() {
+		return this.baseGraph.getVertices();
+	}
+
+	@Override
+	public Iterable<Vertex> getVertices(final String key, final Object value) {
+		return this.baseGraph.getVertices(key, value);
+	}
+
+	@Override
+	public Edge addEdge(final Object id, final Vertex outVertex, final Vertex inVertex, final String label) {
+		return baseGraph.addEdge(id, outVertex, inVertex, label);
+	}
+
+	@Override
+	public Edge getEdge(final Object id) {
+		return baseGraph.getEdge(id);
+	}
+
+	@Override
+	public Iterable<Edge> getEdges() {
+		return baseGraph.getEdges();
+	}
+
+	@Override
+	public Iterable<Edge> getEdges(final String key, final Object value) {
+		return this.baseGraph.getEdges(key, value);
+	}
+
+	@Override
+	public void removeEdge(final Edge edge) {
+		baseGraph.removeEdge(edge);
+	}
+
+	@Override
+	public void removeVertex(final Vertex vertex) {
+		baseGraph.removeVertex(vertex);
+	}
+
+	@Override
+	public T getBaseGraph() {
+		return baseGraph.getBaseGraph();
+	}
+
+	@Override
+	public GraphQuery query() {
+		return this.baseGraph.query();
+	}
+
+	@Override
+	public String toString() {
+		return StringFactory.graphString(this, this.baseGraph.toString());
+	}
+
+	@Override
+	public Features getFeatures() {
+		return this.features;
+	}
+
+	@Override
+	public void shutdown() {
+		this.baseGraph.shutdown();
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/nestedgraph/NestedGraphPartition.java b/src/main/java/kieker/analysis/dev/nestedgraph/NestedGraphPartition.java
index afecb4d3ecd77271cd62b94c947231268c5233a0..ce092e3af60e04326ba9aceaaf8a2d5f9548c4ee 100644
--- a/src/main/java/kieker/analysis/dev/nestedgraph/NestedGraphPartition.java
+++ b/src/main/java/kieker/analysis/dev/nestedgraph/NestedGraphPartition.java
@@ -1,47 +1,47 @@
-package kieker.analysis.dev.nestedgraph;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class NestedGraphPartition {
-
-	private String name;
-
-	private String label;
-
-	private final Set<NestedGraphPartition> subPartitions = new HashSet<>();
-
-	public NestedGraphPartition(final String name) {
-		this(name, null);
-	}
-
-	public NestedGraphPartition(final String name, final String label) {
-		this.name = name;
-		this.label = label;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(final String name) {
-		this.name = name;
-	}
-
-	public String getLabel() {
-		return label;
-	}
-
-	public void setLabel(final String label) {
-		this.label = label;
-	}
-
-	public Iterable<NestedGraphPartition> getSubPartitions() {
-		return subPartitions;
-	}
-
-	public void addSubPartition(final NestedGraphPartition subPartition) {
-		subPartitions.add(subPartition);
-	}
-
-}
+package kieker.analysis.dev.nestedgraph;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class NestedGraphPartition {
+
+	private String name;
+
+	private String label;
+
+	private final Set<NestedGraphPartition> subPartitions = new HashSet<>();
+
+	public NestedGraphPartition(final String name) {
+		this(name, null);
+	}
+
+	public NestedGraphPartition(final String name, final String label) {
+		this.name = name;
+		this.label = label;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(final String name) {
+		this.name = name;
+	}
+
+	public String getLabel() {
+		return label;
+	}
+
+	public void setLabel(final String label) {
+		this.label = label;
+	}
+
+	public Iterable<NestedGraphPartition> getSubPartitions() {
+		return subPartitions;
+	}
+
+	public void addSubPartition(final NestedGraphPartition subPartition) {
+		subPartitions.add(subPartition);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/nestedgraph/SubGraph.java b/src/main/java/kieker/analysis/dev/nestedgraph/SubGraph.java
index f60d214e970c76aa6cb54756402cb214822fac62..17a90c5f4be9cdb00460355ccaff469d69eef57e 100644
--- a/src/main/java/kieker/analysis/dev/nestedgraph/SubGraph.java
+++ b/src/main/java/kieker/analysis/dev/nestedgraph/SubGraph.java
@@ -1,102 +1,102 @@
-package kieker.analysis.dev.nestedgraph;
-
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Features;
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.GraphQuery;
-import com.tinkerpop.blueprints.Vertex;
-
-//TODO implements
-public class SubGraph implements Graph {
-
-	private final NestedGraph<Graph> mainGraph; // TODO has to be nestable Graph
-
-	public SubGraph(final NestedGraph<Graph> mainGraph) {
-		this.mainGraph = mainGraph;
-
-		// TODO subGraph beim mainGraph anmelden
-	}
-
-	public NestedGraph<Graph> getMainGraph() {
-		return mainGraph;
-	}
-
-	@Override
-	public Features getFeatures() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Vertex addVertex(final Object id) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Vertex getVertex(final Object id) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void removeVertex(final Vertex vertex) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public Iterable<Vertex> getVertices() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Iterable<Vertex> getVertices(final String key, final Object value) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Edge addEdge(final Object id, final Vertex outVertex, final Vertex inVertex, final String label) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Edge getEdge(final Object id) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void removeEdge(final Edge edge) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public Iterable<Edge> getEdges() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Iterable<Edge> getEdges(final String key, final Object value) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public GraphQuery query() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void shutdown() {
-		// TODO Auto-generated method stub
-
-	}
-
-}
+package kieker.analysis.dev.nestedgraph;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Features;
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.GraphQuery;
+import com.tinkerpop.blueprints.Vertex;
+
+//TODO implements
+public class SubGraph implements Graph {
+
+	private final NestedGraph<Graph> mainGraph; // TODO has to be nestable Graph
+
+	public SubGraph(final NestedGraph<Graph> mainGraph) {
+		this.mainGraph = mainGraph;
+
+		// TODO subGraph beim mainGraph anmelden
+	}
+
+	public NestedGraph<Graph> getMainGraph() {
+		return mainGraph;
+	}
+
+	@Override
+	public Features getFeatures() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Vertex addVertex(final Object id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Vertex getVertex(final Object id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void removeVertex(final Vertex vertex) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public Iterable<Vertex> getVertices() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Iterable<Vertex> getVertices(final String key, final Object value) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Edge addEdge(final Object id, final Vertex outVertex, final Vertex inVertex, final String label) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Edge getEdge(final Object id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void removeEdge(final Edge edge) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public Iterable<Edge> getEdges() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Iterable<Edge> getEdges(final String key, final Object value) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public GraphQuery query() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void shutdown() {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/nestedgraphstages/NestedGraphFactory.java b/src/main/java/kieker/analysis/dev/nestedgraphstages/NestedGraphFactory.java
index 06d001d1cccd03cbc711865214a1e2a95efccdf9..1bb72a71bd330fcc41c53ef90242d96fa1e6a307 100644
--- a/src/main/java/kieker/analysis/dev/nestedgraphstages/NestedGraphFactory.java
+++ b/src/main/java/kieker/analysis/dev/nestedgraphstages/NestedGraphFactory.java
@@ -1,43 +1,43 @@
-package kieker.analysis.dev.nestedgraphstages;
-
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
-
-import kieker.analysis.dev.nestedgraph.NestedGraph;
-import kieker.analysis.dev.nestedgraph.NestedGraphPartition;
-
-import teetime.util.ConstructorClosure;
-
-public class NestedGraphFactory implements ConstructorClosure<NestedGraph<Graph>> {
-
-	@Override
-	public NestedGraph<Graph> create() {
-
-		NestedGraph<Graph> graph = new NestedGraph<Graph>(new TinkerGraph());
-
-		Vertex entry = graph.addVertex("Entry");
-
-		NestedGraphPartition partitionBookstore = new NestedGraphPartition("Bookstore");
-		graph.addPartition(partitionBookstore);
-		Vertex searchBook = graph.addVertexToPartition("searchBook()", partitionBookstore);
-
-		NestedGraphPartition partitionCRM = new NestedGraphPartition("CRM");
-		graph.addPartition(partitionCRM);
-		Vertex getOffers = graph.addVertexToPartition("getOffers()", partitionCRM);
-		Vertex customMethod = graph.addVertexToPartition("customMethod()", partitionCRM);
-
-		NestedGraphPartition partitionCatalog = new NestedGraphPartition("Catalog");
-		graph.addPartition(partitionCatalog);
-		Vertex getBook = graph.addVertexToPartition("getBook()", partitionCatalog);
-
-		graph.addEdge(null, entry, searchBook, "100");
-		graph.addEdge(null, searchBook, getBook, "100");
-		graph.addEdge(null, searchBook, getOffers, "100");
-		graph.addEdge(null, getOffers, getBook, "96");
-		graph.addEdge(null, getOffers, customMethod, "0");
-
-		return graph;
-	}
-
-}
+package kieker.analysis.dev.nestedgraphstages;
+
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.Vertex;
+import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
+
+import kieker.analysis.dev.nestedgraph.NestedGraph;
+import kieker.analysis.dev.nestedgraph.NestedGraphPartition;
+
+import teetime.util.ConstructorClosure;
+
+public class NestedGraphFactory implements ConstructorClosure<NestedGraph<Graph>> {
+
+	@Override
+	public NestedGraph<Graph> create() {
+
+		NestedGraph<Graph> graph = new NestedGraph<Graph>(new TinkerGraph());
+
+		Vertex entry = graph.addVertex("Entry");
+
+		NestedGraphPartition partitionBookstore = new NestedGraphPartition("Bookstore");
+		graph.addPartition(partitionBookstore);
+		Vertex searchBook = graph.addVertexToPartition("searchBook()", partitionBookstore);
+
+		NestedGraphPartition partitionCRM = new NestedGraphPartition("CRM");
+		graph.addPartition(partitionCRM);
+		Vertex getOffers = graph.addVertexToPartition("getOffers()", partitionCRM);
+		Vertex customMethod = graph.addVertexToPartition("customMethod()", partitionCRM);
+
+		NestedGraphPartition partitionCatalog = new NestedGraphPartition("Catalog");
+		graph.addPartition(partitionCatalog);
+		Vertex getBook = graph.addVertexToPartition("getBook()", partitionCatalog);
+
+		graph.addEdge(null, entry, searchBook, "100");
+		graph.addEdge(null, searchBook, getBook, "100");
+		graph.addEdge(null, searchBook, getOffers, "100");
+		graph.addEdge(null, getOffers, getBook, "96");
+		graph.addEdge(null, getOffers, customMethod, "0");
+
+		return graph;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/nestedgraphstages/NestedGraphPrinterStage.java b/src/main/java/kieker/analysis/dev/nestedgraphstages/NestedGraphPrinterStage.java
index 4adb233361cc4dd78fca5b5c06448a5a194c7cd5..c5f2f8a32d0ec89ae6e1450e8d36fae2ecb7c421 100644
--- a/src/main/java/kieker/analysis/dev/nestedgraphstages/NestedGraphPrinterStage.java
+++ b/src/main/java/kieker/analysis/dev/nestedgraphstages/NestedGraphPrinterStage.java
@@ -1,43 +1,43 @@
-package kieker.analysis.dev.nestedgraphstages;
-
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.Vertex;
-
-import kieker.analysis.dev.nestedgraph.NestedGraph;
-import kieker.analysis.dev.nestedgraph.NestedGraphPartition;
-
-import teetime.framework.AbstractConsumerStage;
-
-public class NestedGraphPrinterStage extends AbstractConsumerStage<NestedGraph<Graph>> {
-
-	@Override
-	protected void execute(final NestedGraph<Graph> graph) {
-
-		System.out.println("TOP LEVEL:");
-
-		for (Vertex vertex : graph.getVertices()) {
-			System.out.println(vertex);
-		}
-
-		for (Edge edge : graph.getEdges()) {
-			System.out.println(edge);
-		}
-
-		for (NestedGraphPartition partition : graph.getPartitions()) {
-
-			System.out.println("PARTITION: " + partition.getName());
-
-			for (Vertex vertex : graph.getVerticesForPartition(partition)) {
-				System.out.println(vertex);
-			}
-
-			for (Edge edge : graph.getEdgesForPartition(partition)) {
-				System.out.println(edge);
-			}
-
-		}
-
-	}
-
-}
+package kieker.analysis.dev.nestedgraphstages;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.Vertex;
+
+import kieker.analysis.dev.nestedgraph.NestedGraph;
+import kieker.analysis.dev.nestedgraph.NestedGraphPartition;
+
+import teetime.framework.AbstractConsumerStage;
+
+public class NestedGraphPrinterStage extends AbstractConsumerStage<NestedGraph<Graph>> {
+
+	@Override
+	protected void execute(final NestedGraph<Graph> graph) {
+
+		System.out.println("TOP LEVEL:");
+
+		for (Vertex vertex : graph.getVertices()) {
+			System.out.println(vertex);
+		}
+
+		for (Edge edge : graph.getEdges()) {
+			System.out.println(edge);
+		}
+
+		for (NestedGraphPartition partition : graph.getPartitions()) {
+
+			System.out.println("PARTITION: " + partition.getName());
+
+			for (Vertex vertex : graph.getVerticesForPartition(partition)) {
+				System.out.println(vertex);
+			}
+
+			for (Edge edge : graph.getEdgesForPartition(partition)) {
+				System.out.println(edge);
+			}
+
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/AbstractOperationCall.java b/src/main/java/kieker/analysis/domain/AbstractOperationCall.java
index 2ebd2805b3f1a5cc3ce18d61336f273ef05cebfa..ba00e105cf5656c6f162e34570a637359982dccc 100644
--- a/src/main/java/kieker/analysis/domain/AbstractOperationCall.java
+++ b/src/main/java/kieker/analysis/domain/AbstractOperationCall.java
@@ -1,210 +1,210 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.domain;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * This is an abstract base for classes representing operation calls (also called executions) within this application. As it can has multiple children, an instance
- * of this class
- * can represent a whole call tree. This class implements the both methods {@link OperationCall#equals(Object)} and {@link OperationCall#hashCode()}, allowing to
- * easily check
- * whether two traces are equal and should be in the same equivalence class.
- *
- * @author Nils Christian Ehmke
- *
- * @param <T>
- *            The precise type of the children. This should usually be the implementing class itself.
- */
-public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> {
-
-	private final List<T> children = new ArrayList<>();
-
-	private final String container;
-	private final String component;
-	private final String operation;
-
-	private final String identifier;
-
-	private int stackDepth;
-	private int stackSize;
-	private String failedCause;
-
-	private int orderIndex;
-
-	public AbstractOperationCall(final String container, final String component, final String operation, final int orderIndex) {
-		this(container, component, operation, orderIndex, null);
-	}
-
-	public AbstractOperationCall(final String container, final String component, final String operation, final int orderIndex, final String failedCause) {
-		this.container = container.intern();
-		this.component = component.intern();
-		this.operation = operation.intern();
-		this.orderIndex = orderIndex;
-		this.failedCause = (failedCause != null) ? failedCause.intern() : null;
-
-		this.identifier = container + ',' + component + ',' + operation;
-	}
-
-	public void addChild(final T child) {
-		this.children.add(child);
-	}
-
-	public final List<T> getChildren() {
-		return this.children;
-	}
-
-	public abstract T getParent();
-
-	public final String getContainer() {
-		return this.container;
-	}
-
-	public final String getComponent() {
-		return this.component;
-	}
-
-	public final String getOperation() {
-		return this.operation;
-	}
-
-	public int getOrderIndex() {
-		return orderIndex;
-	}
-
-	public final int getStackDepth() {
-		return this.stackDepth;
-	}
-
-	public final void setStackDepth(final int stackDepth) {
-		this.stackDepth = stackDepth;
-	}
-
-	public final int getStackSize() {
-		return this.stackSize;
-	}
-
-	public final void setStackSize(final int stackSize) {
-		this.stackSize = stackSize;
-	}
-
-	public final boolean isFailed() {
-		return (this.failedCause != null);
-	}
-
-	public final String getFailedCause() {
-		return this.failedCause;
-	}
-
-	public final void setFailedCause(final String failedCause) {
-		this.failedCause = (failedCause != null) ? failedCause.intern() : null;
-	}
-
-	public final boolean containsFailure() {
-		return this.isFailed() || this.children.parallelStream().anyMatch(T::containsFailure);
-	}
-
-	public String getIdentifier() {
-		return identifier;
-	}
-
-	public String getIdentifierWithFailure() {
-		return identifier + ',' + failedCause;
-	}
-
-	public final int calculateHashCode() {
-		final int prime = 31;
-		int result = 1;
-
-		result = (prime * result) + ((this.children == null) ? 0 : this.calculateHashCodeForChildren());
-		result = (prime * result) + ((this.component == null) ? 0 : this.component.hashCode());
-		result = (prime * result) + ((this.container == null) ? 0 : this.container.hashCode());
-		result = (prime * result) + ((this.failedCause == null) ? 0 : this.failedCause.hashCode());
-		result = (prime * result) + ((this.operation == null) ? 0 : this.operation.hashCode());
-
-		return result;
-	}
-
-	private final int calculateHashCodeForChildren() {
-		int hashCode = 1;
-		for (final T child : this.children) {
-			hashCode = (31 * hashCode) + (child == null ? 0 : child.calculateHashCode());
-		}
-		return hashCode;
-	}
-
-	@SuppressWarnings("unchecked")
-	public final boolean isEqualTo(final Object obj) { // NOPMD (this method violates some metrics)
-		if (this == obj) {
-			return true;
-		}
-		if (obj == null) {
-			return false;
-		}
-		if (this.getClass() != obj.getClass()) {
-			return false;
-		}
-		final T other = (T) obj;
-		if (this.children == null) {
-			if (other.getChildren() != null) {
-				return false;
-			}
-		} else {
-			final int length1 = this.children.size();
-			final int length2 = other.getChildren().size();
-			if (length1 != length2) {
-				return false;
-			}
-			for (int i = 0; i < length1; i++) {
-				if (!this.children.get(i).isEqualTo(other.getChildren().get(i))) {
-					return false;
-				}
-			}
-		}
-		if (this.component == null) {
-			if (other.getComponent() != null) {
-				return false;
-			}
-		} else if (!this.component.equals(other.getComponent())) {
-			return false;
-		}
-		if (this.container == null) {
-			if (other.getContainer() != null) {
-				return false;
-			}
-		} else if (!this.container.equals(other.getContainer())) {
-			return false;
-		}
-		if (this.failedCause == null) {
-			if (other.getFailedCause() != null) {
-				return false;
-			}
-		} else if (!this.failedCause.equals(other.getFailedCause())) {
-			return false;
-		}
-		if (this.operation == null) {
-			if (other.getOperation() != null) {
-				return false;
-			}
-		} else if (!this.operation.equals(other.getOperation())) {
-			return false;
-		}
-		return true;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * This is an abstract base for classes representing operation calls (also called executions) within this application. As it can has multiple children, an instance
+ * of this class
+ * can represent a whole call tree. This class implements the both methods {@link OperationCall#equals(Object)} and {@link OperationCall#hashCode()}, allowing to
+ * easily check
+ * whether two traces are equal and should be in the same equivalence class.
+ *
+ * @author Nils Christian Ehmke
+ *
+ * @param <T>
+ *            The precise type of the children. This should usually be the implementing class itself.
+ */
+public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> {
+
+	private final List<T> children = new ArrayList<>();
+
+	private final String container;
+	private final String component;
+	private final String operation;
+
+	private final String identifier;
+
+	private int stackDepth;
+	private int stackSize;
+	private String failedCause;
+
+	private int orderIndex;
+
+	public AbstractOperationCall(final String container, final String component, final String operation, final int orderIndex) {
+		this(container, component, operation, orderIndex, null);
+	}
+
+	public AbstractOperationCall(final String container, final String component, final String operation, final int orderIndex, final String failedCause) {
+		this.container = container.intern();
+		this.component = component.intern();
+		this.operation = operation.intern();
+		this.orderIndex = orderIndex;
+		this.failedCause = (failedCause != null) ? failedCause.intern() : null;
+
+		this.identifier = container + ',' + component + ',' + operation;
+	}
+
+	public void addChild(final T child) {
+		this.children.add(child);
+	}
+
+	public final List<T> getChildren() {
+		return this.children;
+	}
+
+	public abstract T getParent();
+
+	public final String getContainer() {
+		return this.container;
+	}
+
+	public final String getComponent() {
+		return this.component;
+	}
+
+	public final String getOperation() {
+		return this.operation;
+	}
+
+	public int getOrderIndex() {
+		return orderIndex;
+	}
+
+	public final int getStackDepth() {
+		return this.stackDepth;
+	}
+
+	public final void setStackDepth(final int stackDepth) {
+		this.stackDepth = stackDepth;
+	}
+
+	public final int getStackSize() {
+		return this.stackSize;
+	}
+
+	public final void setStackSize(final int stackSize) {
+		this.stackSize = stackSize;
+	}
+
+	public final boolean isFailed() {
+		return (this.failedCause != null);
+	}
+
+	public final String getFailedCause() {
+		return this.failedCause;
+	}
+
+	public final void setFailedCause(final String failedCause) {
+		this.failedCause = (failedCause != null) ? failedCause.intern() : null;
+	}
+
+	public final boolean containsFailure() {
+		return this.isFailed() || this.children.parallelStream().anyMatch(T::containsFailure);
+	}
+
+	public String getIdentifier() {
+		return identifier;
+	}
+
+	public String getIdentifierWithFailure() {
+		return identifier + ',' + failedCause;
+	}
+
+	public final int calculateHashCode() {
+		final int prime = 31;
+		int result = 1;
+
+		result = (prime * result) + ((this.children == null) ? 0 : this.calculateHashCodeForChildren());
+		result = (prime * result) + ((this.component == null) ? 0 : this.component.hashCode());
+		result = (prime * result) + ((this.container == null) ? 0 : this.container.hashCode());
+		result = (prime * result) + ((this.failedCause == null) ? 0 : this.failedCause.hashCode());
+		result = (prime * result) + ((this.operation == null) ? 0 : this.operation.hashCode());
+
+		return result;
+	}
+
+	private final int calculateHashCodeForChildren() {
+		int hashCode = 1;
+		for (final T child : this.children) {
+			hashCode = (31 * hashCode) + (child == null ? 0 : child.calculateHashCode());
+		}
+		return hashCode;
+	}
+
+	@SuppressWarnings("unchecked")
+	public final boolean isEqualTo(final Object obj) { // NOPMD (this method violates some metrics)
+		if (this == obj) {
+			return true;
+		}
+		if (obj == null) {
+			return false;
+		}
+		if (this.getClass() != obj.getClass()) {
+			return false;
+		}
+		final T other = (T) obj;
+		if (this.children == null) {
+			if (other.getChildren() != null) {
+				return false;
+			}
+		} else {
+			final int length1 = this.children.size();
+			final int length2 = other.getChildren().size();
+			if (length1 != length2) {
+				return false;
+			}
+			for (int i = 0; i < length1; i++) {
+				if (!this.children.get(i).isEqualTo(other.getChildren().get(i))) {
+					return false;
+				}
+			}
+		}
+		if (this.component == null) {
+			if (other.getComponent() != null) {
+				return false;
+			}
+		} else if (!this.component.equals(other.getComponent())) {
+			return false;
+		}
+		if (this.container == null) {
+			if (other.getContainer() != null) {
+				return false;
+			}
+		} else if (!this.container.equals(other.getContainer())) {
+			return false;
+		}
+		if (this.failedCause == null) {
+			if (other.getFailedCause() != null) {
+				return false;
+			}
+		} else if (!this.failedCause.equals(other.getFailedCause())) {
+			return false;
+		}
+		if (this.operation == null) {
+			if (other.getOperation() != null) {
+				return false;
+			}
+		} else if (!this.operation.equals(other.getOperation())) {
+			return false;
+		}
+		return true;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/AbstractTrace.java b/src/main/java/kieker/analysis/domain/AbstractTrace.java
index 056d6c79c7e9855efcb356aa64a0a677a79005da..0fff19a7f7d1a1e3d3338cc04cbaf6f86b093c8f 100644
--- a/src/main/java/kieker/analysis/domain/AbstractTrace.java
+++ b/src/main/java/kieker/analysis/domain/AbstractTrace.java
@@ -1,70 +1,70 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.domain;
-
-/**
- * This is an abstract base for classes representing traces (a tree of operation calls) within this application. Technically this class is just a container for a
- * single {@link AbstractOperationCall} instance representing the root call of a whole call tree. Furthermore, this class implements the methods
- * {@link AbstractTrace#equals(Object)} and {@link AbstractTrace#hashCode()}, allowing to put traces for example into a map to aggregate them.
- *
- * @author Nils Christian Ehmke
- *
- * @param <T>
- *            The type of the root node.
- */
-public abstract class AbstractTrace<T extends AbstractOperationCall<T>> {
-
-	private final T rootOperationCall;
-
-	public AbstractTrace(final T rootOperationCall) {
-		this.rootOperationCall = rootOperationCall;
-	}
-
-	public final T getRootOperationCall() {
-		return this.rootOperationCall;
-	}
-
-	public final int calculateHashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = (prime * result) + ((this.rootOperationCall == null) ? 0 : this.rootOperationCall.calculateHashCode());
-		return result;
-	}
-
-	@SuppressWarnings("rawtypes")
-	public final boolean isEqualTo(final Object obj) {
-		if (this == obj) {
-			return true;
-		}
-		if (obj == null) {
-			return false;
-		}
-		if (this.getClass() != obj.getClass()) {
-			return false;
-		}
-		final AbstractTrace other = (AbstractTrace) obj;
-		if (this.rootOperationCall == null) {
-			if (other.rootOperationCall != null) {
-				return false;
-			}
-		} else if (!this.rootOperationCall.isEqualTo(other.rootOperationCall)) {
-			return false;
-		}
-		return true;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.domain;
+
+/**
+ * This is an abstract base for classes representing traces (a tree of operation calls) within this application. Technically this class is just a container for a
+ * single {@link AbstractOperationCall} instance representing the root call of a whole call tree. Furthermore, this class implements the methods
+ * {@link AbstractTrace#equals(Object)} and {@link AbstractTrace#hashCode()}, allowing to put traces for example into a map to aggregate them.
+ *
+ * @author Nils Christian Ehmke
+ *
+ * @param <T>
+ *            The type of the root node.
+ */
+public abstract class AbstractTrace<T extends AbstractOperationCall<T>> {
+
+	private final T rootOperationCall;
+
+	public AbstractTrace(final T rootOperationCall) {
+		this.rootOperationCall = rootOperationCall;
+	}
+
+	public final T getRootOperationCall() {
+		return this.rootOperationCall;
+	}
+
+	public final int calculateHashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = (prime * result) + ((this.rootOperationCall == null) ? 0 : this.rootOperationCall.calculateHashCode());
+		return result;
+	}
+
+	@SuppressWarnings("rawtypes")
+	public final boolean isEqualTo(final Object obj) {
+		if (this == obj) {
+			return true;
+		}
+		if (obj == null) {
+			return false;
+		}
+		if (this.getClass() != obj.getClass()) {
+			return false;
+		}
+		final AbstractTrace other = (AbstractTrace) obj;
+		if (this.rootOperationCall == null) {
+			if (other.rootOperationCall != null) {
+				return false;
+			}
+		} else if (!this.rootOperationCall.isEqualTo(other.rootOperationCall)) {
+			return false;
+		}
+		return true;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/AggregatedOperationCall.java b/src/main/java/kieker/analysis/domain/AggregatedOperationCall.java
index a483a0e31a7bcb47f959b7c451a5968c827e488c..5ebc990645a00b998b13b3015151749a544fa282 100644
--- a/src/main/java/kieker/analysis/domain/AggregatedOperationCall.java
+++ b/src/main/java/kieker/analysis/domain/AggregatedOperationCall.java
@@ -1,149 +1,149 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.domain;
-
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * This class represents an aggregated operation call within this application. It adds some properties that are only available due to aggregation, like the average
- * duration of all calls.
- *
- * @author Nils Christian Ehmke, Sören Henning
- */
-public class AggregatedOperationCall extends AbstractOperationCall<AggregatedOperationCall> {
-
-	private AggregatedOperationCall parent;
-	private long totalDuration;
-	private long medianDuration;
-	private long minDuration;
-	private long maxDuration;
-	private long meanDuration;
-	private int calls;
-
-	private final List<OperationCall> baseOperationCalls = new LinkedList<>();
-
-	public AggregatedOperationCall(final OperationCall call) {
-		super(call.getContainer(), call.getComponent(), call.getOperation(), call.getOrderIndex(), call.getFailedCause());
-
-		for (final OperationCall child : call.getChildren()) {
-			addChild(new AggregatedOperationCall(child));
-		}
-
-		this.setStackDepth(call.getStackDepth());
-		this.setStackSize(call.getStackSize());
-	}
-
-	public AggregatedOperationCall(final String container, final String component, final String operation,
-			final int orderIndex) {
-		super(container, component, operation, orderIndex);
-	}
-
-	public AggregatedOperationCall(final String container, final String component, final String operation,
-			final int orderIndex, final String failedCause) {
-		super(container, component, operation, orderIndex);
-
-		this.setFailedCause(failedCause);
-	}
-
-	public AggregatedOperationCall(final String container, final String component, final String operation, // NOPMD (a long parameter list cannot be avoided)
-			final int orderIndex, final String failedCause, final long totalDuration, final long medianDuration, final long minDuration, final long maxDuration,
-			final long meanDuration, final int calls) {
-		super(container, component, operation, orderIndex);
-
-		this.totalDuration = totalDuration;
-		this.medianDuration = medianDuration;
-		this.minDuration = minDuration;
-		this.maxDuration = maxDuration;
-		this.meanDuration = meanDuration;
-		this.calls = calls;
-
-		this.setFailedCause(failedCause);
-	}
-
-	@Override
-	public AggregatedOperationCall getParent() {
-		return parent;
-	}
-
-	@Override
-	public void addChild(final AggregatedOperationCall child) {
-		super.addChild(child);
-		child.parent = this;
-	}
-
-	public long getTotalDuration() {
-		return this.totalDuration;
-	}
-
-	public void setTotalDuration(final long totalDuration) {
-		this.totalDuration = totalDuration;
-	}
-
-	public long getMedianDuration() {
-		return this.medianDuration;
-	}
-
-	public void setMedianDuration(final long meanDuration) {
-		this.medianDuration = meanDuration;
-	}
-
-	public long getMinDuration() {
-		return this.minDuration;
-	}
-
-	public void setMinDuration(final long minDuration) {
-		this.minDuration = minDuration;
-	}
-
-	public long getMaxDuration() {
-		return this.maxDuration;
-	}
-
-	public void setMaxDuration(final long maxDuration) {
-		this.maxDuration = maxDuration;
-	}
-
-	public long getMeanDuration() {
-		return this.meanDuration;
-	}
-
-	public void setMeanDuration(final long avgDuration) {
-		this.meanDuration = avgDuration;
-	}
-
-	public int getCalls() {
-		return this.calls;
-	}
-
-	public void setCalls(final int calls) {
-		this.calls = calls;
-	}
-
-	public List<OperationCall> getBaseOperationCalls() {
-		return baseOperationCalls;
-	}
-
-	public void addBaseOperationCall(final OperationCall baseOperationCall) {
-		baseOperationCalls.add(baseOperationCall);
-	}
-
-	public void addBaseOperationCalls(final List<OperationCall> baseOperationCalls) {
-		this.baseOperationCalls.addAll(baseOperationCalls);
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.domain;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * This class represents an aggregated operation call within this application. It adds some properties that are only available due to aggregation, like the average
+ * duration of all calls.
+ *
+ * @author Nils Christian Ehmke, Sören Henning
+ */
+public class AggregatedOperationCall extends AbstractOperationCall<AggregatedOperationCall> {
+
+	private AggregatedOperationCall parent;
+	private long totalDuration;
+	private long medianDuration;
+	private long minDuration;
+	private long maxDuration;
+	private long meanDuration;
+	private int calls;
+
+	private final List<OperationCall> baseOperationCalls = new LinkedList<>();
+
+	public AggregatedOperationCall(final OperationCall call) {
+		super(call.getContainer(), call.getComponent(), call.getOperation(), call.getOrderIndex(), call.getFailedCause());
+
+		for (final OperationCall child : call.getChildren()) {
+			addChild(new AggregatedOperationCall(child));
+		}
+
+		this.setStackDepth(call.getStackDepth());
+		this.setStackSize(call.getStackSize());
+	}
+
+	public AggregatedOperationCall(final String container, final String component, final String operation,
+			final int orderIndex) {
+		super(container, component, operation, orderIndex);
+	}
+
+	public AggregatedOperationCall(final String container, final String component, final String operation,
+			final int orderIndex, final String failedCause) {
+		super(container, component, operation, orderIndex);
+
+		this.setFailedCause(failedCause);
+	}
+
+	public AggregatedOperationCall(final String container, final String component, final String operation, // NOPMD (a long parameter list cannot be avoided)
+			final int orderIndex, final String failedCause, final long totalDuration, final long medianDuration, final long minDuration, final long maxDuration,
+			final long meanDuration, final int calls) {
+		super(container, component, operation, orderIndex);
+
+		this.totalDuration = totalDuration;
+		this.medianDuration = medianDuration;
+		this.minDuration = minDuration;
+		this.maxDuration = maxDuration;
+		this.meanDuration = meanDuration;
+		this.calls = calls;
+
+		this.setFailedCause(failedCause);
+	}
+
+	@Override
+	public AggregatedOperationCall getParent() {
+		return parent;
+	}
+
+	@Override
+	public void addChild(final AggregatedOperationCall child) {
+		super.addChild(child);
+		child.parent = this;
+	}
+
+	public long getTotalDuration() {
+		return this.totalDuration;
+	}
+
+	public void setTotalDuration(final long totalDuration) {
+		this.totalDuration = totalDuration;
+	}
+
+	public long getMedianDuration() {
+		return this.medianDuration;
+	}
+
+	public void setMedianDuration(final long meanDuration) {
+		this.medianDuration = meanDuration;
+	}
+
+	public long getMinDuration() {
+		return this.minDuration;
+	}
+
+	public void setMinDuration(final long minDuration) {
+		this.minDuration = minDuration;
+	}
+
+	public long getMaxDuration() {
+		return this.maxDuration;
+	}
+
+	public void setMaxDuration(final long maxDuration) {
+		this.maxDuration = maxDuration;
+	}
+
+	public long getMeanDuration() {
+		return this.meanDuration;
+	}
+
+	public void setMeanDuration(final long avgDuration) {
+		this.meanDuration = avgDuration;
+	}
+
+	public int getCalls() {
+		return this.calls;
+	}
+
+	public void setCalls(final int calls) {
+		this.calls = calls;
+	}
+
+	public List<OperationCall> getBaseOperationCalls() {
+		return baseOperationCalls;
+	}
+
+	public void addBaseOperationCall(final OperationCall baseOperationCall) {
+		baseOperationCalls.add(baseOperationCall);
+	}
+
+	public void addBaseOperationCalls(final List<OperationCall> baseOperationCalls) {
+		this.baseOperationCalls.addAll(baseOperationCalls);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/AggregatedTrace.java b/src/main/java/kieker/analysis/domain/AggregatedTrace.java
index bca7c81bd1b4070dddd9b9a345ff7aaf79a17cd6..31527a4b4a27e0bd8cf3f60e44a1f24f974cdff4 100644
--- a/src/main/java/kieker/analysis/domain/AggregatedTrace.java
+++ b/src/main/java/kieker/analysis/domain/AggregatedTrace.java
@@ -1,40 +1,40 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.domain;
-
-import java.util.List;
-
-/**
- * This class represents an aggregated trace (also called a trace equivalence class) within this application.
- *
- * @author Nils Christian Ehmke
- */
-public final class AggregatedTrace extends AbstractTrace<AggregatedOperationCall> {
-
-	private final List<Trace> traces;
-
-	public AggregatedTrace(final List<Trace> traces) {
-		super(new AggregatedOperationCall(traces.get(0).getRootOperationCall()));
-
-		this.traces = traces;
-	}
-
-	public List<Trace> getTraces() {
-		return this.traces;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.domain;
+
+import java.util.List;
+
+/**
+ * This class represents an aggregated trace (also called a trace equivalence class) within this application.
+ *
+ * @author Nils Christian Ehmke
+ */
+public final class AggregatedTrace extends AbstractTrace<AggregatedOperationCall> {
+
+	private final List<Trace> traces;
+
+	public AggregatedTrace(final List<Trace> traces) {
+		super(new AggregatedOperationCall(traces.get(0).getRootOperationCall()));
+
+		this.traces = traces;
+	}
+
+	public List<Trace> getTraces() {
+		return this.traces;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/ComponentCall.java b/src/main/java/kieker/analysis/domain/ComponentCall.java
index a4f700684c918810b4a84c0151329b580c511643..4f5e474c86ee4e76066c27d73a99a09eae132194 100644
--- a/src/main/java/kieker/analysis/domain/ComponentCall.java
+++ b/src/main/java/kieker/analysis/domain/ComponentCall.java
@@ -1,33 +1,33 @@
-package kieker.analysis.domain;
-
-public class ComponentCall {
-
-	private final String container;
-	private final String component;
-
-	private final String identifier;
-
-	public ComponentCall(final String container, final String component) {
-		this.container = container;
-		this.component = component;
-
-		this.identifier = container + ',' + component;
-	}
-
-	public ComponentCall(final AbstractOperationCall<?> operationCall) {
-		this(operationCall.getContainer(), operationCall.getComponent());
-	}
-
-	public String getContainer() {
-		return container;
-	}
-
-	public String getComponent() {
-		return component;
-	}
-
-	public String getIdentifier() {
-		return identifier;
-	}
-
-}
+package kieker.analysis.domain;
+
+public class ComponentCall {
+
+	private final String container;
+	private final String component;
+
+	private final String identifier;
+
+	public ComponentCall(final String container, final String component) {
+		this.container = container;
+		this.component = component;
+
+		this.identifier = container + ',' + component;
+	}
+
+	public ComponentCall(final AbstractOperationCall<?> operationCall) {
+		this(operationCall.getContainer(), operationCall.getComponent());
+	}
+
+	public String getContainer() {
+		return container;
+	}
+
+	public String getComponent() {
+		return component;
+	}
+
+	public String getIdentifier() {
+		return identifier;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/ComponentDependency.java b/src/main/java/kieker/analysis/domain/ComponentDependency.java
index b237c11eff95d47593ba4cc9eb28296bfe1a0684..2bd9c8571ffd3b07d42ead3e43c25b72e70cafdb 100644
--- a/src/main/java/kieker/analysis/domain/ComponentDependency.java
+++ b/src/main/java/kieker/analysis/domain/ComponentDependency.java
@@ -1,55 +1,55 @@
-package kieker.analysis.domain;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-public class ComponentDependency {
-
-	private final Map<String, ComponentCall> components = new HashMap<>();
-
-	private final Map<String, ComponentDependencyRelation> relations = new HashMap<>();
-
-	// TODO this should not be part of the model
-	public void addCall(final AggregatedOperationCall operationCall) {
-
-		ComponentCall componentCall = new ComponentCall(operationCall);
-
-		if (!components.containsKey(componentCall.getIdentifier())) {
-			components.put(componentCall.getIdentifier(), componentCall);
-		}
-
-		// TODO Better ->
-
-		// TODO Add method in OperationCall to receive the key/identifier
-		String componentKey = operationCall.getContainer() + ',' + operationCall.getComponent();
-
-		if (!components.containsKey(componentKey)) {
-			components.put(componentKey, new ComponentCall(operationCall));
-		}
-
-		// TODO Add data to this ComonentCall
-	}
-
-	public void addRelation(final OperationsDependencyRelation relation) {
-
-		String id1 = new ComponentCall(relation.getCaller()).getIdentifier();
-		String id2 = new ComponentCall(relation.getCallee()).getIdentifier();
-
-		String id = id1 + ',' + id2;
-
-		if (!relations.containsKey(id)) {
-			// components.put(id, new ComponentDependencyRelation(caller, callee)
-		}
-
-	}
-
-	public Collection<ComponentCall> getComponents() {
-		return components.values();
-	}
-
-	public Collection<ComponentDependencyRelation> getRelations() {
-		return relations.values();
-	}
-
-}
+package kieker.analysis.domain;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ComponentDependency {
+
+	private final Map<String, ComponentCall> components = new HashMap<>();
+
+	private final Map<String, ComponentDependencyRelation> relations = new HashMap<>();
+
+	// TODO this should not be part of the model
+	public void addCall(final AggregatedOperationCall operationCall) {
+
+		ComponentCall componentCall = new ComponentCall(operationCall);
+
+		if (!components.containsKey(componentCall.getIdentifier())) {
+			components.put(componentCall.getIdentifier(), componentCall);
+		}
+
+		// TODO Better ->
+
+		// TODO Add method in OperationCall to receive the key/identifier
+		String componentKey = operationCall.getContainer() + ',' + operationCall.getComponent();
+
+		if (!components.containsKey(componentKey)) {
+			components.put(componentKey, new ComponentCall(operationCall));
+		}
+
+		// TODO Add data to this ComonentCall
+	}
+
+	public void addRelation(final OperationsDependencyRelation relation) {
+
+		String id1 = new ComponentCall(relation.getCaller()).getIdentifier();
+		String id2 = new ComponentCall(relation.getCallee()).getIdentifier();
+
+		String id = id1 + ',' + id2;
+
+		if (!relations.containsKey(id)) {
+			// components.put(id, new ComponentDependencyRelation(caller, callee)
+		}
+
+	}
+
+	public Collection<ComponentCall> getComponents() {
+		return components.values();
+	}
+
+	public Collection<ComponentDependencyRelation> getRelations() {
+		return relations.values();
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/ComponentDependencyRelation.java b/src/main/java/kieker/analysis/domain/ComponentDependencyRelation.java
index 17d147421eb3c528b67d8e3592177dc6f143efb8..ff913f66b93035b4c4cedaed9a1e85006484f7e1 100644
--- a/src/main/java/kieker/analysis/domain/ComponentDependencyRelation.java
+++ b/src/main/java/kieker/analysis/domain/ComponentDependencyRelation.java
@@ -1,43 +1,43 @@
-package kieker.analysis.domain;
-
-public class ComponentDependencyRelation {
-
-	private final ComponentCall caller;
-
-	private final ComponentCall callee;
-
-	private int calls;
-
-	private int failuredCalls;
-
-	public ComponentDependencyRelation(final ComponentCall caller, final ComponentCall callee) {
-		this.caller = caller;
-		this.callee = callee;
-	}
-
-	public ComponentCall getCaller() {
-		return caller;
-	}
-
-	public ComponentCall getCallee() {
-		return callee;
-	}
-
-	public void addCalls(final int calls) {
-		this.calls += calls;
-	}
-
-	public void addFailuredCalls(final int failuredCalls) {
-		addCalls(failuredCalls);
-		this.failuredCalls += failuredCalls;
-	}
-
-	public int getCalls() {
-		return calls;
-	}
-
-	public int getFailuredCalls() {
-		return failuredCalls;
-	}
-
-}
+package kieker.analysis.domain;
+
+public class ComponentDependencyRelation {
+
+	private final ComponentCall caller;
+
+	private final ComponentCall callee;
+
+	private int calls;
+
+	private int failuredCalls;
+
+	public ComponentDependencyRelation(final ComponentCall caller, final ComponentCall callee) {
+		this.caller = caller;
+		this.callee = callee;
+	}
+
+	public ComponentCall getCaller() {
+		return caller;
+	}
+
+	public ComponentCall getCallee() {
+		return callee;
+	}
+
+	public void addCalls(final int calls) {
+		this.calls += calls;
+	}
+
+	public void addFailuredCalls(final int failuredCalls) {
+		addCalls(failuredCalls);
+		this.failuredCalls += failuredCalls;
+	}
+
+	public int getCalls() {
+		return calls;
+	}
+
+	public int getFailuredCalls() {
+		return failuredCalls;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/OperationCall.java b/src/main/java/kieker/analysis/domain/OperationCall.java
index dd0c75114df3b54e38f9a76ebab335ee982feb2d..125d7791ddae805a3e99333c5fcd51f4586e3106 100644
--- a/src/main/java/kieker/analysis/domain/OperationCall.java
+++ b/src/main/java/kieker/analysis/domain/OperationCall.java
@@ -1,86 +1,86 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.domain;
-
-/**
- * This class represents a concrete operation call within this application. It adds some properties that are only required for concrete operation calls, like the
- * trace ID and the
- * duration. It extends the call tree mechanism (inherited from {@link AbstractOperationCall}) by a parent, allowing to navigate in both directions within the tree.
- *
- * @author Nils Christian Ehmke
- */
-public final class OperationCall extends AbstractOperationCall<OperationCall> {
-
-	private final long traceID;
-
-	private OperationCall parent;
-	private float percent;
-	private long duration;
-	private long timestamp;
-
-	public OperationCall(final String container, final String component, final String operation, final int orderIndex, final long traceID, final long timestamp) {
-		this(container, component, operation, orderIndex, null, traceID, timestamp);
-	}
-
-	public OperationCall(final String container, final String component, final String operation, final int orderIndex, final String failedCause, final long traceID,
-			final long timestamp) {
-		super(container, component, operation, orderIndex, failedCause);
-
-		this.traceID = traceID;
-		this.timestamp = timestamp;
-	}
-
-	@Override
-	public void addChild(final OperationCall child) {
-		super.addChild(child);
-		child.parent = this;
-	}
-
-	@Override
-	public OperationCall getParent() {
-		return this.parent;
-	}
-
-	public float getPercent() {
-		return this.percent;
-	}
-
-	public void setPercent(final float percent) {
-		this.percent = percent;
-	}
-
-	public long getDuration() {
-		return this.duration;
-	}
-
-	public void setDuration(final long duration) {
-		this.duration = duration;
-	}
-
-	public long getTraceID() {
-		return this.traceID;
-	}
-
-	public long getTimestamp() {
-		return this.timestamp;
-	}
-
-	public void setTimestamp(final long timestamp) {
-		this.timestamp = timestamp;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.domain;
+
+/**
+ * This class represents a concrete operation call within this application. It adds some properties that are only required for concrete operation calls, like the
+ * trace ID and the
+ * duration. It extends the call tree mechanism (inherited from {@link AbstractOperationCall}) by a parent, allowing to navigate in both directions within the tree.
+ *
+ * @author Nils Christian Ehmke
+ */
+public final class OperationCall extends AbstractOperationCall<OperationCall> {
+
+	private final long traceID;
+
+	private OperationCall parent;
+	private float percent;
+	private long duration;
+	private long timestamp;
+
+	public OperationCall(final String container, final String component, final String operation, final int orderIndex, final long traceID, final long timestamp) {
+		this(container, component, operation, orderIndex, null, traceID, timestamp);
+	}
+
+	public OperationCall(final String container, final String component, final String operation, final int orderIndex, final String failedCause, final long traceID,
+			final long timestamp) {
+		super(container, component, operation, orderIndex, failedCause);
+
+		this.traceID = traceID;
+		this.timestamp = timestamp;
+	}
+
+	@Override
+	public void addChild(final OperationCall child) {
+		super.addChild(child);
+		child.parent = this;
+	}
+
+	@Override
+	public OperationCall getParent() {
+		return this.parent;
+	}
+
+	public float getPercent() {
+		return this.percent;
+	}
+
+	public void setPercent(final float percent) {
+		this.percent = percent;
+	}
+
+	public long getDuration() {
+		return this.duration;
+	}
+
+	public void setDuration(final long duration) {
+		this.duration = duration;
+	}
+
+	public long getTraceID() {
+		return this.traceID;
+	}
+
+	public long getTimestamp() {
+		return this.timestamp;
+	}
+
+	public void setTimestamp(final long timestamp) {
+		this.timestamp = timestamp;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/OperationsDependency.java b/src/main/java/kieker/analysis/domain/OperationsDependency.java
index 41fd8758e706c69df599450e741a646d507e3e76..2b8562b6a7068da71c183e555929bc9bedbfbf67 100644
--- a/src/main/java/kieker/analysis/domain/OperationsDependency.java
+++ b/src/main/java/kieker/analysis/domain/OperationsDependency.java
@@ -1,116 +1,116 @@
-package kieker.analysis.domain;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * This class represents an aggregated aggregated-trace. It connects
- * operation calls and represents how often one operation call was called
- * by another.
- *
- * @author Sören Henning
- *
- */
-public class OperationsDependency {
-
-	// TODO Move to Domain package
-
-	private final Map<String, AggregatedOperationCall> operations = new HashMap<>();
-
-	private final Map<String, OperationsDependencyRelation> relations = new HashMap<>();
-
-	public void addCall(final AggregatedOperationCall call) {
-
-		addOperation(call);
-		addRelation(call);
-	}
-
-	// TODO this should not be part of the model
-	private void addOperation(final AggregatedOperationCall call) {
-		String key = call.getIdentifier();
-
-		if (!operations.containsKey(key)) {
-			operations.put(key, new AggregatedOperationCall(call.getContainer(), call.getComponent(), call.getOperation(), 0));
-		}
-		operations.get(key).addBaseOperationCalls(call.getBaseOperationCalls());
-	}
-
-	private void addRelation(final AggregatedOperationCall call) {
-
-		AggregatedOperationCall parentCall = call.getParent();
-
-		if (parentCall == null) {
-			// TODO parent shouldn't be null. Create a class "EntryOperationCall".
-			return;
-		}
-
-		String key = call.getIdentifier() + ',' + parentCall.getIdentifier();
-
-		if (!relations.containsKey(key)) {
-
-			AggregatedOperationCall callee = operations.get(call.getIdentifier());
-			AggregatedOperationCall caller = operations.get(parentCall.getIdentifier());
-
-			OperationsDependencyRelation relation = new OperationsDependencyRelation(callee, caller);
-			relations.put(key, relation);
-		}
-
-		if (call.isFailed()) {
-			relations.get(key).addFailuredCalls(call.getCalls());
-		} else {
-			relations.get(key).addCalls(call.getCalls());
-		}
-	}
-
-	public Collection<AggregatedOperationCall> getOperations() {
-		return operations.values();
-	}
-
-	public Collection<OperationsDependencyRelation> getRelations() {
-		return relations.values();
-	}
-
-	// TODO Just for debugging
-
-	public void printOperations() {
-
-		System.out.println("Operations:");
-		System.out.println();
-
-		for (Entry<String, AggregatedOperationCall> call : operations.entrySet()) {
-
-			System.out.println("Key: " + call.getKey());
-			System.out.println("Value: " + call.getValue().getOperation());
-			System.out.println("Calls:");
-
-			for (OperationCall call2 : call.getValue().getBaseOperationCalls()) {
-
-				System.out.println(call2.getOperation());
-				// System.out.println(call2.getFailedCause());
-
-			}
-			System.out.println();
-		}
-	}
-
-	// TODO Just for debugging
-
-	public void printDependenncies() {
-
-		System.out.println("Dependencies");
-		System.out.println("Size: " + relations.size());
-
-		for (Entry<String, OperationsDependencyRelation> call : relations.entrySet()) {
-
-			System.out.println("Set begin");
-			// System.out.println(call.getKey());
-			System.out.println(call.getValue().getCaller().getOperation() + "<-" + call.getValue().getCallee().getOperation() + ": " + call.getValue().getCalls()
-					+ " (F: " + call.getValue().getFailuredCalls() + ")");
-			System.out.println("Set end");
-			System.out.println();
-		}
-	}
-
-}
+package kieker.analysis.domain;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+/**
+ * This class represents an aggregated aggregated-trace. It connects
+ * operation calls and represents how often one operation call was called
+ * by another.
+ *
+ * @author Sören Henning
+ *
+ */
+public class OperationsDependency {
+
+	// TODO Move to Domain package
+
+	private final Map<String, AggregatedOperationCall> operations = new HashMap<>();
+
+	private final Map<String, OperationsDependencyRelation> relations = new HashMap<>();
+
+	public void addCall(final AggregatedOperationCall call) {
+
+		addOperation(call);
+		addRelation(call);
+	}
+
+	// TODO this should not be part of the model
+	private void addOperation(final AggregatedOperationCall call) {
+		String key = call.getIdentifier();
+
+		if (!operations.containsKey(key)) {
+			operations.put(key, new AggregatedOperationCall(call.getContainer(), call.getComponent(), call.getOperation(), 0));
+		}
+		operations.get(key).addBaseOperationCalls(call.getBaseOperationCalls());
+	}
+
+	private void addRelation(final AggregatedOperationCall call) {
+
+		AggregatedOperationCall parentCall = call.getParent();
+
+		if (parentCall == null) {
+			// TODO parent shouldn't be null. Create a class "EntryOperationCall".
+			return;
+		}
+
+		String key = call.getIdentifier() + ',' + parentCall.getIdentifier();
+
+		if (!relations.containsKey(key)) {
+
+			AggregatedOperationCall callee = operations.get(call.getIdentifier());
+			AggregatedOperationCall caller = operations.get(parentCall.getIdentifier());
+
+			OperationsDependencyRelation relation = new OperationsDependencyRelation(callee, caller);
+			relations.put(key, relation);
+		}
+
+		if (call.isFailed()) {
+			relations.get(key).addFailuredCalls(call.getCalls());
+		} else {
+			relations.get(key).addCalls(call.getCalls());
+		}
+	}
+
+	public Collection<AggregatedOperationCall> getOperations() {
+		return operations.values();
+	}
+
+	public Collection<OperationsDependencyRelation> getRelations() {
+		return relations.values();
+	}
+
+	// TODO Just for debugging
+
+	public void printOperations() {
+
+		System.out.println("Operations:");
+		System.out.println();
+
+		for (Entry<String, AggregatedOperationCall> call : operations.entrySet()) {
+
+			System.out.println("Key: " + call.getKey());
+			System.out.println("Value: " + call.getValue().getOperation());
+			System.out.println("Calls:");
+
+			for (OperationCall call2 : call.getValue().getBaseOperationCalls()) {
+
+				System.out.println(call2.getOperation());
+				// System.out.println(call2.getFailedCause());
+
+			}
+			System.out.println();
+		}
+	}
+
+	// TODO Just for debugging
+
+	public void printDependenncies() {
+
+		System.out.println("Dependencies");
+		System.out.println("Size: " + relations.size());
+
+		for (Entry<String, OperationsDependencyRelation> call : relations.entrySet()) {
+
+			System.out.println("Set begin");
+			// System.out.println(call.getKey());
+			System.out.println(call.getValue().getCaller().getOperation() + "<-" + call.getValue().getCallee().getOperation() + ": " + call.getValue().getCalls()
+					+ " (F: " + call.getValue().getFailuredCalls() + ")");
+			System.out.println("Set end");
+			System.out.println();
+		}
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/OperationsDependencyRelation.java b/src/main/java/kieker/analysis/domain/OperationsDependencyRelation.java
index 06c57c1d5328e30a718e2d185d215e22b802ee5c..530527acc2240edba1a62fd64bfca74999b47611 100644
--- a/src/main/java/kieker/analysis/domain/OperationsDependencyRelation.java
+++ b/src/main/java/kieker/analysis/domain/OperationsDependencyRelation.java
@@ -1,51 +1,51 @@
-package kieker.analysis.domain;
-
-/**
- * Relation between two {@link AggregatedOperationCall}. Further it stores
- * the number one operation calls the other and how many of this call failed
- * by throwing an exception.
- *
- * @author Sören Henning
- *
- */
-// TODO Move to domain package
-public class OperationsDependencyRelation {
-
-	private final AggregatedOperationCall caller;
-
-	private final AggregatedOperationCall callee;
-
-	private int calls;
-
-	private int failuredCalls;
-
-	public OperationsDependencyRelation(final AggregatedOperationCall caller, final AggregatedOperationCall callee) {
-		this.caller = caller;
-		this.callee = callee;
-	}
-
-	public AggregatedOperationCall getCaller() {
-		return caller;
-	}
-
-	public AggregatedOperationCall getCallee() {
-		return callee;
-	}
-
-	public void addCalls(final int calls) {
-		this.calls += calls;
-	}
-
-	public void addFailuredCalls(final int failuredCalls) {
-		addCalls(failuredCalls);
-		this.failuredCalls += failuredCalls;
-	}
-
-	public int getCalls() {
-		return calls;
-	}
-
-	public int getFailuredCalls() {
-		return failuredCalls;
-	}
-}
+package kieker.analysis.domain;
+
+/**
+ * Relation between two {@link AggregatedOperationCall}. Further it stores
+ * the number one operation calls the other and how many of this call failed
+ * by throwing an exception.
+ *
+ * @author Sören Henning
+ *
+ */
+// TODO Move to domain package
+public class OperationsDependencyRelation {
+
+	private final AggregatedOperationCall caller;
+
+	private final AggregatedOperationCall callee;
+
+	private int calls;
+
+	private int failuredCalls;
+
+	public OperationsDependencyRelation(final AggregatedOperationCall caller, final AggregatedOperationCall callee) {
+		this.caller = caller;
+		this.callee = callee;
+	}
+
+	public AggregatedOperationCall getCaller() {
+		return caller;
+	}
+
+	public AggregatedOperationCall getCallee() {
+		return callee;
+	}
+
+	public void addCalls(final int calls) {
+		this.calls += calls;
+	}
+
+	public void addFailuredCalls(final int failuredCalls) {
+		addCalls(failuredCalls);
+		this.failuredCalls += failuredCalls;
+	}
+
+	public int getCalls() {
+		return calls;
+	}
+
+	public int getFailuredCalls() {
+		return failuredCalls;
+	}
+}
diff --git a/src/main/java/kieker/analysis/domain/Trace.java b/src/main/java/kieker/analysis/domain/Trace.java
index eaafb6ba07865216bcfb538b06eb69222adabfb4..74f72f71f28e0498e781be2d51350ba93e15eaae 100644
--- a/src/main/java/kieker/analysis/domain/Trace.java
+++ b/src/main/java/kieker/analysis/domain/Trace.java
@@ -1,38 +1,38 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.domain;
-
-/**
- * This class represents a concrete trace within this application. It adds some properties that are only required for concrete traces, like the trace ID.
- *
- * @author Nils Christian Ehmke
- */
-public final class Trace extends AbstractTrace<OperationCall> {
-
-	private final long traceID;
-
-	public Trace(final OperationCall rootOperationCall, final long traceID) {
-		super(rootOperationCall);
-
-		this.traceID = traceID;
-	}
-
-	public long getTraceID() {
-		return this.traceID;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.domain;
+
+/**
+ * This class represents a concrete trace within this application. It adds some properties that are only required for concrete traces, like the trace ID.
+ *
+ * @author Nils Christian Ehmke
+ */
+public final class Trace extends AbstractTrace<OperationCall> {
+
+	private final long traceID;
+
+	public Trace(final OperationCall rootOperationCall, final long traceID) {
+		super(rootOperationCall);
+
+		this.traceID = traceID;
+	}
+
+	public long getTraceID() {
+		return this.traceID;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/examples/ThroughputAnalysis.java b/src/main/java/kieker/analysis/examples/ThroughputAnalysis.java
index 52c28bd86d819cf50efbeb749eea20f8fadecc46..2ac1f5e959d56d76d62a891a19bcf26e65267405 100644
--- a/src/main/java/kieker/analysis/examples/ThroughputAnalysis.java
+++ b/src/main/java/kieker/analysis/examples/ThroughputAnalysis.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/examples/ThroughputTimestampAnalysis.java b/src/main/java/kieker/analysis/examples/ThroughputTimestampAnalysis.java
index 24d6713ae703d09a379062a0e92f2f5c612f1560..4e6fb20e3e607409bf4f093f2cd8bcc475d13413 100644
--- a/src/main/java/kieker/analysis/examples/ThroughputTimestampAnalysis.java
+++ b/src/main/java/kieker/analysis/examples/ThroughputTimestampAnalysis.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/graph/Direction.java b/src/main/java/kieker/analysis/graph/Direction.java
index fea516c1ee0703a83a49d4b823501b0191875bce..d10ff42b72b715e507b324d8677a76321c0cd925 100644
--- a/src/main/java/kieker/analysis/graph/Direction.java
+++ b/src/main/java/kieker/analysis/graph/Direction.java
@@ -1,22 +1,22 @@
-package kieker.analysis.graph;
-
-/**
- * Direction is used to denote the direction of an edge or location of a vertex on an edge.
- *
- * @author Sören Henning
- *
- */
-public enum Direction {
-
-	OUT, IN, BOTH;
-
-	public Direction opposite() {
-		if (this.equals(OUT)) {
-			return IN;
-		} else if (this.equals(IN)) {
-			return OUT;
-		} else {
-			return BOTH;
-		}
-	}
-}
+package kieker.analysis.graph;
+
+/**
+ * Direction is used to denote the direction of an edge or location of a vertex on an edge.
+ *
+ * @author Sören Henning
+ *
+ */
+public enum Direction {
+
+	OUT, IN, BOTH;
+
+	public Direction opposite() {
+		if (this.equals(OUT)) {
+			return IN;
+		} else if (this.equals(IN)) {
+			return OUT;
+		} else {
+			return BOTH;
+		}
+	}
+}
diff --git a/src/main/java/kieker/analysis/graph/Edge.java b/src/main/java/kieker/analysis/graph/Edge.java
index 82f8065b9435de8d791b38b4ce77c6d375957394..75fdbd09e8c8308323a3d12a12c2dcc848c76be8 100644
--- a/src/main/java/kieker/analysis/graph/Edge.java
+++ b/src/main/java/kieker/analysis/graph/Edge.java
@@ -1,7 +1,7 @@
-package kieker.analysis.graph;
-
-public interface Edge extends Element {
-
-	public Vertex getVertex(Direction direction) throws IllegalArgumentException;
-
-}
+package kieker.analysis.graph;
+
+public interface Edge extends Element {
+
+	public Vertex getVertex(Direction direction) throws IllegalArgumentException;
+
+}
diff --git a/src/main/java/kieker/analysis/graph/Element.java b/src/main/java/kieker/analysis/graph/Element.java
index b90e87b7f82f91459b6539468bfc301f2da70239..9682cead451b9861c1a504c94fd9474ebe5a02c8 100644
--- a/src/main/java/kieker/analysis/graph/Element.java
+++ b/src/main/java/kieker/analysis/graph/Element.java
@@ -1,18 +1,18 @@
-package kieker.analysis.graph;
-
-import java.util.Set;
-
-public abstract interface Element {
-
-	public <T> T getProperty(String key);
-
-	public Set<String> getPropertyKeys();
-
-	public void setProperty(String key, Object value);
-
-	public <T> T removeProperty(String key);
-
-	public void remove();
-
-	public Object getId();
-}
+package kieker.analysis.graph;
+
+import java.util.Set;
+
+public abstract interface Element {
+
+	public <T> T getProperty(String key);
+
+	public Set<String> getPropertyKeys();
+
+	public void setProperty(String key, Object value);
+
+	public <T> T removeProperty(String key);
+
+	public void remove();
+
+	public Object getId();
+}
diff --git a/src/main/java/kieker/analysis/graph/Graph.java b/src/main/java/kieker/analysis/graph/Graph.java
index 0719646bd63fb9480b28f5a4ebd29bc66b0447d6..d2c9a59ebfebf6ae0ee2f4b38d35a47e35a2571a 100644
--- a/src/main/java/kieker/analysis/graph/Graph.java
+++ b/src/main/java/kieker/analysis/graph/Graph.java
@@ -1,21 +1,21 @@
-package kieker.analysis.graph;
-
-public interface Graph {
-
-	public Vertex addVertex(Object id);
-
-	public Vertex getVertex(Object id);
-
-	public void removeVertex(Vertex vertex);
-
-	public Iterable<Vertex> getVertices();
-
-	public Edge addEdge(Object id, Vertex outVertex, Vertex inVertex);
-
-	public Edge getEdge(Object id);
-
-	public void removeEdge(Edge edge);
-
-	public Iterable<Edge> getEdges();
-
-}
+package kieker.analysis.graph;
+
+public interface Graph {
+
+	public Vertex addVertex(Object id);
+
+	public Vertex getVertex(Object id);
+
+	public void removeVertex(Vertex vertex);
+
+	public Iterable<Vertex> getVertices();
+
+	public Edge addEdge(Object id, Vertex outVertex, Vertex inVertex);
+
+	public Edge getEdge(Object id);
+
+	public void removeEdge(Edge edge);
+
+	public Iterable<Edge> getEdges();
+
+}
diff --git a/src/main/java/kieker/analysis/graph/GraphTester.java b/src/main/java/kieker/analysis/graph/GraphTester.java
index 1fb4f3ce144400679fb231cad6ae330e380de590..bc151543721ce59aa4905506c14a0af169d72d8a 100644
--- a/src/main/java/kieker/analysis/graph/GraphTester.java
+++ b/src/main/java/kieker/analysis/graph/GraphTester.java
@@ -1,42 +1,42 @@
-package kieker.analysis.graph;
-
-import kieker.analysis.graph.impl.GraphImpl;
-
-public class GraphTester {
-
-	public static void main(final String[] args) {
-
-		Graph graph = new GraphImpl();
-
-		Vertex node1 = graph.addVertex("n1");
-
-		Vertex node2 = graph.addVertex("n2");
-
-		Vertex node3 = graph.addVertex("n3");
-
-		Vertex node4 = graph.addVertex("n4");
-
-		Edge edge12 = node1.addEdge(node2);
-		Edge edge11 = node1.addEdge(node1);
-
-		Edge edge23 = node2.addEdge("e23", node3);
-
-		graph.addEdge("e13", node1, node3);
-
-		Vertex node1snd = graph.getVertex("n1");
-
-		assert node1 == node1snd;
-
-		for (Vertex vertex : graph.getVertices()) {
-			System.out.println(vertex.getId());
-		}
-
-		for (Edge edge : graph.getEdges()) {
-			System.out.println(edge.getId());
-		}
-
-		// node2.addEdgeTo(node11);
-
-	}
-
-}
+package kieker.analysis.graph;
+
+import kieker.analysis.graph.impl.GraphImpl;
+
+public class GraphTester {
+
+	public static void main(final String[] args) {
+
+		Graph graph = new GraphImpl();
+
+		Vertex node1 = graph.addVertex("n1");
+
+		Vertex node2 = graph.addVertex("n2");
+
+		Vertex node3 = graph.addVertex("n3");
+
+		Vertex node4 = graph.addVertex("n4");
+
+		Edge edge12 = node1.addEdge(node2);
+		Edge edge11 = node1.addEdge(node1);
+
+		Edge edge23 = node2.addEdge("e23", node3);
+
+		graph.addEdge("e13", node1, node3);
+
+		Vertex node1snd = graph.getVertex("n1");
+
+		assert node1 == node1snd;
+
+		for (Vertex vertex : graph.getVertices()) {
+			System.out.println(vertex.getId());
+		}
+
+		for (Edge edge : graph.getEdges()) {
+			System.out.println(edge.getId());
+		}
+
+		// node2.addEdgeTo(node11);
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/graph/Subgraph.java b/src/main/java/kieker/analysis/graph/Subgraph.java
index a3beca7c78f688fb297d34926c3ce226188accba..e331bed31758eeef2e5cc69ae8856e7d519e4eff 100644
--- a/src/main/java/kieker/analysis/graph/Subgraph.java
+++ b/src/main/java/kieker/analysis/graph/Subgraph.java
@@ -1,5 +1,5 @@
-package kieker.analysis.graph;
-
-public interface Subgraph {
-
-}
+package kieker.analysis.graph;
+
+public interface Subgraph {
+
+}
diff --git a/src/main/java/kieker/analysis/graph/Vertex.java b/src/main/java/kieker/analysis/graph/Vertex.java
index 6d6b02a8ff266ffea82800cb4419ebd21ce157c1..f231c78d27a3764b5453331e738c88b30b08150a 100644
--- a/src/main/java/kieker/analysis/graph/Vertex.java
+++ b/src/main/java/kieker/analysis/graph/Vertex.java
@@ -1,17 +1,17 @@
-package kieker.analysis.graph;
-
-public interface Vertex extends Element {
-
-	public Graph getChildGraph();
-
-	public Graph addChildGraph();
-
-	public Iterable<Edge> getEdges(Direction direction);
-
-	public Iterable<Vertex> getVertices(Direction direction);
-
-	public Edge addEdge(Vertex inVertex);
-
-	public Edge addEdge(Object id, Vertex inVertex);
-
-}
+package kieker.analysis.graph;
+
+public interface Vertex extends Element {
+
+	public Graph getChildGraph();
+
+	public Graph addChildGraph();
+
+	public Iterable<Edge> getEdges(Direction direction);
+
+	public Iterable<Vertex> getVertices(Direction direction);
+
+	public Edge addEdge(Vertex inVertex);
+
+	public Edge addEdge(Object id, Vertex inVertex);
+
+}
diff --git a/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java b/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java
index 6b0dbae34ae08f8336c9a51955f0237c0963d1d2..6909533ce83b20b2247b23cf5a2030af6555371e 100644
--- a/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java
+++ b/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java
@@ -1,34 +1,34 @@
-package kieker.analysis.graph.impl;
-
-import kieker.analysis.graph.Direction;
-import kieker.analysis.graph.Edge;
-import kieker.analysis.graph.Vertex;
-
-class EdgeImpl extends ElementImpl implements Edge {
-
-	private final Vertex outVertex;
-	private final Vertex inVertex;
-
-	protected EdgeImpl(final String id, final Vertex outVertex, final Vertex inVertex, final GraphImpl graph) {
-		super(id, graph);
-		this.outVertex = outVertex;
-		this.inVertex = inVertex;
-	}
-
-	@Override
-	public void remove() {
-		this.graph.removeEdge(this);
-	}
-
-	@Override
-	public Vertex getVertex(final Direction direction) throws IllegalArgumentException {
-		if (direction.equals(Direction.IN)) {
-			return this.inVertex;
-		} else if (direction.equals(Direction.OUT)) {
-			return this.outVertex;
-		} else {
-			throw ExceptionFactory.bothIsNotSupported();
-		}
-	}
-
-}
+package kieker.analysis.graph.impl;
+
+import kieker.analysis.graph.Direction;
+import kieker.analysis.graph.Edge;
+import kieker.analysis.graph.Vertex;
+
+class EdgeImpl extends ElementImpl implements Edge {
+
+	private final Vertex outVertex;
+	private final Vertex inVertex;
+
+	protected EdgeImpl(final String id, final Vertex outVertex, final Vertex inVertex, final GraphImpl graph) {
+		super(id, graph);
+		this.outVertex = outVertex;
+		this.inVertex = inVertex;
+	}
+
+	@Override
+	public void remove() {
+		this.graph.removeEdge(this);
+	}
+
+	@Override
+	public Vertex getVertex(final Direction direction) throws IllegalArgumentException {
+		if (direction.equals(Direction.IN)) {
+			return this.inVertex;
+		} else if (direction.equals(Direction.OUT)) {
+			return this.outVertex;
+		} else {
+			throw ExceptionFactory.bothIsNotSupported();
+		}
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/graph/impl/ElementImpl.java b/src/main/java/kieker/analysis/graph/impl/ElementImpl.java
index e1c2fbd6b26cecf3508fb5bfd22fc40f296e9750..e980e4b94f10a84c6543f99aeee56d86a655ac91 100644
--- a/src/main/java/kieker/analysis/graph/impl/ElementImpl.java
+++ b/src/main/java/kieker/analysis/graph/impl/ElementImpl.java
@@ -1,51 +1,51 @@
-package kieker.analysis.graph.impl;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import kieker.analysis.graph.Element;
-
-abstract class ElementImpl implements Element {
-
-	protected Map<String, Object> properties = new HashMap<String, Object>();
-	protected final String id;
-	protected final GraphImpl graph; // TODO Maybe Graph as type?
-
-	protected ElementImpl(final String id, final GraphImpl graph) {
-		this.graph = graph;
-		this.id = id;
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public <T> T getProperty(final String key) {
-		return (T) this.properties.get(key);
-	}
-
-	@Override
-	public Set<String> getPropertyKeys() {
-		return new HashSet<String>(this.properties.keySet());
-	}
-
-	@Override
-	public void setProperty(final String key, final Object value) {
-		this.properties.put(key, value);
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public <T> T removeProperty(final String key) {
-		return (T) this.properties.remove(key);
-	}
-
-	@Override
-	abstract public void remove();
-
-	@Override
-	public Object getId() {
-		return this.id;
-	}
-
-}
+package kieker.analysis.graph.impl;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import kieker.analysis.graph.Element;
+
+abstract class ElementImpl implements Element {
+
+	protected Map<String, Object> properties = new HashMap<String, Object>();
+	protected final String id;
+	protected final GraphImpl graph; // TODO Maybe Graph as type?
+
+	protected ElementImpl(final String id, final GraphImpl graph) {
+		this.graph = graph;
+		this.id = id;
+	}
+
+	@Override
+	@SuppressWarnings("unchecked")
+	public <T> T getProperty(final String key) {
+		return (T) this.properties.get(key);
+	}
+
+	@Override
+	public Set<String> getPropertyKeys() {
+		return new HashSet<String>(this.properties.keySet());
+	}
+
+	@Override
+	public void setProperty(final String key, final Object value) {
+		this.properties.put(key, value);
+	}
+
+	@Override
+	@SuppressWarnings("unchecked")
+	public <T> T removeProperty(final String key) {
+		return (T) this.properties.remove(key);
+	}
+
+	@Override
+	abstract public void remove();
+
+	@Override
+	public Object getId() {
+		return this.id;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/graph/impl/ExceptionFactory.java b/src/main/java/kieker/analysis/graph/impl/ExceptionFactory.java
index 63605411798372bd59ab02c3e734e3ade1548faf..f437379e32450c8d33ff89145759c990c175bf33 100644
--- a/src/main/java/kieker/analysis/graph/impl/ExceptionFactory.java
+++ b/src/main/java/kieker/analysis/graph/impl/ExceptionFactory.java
@@ -1,58 +1,58 @@
-package kieker.analysis.graph.impl;
-
-/**
- * The ExceptionFactory provides standard exceptions for graphs.
- *
- * @author Sören Henning
- */
-class ExceptionFactory {
-
-	// Graph related exceptions
-
-	public static IllegalArgumentException vertexIdCanNotBeNull() {
-		return new IllegalArgumentException("Vertex id can not be null");
-	}
-
-	public static IllegalArgumentException edgeIdCanNotBeNull() {
-		return new IllegalArgumentException("Edge id can not be null");
-	}
-
-	public static IllegalArgumentException vertexWithIdAlreadyExists(final Object id) {
-		return new IllegalArgumentException("Vertex with id already exists: " + id);
-	}
-
-	public static IllegalArgumentException edgeWithIdAlreadyExists(final Object id) {
-		return new IllegalArgumentException("Edge with id already exists: " + id);
-	}
-
-	public static IllegalStateException vertexWithIdDoesNotExist(final Object id) {
-		return new IllegalStateException("Vertex with id does not exist: " + id);
-	}
-
-	public static IllegalStateException edgeWithIdDoesNotExist(final Object id) {
-		return new IllegalStateException("Edge with id does not exist: " + id);
-	}
-
-	public static IllegalArgumentException bothIsNotSupported() {
-		return new IllegalArgumentException("A direction of BOTH is not supported");
-	}
-
-	// Element related exceptions
-
-	public static IllegalArgumentException propertyKeyIsReserved(final String key) {
-		return new IllegalArgumentException("Property key is reserved for all elements: " + key);
-	}
-
-	public static IllegalArgumentException propertyKeyCanNotBeEmpty() {
-		return new IllegalArgumentException("Property key can not be the empty string");
-	}
-
-	public static IllegalArgumentException propertyKeyCanNotBeNull() {
-		return new IllegalArgumentException("Property key can not be null");
-	}
-
-	public static IllegalArgumentException propertyValueCanNotBeNull() {
-		return new IllegalArgumentException("Property value can not be null");
-	}
-
-}
+package kieker.analysis.graph.impl;
+
+/**
+ * The ExceptionFactory provides standard exceptions for graphs.
+ *
+ * @author Sören Henning
+ */
+class ExceptionFactory {
+
+	// Graph related exceptions
+
+	public static IllegalArgumentException vertexIdCanNotBeNull() {
+		return new IllegalArgumentException("Vertex id can not be null");
+	}
+
+	public static IllegalArgumentException edgeIdCanNotBeNull() {
+		return new IllegalArgumentException("Edge id can not be null");
+	}
+
+	public static IllegalArgumentException vertexWithIdAlreadyExists(final Object id) {
+		return new IllegalArgumentException("Vertex with id already exists: " + id);
+	}
+
+	public static IllegalArgumentException edgeWithIdAlreadyExists(final Object id) {
+		return new IllegalArgumentException("Edge with id already exists: " + id);
+	}
+
+	public static IllegalStateException vertexWithIdDoesNotExist(final Object id) {
+		return new IllegalStateException("Vertex with id does not exist: " + id);
+	}
+
+	public static IllegalStateException edgeWithIdDoesNotExist(final Object id) {
+		return new IllegalStateException("Edge with id does not exist: " + id);
+	}
+
+	public static IllegalArgumentException bothIsNotSupported() {
+		return new IllegalArgumentException("A direction of BOTH is not supported");
+	}
+
+	// Element related exceptions
+
+	public static IllegalArgumentException propertyKeyIsReserved(final String key) {
+		return new IllegalArgumentException("Property key is reserved for all elements: " + key);
+	}
+
+	public static IllegalArgumentException propertyKeyCanNotBeEmpty() {
+		return new IllegalArgumentException("Property key can not be the empty string");
+	}
+
+	public static IllegalArgumentException propertyKeyCanNotBeNull() {
+		return new IllegalArgumentException("Property key can not be null");
+	}
+
+	public static IllegalArgumentException propertyValueCanNotBeNull() {
+		return new IllegalArgumentException("Property value can not be null");
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java
index 580a808d2656bb4bc8bf9631b3a61a87c7333009..b5202fbfdbfb476b8d96fbde2580b24dde3296cd 100644
--- a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java
+++ b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java
@@ -1,126 +1,126 @@
-package kieker.analysis.graph.impl;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-import kieker.analysis.graph.Direction;
-import kieker.analysis.graph.Edge;
-import kieker.analysis.graph.Graph;
-import kieker.analysis.graph.Vertex;
-
-public class GraphImpl implements Graph {
-
-	protected Map<String, Vertex> vertices = new HashMap<String, Vertex>();
-	protected Map<String, Edge> edges = new HashMap<String, Edge>();
-
-	protected Long currentDefaultId = 0l;
-
-	public GraphImpl() {}
-
-	@Override
-	public Vertex addVertex(final Object id) {
-		String idString = null;
-		if (id == null) {
-			do {
-				idString = getDefaultId();
-			} while (vertices.containsKey(idString));
-		} else {
-			idString = id.toString();
-			if (vertices.containsKey(idString)) {
-				throw ExceptionFactory.vertexWithIdAlreadyExists(id);
-			}
-		}
-
-		Vertex vertex = new VertexImpl(idString, this);
-		vertices.put(vertex.getId().toString(), vertex);
-		return vertex;
-	}
-
-	@Override
-	public Vertex getVertex(final Object id) {
-		if (id == null) {
-			throw ExceptionFactory.vertexIdCanNotBeNull();
-		}
-		String idString = id.toString();
-		return this.vertices.get(idString);
-	}
-
-	@Override
-	public Iterable<Vertex> getVertices() {
-		return new ArrayList<Vertex>(this.vertices.values());
-	}
-
-	@Override
-	public void removeVertex(final Vertex vertex) {
-		if (!this.vertices.containsKey(vertex.getId().toString())) {
-			throw ExceptionFactory.vertexWithIdDoesNotExist(vertex.getId());
-		}
-
-		for (Edge edge : vertex.getEdges(Direction.BOTH)) {
-			this.removeEdge(edge);
-		}
-
-		this.vertices.remove(vertex.getId().toString());
-	}
-
-	@Override
-	public Edge addEdge(final Object id, final Vertex outVertex, final Vertex inVertex) {
-		String idString;
-		if (id == null) {
-			do {
-				idString = getDefaultId();
-			} while (edges.containsKey(idString));
-		} else {
-			idString = id.toString();
-			if (edges.containsKey(idString)) {
-				throw ExceptionFactory.edgeWithIdAlreadyExists(id);
-			}
-		}
-
-		// TODO Maybe: Check whether both vertices are in the same graph
-
-		final Edge edge = new EdgeImpl(idString, outVertex, inVertex, this);
-		this.edges.put(edge.getId().toString(), edge);
-		((VertexImpl) outVertex).addOutEdge(edge);
-		((VertexImpl) inVertex).addInEdge(edge);
-
-		return edge;
-	}
-
-	@Override
-	public Edge getEdge(final Object id) {
-		if (id == null) {
-			throw ExceptionFactory.edgeIdCanNotBeNull();
-		}
-		String idString = id.toString();
-		return this.edges.get(idString);
-	}
-
-	@Override
-	public Iterable<Edge> getEdges() {
-		return new ArrayList<Edge>(this.edges.values());
-	}
-
-	@Override
-	public void removeEdge(final Edge edge) {
-		if (!this.edges.containsKey(edge.getId().toString())) {
-			throw ExceptionFactory.edgeWithIdDoesNotExist(edge.getId());
-		}
-
-		((VertexImpl) edge.getVertex(Direction.IN)).removeInEdge(edge);
-		((VertexImpl) edge.getVertex(Direction.OUT)).removeOutEdge(edge);
-
-		this.edges.remove(edge.getId().toString());
-	}
-
-	private String getDefaultId() {
-		String idString;
-		do {
-			idString = currentDefaultId.toString();
-			currentDefaultId++;
-		} while (vertices.containsKey(idString) || edges.containsKey(idString));
-		return idString;
-	}
-
-}
+package kieker.analysis.graph.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import kieker.analysis.graph.Direction;
+import kieker.analysis.graph.Edge;
+import kieker.analysis.graph.Graph;
+import kieker.analysis.graph.Vertex;
+
+public class GraphImpl implements Graph {
+
+	protected Map<String, Vertex> vertices = new HashMap<String, Vertex>();
+	protected Map<String, Edge> edges = new HashMap<String, Edge>();
+
+	protected Long currentDefaultId = 0l;
+
+	public GraphImpl() {}
+
+	@Override
+	public Vertex addVertex(final Object id) {
+		String idString = null;
+		if (id == null) {
+			do {
+				idString = getDefaultId();
+			} while (vertices.containsKey(idString));
+		} else {
+			idString = id.toString();
+			if (vertices.containsKey(idString)) {
+				throw ExceptionFactory.vertexWithIdAlreadyExists(id);
+			}
+		}
+
+		Vertex vertex = new VertexImpl(idString, this);
+		vertices.put(vertex.getId().toString(), vertex);
+		return vertex;
+	}
+
+	@Override
+	public Vertex getVertex(final Object id) {
+		if (id == null) {
+			throw ExceptionFactory.vertexIdCanNotBeNull();
+		}
+		String idString = id.toString();
+		return this.vertices.get(idString);
+	}
+
+	@Override
+	public Iterable<Vertex> getVertices() {
+		return new ArrayList<Vertex>(this.vertices.values());
+	}
+
+	@Override
+	public void removeVertex(final Vertex vertex) {
+		if (!this.vertices.containsKey(vertex.getId().toString())) {
+			throw ExceptionFactory.vertexWithIdDoesNotExist(vertex.getId());
+		}
+
+		for (Edge edge : vertex.getEdges(Direction.BOTH)) {
+			this.removeEdge(edge);
+		}
+
+		this.vertices.remove(vertex.getId().toString());
+	}
+
+	@Override
+	public Edge addEdge(final Object id, final Vertex outVertex, final Vertex inVertex) {
+		String idString;
+		if (id == null) {
+			do {
+				idString = getDefaultId();
+			} while (edges.containsKey(idString));
+		} else {
+			idString = id.toString();
+			if (edges.containsKey(idString)) {
+				throw ExceptionFactory.edgeWithIdAlreadyExists(id);
+			}
+		}
+
+		// TODO Maybe: Check whether both vertices are in the same graph
+
+		final Edge edge = new EdgeImpl(idString, outVertex, inVertex, this);
+		this.edges.put(edge.getId().toString(), edge);
+		((VertexImpl) outVertex).addOutEdge(edge);
+		((VertexImpl) inVertex).addInEdge(edge);
+
+		return edge;
+	}
+
+	@Override
+	public Edge getEdge(final Object id) {
+		if (id == null) {
+			throw ExceptionFactory.edgeIdCanNotBeNull();
+		}
+		String idString = id.toString();
+		return this.edges.get(idString);
+	}
+
+	@Override
+	public Iterable<Edge> getEdges() {
+		return new ArrayList<Edge>(this.edges.values());
+	}
+
+	@Override
+	public void removeEdge(final Edge edge) {
+		if (!this.edges.containsKey(edge.getId().toString())) {
+			throw ExceptionFactory.edgeWithIdDoesNotExist(edge.getId());
+		}
+
+		((VertexImpl) edge.getVertex(Direction.IN)).removeInEdge(edge);
+		((VertexImpl) edge.getVertex(Direction.OUT)).removeOutEdge(edge);
+
+		this.edges.remove(edge.getId().toString());
+	}
+
+	private String getDefaultId() {
+		String idString;
+		do {
+			idString = currentDefaultId.toString();
+			currentDefaultId++;
+		} while (vertices.containsKey(idString) || edges.containsKey(idString));
+		return idString;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/graph/impl/VertexImpl.java b/src/main/java/kieker/analysis/graph/impl/VertexImpl.java
index 2bfc84218d9215584ce3ab3ac64fa10fa69809a6..fa049476d4ff44dd21a6a9832dec446a5478a079 100644
--- a/src/main/java/kieker/analysis/graph/impl/VertexImpl.java
+++ b/src/main/java/kieker/analysis/graph/impl/VertexImpl.java
@@ -1,93 +1,93 @@
-package kieker.analysis.graph.impl;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-import kieker.analysis.graph.Direction;
-import kieker.analysis.graph.Edge;
-import kieker.analysis.graph.Graph;
-import kieker.analysis.graph.Vertex;
-
-class VertexImpl extends ElementImpl implements Vertex {
-
-	protected Map<String, Edge> outEdges = new HashMap<String, Edge>();
-	protected Map<String, Edge> inEdges = new HashMap<String, Edge>();
-
-	protected VertexImpl(final String id, final GraphImpl graph) {
-		super(id, graph);
-	}
-
-	@Override
-	public Graph addChildGraph() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Graph getChildGraph() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Iterable<Edge> getEdges(final Direction direction) {
-		if (direction.equals(Direction.OUT)) {
-			return new ArrayList<>(this.outEdges.values());
-		} else if (direction.equals(Direction.IN)) {
-			return new ArrayList<>(this.inEdges.values());
-		} else {
-			ArrayList<Edge> edges = new ArrayList<>(this.outEdges.values());
-			edges.addAll(this.inEdges.values());
-			return edges;
-		}
-	}
-
-	@Override
-	public Iterable<Vertex> getVertices(final Direction direction) {
-
-		if (direction.equals(Direction.BOTH)) {
-			ArrayList<Vertex> vertices = (ArrayList<Vertex>) getVertices(Direction.IN);
-			vertices.addAll((ArrayList<Vertex>) getVertices(Direction.OUT));
-			return vertices;
-		}
-
-		ArrayList<Vertex> vertices = new ArrayList<>();
-		for (Edge edge : getEdges(direction)) {
-			vertices.add(edge.getVertex(direction.opposite()));
-		}
-		return vertices;
-	}
-
-	@Override
-	public void remove() {
-		graph.removeVertex(this);
-	}
-
-	@Override
-	public Edge addEdge(final Vertex inVertex) {
-		return addEdge(null, inVertex);
-	}
-
-	@Override
-	public Edge addEdge(final Object id, final Vertex inVertex) {
-		return this.graph.addEdge(id, this, inVertex);
-	}
-
-	protected void addOutEdge(final Edge edge) {
-		this.outEdges.put(edge.getId().toString(), edge);
-	}
-
-	protected void addInEdge(final Edge edge) {
-		this.inEdges.put(edge.getId().toString(), edge);
-	}
-
-	protected void removeInEdge(final Edge edge) {
-		this.inEdges.remove(edge.getId().toString());
-	}
-
-	protected void removeOutEdge(final Edge edge) {
-		this.outEdges.remove(edge.getId().toString());
-	}
-
-}
+package kieker.analysis.graph.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import kieker.analysis.graph.Direction;
+import kieker.analysis.graph.Edge;
+import kieker.analysis.graph.Graph;
+import kieker.analysis.graph.Vertex;
+
+class VertexImpl extends ElementImpl implements Vertex {
+
+	protected Map<String, Edge> outEdges = new HashMap<String, Edge>();
+	protected Map<String, Edge> inEdges = new HashMap<String, Edge>();
+
+	protected VertexImpl(final String id, final GraphImpl graph) {
+		super(id, graph);
+	}
+
+	@Override
+	public Graph addChildGraph() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Graph getChildGraph() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Iterable<Edge> getEdges(final Direction direction) {
+		if (direction.equals(Direction.OUT)) {
+			return new ArrayList<>(this.outEdges.values());
+		} else if (direction.equals(Direction.IN)) {
+			return new ArrayList<>(this.inEdges.values());
+		} else {
+			ArrayList<Edge> edges = new ArrayList<>(this.outEdges.values());
+			edges.addAll(this.inEdges.values());
+			return edges;
+		}
+	}
+
+	@Override
+	public Iterable<Vertex> getVertices(final Direction direction) {
+
+		if (direction.equals(Direction.BOTH)) {
+			ArrayList<Vertex> vertices = (ArrayList<Vertex>) getVertices(Direction.IN);
+			vertices.addAll((ArrayList<Vertex>) getVertices(Direction.OUT));
+			return vertices;
+		}
+
+		ArrayList<Vertex> vertices = new ArrayList<>();
+		for (Edge edge : getEdges(direction)) {
+			vertices.add(edge.getVertex(direction.opposite()));
+		}
+		return vertices;
+	}
+
+	@Override
+	public void remove() {
+		graph.removeVertex(this);
+	}
+
+	@Override
+	public Edge addEdge(final Vertex inVertex) {
+		return addEdge(null, inVertex);
+	}
+
+	@Override
+	public Edge addEdge(final Object id, final Vertex inVertex) {
+		return this.graph.addEdge(id, this, inVertex);
+	}
+
+	protected void addOutEdge(final Edge edge) {
+		this.outEdges.put(edge.getId().toString(), edge);
+	}
+
+	protected void addInEdge(final Edge edge) {
+		this.inEdges.put(edge.getId().toString(), edge);
+	}
+
+	protected void removeInEdge(final Edge edge) {
+		this.inEdges.remove(edge.getId().toString());
+	}
+
+	protected void removeOutEdge(final Edge edge) {
+		this.outEdges.remove(edge.getId().toString());
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/CacheFilter.java b/src/main/java/kieker/analysis/stage/CacheFilter.java
index d0a82be8baf48aff0bd0846db6a92cbd5180c2a8..c7b9dd0e0a18c974830ec77cb08c9f0afedbdd98 100644
--- a/src/main/java/kieker/analysis/stage/CacheFilter.java
+++ b/src/main/java/kieker/analysis/stage/CacheFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/stage/CollectorSink.java b/src/main/java/kieker/analysis/stage/CollectorSink.java
index 6926580140fa21640b276124a1a2e9b3f218413e..f035c2bf889cbc24346e27123b0afb900effe22b 100644
--- a/src/main/java/kieker/analysis/stage/CollectorSink.java
+++ b/src/main/java/kieker/analysis/stage/CollectorSink.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/stage/EmptyPassOnFilter.java b/src/main/java/kieker/analysis/stage/EmptyPassOnFilter.java
index e255df3974cdc919b2a5116486d187486bad49af..6cea642526d6240a9fe401d8296410ff7006b773 100644
--- a/src/main/java/kieker/analysis/stage/EmptyPassOnFilter.java
+++ b/src/main/java/kieker/analysis/stage/EmptyPassOnFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/stage/ObjectProducer.java b/src/main/java/kieker/analysis/stage/ObjectProducer.java
index 83abf79ab5f454449f62d1cfeee811d7834d472b..a02bd9ea84e6e6b143792c68f5dc4d7e5799bc32 100644
--- a/src/main/java/kieker/analysis/stage/ObjectProducer.java
+++ b/src/main/java/kieker/analysis/stage/ObjectProducer.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/stage/StartTimestampFilter.java b/src/main/java/kieker/analysis/stage/StartTimestampFilter.java
index 809a25b880a6cb2cb954557f1edf7977c6fe7085..fb1dbd0ad8ac7a7d90a064640a52c8fbbf431751 100644
--- a/src/main/java/kieker/analysis/stage/StartTimestampFilter.java
+++ b/src/main/java/kieker/analysis/stage/StartTimestampFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/stage/StopTimestampFilter.java b/src/main/java/kieker/analysis/stage/StopTimestampFilter.java
index ac8a1801f62dcfd0c22cbe90dce08e7f8cc6eb75..690319a20b9dbd0b9507ae38c8818aa0e32226d9 100644
--- a/src/main/java/kieker/analysis/stage/StopTimestampFilter.java
+++ b/src/main/java/kieker/analysis/stage/StopTimestampFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/stage/TimeReader.java b/src/main/java/kieker/analysis/stage/TimeReader.java
index 8454d15097004075ccea386b4df7b72f4a24f084..12c872c0444f825e43e3994d807e85179c6c6264 100644
--- a/src/main/java/kieker/analysis/stage/TimeReader.java
+++ b/src/main/java/kieker/analysis/stage/TimeReader.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/AggregatedTraceStatisticsDecorator.java b/src/main/java/kieker/analysis/stage/tracediagnosis/AggregatedTraceStatisticsDecorator.java
index ad32e0d5021ac11413e8aafabfffe34e769442ab..f7d18f00610e6a9b69befd45c917332bdb4621a7 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/AggregatedTraceStatisticsDecorator.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/AggregatedTraceStatisticsDecorator.java
@@ -1,120 +1,120 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.domain.AggregatedTrace;
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-import kieker.analysis.traceanalysisutil.Statistics;
-import kieker.analysis.traceanalysisutil.StatisticsUtility;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * This class is a {@code TeeTime} stage adding statistics (via the corresponding setters) to instances of {@link AggregatedTrace}. The traces are forwarded to the
- * output port.
- *
- * @author Nils Christian Ehmke
- */
-public final class AggregatedTraceStatisticsDecorator extends AbstractTransformation<AggregatedTrace, AggregatedTrace> {
-
-	@Override
-	public void execute(final AggregatedTrace trace) {
-		AggregatedTraceStatisticsDecorator.addNumberOfCalls(trace.getRootOperationCall(), trace.getTraces().size());
-		AggregatedTraceStatisticsDecorator.addDurationStatistics(trace);
-
-		// The references are no longer needed
-		trace.getTraces().clear();
-
-		super.getOutputPort().send(trace);
-	}
-
-	private static void addNumberOfCalls(final AggregatedOperationCall call, final int calls) {
-		call.setCalls(calls);
-
-		for (final AggregatedOperationCall child : call.getChildren()) {
-			AggregatedTraceStatisticsDecorator.addNumberOfCalls(child, calls);
-		}
-	}
-
-	private static void addDurationStatistics(final AggregatedTrace trace) {
-		final TraceDurationVisitor traceDurationVisitor = new TraceDurationVisitor();
-
-		for (final Trace t : trace.getTraces()) {
-			traceDurationVisitor.visit(t);
-		}
-
-		traceDurationVisitor.addDurationStatistics(trace);
-	}
-
-	/**
-	 * @author Nils Christian Ehmke
-	 */
-	private static final class TraceDurationVisitor {
-
-		private final List<List<Long>> durationsPerEdge = new ArrayList<>();
-		private int edgeIndex;
-
-		public void visit(final Trace trace) {
-			this.edgeIndex = -1;
-			this.visit(trace.getRootOperationCall());
-		}
-
-		private void visit(final OperationCall rootOperationCall) {
-			this.edgeIndex++;
-			if (this.durationsPerEdge.size() <= this.edgeIndex) {
-				this.durationsPerEdge.add(new ArrayList<Long>());
-			}
-
-			final List<Long> durationsOfCurrentEdge = this.durationsPerEdge.get(this.edgeIndex);
-
-			durationsOfCurrentEdge.add(rootOperationCall.getDuration());
-
-			for (final OperationCall child : rootOperationCall.getChildren()) {
-				this.visit(child);
-			}
-		}
-
-		public void addDurationStatistics(final AggregatedTrace trace) {
-			this.edgeIndex = -1;
-			this.addDurationStatistics(trace.getRootOperationCall());
-		}
-
-		private void addDurationStatistics(final AggregatedOperationCall rootOperationCall) {
-			this.edgeIndex++;
-
-			final List<Long> durationsOfCurrentEdge = this.durationsPerEdge.get(this.edgeIndex);
-
-			final Statistics statistics = StatisticsUtility.calculateStatistics(durationsOfCurrentEdge);
-			rootOperationCall.setMinDuration(statistics.getMinDuration());
-			rootOperationCall.setMaxDuration(statistics.getMaxDuration());
-			rootOperationCall.setMeanDuration(statistics.getMeanDuration());
-			rootOperationCall.setTotalDuration(statistics.getTotalDuration());
-			rootOperationCall.setMedianDuration(statistics.getMedianDuration());
-
-			for (final AggregatedOperationCall child : rootOperationCall.getChildren()) {
-				this.addDurationStatistics(child);
-			}
-		}
-
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.domain.AggregatedTrace;
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+import kieker.analysis.traceanalysisutil.Statistics;
+import kieker.analysis.traceanalysisutil.StatisticsUtility;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * This class is a {@code TeeTime} stage adding statistics (via the corresponding setters) to instances of {@link AggregatedTrace}. The traces are forwarded to the
+ * output port.
+ *
+ * @author Nils Christian Ehmke
+ */
+public final class AggregatedTraceStatisticsDecorator extends AbstractTransformation<AggregatedTrace, AggregatedTrace> {
+
+	@Override
+	public void execute(final AggregatedTrace trace) {
+		AggregatedTraceStatisticsDecorator.addNumberOfCalls(trace.getRootOperationCall(), trace.getTraces().size());
+		AggregatedTraceStatisticsDecorator.addDurationStatistics(trace);
+
+		// The references are no longer needed
+		trace.getTraces().clear();
+
+		super.getOutputPort().send(trace);
+	}
+
+	private static void addNumberOfCalls(final AggregatedOperationCall call, final int calls) {
+		call.setCalls(calls);
+
+		for (final AggregatedOperationCall child : call.getChildren()) {
+			AggregatedTraceStatisticsDecorator.addNumberOfCalls(child, calls);
+		}
+	}
+
+	private static void addDurationStatistics(final AggregatedTrace trace) {
+		final TraceDurationVisitor traceDurationVisitor = new TraceDurationVisitor();
+
+		for (final Trace t : trace.getTraces()) {
+			traceDurationVisitor.visit(t);
+		}
+
+		traceDurationVisitor.addDurationStatistics(trace);
+	}
+
+	/**
+	 * @author Nils Christian Ehmke
+	 */
+	private static final class TraceDurationVisitor {
+
+		private final List<List<Long>> durationsPerEdge = new ArrayList<>();
+		private int edgeIndex;
+
+		public void visit(final Trace trace) {
+			this.edgeIndex = -1;
+			this.visit(trace.getRootOperationCall());
+		}
+
+		private void visit(final OperationCall rootOperationCall) {
+			this.edgeIndex++;
+			if (this.durationsPerEdge.size() <= this.edgeIndex) {
+				this.durationsPerEdge.add(new ArrayList<Long>());
+			}
+
+			final List<Long> durationsOfCurrentEdge = this.durationsPerEdge.get(this.edgeIndex);
+
+			durationsOfCurrentEdge.add(rootOperationCall.getDuration());
+
+			for (final OperationCall child : rootOperationCall.getChildren()) {
+				this.visit(child);
+			}
+		}
+
+		public void addDurationStatistics(final AggregatedTrace trace) {
+			this.edgeIndex = -1;
+			this.addDurationStatistics(trace.getRootOperationCall());
+		}
+
+		private void addDurationStatistics(final AggregatedOperationCall rootOperationCall) {
+			this.edgeIndex++;
+
+			final List<Long> durationsOfCurrentEdge = this.durationsPerEdge.get(this.edgeIndex);
+
+			final Statistics statistics = StatisticsUtility.calculateStatistics(durationsOfCurrentEdge);
+			rootOperationCall.setMinDuration(statistics.getMinDuration());
+			rootOperationCall.setMaxDuration(statistics.getMaxDuration());
+			rootOperationCall.setMeanDuration(statistics.getMeanDuration());
+			rootOperationCall.setTotalDuration(statistics.getTotalDuration());
+			rootOperationCall.setMedianDuration(statistics.getMedianDuration());
+
+			for (final AggregatedOperationCall child : rootOperationCall.getChildren()) {
+				this.addDurationStatistics(child);
+			}
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/AllowedRecordsFilter.java b/src/main/java/kieker/analysis/stage/tracediagnosis/AllowedRecordsFilter.java
index d5971a75e779f7dbb4b190598a2bb5776623c3d2..a93e663302c8e069d9165e71cc59539b990570e4 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/AllowedRecordsFilter.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/AllowedRecordsFilter.java
@@ -1,49 +1,49 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import kieker.common.record.IMonitoringRecord;
-import kieker.common.record.controlflow.OperationExecutionRecord;
-import kieker.common.record.flow.trace.TraceMetadata;
-import kieker.common.record.flow.trace.operation.AfterOperationEvent;
-import kieker.common.record.flow.trace.operation.BeforeOperationEvent;
-import kieker.common.record.misc.KiekerMetadataRecord;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class AllowedRecordsFilter extends AbstractTransformation<IMonitoringRecord, IMonitoringRecord> {
-
-	private int ignoredRecords;
-
-	@Override
-	protected void execute(final IMonitoringRecord element) {
-		if (element instanceof TraceMetadata || element instanceof BeforeOperationEvent || element instanceof AfterOperationEvent
-				|| element instanceof KiekerMetadataRecord || element instanceof OperationExecutionRecord) {
-			super.getOutputPort().send(element);
-		} else {
-			ignoredRecords++;
-		}
-	}
-
-	public int getIgnoredRecords() {
-		return ignoredRecords;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import kieker.common.record.IMonitoringRecord;
+import kieker.common.record.controlflow.OperationExecutionRecord;
+import kieker.common.record.flow.trace.TraceMetadata;
+import kieker.common.record.flow.trace.operation.AfterOperationEvent;
+import kieker.common.record.flow.trace.operation.BeforeOperationEvent;
+import kieker.common.record.misc.KiekerMetadataRecord;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class AllowedRecordsFilter extends AbstractTransformation<IMonitoringRecord, IMonitoringRecord> {
+
+	private int ignoredRecords;
+
+	@Override
+	protected void execute(final IMonitoringRecord element) {
+		if (element instanceof TraceMetadata || element instanceof BeforeOperationEvent || element instanceof AfterOperationEvent
+				|| element instanceof KiekerMetadataRecord || element instanceof OperationExecutionRecord) {
+			super.getOutputPort().send(element);
+		} else {
+			ignoredRecords++;
+		}
+	}
+
+	public int getIgnoredRecords() {
+		return ignoredRecords;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/BeginEndOfMonitoringDetector.java b/src/main/java/kieker/analysis/stage/tracediagnosis/BeginEndOfMonitoringDetector.java
index 4c779ef312b5c1e78ddf4aa5aa7a05ff600a0e3a..c85c551490ee893e05f64767e7b5e88b03a906f6 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/BeginEndOfMonitoringDetector.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/BeginEndOfMonitoringDetector.java
@@ -1,53 +1,53 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import kieker.common.record.IMonitoringRecord;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class BeginEndOfMonitoringDetector extends AbstractTransformation<IMonitoringRecord, IMonitoringRecord> {
-
-	private long beginTimestamp = Long.MAX_VALUE;
-	private long endTimestamp = 0;
-
-	@Override
-	protected void execute(final IMonitoringRecord record) {
-		final long loggingTimestamp = record.getLoggingTimestamp();
-
-		if (loggingTimestamp < this.beginTimestamp) {
-			this.beginTimestamp = loggingTimestamp;
-		}
-		if (loggingTimestamp > this.endTimestamp) {
-			this.endTimestamp = loggingTimestamp;
-		}
-
-		super.getOutputPort().send(record);
-	}
-
-	public long getBeginTimestamp() {
-		return this.beginTimestamp;
-	}
-
-	public long getEndTimestamp() {
-		return this.endTimestamp;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import kieker.common.record.IMonitoringRecord;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class BeginEndOfMonitoringDetector extends AbstractTransformation<IMonitoringRecord, IMonitoringRecord> {
+
+	private long beginTimestamp = Long.MAX_VALUE;
+	private long endTimestamp = 0;
+
+	@Override
+	protected void execute(final IMonitoringRecord record) {
+		final long loggingTimestamp = record.getLoggingTimestamp();
+
+		if (loggingTimestamp < this.beginTimestamp) {
+			this.beginTimestamp = loggingTimestamp;
+		}
+		if (loggingTimestamp > this.endTimestamp) {
+			this.endTimestamp = loggingTimestamp;
+		}
+
+		super.getOutputPort().send(record);
+	}
+
+	public long getBeginTimestamp() {
+		return this.beginTimestamp;
+	}
+
+	public long getEndTimestamp() {
+		return this.endTimestamp;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/Filter.java b/src/main/java/kieker/analysis/stage/tracediagnosis/Filter.java
index a3096e66b9729cfeb5d1a9cdc6e2b624482b1a38..aa30cc296e3a4222579f877a225fe91f96c426ce 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/Filter.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/Filter.java
@@ -1,46 +1,46 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import java.util.function.Predicate;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * This stage filters incoming objects and forwards only those which meet the given predicate.
- *
- * @author Nils Christian Ehmke
- *
- * @param <T>
- *            The precise type of the incoming and outgoing object.
- */
-public final class Filter<T> extends AbstractTransformation<T, T> {
-
-	private final Predicate<T> predicate;
-
-	public Filter(final Predicate<T> predicate) {
-		this.predicate = predicate;
-	}
-
-	@Override
-	protected void execute(final T element) {
-		if (this.predicate.test(element)) {
-			super.getOutputPort().send(element);
-		}
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import java.util.function.Predicate;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * This stage filters incoming objects and forwards only those which meet the given predicate.
+ *
+ * @author Nils Christian Ehmke
+ *
+ * @param <T>
+ *            The precise type of the incoming and outgoing object.
+ */
+public final class Filter<T> extends AbstractTransformation<T, T> {
+
+	private final Predicate<T> predicate;
+
+	public Filter(final Predicate<T> predicate) {
+		this.predicate = predicate;
+	}
+
+	@Override
+	protected void execute(final T element) {
+		if (this.predicate.test(element)) {
+			super.getOutputPort().send(element);
+		}
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/LegacyTraceReconstructor.java b/src/main/java/kieker/analysis/stage/tracediagnosis/LegacyTraceReconstructor.java
index 2d97e6dc0ef25c7cf5fa7cc1a8f21bd5305c622f..a1b94d001c6afa05eb2fd6735e653ddb5c188624 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/LegacyTraceReconstructor.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/LegacyTraceReconstructor.java
@@ -1,147 +1,147 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-import kieker.common.record.controlflow.OperationExecutionRecord;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * Reconstruct traces based on the incoming instances of {@code OperationExecutionRecord}.
- *
- * @author Nils Christian Ehmke
- */
-final class LegacyTraceReconstructor extends AbstractTransformation<OperationExecutionRecord, Trace> {
-
-	private final Map<Long, TraceBuffer> traceBuffers = new HashMap<>();
-
-	public int countIncompleteTraces() {
-		return this.traceBuffers.size();
-	}
-
-	public int countDanglingRecords() {
-		return 0;
-	}
-
-	@Override
-	protected void execute(final OperationExecutionRecord input) {
-		this.handleOperationExecutionRecord(input);
-	}
-
-	private void handleOperationExecutionRecord(final OperationExecutionRecord input) {
-		final long traceID = input.getTraceId();
-		if (!this.traceBuffers.containsKey(traceID)) {
-			this.traceBuffers.put(traceID, new TraceBuffer(traceID));
-		}
-		final TraceBuffer traceBuffer = this.traceBuffers.get(traceID);
-
-		traceBuffer.handleEvent(input);
-		if (traceBuffer.isTraceComplete()) {
-			final Trace trace = traceBuffer.reconstructTrace();
-			this.traceBuffers.remove(traceID);
-			super.getOutputPort().send(trace);
-		}
-	}
-
-	/**
-	 * @author Nils Christian Ehmke
-	 */
-	private static final class TraceBuffer {
-
-		private final List<OperationExecutionRecord> records = new ArrayList<>();
-		private final long traceID;
-		private boolean traceComplete = false;
-
-		public TraceBuffer(final long traceID) {
-			this.traceID = traceID;
-		}
-
-		public void handleEvent(final OperationExecutionRecord record) {
-			this.records.add(record);
-
-			if ((record.getEoi() == 0) && (record.getEss() == 0)) {
-				this.traceComplete = true;
-			}
-		}
-
-		public Trace reconstructTrace() {
-			Collections.sort(this.records, new EOIComparator());
-
-			OperationCall root = null;
-			OperationCall header = null;
-			int ess = 0;
-			for (final OperationExecutionRecord record : this.records) {
-				final OperationCall newCall = new OperationCall(record.getHostname(), this.extractComponent(record.getOperationSignature()),
-						record.getOperationSignature(), record.getEoi(),
-						this.traceID, record.getLoggingTimestamp());
-				newCall.setDuration(record.getTout() - record.getTin());
-
-				// There can be "jumps" in the ess, as the operation execution records do not log the return jumps of methods. Therefore multiple of these jumps can
-				// be hidden.
-				int currentEss = record.getEss();
-				while ((currentEss <= ess) && (ess != 0)) {
-					header = header.getParent();
-					currentEss++;
-				}
-
-				if (root == null) {
-					root = newCall;
-				} else {
-					header.addChild(newCall);
-				}
-				header = newCall;
-				ess = record.getEss();
-			}
-
-			return new Trace(root, this.traceID);
-		}
-
-		private String extractComponent(final String operationSignature) {
-			return operationSignature.replaceFirst("\\.\\w*\\(.*", "");
-		}
-
-		public boolean isTraceComplete() {
-			return this.traceComplete;
-		}
-
-		/**
-		 * @author Nils Christian Ehmke
-		 */
-		private static final class EOIComparator implements Comparator<OperationExecutionRecord>, Serializable {
-
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public int compare(final OperationExecutionRecord o1, final OperationExecutionRecord o2) {
-				return Long.compare(o1.getEoi(), o2.getEoi());
-			}
-
-		}
-
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+import kieker.common.record.controlflow.OperationExecutionRecord;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * Reconstruct traces based on the incoming instances of {@code OperationExecutionRecord}.
+ *
+ * @author Nils Christian Ehmke
+ */
+final class LegacyTraceReconstructor extends AbstractTransformation<OperationExecutionRecord, Trace> {
+
+	private final Map<Long, TraceBuffer> traceBuffers = new HashMap<>();
+
+	public int countIncompleteTraces() {
+		return this.traceBuffers.size();
+	}
+
+	public int countDanglingRecords() {
+		return 0;
+	}
+
+	@Override
+	protected void execute(final OperationExecutionRecord input) {
+		this.handleOperationExecutionRecord(input);
+	}
+
+	private void handleOperationExecutionRecord(final OperationExecutionRecord input) {
+		final long traceID = input.getTraceId();
+		if (!this.traceBuffers.containsKey(traceID)) {
+			this.traceBuffers.put(traceID, new TraceBuffer(traceID));
+		}
+		final TraceBuffer traceBuffer = this.traceBuffers.get(traceID);
+
+		traceBuffer.handleEvent(input);
+		if (traceBuffer.isTraceComplete()) {
+			final Trace trace = traceBuffer.reconstructTrace();
+			this.traceBuffers.remove(traceID);
+			super.getOutputPort().send(trace);
+		}
+	}
+
+	/**
+	 * @author Nils Christian Ehmke
+	 */
+	private static final class TraceBuffer {
+
+		private final List<OperationExecutionRecord> records = new ArrayList<>();
+		private final long traceID;
+		private boolean traceComplete = false;
+
+		public TraceBuffer(final long traceID) {
+			this.traceID = traceID;
+		}
+
+		public void handleEvent(final OperationExecutionRecord record) {
+			this.records.add(record);
+
+			if ((record.getEoi() == 0) && (record.getEss() == 0)) {
+				this.traceComplete = true;
+			}
+		}
+
+		public Trace reconstructTrace() {
+			Collections.sort(this.records, new EOIComparator());
+
+			OperationCall root = null;
+			OperationCall header = null;
+			int ess = 0;
+			for (final OperationExecutionRecord record : this.records) {
+				final OperationCall newCall = new OperationCall(record.getHostname(), this.extractComponent(record.getOperationSignature()),
+						record.getOperationSignature(), record.getEoi(),
+						this.traceID, record.getLoggingTimestamp());
+				newCall.setDuration(record.getTout() - record.getTin());
+
+				// There can be "jumps" in the ess, as the operation execution records do not log the return jumps of methods. Therefore multiple of these jumps can
+				// be hidden.
+				int currentEss = record.getEss();
+				while ((currentEss <= ess) && (ess != 0)) {
+					header = header.getParent();
+					currentEss++;
+				}
+
+				if (root == null) {
+					root = newCall;
+				} else {
+					header.addChild(newCall);
+				}
+				header = newCall;
+				ess = record.getEss();
+			}
+
+			return new Trace(root, this.traceID);
+		}
+
+		private String extractComponent(final String operationSignature) {
+			return operationSignature.replaceFirst("\\.\\w*\\(.*", "");
+		}
+
+		public boolean isTraceComplete() {
+			return this.traceComplete;
+		}
+
+		/**
+		 * @author Nils Christian Ehmke
+		 */
+		private static final class EOIComparator implements Comparator<OperationExecutionRecord>, Serializable {
+
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public int compare(final OperationExecutionRecord o1, final OperationExecutionRecord o2) {
+				return Long.compare(o1.getEoi(), o2.getEoi());
+			}
+
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java
index 442dfc53ed4e93e6e6cccecb9165efb94b612f7f..ae9648a02215e449f5dfe3d25e0cb021f428b68c 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java
@@ -1,74 +1,74 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.traceanalysisutil.Statistics;
-import kieker.analysis.traceanalysisutil.StatisticsUtility;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class OperationCallAggregator extends AbstractTransformation<OperationCall, AggregatedOperationCall> {
-
-	private final Map<String, List<OperationCall>> aggregationMap = new HashMap<>();
-
-	@Override
-	protected void execute(final OperationCall call) {
-		final String key = call.getIdentifierWithFailure();
-
-		if (!this.aggregationMap.containsKey(key)) {
-			final List<OperationCall> aggregationList = new ArrayList<>();
-			this.aggregationMap.put(key, aggregationList);
-		}
-		this.aggregationMap.get(key).add(call);
-	}
-
-	@Override
-	public void onTerminating() throws Exception {
-		for (final List<OperationCall> aggregationList : this.aggregationMap.values()) {
-			final List<Long> durations = this.extractDurations(aggregationList);
-			final Statistics statistics = StatisticsUtility.calculateStatistics(durations);
-			super.getOutputPort().send(
-					new AggregatedOperationCall(aggregationList.get(0).getContainer(), aggregationList.get(0).getComponent(), aggregationList.get(0).getOperation(),
-							aggregationList.get(0).getOrderIndex(), aggregationList.get(0).getFailedCause(), statistics.getTotalDuration(),
-							statistics.getMedianDuration(), statistics.getMinDuration(), statistics.getMaxDuration(), statistics.getMeanDuration(),
-							aggregationList.size()));
-		}
-
-		super.onTerminating();
-	}
-
-	private List<Long> extractDurations(final List<OperationCall> callList) {
-		final List<Long> result = new ArrayList<>();
-
-		for (final OperationCall call : callList) {
-			result.add(call.getDuration());
-		}
-
-		return result;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.traceanalysisutil.Statistics;
+import kieker.analysis.traceanalysisutil.StatisticsUtility;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class OperationCallAggregator extends AbstractTransformation<OperationCall, AggregatedOperationCall> {
+
+	private final Map<String, List<OperationCall>> aggregationMap = new HashMap<>();
+
+	@Override
+	protected void execute(final OperationCall call) {
+		final String key = call.getIdentifierWithFailure();
+
+		if (!this.aggregationMap.containsKey(key)) {
+			final List<OperationCall> aggregationList = new ArrayList<>();
+			this.aggregationMap.put(key, aggregationList);
+		}
+		this.aggregationMap.get(key).add(call);
+	}
+
+	@Override
+	public void onTerminating() throws Exception {
+		for (final List<OperationCall> aggregationList : this.aggregationMap.values()) {
+			final List<Long> durations = this.extractDurations(aggregationList);
+			final Statistics statistics = StatisticsUtility.calculateStatistics(durations);
+			super.getOutputPort().send(
+					new AggregatedOperationCall(aggregationList.get(0).getContainer(), aggregationList.get(0).getComponent(), aggregationList.get(0).getOperation(),
+							aggregationList.get(0).getOrderIndex(), aggregationList.get(0).getFailedCause(), statistics.getTotalDuration(),
+							statistics.getMedianDuration(), statistics.getMinDuration(), statistics.getMaxDuration(), statistics.getMeanDuration(),
+							aggregationList.size()));
+		}
+
+		super.onTerminating();
+	}
+
+	private List<Long> extractDurations(final List<OperationCall> callList) {
+		final List<Long> result = new ArrayList<>();
+
+		for (final OperationCall call : callList) {
+			result.add(call.getDuration());
+		}
+
+		return result;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallExtractor.java b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallExtractor.java
index 159ead0109c788cb3f656eaad210371d539c76bc..56ce59387fcd8ddd9d64b068e7d5989a6503180b 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallExtractor.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallExtractor.java
@@ -1,40 +1,40 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class OperationCallExtractor extends AbstractTransformation<Trace, OperationCall> {
-
-	@Override
-	protected void execute(final Trace element) {
-		this.sendAllCalls(element.getRootOperationCall());
-	}
-
-	private void sendAllCalls(final OperationCall call) {
-		super.getOutputPort().send(call);
-
-		call.getChildren().forEach(child -> this.sendAllCalls(child));
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class OperationCallExtractor extends AbstractTransformation<Trace, OperationCall> {
+
+	@Override
+	protected void execute(final Trace element) {
+		this.sendAllCalls(element.getRootOperationCall());
+	}
+
+	private void sendAllCalls(final OperationCall call) {
+		super.getOutputPort().send(call);
+
+		call.getChildren().forEach(child -> this.sendAllCalls(child));
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallHandlerComposite.java b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallHandlerComposite.java
index 1df76fdafdab1f31d29ab7f75e85dee1485f32de..be652497be71da2bc971fdf5a8540f8019ba04ce 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallHandlerComposite.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallHandlerComposite.java
@@ -1,60 +1,60 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import java.util.List;
-
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-
-import teetime.framework.AbstractCompositeStage;
-import teetime.framework.InputPort;
-import teetime.stage.CollectorSink;
-import teetime.stage.basic.distributor.Distributor;
-import teetime.stage.basic.distributor.strategy.CopyByReferenceStrategy;
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class OperationCallHandlerComposite extends AbstractCompositeStage {
-
-	private final InputPort<Trace> inputPort;
-	private final OperationCallExtractor operationCallExtractor;
-	private final CollectorSink<OperationCall> callCollector;
-	private final CollectorSink<AggregatedOperationCall> aggCallCollector;
-
-	public OperationCallHandlerComposite(final List<OperationCall> operationCalls, final List<AggregatedOperationCall> aggOperationCalls) {
-		this.operationCallExtractor = new OperationCallExtractor();
-		this.callCollector = new CollectorSink<>(operationCalls);
-		final Distributor<OperationCall> distributor = new Distributor<>(new CopyByReferenceStrategy());
-		final OperationCallAggregator callAggregator = new OperationCallAggregator();
-		this.aggCallCollector = new CollectorSink<>(aggOperationCalls);
-
-		this.inputPort = this.operationCallExtractor.getInputPort();
-
-		super.connectPorts(this.operationCallExtractor.getOutputPort(), distributor.getInputPort());
-		super.connectPorts(distributor.getNewOutputPort(), this.callCollector.getInputPort());
-		super.connectPorts(distributor.getNewOutputPort(), callAggregator.getInputPort());
-		super.connectPorts(callAggregator.getOutputPort(), this.aggCallCollector.getInputPort());
-	}
-
-	public InputPort<Trace> getInputPort() {
-		return this.inputPort;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import java.util.List;
+
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+
+import teetime.framework.AbstractCompositeStage;
+import teetime.framework.InputPort;
+import teetime.stage.CollectorSink;
+import teetime.stage.basic.distributor.Distributor;
+import teetime.stage.basic.distributor.strategy.CopyByReferenceStrategy;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class OperationCallHandlerComposite extends AbstractCompositeStage {
+
+	private final InputPort<Trace> inputPort;
+	private final OperationCallExtractor operationCallExtractor;
+	private final CollectorSink<OperationCall> callCollector;
+	private final CollectorSink<AggregatedOperationCall> aggCallCollector;
+
+	public OperationCallHandlerComposite(final List<OperationCall> operationCalls, final List<AggregatedOperationCall> aggOperationCalls) {
+		this.operationCallExtractor = new OperationCallExtractor();
+		this.callCollector = new CollectorSink<>(operationCalls);
+		final Distributor<OperationCall> distributor = new Distributor<>(new CopyByReferenceStrategy());
+		final OperationCallAggregator callAggregator = new OperationCallAggregator();
+		this.aggCallCollector = new CollectorSink<>(aggOperationCalls);
+
+		this.inputPort = this.operationCallExtractor.getInputPort();
+
+		super.connectPorts(this.operationCallExtractor.getOutputPort(), distributor.getInputPort());
+		super.connectPorts(distributor.getNewOutputPort(), this.callCollector.getInputPort());
+		super.connectPorts(distributor.getNewOutputPort(), callAggregator.getInputPort());
+		super.connectPorts(callAggregator.getOutputPort(), this.aggCallCollector.getInputPort());
+	}
+
+	public InputPort<Trace> getInputPort() {
+		return this.inputPort;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/ReadingComposite.java b/src/main/java/kieker/analysis/stage/tracediagnosis/ReadingComposite.java
index 6b48ecce835089b0659d3fa182bdbf6a897627cc..6fb9d568725559de223103f3d7508eafd6c484dd 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/ReadingComposite.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/ReadingComposite.java
@@ -1,50 +1,50 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import java.io.File;
-
-import kieker.common.record.IMonitoringRecord;
-
-import teetime.framework.AbstractCompositeStage;
-import teetime.framework.OutputPort;
-import teetime.stage.InitialElementProducer;
-import teetime.stage.className.ClassNameRegistryRepository;
-import teetime.stage.io.filesystem.Dir2RecordsFilter;
-
-/**
- * This is a composite stage which deserializes monitoring records from a specific directory and forwards them to the output port.
- *
- * @author Nils Christian Ehmke
- */
-public final class ReadingComposite extends AbstractCompositeStage {
-
-	private final InitialElementProducer<File> producer;
-	private final Dir2RecordsFilter reader;
-
-	public ReadingComposite(final File importDirectory) {
-		this.producer = new InitialElementProducer<>(importDirectory);
-		this.reader = new Dir2RecordsFilter(new ClassNameRegistryRepository());
-
-		super.connectPorts(this.producer.getOutputPort(), this.reader.getInputPort());
-	}
-
-	public OutputPort<IMonitoringRecord> getOutputPort() {
-		return this.reader.getOutputPort();
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import java.io.File;
+
+import kieker.common.record.IMonitoringRecord;
+
+import teetime.framework.AbstractCompositeStage;
+import teetime.framework.OutputPort;
+import teetime.stage.InitialElementProducer;
+import teetime.stage.className.ClassNameRegistryRepository;
+import teetime.stage.io.filesystem.Dir2RecordsFilter;
+
+/**
+ * This is a composite stage which deserializes monitoring records from a specific directory and forwards them to the output port.
+ *
+ * @author Nils Christian Ehmke
+ */
+public final class ReadingComposite extends AbstractCompositeStage {
+
+	private final InitialElementProducer<File> producer;
+	private final Dir2RecordsFilter reader;
+
+	public ReadingComposite(final File importDirectory) {
+		this.producer = new InitialElementProducer<>(importDirectory);
+		this.reader = new Dir2RecordsFilter(new ClassNameRegistryRepository());
+
+		super.connectPorts(this.producer.getOutputPort(), this.reader.getInputPort());
+	}
+
+	public OutputPort<IMonitoringRecord> getOutputPort() {
+		return this.reader.getOutputPort();
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceAggregationComposite.java b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceAggregationComposite.java
index 8f38d859b48d36b890bd8e87767974e3fc0a8c47..bfc116de4c0b8fb8b376a7dc630cf70e5fca5646 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceAggregationComposite.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceAggregationComposite.java
@@ -1,57 +1,57 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import kieker.analysis.dev.AggregatedTraceCallsDecorator;
-import kieker.analysis.domain.AggregatedTrace;
-import kieker.analysis.domain.Trace;
-
-import teetime.framework.AbstractCompositeStage;
-import teetime.framework.InputPort;
-import teetime.framework.OutputPort;
-
-/**
- * This is a composite {@code TeeTime} stage which aggregates incoming traces, adds statistical data and send them to the output port.
- *
- * @author Nils Christian Ehmke, Sören henning
- */
-public final class TraceAggregationComposite extends AbstractCompositeStage {
-
-	private final TraceAggregator aggregator;
-	private final AggregatedTraceStatisticsDecorator statisticsDecorator;
-	private final AggregatedTraceCallsDecorator callsDecorator;
-
-	public TraceAggregationComposite() {
-		this.aggregator = new TraceAggregator();
-		this.callsDecorator = new AggregatedTraceCallsDecorator();
-		this.statisticsDecorator = new AggregatedTraceStatisticsDecorator();
-
-		// TODO if everything is fine remove old connection
-		// super.connectPorts(this.aggregator.getOutputPort(), this.statisticsDecorator.getInputPort());
-		super.connectPorts(this.aggregator.getOutputPort(), this.callsDecorator.getInputPort());
-		super.connectPorts(this.callsDecorator.getOutputPort(), this.statisticsDecorator.getInputPort());
-	}
-
-	public InputPort<Trace> getInputPort() {
-		return this.aggregator.getInputPort();
-	}
-
-	public OutputPort<AggregatedTrace> getOutputPort() {
-		return this.statisticsDecorator.getOutputPort();
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import kieker.analysis.dev.AggregatedTraceCallsDecorator;
+import kieker.analysis.domain.AggregatedTrace;
+import kieker.analysis.domain.Trace;
+
+import teetime.framework.AbstractCompositeStage;
+import teetime.framework.InputPort;
+import teetime.framework.OutputPort;
+
+/**
+ * This is a composite {@code TeeTime} stage which aggregates incoming traces, adds statistical data and send them to the output port.
+ *
+ * @author Nils Christian Ehmke, Sören henning
+ */
+public final class TraceAggregationComposite extends AbstractCompositeStage {
+
+	private final TraceAggregator aggregator;
+	private final AggregatedTraceStatisticsDecorator statisticsDecorator;
+	private final AggregatedTraceCallsDecorator callsDecorator;
+
+	public TraceAggregationComposite() {
+		this.aggregator = new TraceAggregator();
+		this.callsDecorator = new AggregatedTraceCallsDecorator();
+		this.statisticsDecorator = new AggregatedTraceStatisticsDecorator();
+
+		// TODO if everything is fine remove old connection
+		// super.connectPorts(this.aggregator.getOutputPort(), this.statisticsDecorator.getInputPort());
+		super.connectPorts(this.aggregator.getOutputPort(), this.callsDecorator.getInputPort());
+		super.connectPorts(this.callsDecorator.getOutputPort(), this.statisticsDecorator.getInputPort());
+	}
+
+	public InputPort<Trace> getInputPort() {
+		return this.aggregator.getInputPort();
+	}
+
+	public OutputPort<AggregatedTrace> getOutputPort() {
+		return this.statisticsDecorator.getOutputPort();
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceAggregator.java b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceAggregator.java
index 9ac3ab7962855d02458b56eca26fde743b8fcdcc..1e4fda9854087605fcca9d4eac29c0f6312d600e 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceAggregator.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceAggregator.java
@@ -1,78 +1,78 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import kieker.analysis.domain.AggregatedTrace;
-import kieker.analysis.domain.Trace;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * This stage aggregates incoming traces into trace equivalence classes.
- *
- * @author Nils Christian Ehmke
- */
-public final class TraceAggregator extends AbstractTransformation<Trace, AggregatedTrace> {
-
-	private final Map<TraceWrapper, List<Trace>> aggregationMap = new HashMap<>();
-
-	@Override
-	protected void execute(final Trace trace) {
-		final TraceWrapper wrapper = new TraceWrapper(trace);
-		if (!this.aggregationMap.containsKey(wrapper)) {
-			final List<Trace> aggregationList = new ArrayList<>();
-			this.aggregationMap.put(wrapper, aggregationList);
-		}
-		this.aggregationMap.get(wrapper).add(trace);
-	}
-
-	@Override
-	public void onTerminating() throws Exception { // NOPMD (the throws clause is forced by the framework)
-		this.aggregationMap.values().forEach(list -> super.getOutputPort().send(new AggregatedTrace(list)));
-
-		super.onTerminating();
-	}
-
-	private static class TraceWrapper {
-
-		private final Trace trace;
-
-		public TraceWrapper(final Trace trace) {
-			this.trace = trace;
-		}
-
-		@Override
-		public int hashCode() {
-			return this.trace.calculateHashCode();
-		}
-
-		@Override
-		public boolean equals(final Object obj) {
-			if (!(obj instanceof TraceWrapper)) {
-				return false;
-			}
-			return this.trace.isEqualTo(((TraceWrapper) obj).trace);
-		}
-
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import kieker.analysis.domain.AggregatedTrace;
+import kieker.analysis.domain.Trace;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * This stage aggregates incoming traces into trace equivalence classes.
+ *
+ * @author Nils Christian Ehmke
+ */
+public final class TraceAggregator extends AbstractTransformation<Trace, AggregatedTrace> {
+
+	private final Map<TraceWrapper, List<Trace>> aggregationMap = new HashMap<>();
+
+	@Override
+	protected void execute(final Trace trace) {
+		final TraceWrapper wrapper = new TraceWrapper(trace);
+		if (!this.aggregationMap.containsKey(wrapper)) {
+			final List<Trace> aggregationList = new ArrayList<>();
+			this.aggregationMap.put(wrapper, aggregationList);
+		}
+		this.aggregationMap.get(wrapper).add(trace);
+	}
+
+	@Override
+	public void onTerminating() throws Exception { // NOPMD (the throws clause is forced by the framework)
+		this.aggregationMap.values().forEach(list -> super.getOutputPort().send(new AggregatedTrace(list)));
+
+		super.onTerminating();
+	}
+
+	private static class TraceWrapper {
+
+		private final Trace trace;
+
+		public TraceWrapper(final Trace trace) {
+			this.trace = trace;
+		}
+
+		@Override
+		public int hashCode() {
+			return this.trace.calculateHashCode();
+		}
+
+		@Override
+		public boolean equals(final Object obj) {
+			if (!(obj instanceof TraceWrapper)) {
+				return false;
+			}
+			return this.trace.isEqualTo(((TraceWrapper) obj).trace);
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructionComposite.java b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructionComposite.java
index c731e116798805c1a5bbcc30d1d41d0fe66474fb..5067f65c843cd7d3b79ca192d07268313176bab7 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructionComposite.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructionComposite.java
@@ -1,77 +1,77 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import kieker.analysis.domain.Trace;
-import kieker.common.record.IMonitoringRecord;
-import kieker.common.record.controlflow.OperationExecutionRecord;
-import kieker.common.record.flow.IFlowRecord;
-
-import teetime.framework.AbstractCompositeStage;
-import teetime.framework.InputPort;
-import teetime.framework.OutputPort;
-import teetime.stage.MultipleInstanceOfFilter;
-import teetime.stage.basic.merger.Merger;
-
-/**
- * This class is a composite {@code TeeTime} stage, which reconstruct traces based on the incoming records, adds statistical data and send them to the output port.
- *
- * @author Nils Christian Ehmke, Sören Henning
- */
-public final class TraceReconstructionComposite extends AbstractCompositeStage {
-
-	private final MultipleInstanceOfFilter<IMonitoringRecord> typeFilter;
-	private final TraceStatisticsDecorator statisticsDecorator;
-	private final OutputPort<Trace> outputPort;
-	private final LegacyTraceReconstructor legacyReconstructor;
-	private final TraceReconstructor reconstructor;
-
-	public TraceReconstructionComposite(final boolean activateAdditionalLogChecks) {
-		final Merger<Trace> merger = new Merger<>();
-
-		this.typeFilter = new MultipleInstanceOfFilter<>();
-		this.statisticsDecorator = new TraceStatisticsDecorator();
-		this.reconstructor = new TraceReconstructor(activateAdditionalLogChecks);
-		this.legacyReconstructor = new LegacyTraceReconstructor();
-
-		this.outputPort = this.statisticsDecorator.getOutputPort();
-
-		super.connectPorts(this.typeFilter.getOutputPortForType(IFlowRecord.class), this.reconstructor.getInputPort());
-		super.connectPorts(this.typeFilter.getOutputPortForType(OperationExecutionRecord.class), this.legacyReconstructor.getInputPort());
-		super.connectPorts(this.reconstructor.getOutputPort(), merger.getNewInputPort());
-		super.connectPorts(this.legacyReconstructor.getOutputPort(), merger.getNewInputPort());
-		super.connectPorts(merger.getOutputPort(), this.statisticsDecorator.getInputPort());
-
-	}
-
-	public int countIncompleteTraces() {
-		return this.reconstructor.countIncompleteTraces() + this.legacyReconstructor.countIncompleteTraces();
-	}
-
-	public int countDanglingRecords() {
-		return this.reconstructor.countDanglingRecords() + this.legacyReconstructor.countDanglingRecords();
-	}
-
-	public InputPort<IMonitoringRecord> getInputPort() {
-		return this.typeFilter.getInputPort();
-	}
-
-	public OutputPort<Trace> getOutputPort() {
-		return this.outputPort;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import kieker.analysis.domain.Trace;
+import kieker.common.record.IMonitoringRecord;
+import kieker.common.record.controlflow.OperationExecutionRecord;
+import kieker.common.record.flow.IFlowRecord;
+
+import teetime.framework.AbstractCompositeStage;
+import teetime.framework.InputPort;
+import teetime.framework.OutputPort;
+import teetime.stage.MultipleInstanceOfFilter;
+import teetime.stage.basic.merger.Merger;
+
+/**
+ * This class is a composite {@code TeeTime} stage, which reconstruct traces based on the incoming records, adds statistical data and send them to the output port.
+ *
+ * @author Nils Christian Ehmke, Sören Henning
+ */
+public final class TraceReconstructionComposite extends AbstractCompositeStage {
+
+	private final MultipleInstanceOfFilter<IMonitoringRecord> typeFilter;
+	private final TraceStatisticsDecorator statisticsDecorator;
+	private final OutputPort<Trace> outputPort;
+	private final LegacyTraceReconstructor legacyReconstructor;
+	private final TraceReconstructor reconstructor;
+
+	public TraceReconstructionComposite(final boolean activateAdditionalLogChecks) {
+		final Merger<Trace> merger = new Merger<>();
+
+		this.typeFilter = new MultipleInstanceOfFilter<>();
+		this.statisticsDecorator = new TraceStatisticsDecorator();
+		this.reconstructor = new TraceReconstructor(activateAdditionalLogChecks);
+		this.legacyReconstructor = new LegacyTraceReconstructor();
+
+		this.outputPort = this.statisticsDecorator.getOutputPort();
+
+		super.connectPorts(this.typeFilter.getOutputPortForType(IFlowRecord.class), this.reconstructor.getInputPort());
+		super.connectPorts(this.typeFilter.getOutputPortForType(OperationExecutionRecord.class), this.legacyReconstructor.getInputPort());
+		super.connectPorts(this.reconstructor.getOutputPort(), merger.getNewInputPort());
+		super.connectPorts(this.legacyReconstructor.getOutputPort(), merger.getNewInputPort());
+		super.connectPorts(merger.getOutputPort(), this.statisticsDecorator.getInputPort());
+
+	}
+
+	public int countIncompleteTraces() {
+		return this.reconstructor.countIncompleteTraces() + this.legacyReconstructor.countIncompleteTraces();
+	}
+
+	public int countDanglingRecords() {
+		return this.reconstructor.countDanglingRecords() + this.legacyReconstructor.countDanglingRecords();
+	}
+
+	public InputPort<IMonitoringRecord> getInputPort() {
+		return this.typeFilter.getInputPort();
+	}
+
+	public OutputPort<Trace> getOutputPort() {
+		return this.outputPort;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructor.java b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructor.java
index 9bd6f2ae4cd8a7b2490d23ed46d9c939e18d73ce..631b17698ba74d19333a1103a0c63383f3795f4b 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructor.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructor.java
@@ -1,161 +1,161 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import java.util.ArrayList;
-import java.util.Deque;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-import kieker.common.record.flow.IFlowRecord;
-import kieker.common.record.flow.trace.TraceMetadata;
-import kieker.common.record.flow.trace.operation.AbstractOperationEvent;
-import kieker.common.record.flow.trace.operation.AfterOperationEvent;
-import kieker.common.record.flow.trace.operation.AfterOperationFailedEvent;
-import kieker.common.record.flow.trace.operation.BeforeOperationEvent;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * Reconstruct traces based on the incoming instances of {@code IFlowRecord}. Currently only {@link TraceMetadata}, {@link BeforeOperationEvent} and
- * {@link AfterOperationEvent}
- * instances are supported.
- *
- * @author Nils Christian Ehmke
- */
-final class TraceReconstructor extends AbstractTransformation<IFlowRecord, Trace> {
-
-	private final Map<Long, TraceBuffer> traceBuffers = new HashMap<>();
-	private final List<TraceBuffer> faultyTraceBuffers = new ArrayList<>();
-	private final boolean activateAdditionalLogChecks;
-	private int danglingRecords;
-
-	public TraceReconstructor(final boolean activateAdditionalLogChecks) {
-		this.activateAdditionalLogChecks = activateAdditionalLogChecks;
-	}
-
-	public int countIncompleteTraces() {
-		return this.traceBuffers.size() + this.faultyTraceBuffers.size();
-	}
-
-	public int countDanglingRecords() {
-		return this.danglingRecords - this.faultyTraceBuffers.size();
-	}
-
-	@Override
-	protected void execute(final IFlowRecord input) {
-		if (input instanceof TraceMetadata) {
-			this.handleMetadataRecord((TraceMetadata) input);
-		} else if (input instanceof AbstractOperationEvent) {
-			this.handleOperationEventRecord((AbstractOperationEvent) input);
-		}
-	}
-
-	private void handleMetadataRecord(final TraceMetadata record) {
-		final long traceID = record.getTraceId();
-		final TraceBuffer newTraceBuffer = new TraceBuffer(record);
-
-		this.traceBuffers.put(traceID, newTraceBuffer);
-	}
-
-	private void handleOperationEventRecord(final AbstractOperationEvent input) {
-		final long traceID = input.getTraceId();
-		final TraceBuffer traceBuffer = this.traceBuffers.get(traceID);
-
-		if (traceBuffer != null) {
-			traceBuffer.handleEvent(input);
-			if (traceBuffer.isTraceComplete()) {
-				final Trace trace = traceBuffer.reconstructTrace();
-				this.traceBuffers.remove(traceID);
-				super.getOutputPort().send(trace);
-			}
-		} else {
-			this.danglingRecords++;
-		}
-	}
-
-	/**
-	 * @author Nils Christian Ehmke
-	 */
-	private final class TraceBuffer {
-
-		private final String hostname;
-		private final Deque<BeforeOperationEvent> stack = new LinkedList<>();
-		private OperationCall root;
-		private OperationCall header;
-		private final long traceID;
-
-		public TraceBuffer(final TraceMetadata traceMetadata) {
-			this.hostname = traceMetadata.getHostname();
-			this.traceID = traceMetadata.getTraceId();
-		}
-
-		public void handleEvent(final AbstractOperationEvent record) {
-			if (record instanceof BeforeOperationEvent) {
-				this.handleBeforeOperationEventRecord((BeforeOperationEvent) record);
-			} else if (record instanceof AfterOperationEvent) {
-				this.handleAfterOperationEventRecord((AfterOperationEvent) record);
-			}
-		}
-
-		private void handleBeforeOperationEventRecord(final BeforeOperationEvent record) {
-			this.stack.push(record);
-
-			final OperationCall newCall = new OperationCall(this.hostname, record.getClassSignature(), record.getOperationSignature(), record.getOrderIndex(),
-					this.traceID, record.getLoggingTimestamp());
-			if (this.root == null) {
-				this.root = newCall;
-			} else {
-				this.header.addChild(newCall);
-			}
-			this.header = newCall;
-		}
-
-		private void handleAfterOperationEventRecord(final AfterOperationEvent record) {
-			final BeforeOperationEvent beforeEvent = this.stack.pop();
-
-			this.header.setDuration(record.getTimestamp() - beforeEvent.getTimestamp());
-
-			if (record instanceof AfterOperationFailedEvent) {
-				this.header.setFailedCause(((AfterOperationFailedEvent) record).getCause());
-			}
-
-			this.header = this.header.getParent();
-
-			if (TraceReconstructor.this.activateAdditionalLogChecks) {
-				if (!beforeEvent.getOperationSignature().equals(record.getOperationSignature())) {
-					TraceReconstructor.this.faultyTraceBuffers.add(this);
-					TraceReconstructor.this.traceBuffers.remove(this.traceID);
-				}
-			}
-		}
-
-		public Trace reconstructTrace() {
-			return new Trace(this.root, this.traceID);
-		}
-
-		public boolean isTraceComplete() {
-			return this.stack.isEmpty();
-		}
-
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import java.util.ArrayList;
+import java.util.Deque;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+import kieker.common.record.flow.IFlowRecord;
+import kieker.common.record.flow.trace.TraceMetadata;
+import kieker.common.record.flow.trace.operation.AbstractOperationEvent;
+import kieker.common.record.flow.trace.operation.AfterOperationEvent;
+import kieker.common.record.flow.trace.operation.AfterOperationFailedEvent;
+import kieker.common.record.flow.trace.operation.BeforeOperationEvent;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * Reconstruct traces based on the incoming instances of {@code IFlowRecord}. Currently only {@link TraceMetadata}, {@link BeforeOperationEvent} and
+ * {@link AfterOperationEvent}
+ * instances are supported.
+ *
+ * @author Nils Christian Ehmke
+ */
+final class TraceReconstructor extends AbstractTransformation<IFlowRecord, Trace> {
+
+	private final Map<Long, TraceBuffer> traceBuffers = new HashMap<>();
+	private final List<TraceBuffer> faultyTraceBuffers = new ArrayList<>();
+	private final boolean activateAdditionalLogChecks;
+	private int danglingRecords;
+
+	public TraceReconstructor(final boolean activateAdditionalLogChecks) {
+		this.activateAdditionalLogChecks = activateAdditionalLogChecks;
+	}
+
+	public int countIncompleteTraces() {
+		return this.traceBuffers.size() + this.faultyTraceBuffers.size();
+	}
+
+	public int countDanglingRecords() {
+		return this.danglingRecords - this.faultyTraceBuffers.size();
+	}
+
+	@Override
+	protected void execute(final IFlowRecord input) {
+		if (input instanceof TraceMetadata) {
+			this.handleMetadataRecord((TraceMetadata) input);
+		} else if (input instanceof AbstractOperationEvent) {
+			this.handleOperationEventRecord((AbstractOperationEvent) input);
+		}
+	}
+
+	private void handleMetadataRecord(final TraceMetadata record) {
+		final long traceID = record.getTraceId();
+		final TraceBuffer newTraceBuffer = new TraceBuffer(record);
+
+		this.traceBuffers.put(traceID, newTraceBuffer);
+	}
+
+	private void handleOperationEventRecord(final AbstractOperationEvent input) {
+		final long traceID = input.getTraceId();
+		final TraceBuffer traceBuffer = this.traceBuffers.get(traceID);
+
+		if (traceBuffer != null) {
+			traceBuffer.handleEvent(input);
+			if (traceBuffer.isTraceComplete()) {
+				final Trace trace = traceBuffer.reconstructTrace();
+				this.traceBuffers.remove(traceID);
+				super.getOutputPort().send(trace);
+			}
+		} else {
+			this.danglingRecords++;
+		}
+	}
+
+	/**
+	 * @author Nils Christian Ehmke
+	 */
+	private final class TraceBuffer {
+
+		private final String hostname;
+		private final Deque<BeforeOperationEvent> stack = new LinkedList<>();
+		private OperationCall root;
+		private OperationCall header;
+		private final long traceID;
+
+		public TraceBuffer(final TraceMetadata traceMetadata) {
+			this.hostname = traceMetadata.getHostname();
+			this.traceID = traceMetadata.getTraceId();
+		}
+
+		public void handleEvent(final AbstractOperationEvent record) {
+			if (record instanceof BeforeOperationEvent) {
+				this.handleBeforeOperationEventRecord((BeforeOperationEvent) record);
+			} else if (record instanceof AfterOperationEvent) {
+				this.handleAfterOperationEventRecord((AfterOperationEvent) record);
+			}
+		}
+
+		private void handleBeforeOperationEventRecord(final BeforeOperationEvent record) {
+			this.stack.push(record);
+
+			final OperationCall newCall = new OperationCall(this.hostname, record.getClassSignature(), record.getOperationSignature(), record.getOrderIndex(),
+					this.traceID, record.getLoggingTimestamp());
+			if (this.root == null) {
+				this.root = newCall;
+			} else {
+				this.header.addChild(newCall);
+			}
+			this.header = newCall;
+		}
+
+		private void handleAfterOperationEventRecord(final AfterOperationEvent record) {
+			final BeforeOperationEvent beforeEvent = this.stack.pop();
+
+			this.header.setDuration(record.getTimestamp() - beforeEvent.getTimestamp());
+
+			if (record instanceof AfterOperationFailedEvent) {
+				this.header.setFailedCause(((AfterOperationFailedEvent) record).getCause());
+			}
+
+			this.header = this.header.getParent();
+
+			if (TraceReconstructor.this.activateAdditionalLogChecks) {
+				if (!beforeEvent.getOperationSignature().equals(record.getOperationSignature())) {
+					TraceReconstructor.this.faultyTraceBuffers.add(this);
+					TraceReconstructor.this.traceBuffers.remove(this.traceID);
+				}
+			}
+		}
+
+		public Trace reconstructTrace() {
+			return new Trace(this.root, this.traceID);
+		}
+
+		public boolean isTraceComplete() {
+			return this.stack.isEmpty();
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceStatisticsDecorator.java b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceStatisticsDecorator.java
index 547b5af3536589dd29652b073da657206ea21743..21bbd28e2ed251c13663d95e4641f02e0b040c64 100644
--- a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceStatisticsDecorator.java
+++ b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceStatisticsDecorator.java
@@ -1,84 +1,84 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.stage.tracediagnosis;
-
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-
-import teetime.stage.basic.AbstractTransformation;
-
-/**
- * This class is a {@code TeeTime} stage adding statistics (via the corresponding setters) to instances of {@link Trace}. The traces are forwarded to the output
- * port.
- *
- * @author Nils Christian Ehmke
- */
-public final class TraceStatisticsDecorator extends AbstractTransformation<Trace, Trace> {
-
-	@Override
-	public void execute(final Trace trace) {
-		addTraceDepth(trace.getRootOperationCall());
-		addTraceSize(trace.getRootOperationCall());
-		addPercentValues(trace.getRootOperationCall(), trace.getRootOperationCall().getDuration());
-
-		super.getOutputPort().send(trace);
-	}
-
-	private static int addTraceDepth(final OperationCall call) {
-		final int traceDepth;
-
-		if (call.getChildren().isEmpty()) {
-			traceDepth = 0;
-		} else {
-			int maxTraceDepthOfChildren = 0;
-
-			for (final OperationCall child : call.getChildren()) {
-				final int traceDepthOfChild = addTraceDepth(child);
-				maxTraceDepthOfChildren = Math.max(traceDepthOfChild, maxTraceDepthOfChildren);
-			}
-
-			traceDepth = 1 + maxTraceDepthOfChildren;
-		}
-
-		call.setStackDepth(traceDepth);
-		return traceDepth;
-	}
-
-	private static int addTraceSize(final OperationCall call) {
-		int traceSize = 1;
-
-		for (final OperationCall child : call.getChildren()) {
-			final int traceSizeOfChild = addTraceSize(child);
-			traceSize += traceSizeOfChild;
-		}
-
-		call.setStackSize(traceSize);
-		return traceSize;
-	}
-
-	private static void addPercentValues(final OperationCall call, final long rootDuration) {
-		if (call.getParent() == null) {
-			call.setPercent(100.0f);
-		} else {
-			call.setPercent((100.0f * call.getDuration()) / rootDuration);
-		}
-
-		for (final OperationCall child : call.getChildren()) {
-			addPercentValues(child, call.getDuration());
-		}
-	}
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.stage.tracediagnosis;
+
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+
+import teetime.stage.basic.AbstractTransformation;
+
+/**
+ * This class is a {@code TeeTime} stage adding statistics (via the corresponding setters) to instances of {@link Trace}. The traces are forwarded to the output
+ * port.
+ *
+ * @author Nils Christian Ehmke
+ */
+public final class TraceStatisticsDecorator extends AbstractTransformation<Trace, Trace> {
+
+	@Override
+	public void execute(final Trace trace) {
+		addTraceDepth(trace.getRootOperationCall());
+		addTraceSize(trace.getRootOperationCall());
+		addPercentValues(trace.getRootOperationCall(), trace.getRootOperationCall().getDuration());
+
+		super.getOutputPort().send(trace);
+	}
+
+	private static int addTraceDepth(final OperationCall call) {
+		final int traceDepth;
+
+		if (call.getChildren().isEmpty()) {
+			traceDepth = 0;
+		} else {
+			int maxTraceDepthOfChildren = 0;
+
+			for (final OperationCall child : call.getChildren()) {
+				final int traceDepthOfChild = addTraceDepth(child);
+				maxTraceDepthOfChildren = Math.max(traceDepthOfChild, maxTraceDepthOfChildren);
+			}
+
+			traceDepth = 1 + maxTraceDepthOfChildren;
+		}
+
+		call.setStackDepth(traceDepth);
+		return traceDepth;
+	}
+
+	private static int addTraceSize(final OperationCall call) {
+		int traceSize = 1;
+
+		for (final OperationCall child : call.getChildren()) {
+			final int traceSizeOfChild = addTraceSize(child);
+			traceSize += traceSizeOfChild;
+		}
+
+		call.setStackSize(traceSize);
+		return traceSize;
+	}
+
+	private static void addPercentValues(final OperationCall call, final long rootDuration) {
+		if (call.getParent() == null) {
+			call.setPercent(100.0f);
+		} else {
+			call.setPercent((100.0f * call.getDuration()) / rootDuration);
+		}
+
+		for (final OperationCall child : call.getChildren()) {
+			addPercentValues(child, call.getDuration());
+		}
+	}
+}
diff --git a/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java b/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java
index a514bc7da531f6fac6d1d7a4d555ba3e8377f410..0f88302f0bf4a5e0e91d410627fcdfda96e4623e 100644
--- a/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java
+++ b/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java
@@ -1,74 +1,74 @@
-package kieker.analysis.trace.graphoutput;
-
-import java.io.BufferedWriter;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.util.HashMap;
-import java.util.Map;
-
-import com.tinkerpop.blueprints.Direction;
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.Vertex;
-
-import kieker.analysis.util.DotBuilder;
-import kieker.analysis.util.graph.NamedGraph;
-
-import teetime.framework.AbstractConsumerStage;
-
-public class DotGraphWriter extends AbstractConsumerStage<NamedGraph<Graph>> {
-
-	private final String outputDir;
-
-	public DotGraphWriter(final String outputDir) {
-		this.outputDir = outputDir;
-	}
-
-	@Override
-	protected void execute(final NamedGraph<Graph> graph) {
-		final String dotGraph = createDotGraph(graph);
-		final String fileName = outputDir + "/" + graph.getFileName() + ".dot";
-
-		try {
-			writeDotGraphFile(dotGraph, fileName);
-		} catch (IOException e) {
-			throw new IllegalStateException(e);
-		}
-	}
-
-	private String createDotGraph(final Graph graph) {
-
-		DotBuilder dotGraph = new DotBuilder();
-
-		Map<String, String> nodeProperties = new HashMap<>();
-		nodeProperties.put("shape", "none");
-
-		dotGraph.setDefaultNodeProperties(nodeProperties);
-
-		for (Vertex vertex : graph.getVertices()) {
-			String label = vertex.getProperty("label");
-			dotGraph.addNode(String.valueOf(vertex.getId()), label);
-		}
-
-		for (Edge edge : graph.getEdges()) {
-			String source = edge.getVertex(Direction.OUT).getId().toString();
-			String target = edge.getVertex(Direction.IN).getId().toString();
-			dotGraph.addEdge(source, target, edge.getLabel());
-		}
-
-		return dotGraph.get();
-	}
-
-	private void writeDotGraphFile(final String dotGraph, final String fileName) throws IOException {
-
-		final OutputStream outputStream = new FileOutputStream(fileName);
-
-		final Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8"));
-		writer.write(dotGraph);
-		writer.close();
-
-	}
-}
+package kieker.analysis.trace.graphoutput;
+
+import java.io.BufferedWriter;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.tinkerpop.blueprints.Direction;
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.Vertex;
+
+import kieker.analysis.util.DotBuilder;
+import kieker.analysis.util.graph.NamedGraph;
+
+import teetime.framework.AbstractConsumerStage;
+
+public class DotGraphWriter extends AbstractConsumerStage<NamedGraph<Graph>> {
+
+	private final String outputDir;
+
+	public DotGraphWriter(final String outputDir) {
+		this.outputDir = outputDir;
+	}
+
+	@Override
+	protected void execute(final NamedGraph<Graph> graph) {
+		final String dotGraph = createDotGraph(graph);
+		final String fileName = outputDir + "/" + graph.getFileName() + ".dot";
+
+		try {
+			writeDotGraphFile(dotGraph, fileName);
+		} catch (IOException e) {
+			throw new IllegalStateException(e);
+		}
+	}
+
+	private String createDotGraph(final Graph graph) {
+
+		DotBuilder dotGraph = new DotBuilder();
+
+		Map<String, String> nodeProperties = new HashMap<>();
+		nodeProperties.put("shape", "none");
+
+		dotGraph.setDefaultNodeProperties(nodeProperties);
+
+		for (Vertex vertex : graph.getVertices()) {
+			String label = vertex.getProperty("label");
+			dotGraph.addNode(String.valueOf(vertex.getId()), label);
+		}
+
+		for (Edge edge : graph.getEdges()) {
+			String source = edge.getVertex(Direction.OUT).getId().toString();
+			String target = edge.getVertex(Direction.IN).getId().toString();
+			dotGraph.addEdge(source, target, edge.getLabel());
+		}
+
+		return dotGraph.get();
+	}
+
+	private void writeDotGraphFile(final String dotGraph, final String fileName) throws IOException {
+
+		final OutputStream outputStream = new FileOutputStream(fileName);
+
+		final Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8"));
+		writer.write(dotGraph);
+		writer.close();
+
+	}
+}
diff --git a/src/main/java/kieker/analysis/trace/graphoutput/GraphMLWriter.java b/src/main/java/kieker/analysis/trace/graphoutput/GraphMLWriter.java
index 20ebf3efd9417dcfb0452026bf7942df82b6265e..eede0b283b3fbb3b441616930b665967cd473bc7 100644
--- a/src/main/java/kieker/analysis/trace/graphoutput/GraphMLWriter.java
+++ b/src/main/java/kieker/analysis/trace/graphoutput/GraphMLWriter.java
@@ -1,35 +1,35 @@
-package kieker.analysis.trace.graphoutput;
-
-import java.io.IOException;
-
-import com.tinkerpop.blueprints.Graph;
-
-import kieker.analysis.util.graph.NamedGraph;
-
-import teetime.framework.AbstractConsumerStage;
-
-public class GraphMLWriter extends AbstractConsumerStage<NamedGraph<Graph>> {
-
-	private final String outputDir;
-
-	public GraphMLWriter(final String outputDir) {
-		this.outputDir = outputDir;
-	}
-
-	@Override
-	protected void execute(final NamedGraph<Graph> graph) {
-
-		String outputFile = outputDir + "/" + graph.getFileName() + ".xml";
-
-		com.tinkerpop.blueprints.util.io.graphml.GraphMLWriter writer = new com.tinkerpop.blueprints.util.io.graphml.GraphMLWriter(graph);
-		writer.setNormalize(true);
-
-		try {
-			writer.outputGraph(outputFile);
-		} catch (IOException e) {
-			throw new IllegalStateException(e);
-		}
-
-	}
-
-}
+package kieker.analysis.trace.graphoutput;
+
+import java.io.IOException;
+
+import com.tinkerpop.blueprints.Graph;
+
+import kieker.analysis.util.graph.NamedGraph;
+
+import teetime.framework.AbstractConsumerStage;
+
+public class GraphMLWriter extends AbstractConsumerStage<NamedGraph<Graph>> {
+
+	private final String outputDir;
+
+	public GraphMLWriter(final String outputDir) {
+		this.outputDir = outputDir;
+	}
+
+	@Override
+	protected void execute(final NamedGraph<Graph> graph) {
+
+		String outputFile = outputDir + "/" + graph.getFileName() + ".xml";
+
+		com.tinkerpop.blueprints.util.io.graphml.GraphMLWriter writer = new com.tinkerpop.blueprints.util.io.graphml.GraphMLWriter(graph);
+		writer.setNormalize(true);
+
+		try {
+			writer.outputGraph(outputFile);
+		} catch (IOException e) {
+			throw new IllegalStateException(e);
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/AbstractTraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/AbstractTraceToGraphTransformer.java
index b2972fb48d68f2fefb4d743b747488217fd1b320..77fb05acf09022826909142f70e5857de7bfb834 100644
--- a/src/main/java/kieker/analysis/trace/traversal/AbstractTraceToGraphTransformer.java
+++ b/src/main/java/kieker/analysis/trace/traversal/AbstractTraceToGraphTransformer.java
@@ -1,65 +1,65 @@
-package kieker.analysis.trace.traversal;
-
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
-
-import kieker.analysis.domain.AbstractOperationCall;
-
-public abstract class AbstractTraceToGraphTransformer<C extends AbstractOperationCall<C>> extends OperationCallVisitor<C> {
-
-	protected final Graph graph;
-	private final C rootOperationCall;
-
-	public AbstractTraceToGraphTransformer() {
-		this(null);
-	}
-
-	public AbstractTraceToGraphTransformer(final C rootOperartionCall) {
-		super();
-		this.graph = new TinkerGraph();
-		this.rootOperationCall = rootOperartionCall;
-	}
-
-	public Graph getGraph() {
-
-		addRootVertex();
-
-		return graph;
-	}
-
-	@Override
-	public void visit(final C operationCall) {
-
-		addVertex(operationCall);
-
-		if (operationCall.getParent() != null) {
-			addEdge(operationCall, operationCall.getParent());
-		}
-
-	}
-
-	private void addRootVertex() {
-
-		if (rootOperationCall == null) {
-			return;
-		}
-
-		final Vertex realRootVertex = graph.getVertex(rootOperationCall.hashCode());
-
-		if (realRootVertex == null) {
-			return;
-		}
-
-		final Vertex rootVertex = graph.addVertex("Entry");
-		rootVertex.setProperty("label", "'Entry'");
-		graph.addEdge(null, rootVertex, realRootVertex, "1.");
-
-	}
-
-	protected abstract Vertex addVertex(C operationCall);
-
-	protected abstract Edge addEdge(C operationCall, C parentOperationCall);
-
-}
+package kieker.analysis.trace.traversal;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.Vertex;
+import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
+
+import kieker.analysis.domain.AbstractOperationCall;
+
+public abstract class AbstractTraceToGraphTransformer<C extends AbstractOperationCall<C>> extends OperationCallVisitor<C> {
+
+	protected final Graph graph;
+	private final C rootOperationCall;
+
+	public AbstractTraceToGraphTransformer() {
+		this(null);
+	}
+
+	public AbstractTraceToGraphTransformer(final C rootOperartionCall) {
+		super();
+		this.graph = new TinkerGraph();
+		this.rootOperationCall = rootOperartionCall;
+	}
+
+	public Graph getGraph() {
+
+		addRootVertex();
+
+		return graph;
+	}
+
+	@Override
+	public void visit(final C operationCall) {
+
+		addVertex(operationCall);
+
+		if (operationCall.getParent() != null) {
+			addEdge(operationCall, operationCall.getParent());
+		}
+
+	}
+
+	private void addRootVertex() {
+
+		if (rootOperationCall == null) {
+			return;
+		}
+
+		final Vertex realRootVertex = graph.getVertex(rootOperationCall.hashCode());
+
+		if (realRootVertex == null) {
+			return;
+		}
+
+		final Vertex rootVertex = graph.addVertex("Entry");
+		rootVertex.setProperty("label", "'Entry'");
+		graph.addEdge(null, rootVertex, realRootVertex, "1.");
+
+	}
+
+	protected abstract Vertex addVertex(C operationCall);
+
+	protected abstract Edge addEdge(C operationCall, C parentOperationCall);
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
index d918fd97ff8ce5ac3ce84974cac97e5143f4bb60..d8cae5ea43e9202f8e33404442881b22bde07164 100644
--- a/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
+++ b/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
@@ -1,55 +1,55 @@
-package kieker.analysis.trace.traversal;
-
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Vertex;
-
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.util.NameConverter;
-
-public class AggrTraceToGraphTransformer extends AbstractTraceToGraphTransformer<AggregatedOperationCall> {
-
-	public AggrTraceToGraphTransformer() {
-		super();
-	}
-
-	public AggrTraceToGraphTransformer(final AggregatedOperationCall rootOperartionCall) {
-		super(rootOperartionCall);
-	}
-
-	@Override
-	protected Vertex addVertex(final AggregatedOperationCall operationCall) {
-
-		Vertex vertex = graph.addVertex(operationCall.hashCode());
-
-		String name = operationCall.getOperation();
-		String stackDepth = String.valueOf(operationCall.getStackDepth() + 1);
-		String component = operationCall.getComponent();
-		String container = operationCall.getContainer();
-
-		Boolean shortNames = true; // TODO hard coded
-
-		if (shortNames) {
-			name = NameConverter.toShortOperationName(name);
-		}
-
-		String label = container + "::\\n" + "@" + stackDepth + ":" + component + "\\n" + name;
-
-		vertex.setProperty("label", label);
-
-		return vertex;
-	}
-
-	@Override
-	protected Edge addEdge(final AggregatedOperationCall operationCall, final AggregatedOperationCall parentOperationCall) {
-
-		Vertex thisVertex = graph.getVertex(operationCall.hashCode());
-		Vertex parentVertex = graph.getVertex(operationCall.getParent().hashCode());
-
-		if (thisVertex == null || parentVertex == null) {
-			return null;
-		}
-
-		return graph.addEdge(null, parentVertex, thisVertex, String.valueOf(operationCall.getOrderIndex() + 1) + '.');
-	}
-
-}
+package kieker.analysis.trace.traversal;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Vertex;
+
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.util.NameConverter;
+
+public class AggrTraceToGraphTransformer extends AbstractTraceToGraphTransformer<AggregatedOperationCall> {
+
+	public AggrTraceToGraphTransformer() {
+		super();
+	}
+
+	public AggrTraceToGraphTransformer(final AggregatedOperationCall rootOperartionCall) {
+		super(rootOperartionCall);
+	}
+
+	@Override
+	protected Vertex addVertex(final AggregatedOperationCall operationCall) {
+
+		Vertex vertex = graph.addVertex(operationCall.hashCode());
+
+		String name = operationCall.getOperation();
+		String stackDepth = String.valueOf(operationCall.getStackDepth() + 1);
+		String component = operationCall.getComponent();
+		String container = operationCall.getContainer();
+
+		Boolean shortNames = true; // TODO hard coded
+
+		if (shortNames) {
+			name = NameConverter.toShortOperationName(name);
+		}
+
+		String label = container + "::\\n" + "@" + stackDepth + ":" + component + "\\n" + name;
+
+		vertex.setProperty("label", label);
+
+		return vertex;
+	}
+
+	@Override
+	protected Edge addEdge(final AggregatedOperationCall operationCall, final AggregatedOperationCall parentOperationCall) {
+
+		Vertex thisVertex = graph.getVertex(operationCall.hashCode());
+		Vertex parentVertex = graph.getVertex(operationCall.getParent().hashCode());
+
+		if (thisVertex == null || parentVertex == null) {
+			return null;
+		}
+
+		return graph.addEdge(null, parentVertex, thisVertex, String.valueOf(operationCall.getOrderIndex() + 1) + '.');
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/AggrTraceTraverserStage.java b/src/main/java/kieker/analysis/trace/traversal/AggrTraceTraverserStage.java
index 2dfd4d586f58265e5e8538c953acd85839c1b8f5..7d24977a6cdfaf7f1ac7e2d1fb9089bc59f10a61 100644
--- a/src/main/java/kieker/analysis/trace/traversal/AggrTraceTraverserStage.java
+++ b/src/main/java/kieker/analysis/trace/traversal/AggrTraceTraverserStage.java
@@ -1,29 +1,29 @@
-package kieker.analysis.trace.traversal;
-
-import com.tinkerpop.blueprints.Graph;
-
-import kieker.analysis.domain.AggregatedOperationCall;
-import kieker.analysis.domain.AggregatedTrace;
-import kieker.analysis.util.graph.NamedGraph;
-
-import teetime.stage.basic.AbstractTransformation;
-
-public class AggrTraceTraverserStage extends AbstractTransformation<AggregatedTrace, NamedGraph<Graph>> {
-
-	@Override
-	protected void execute(final AggregatedTrace trace) {
-
-		AggrTraceToGraphTransformer aggrTrace2Blueprint = new AggrTraceToGraphTransformer(trace.getRootOperationCall());
-
-		TraceTraverser<AggregatedTrace, AggregatedOperationCall> traverser = new TraceTraverser<>(aggrTrace2Blueprint);
-
-		traverser.traverse(trace);
-
-		final String name = "aggr-trace-" + trace.hashCode();
-
-		final NamedGraph<Graph> graph = new NamedGraph<>(name, name, aggrTrace2Blueprint.getGraph());
-
-		this.getOutputPort().send(graph);
-	}
-
-}
+package kieker.analysis.trace.traversal;
+
+import com.tinkerpop.blueprints.Graph;
+
+import kieker.analysis.domain.AggregatedOperationCall;
+import kieker.analysis.domain.AggregatedTrace;
+import kieker.analysis.util.graph.NamedGraph;
+
+import teetime.stage.basic.AbstractTransformation;
+
+public class AggrTraceTraverserStage extends AbstractTransformation<AggregatedTrace, NamedGraph<Graph>> {
+
+	@Override
+	protected void execute(final AggregatedTrace trace) {
+
+		AggrTraceToGraphTransformer aggrTrace2Blueprint = new AggrTraceToGraphTransformer(trace.getRootOperationCall());
+
+		TraceTraverser<AggregatedTrace, AggregatedOperationCall> traverser = new TraceTraverser<>(aggrTrace2Blueprint);
+
+		traverser.traverse(trace);
+
+		final String name = "aggr-trace-" + trace.hashCode();
+
+		final NamedGraph<Graph> graph = new NamedGraph<>(name, name, aggrTrace2Blueprint.getGraph());
+
+		this.getOutputPort().send(graph);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/OperationCallVisitor.java b/src/main/java/kieker/analysis/trace/traversal/OperationCallVisitor.java
index a035d00f258e7fa66f8c051023e7dfb1bb5ba657..f1baaa4136be61ff04bd9ae6d90db3f0625bbf71 100644
--- a/src/main/java/kieker/analysis/trace/traversal/OperationCallVisitor.java
+++ b/src/main/java/kieker/analysis/trace/traversal/OperationCallVisitor.java
@@ -1,9 +1,9 @@
-package kieker.analysis.trace.traversal;
-
-import kieker.analysis.domain.AbstractOperationCall;
-
-public abstract class OperationCallVisitor<C extends AbstractOperationCall<C>> {
-
-	public abstract void visit(C operationCall);
-
-}
+package kieker.analysis.trace.traversal;
+
+import kieker.analysis.domain.AbstractOperationCall;
+
+public abstract class OperationCallVisitor<C extends AbstractOperationCall<C>> {
+
+	public abstract void visit(C operationCall);
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java
index 594e51c1119ce487d414c42c6d6883ed64278a17..e1f54798edebc5843c9cefe00ae493dae57d85dd 100644
--- a/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java
+++ b/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java
@@ -1,54 +1,54 @@
-package kieker.analysis.trace.traversal;
-
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Vertex;
-
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.util.NameConverter;
-
-public class TraceToGraphTransformer extends AbstractTraceToGraphTransformer<OperationCall> {
-
-	public TraceToGraphTransformer() {
-		super();
-	}
-
-	public TraceToGraphTransformer(final OperationCall rootOperartionCall) {
-		super(rootOperartionCall);
-	}
-
-	@Override
-	protected Vertex addVertex(final OperationCall operationCall) {
-		Vertex vertex = graph.addVertex(operationCall.hashCode());
-
-		String name = operationCall.getOperation();
-		String stackDepth = String.valueOf(operationCall.getStackDepth() + 1);
-		String component = operationCall.getComponent();
-		String container = operationCall.getContainer();
-
-		Boolean shortNames = true; // TODO hard coded
-
-		if (shortNames) {
-			name = NameConverter.toShortOperationName(name);
-		}
-
-		String label = container + "::\\n" + "@" + stackDepth + ":" + component + "\\n" + name;
-
-		vertex.setProperty("label", label);
-
-		return vertex;
-	}
-
-	@Override
-	protected Edge addEdge(final OperationCall operationCall, final OperationCall parentOperationCall) {
-
-		Vertex thisVertex = graph.getVertex(operationCall.hashCode());
-		Vertex parentVertex = graph.getVertex(operationCall.getParent().hashCode());
-
-		if (thisVertex == null || parentVertex == null) {
-			return null;
-		}
-
-		return graph.addEdge(null, parentVertex, thisVertex, String.valueOf(operationCall.getOrderIndex() + 1) + '.');
-	}
-
-}
+package kieker.analysis.trace.traversal;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Vertex;
+
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.util.NameConverter;
+
+public class TraceToGraphTransformer extends AbstractTraceToGraphTransformer<OperationCall> {
+
+	public TraceToGraphTransformer() {
+		super();
+	}
+
+	public TraceToGraphTransformer(final OperationCall rootOperartionCall) {
+		super(rootOperartionCall);
+	}
+
+	@Override
+	protected Vertex addVertex(final OperationCall operationCall) {
+		Vertex vertex = graph.addVertex(operationCall.hashCode());
+
+		String name = operationCall.getOperation();
+		String stackDepth = String.valueOf(operationCall.getStackDepth() + 1);
+		String component = operationCall.getComponent();
+		String container = operationCall.getContainer();
+
+		Boolean shortNames = true; // TODO hard coded
+
+		if (shortNames) {
+			name = NameConverter.toShortOperationName(name);
+		}
+
+		String label = container + "::\\n" + "@" + stackDepth + ":" + component + "\\n" + name;
+
+		vertex.setProperty("label", label);
+
+		return vertex;
+	}
+
+	@Override
+	protected Edge addEdge(final OperationCall operationCall, final OperationCall parentOperationCall) {
+
+		Vertex thisVertex = graph.getVertex(operationCall.hashCode());
+		Vertex parentVertex = graph.getVertex(operationCall.getParent().hashCode());
+
+		if (thisVertex == null || parentVertex == null) {
+			return null;
+		}
+
+		return graph.addEdge(null, parentVertex, thisVertex, String.valueOf(operationCall.getOrderIndex() + 1) + '.');
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/TraceTraverser.java b/src/main/java/kieker/analysis/trace/traversal/TraceTraverser.java
index fb031a6f95240e6fb0f765756289487b6fe27861..dab648e4ffbb88b308e50e897cedba9c0d16bb04 100644
--- a/src/main/java/kieker/analysis/trace/traversal/TraceTraverser.java
+++ b/src/main/java/kieker/analysis/trace/traversal/TraceTraverser.java
@@ -1,57 +1,57 @@
-package kieker.analysis.trace.traversal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import kieker.analysis.domain.AbstractOperationCall;
-import kieker.analysis.domain.AbstractTrace;
-
-public class TraceTraverser<T extends AbstractTrace<C>, C extends AbstractOperationCall<C>> {
-
-	private List<OperationCallVisitor<C>> visitors;
-
-	public TraceTraverser() {
-		super();
-		this.visitors = new ArrayList<>();
-	}
-
-	public TraceTraverser(final OperationCallVisitor<C> visitor) {
-		this();
-		visitors.add(visitor);
-	}
-
-	public TraceTraverser(final List<OperationCallVisitor<C>> visitors) {
-		super();
-		this.visitors = visitors;
-	}
-
-	public void traverse(final T trace) {
-		handleOperationCallsRecursively(trace.getRootOperationCall());
-	}
-
-	private void handleOperationCallsRecursively(final C operationCall) {
-		handleOperationCall(operationCall);
-		for (C childOperationCall : operationCall.getChildren()) {
-			handleOperationCallsRecursively(childOperationCall);
-		}
-	}
-
-	private void handleOperationCall(final C operationCall) {
-		for (OperationCallVisitor<C> visitor : visitors) {
-			visitor.visit(operationCall);
-		}
-	}
-
-	public List<OperationCallVisitor<C>> getVisitors() {
-		return visitors;
-	}
-
-	public void setVisitors(final List<OperationCallVisitor<C>> visitors) {
-		this.visitors = visitors;
-	}
-
-	public void addVisitor(final OperationCallVisitor<C> visitor) {
-		visitors.add(visitor);
-	}
-
-}
+package kieker.analysis.trace.traversal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import kieker.analysis.domain.AbstractOperationCall;
+import kieker.analysis.domain.AbstractTrace;
+
+public class TraceTraverser<T extends AbstractTrace<C>, C extends AbstractOperationCall<C>> {
+
+	private List<OperationCallVisitor<C>> visitors;
+
+	public TraceTraverser() {
+		super();
+		this.visitors = new ArrayList<>();
+	}
+
+	public TraceTraverser(final OperationCallVisitor<C> visitor) {
+		this();
+		visitors.add(visitor);
+	}
+
+	public TraceTraverser(final List<OperationCallVisitor<C>> visitors) {
+		super();
+		this.visitors = visitors;
+	}
+
+	public void traverse(final T trace) {
+		handleOperationCallsRecursively(trace.getRootOperationCall());
+	}
+
+	private void handleOperationCallsRecursively(final C operationCall) {
+		handleOperationCall(operationCall);
+		for (C childOperationCall : operationCall.getChildren()) {
+			handleOperationCallsRecursively(childOperationCall);
+		}
+	}
+
+	private void handleOperationCall(final C operationCall) {
+		for (OperationCallVisitor<C> visitor : visitors) {
+			visitor.visit(operationCall);
+		}
+	}
+
+	public List<OperationCallVisitor<C>> getVisitors() {
+		return visitors;
+	}
+
+	public void setVisitors(final List<OperationCallVisitor<C>> visitors) {
+		this.visitors = visitors;
+	}
+
+	public void addVisitor(final OperationCallVisitor<C> visitor) {
+		visitors.add(visitor);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/TraceTraverserStage.java b/src/main/java/kieker/analysis/trace/traversal/TraceTraverserStage.java
index 8c8f20b33f37d23e1e3664223e3f64fb8e926f7f..3212e0a0a7a2b57034ff897244e867d263bc1228 100644
--- a/src/main/java/kieker/analysis/trace/traversal/TraceTraverserStage.java
+++ b/src/main/java/kieker/analysis/trace/traversal/TraceTraverserStage.java
@@ -1,29 +1,29 @@
-package kieker.analysis.trace.traversal;
-
-import com.tinkerpop.blueprints.Graph;
-
-import kieker.analysis.domain.OperationCall;
-import kieker.analysis.domain.Trace;
-import kieker.analysis.util.graph.NamedGraph;
-
-import teetime.stage.basic.AbstractTransformation;
-
-public class TraceTraverserStage extends AbstractTransformation<Trace, NamedGraph<Graph>> {
-
-	@Override
-	protected void execute(final Trace trace) {
-
-		TraceToGraphTransformer traceToGraph = new TraceToGraphTransformer(trace.getRootOperationCall());
-
-		TraceTraverser<Trace, OperationCall> traverser = new TraceTraverser<>(traceToGraph);
-
-		traverser.traverse(trace);
-
-		final String name = "trace-" + trace.hashCode();
-
-		final NamedGraph<Graph> graph = new NamedGraph<>(name, name, traceToGraph.getGraph());
-
-		this.getOutputPort().send(graph);
-	}
-
-}
+package kieker.analysis.trace.traversal;
+
+import com.tinkerpop.blueprints.Graph;
+
+import kieker.analysis.domain.OperationCall;
+import kieker.analysis.domain.Trace;
+import kieker.analysis.util.graph.NamedGraph;
+
+import teetime.stage.basic.AbstractTransformation;
+
+public class TraceTraverserStage extends AbstractTransformation<Trace, NamedGraph<Graph>> {
+
+	@Override
+	protected void execute(final Trace trace) {
+
+		TraceToGraphTransformer traceToGraph = new TraceToGraphTransformer(trace.getRootOperationCall());
+
+		TraceTraverser<Trace, OperationCall> traverser = new TraceTraverser<>(traceToGraph);
+
+		traverser.traverse(trace);
+
+		final String name = "trace-" + trace.hashCode();
+
+		final NamedGraph<Graph> graph = new NamedGraph<>(name, name, traceToGraph.getGraph());
+
+		this.getOutputPort().send(graph);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/traceanalysismodel/PropertiesModel.java b/src/main/java/kieker/analysis/traceanalysismodel/PropertiesModel.java
index 11e317ee6c431b9b6890f2fba3432c00e4799b98..2b905ebe2ff4f358551203a3bd21f3446941b7b3 100644
--- a/src/main/java/kieker/analysis/traceanalysismodel/PropertiesModel.java
+++ b/src/main/java/kieker/analysis/traceanalysismodel/PropertiesModel.java
@@ -1,178 +1,178 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.traceanalysismodel;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-import java.util.prefs.BackingStoreException;
-import java.util.prefs.Preferences;
-
-//import org.apache.logging.log4j.LogManager; //TODO
-//import org.apache.logging.log4j.Logger; //TODO
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class PropertiesModel {
-
-	// private static final Logger LOGGER = LogManager.getLogger(PropertiesModel.class);//TODO
-	private static final PropertiesModel INSTANCE = new PropertiesModel();
-
-	private static final String KEY_TIMEUNIT = "timeunit";
-	private static final String KEY_OPERATIONS = "operations";
-	private static final String KEY_COMPONENTS = "components";
-	private static final String KEY_GRAPHVIZ_PATH = "graphvizpath";
-	private static final String KEY_ADDITIONAL_LOG_CHECKS = "additionalLogChecks";
-	private static final String KEY_REGULAR_EXPRESSIONS = "regularExpressions";
-
-	private static final String KEY_GITLAB_URL = "GitLabURL";
-	private static final String KEY_TRAC_URL = "TracURL";
-
-	private String graphvizPath;
-	private TimeUnit timeUnit;
-	private ComponentNames componentNames;
-	private OperationNames operationNames;
-	private boolean additionalLogChecks;
-	private boolean activateRegularExpressions;
-	private String gitLabURL;
-	private String tracURL;
-
-	public PropertiesModel() {
-		this.loadSettings();
-	}
-
-	private void loadSettings() {
-		final Preferences preferences = Preferences.userNodeForPackage(PropertiesModel.class);
-
-		this.graphvizPath = preferences.get(PropertiesModel.KEY_GRAPHVIZ_PATH, ".");
-		this.timeUnit = TimeUnit.valueOf(preferences.get(PropertiesModel.KEY_TIMEUNIT, TimeUnit.NANOSECONDS.name()));
-		this.componentNames = ComponentNames.valueOf(preferences.get(PropertiesModel.KEY_COMPONENTS, ComponentNames.LONG.name()));
-		this.operationNames = OperationNames.valueOf(preferences.get(PropertiesModel.KEY_OPERATIONS, OperationNames.SHORT.name()));
-		this.additionalLogChecks = Boolean.valueOf(preferences.get(PropertiesModel.KEY_ADDITIONAL_LOG_CHECKS, Boolean.FALSE.toString()));
-		this.activateRegularExpressions = Boolean.valueOf(preferences.get(PropertiesModel.KEY_REGULAR_EXPRESSIONS, Boolean.FALSE.toString()));
-
-		final Properties properties = new Properties();
-		final ClassLoader classLoader = PropertiesModel.class.getClassLoader();
-		try (InputStream inputStream = classLoader.getResourceAsStream("config.properties")) {
-			properties.load(inputStream);
-			this.gitLabURL = properties.getProperty(PropertiesModel.KEY_GITLAB_URL);
-			this.tracURL = properties.getProperty(PropertiesModel.KEY_TRAC_URL);
-		} catch (final IOException e) {
-			// PropertiesModel.LOGGER.error(e); //TODO
-		}
-	}
-
-	private void saveSettings() {
-		final Preferences preferences = Preferences.userNodeForPackage(PropertiesModel.class);
-
-		preferences.put(PropertiesModel.KEY_GRAPHVIZ_PATH, this.graphvizPath);
-		preferences.put(PropertiesModel.KEY_TIMEUNIT, this.timeUnit.name());
-		preferences.put(PropertiesModel.KEY_COMPONENTS, this.componentNames.name());
-		preferences.put(PropertiesModel.KEY_OPERATIONS, this.operationNames.name());
-		preferences.put(PropertiesModel.KEY_ADDITIONAL_LOG_CHECKS, Boolean.toString(this.additionalLogChecks));
-		preferences.put(PropertiesModel.KEY_REGULAR_EXPRESSIONS, Boolean.toString(this.activateRegularExpressions));
-
-		try {
-			preferences.flush();
-		} catch (final BackingStoreException e) {
-			// PropertiesModel.LOGGER.error(e);//TODO
-		}
-	}
-
-	public String getGraphvizPath() {
-		return this.graphvizPath;
-	}
-
-	public void setGraphvizPath(final String graphvizPath) {
-		this.graphvizPath = graphvizPath;
-		this.saveSettings();
-	}
-
-	public TimeUnit getTimeUnit() {
-		return this.timeUnit;
-	}
-
-	public void setTimeUnit(final TimeUnit timeUnit) {
-		this.timeUnit = timeUnit;
-		this.saveSettings();
-	}
-
-	public ComponentNames getComponentNames() {
-		return this.componentNames;
-	}
-
-	public void setComponentNames(final ComponentNames componentNames) {
-		this.componentNames = componentNames;
-		this.saveSettings();
-	}
-
-	public OperationNames getOperationNames() {
-		return this.operationNames;
-	}
-
-	public void setOperationNames(final OperationNames operationNames) {
-		this.operationNames = operationNames;
-		this.saveSettings();
-	}
-
-	public static PropertiesModel getInstance() {
-		return PropertiesModel.INSTANCE;
-	}
-
-	public boolean isAdditionalLogChecks() {
-		return this.additionalLogChecks;
-	}
-
-	public void setAdditionalLogChecks(final boolean additionalLogChecks) {
-		this.additionalLogChecks = additionalLogChecks;
-		this.saveSettings();
-	}
-
-	public boolean isActivateRegularExpressions() {
-		return this.activateRegularExpressions;
-	}
-
-	public void setActivateRegularExpressions(final boolean activateRegularExpressions) {
-		this.activateRegularExpressions = activateRegularExpressions;
-		this.saveSettings();
-	}
-
-	public String getGitLabURL() {
-		return this.gitLabURL;
-	}
-
-	public String getTracURL() {
-		return this.tracURL;
-	}
-
-	/**
-	 * @author Nils Christian Ehmke
-	 */
-	public enum ComponentNames {
-		SHORT, LONG
-	}
-
-	/**
-	 * @author Nils Christian Ehmke
-	 */
-	public enum OperationNames {
-		SHORT, LONG
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.traceanalysismodel;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+import java.util.concurrent.TimeUnit;
+import java.util.prefs.BackingStoreException;
+import java.util.prefs.Preferences;
+
+//import org.apache.logging.log4j.LogManager; //TODO
+//import org.apache.logging.log4j.Logger; //TODO
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class PropertiesModel {
+
+	// private static final Logger LOGGER = LogManager.getLogger(PropertiesModel.class);//TODO
+	private static final PropertiesModel INSTANCE = new PropertiesModel();
+
+	private static final String KEY_TIMEUNIT = "timeunit";
+	private static final String KEY_OPERATIONS = "operations";
+	private static final String KEY_COMPONENTS = "components";
+	private static final String KEY_GRAPHVIZ_PATH = "graphvizpath";
+	private static final String KEY_ADDITIONAL_LOG_CHECKS = "additionalLogChecks";
+	private static final String KEY_REGULAR_EXPRESSIONS = "regularExpressions";
+
+	private static final String KEY_GITLAB_URL = "GitLabURL";
+	private static final String KEY_TRAC_URL = "TracURL";
+
+	private String graphvizPath;
+	private TimeUnit timeUnit;
+	private ComponentNames componentNames;
+	private OperationNames operationNames;
+	private boolean additionalLogChecks;
+	private boolean activateRegularExpressions;
+	private String gitLabURL;
+	private String tracURL;
+
+	public PropertiesModel() {
+		this.loadSettings();
+	}
+
+	private void loadSettings() {
+		final Preferences preferences = Preferences.userNodeForPackage(PropertiesModel.class);
+
+		this.graphvizPath = preferences.get(PropertiesModel.KEY_GRAPHVIZ_PATH, ".");
+		this.timeUnit = TimeUnit.valueOf(preferences.get(PropertiesModel.KEY_TIMEUNIT, TimeUnit.NANOSECONDS.name()));
+		this.componentNames = ComponentNames.valueOf(preferences.get(PropertiesModel.KEY_COMPONENTS, ComponentNames.LONG.name()));
+		this.operationNames = OperationNames.valueOf(preferences.get(PropertiesModel.KEY_OPERATIONS, OperationNames.SHORT.name()));
+		this.additionalLogChecks = Boolean.valueOf(preferences.get(PropertiesModel.KEY_ADDITIONAL_LOG_CHECKS, Boolean.FALSE.toString()));
+		this.activateRegularExpressions = Boolean.valueOf(preferences.get(PropertiesModel.KEY_REGULAR_EXPRESSIONS, Boolean.FALSE.toString()));
+
+		final Properties properties = new Properties();
+		final ClassLoader classLoader = PropertiesModel.class.getClassLoader();
+		try (InputStream inputStream = classLoader.getResourceAsStream("config.properties")) {
+			properties.load(inputStream);
+			this.gitLabURL = properties.getProperty(PropertiesModel.KEY_GITLAB_URL);
+			this.tracURL = properties.getProperty(PropertiesModel.KEY_TRAC_URL);
+		} catch (final IOException e) {
+			// PropertiesModel.LOGGER.error(e); //TODO
+		}
+	}
+
+	private void saveSettings() {
+		final Preferences preferences = Preferences.userNodeForPackage(PropertiesModel.class);
+
+		preferences.put(PropertiesModel.KEY_GRAPHVIZ_PATH, this.graphvizPath);
+		preferences.put(PropertiesModel.KEY_TIMEUNIT, this.timeUnit.name());
+		preferences.put(PropertiesModel.KEY_COMPONENTS, this.componentNames.name());
+		preferences.put(PropertiesModel.KEY_OPERATIONS, this.operationNames.name());
+		preferences.put(PropertiesModel.KEY_ADDITIONAL_LOG_CHECKS, Boolean.toString(this.additionalLogChecks));
+		preferences.put(PropertiesModel.KEY_REGULAR_EXPRESSIONS, Boolean.toString(this.activateRegularExpressions));
+
+		try {
+			preferences.flush();
+		} catch (final BackingStoreException e) {
+			// PropertiesModel.LOGGER.error(e);//TODO
+		}
+	}
+
+	public String getGraphvizPath() {
+		return this.graphvizPath;
+	}
+
+	public void setGraphvizPath(final String graphvizPath) {
+		this.graphvizPath = graphvizPath;
+		this.saveSettings();
+	}
+
+	public TimeUnit getTimeUnit() {
+		return this.timeUnit;
+	}
+
+	public void setTimeUnit(final TimeUnit timeUnit) {
+		this.timeUnit = timeUnit;
+		this.saveSettings();
+	}
+
+	public ComponentNames getComponentNames() {
+		return this.componentNames;
+	}
+
+	public void setComponentNames(final ComponentNames componentNames) {
+		this.componentNames = componentNames;
+		this.saveSettings();
+	}
+
+	public OperationNames getOperationNames() {
+		return this.operationNames;
+	}
+
+	public void setOperationNames(final OperationNames operationNames) {
+		this.operationNames = operationNames;
+		this.saveSettings();
+	}
+
+	public static PropertiesModel getInstance() {
+		return PropertiesModel.INSTANCE;
+	}
+
+	public boolean isAdditionalLogChecks() {
+		return this.additionalLogChecks;
+	}
+
+	public void setAdditionalLogChecks(final boolean additionalLogChecks) {
+		this.additionalLogChecks = additionalLogChecks;
+		this.saveSettings();
+	}
+
+	public boolean isActivateRegularExpressions() {
+		return this.activateRegularExpressions;
+	}
+
+	public void setActivateRegularExpressions(final boolean activateRegularExpressions) {
+		this.activateRegularExpressions = activateRegularExpressions;
+		this.saveSettings();
+	}
+
+	public String getGitLabURL() {
+		return this.gitLabURL;
+	}
+
+	public String getTracURL() {
+		return this.tracURL;
+	}
+
+	/**
+	 * @author Nils Christian Ehmke
+	 */
+	public enum ComponentNames {
+		SHORT, LONG
+	}
+
+	/**
+	 * @author Nils Christian Ehmke
+	 */
+	public enum OperationNames {
+		SHORT, LONG
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/traceanalysisutil/Statistics.java b/src/main/java/kieker/analysis/traceanalysisutil/Statistics.java
index f4b12930d7002351ee1572ff854087f4f87e4cd3..124693eb05a42725d9d1b7b46129a31d6141eadb 100644
--- a/src/main/java/kieker/analysis/traceanalysisutil/Statistics.java
+++ b/src/main/java/kieker/analysis/traceanalysisutil/Statistics.java
@@ -1,58 +1,58 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.traceanalysisutil;
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class Statistics {
-
-	private final long totalDuration;
-	private final long meanDuration;
-	private final long medianDuration;
-	private final long minDuration;
-	private final long maxDuration;
-
-	public Statistics(final long totalDuration, final long meanDuration, final long medianDuration, final long minDuration, final long maxDuration) {
-		this.totalDuration = totalDuration;
-		this.meanDuration = meanDuration;
-		this.medianDuration = medianDuration;
-		this.minDuration = minDuration;
-		this.maxDuration = maxDuration;
-	}
-
-	public long getTotalDuration() {
-		return this.totalDuration;
-	}
-
-	public long getMeanDuration() {
-		return this.meanDuration;
-	}
-
-	public long getMedianDuration() {
-		return this.medianDuration;
-	}
-
-	public long getMinDuration() {
-		return this.minDuration;
-	}
-
-	public long getMaxDuration() {
-		return this.maxDuration;
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.traceanalysisutil;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class Statistics {
+
+	private final long totalDuration;
+	private final long meanDuration;
+	private final long medianDuration;
+	private final long minDuration;
+	private final long maxDuration;
+
+	public Statistics(final long totalDuration, final long meanDuration, final long medianDuration, final long minDuration, final long maxDuration) {
+		this.totalDuration = totalDuration;
+		this.meanDuration = meanDuration;
+		this.medianDuration = medianDuration;
+		this.minDuration = minDuration;
+		this.maxDuration = maxDuration;
+	}
+
+	public long getTotalDuration() {
+		return this.totalDuration;
+	}
+
+	public long getMeanDuration() {
+		return this.meanDuration;
+	}
+
+	public long getMedianDuration() {
+		return this.medianDuration;
+	}
+
+	public long getMinDuration() {
+		return this.minDuration;
+	}
+
+	public long getMaxDuration() {
+		return this.maxDuration;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/traceanalysisutil/StatisticsUtility.java b/src/main/java/kieker/analysis/traceanalysisutil/StatisticsUtility.java
index ad102345d759ff78b16a8344ca58ab5b41e3d5f3..85a635e15f1275d7ad3cd53b5e8d45a206ea35e5 100644
--- a/src/main/java/kieker/analysis/traceanalysisutil/StatisticsUtility.java
+++ b/src/main/java/kieker/analysis/traceanalysisutil/StatisticsUtility.java
@@ -1,45 +1,45 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.traceanalysisutil;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class StatisticsUtility {
-
-	private StatisticsUtility() {}
-
-	public static Statistics calculateStatistics(final List<Long> durations) {
-		Collections.sort(durations);
-
-		long totalDuration = 0;
-		for (final Long duration : durations) {
-			totalDuration += duration;
-		}
-
-		final long minDuration = durations.get(0);
-		final long maxDuration = durations.get(durations.size() - 1);
-		final long meanDuration = totalDuration / durations.size();
-		final long medianDuration = durations.get(durations.size() / 2);
-
-		return new Statistics(totalDuration, meanDuration, medianDuration, minDuration, maxDuration);
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.traceanalysisutil;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class StatisticsUtility {
+
+	private StatisticsUtility() {}
+
+	public static Statistics calculateStatistics(final List<Long> durations) {
+		Collections.sort(durations);
+
+		long totalDuration = 0;
+		for (final Long duration : durations) {
+			totalDuration += duration;
+		}
+
+		final long minDuration = durations.get(0);
+		final long maxDuration = durations.get(durations.size() - 1);
+		final long meanDuration = totalDuration / durations.size();
+		final long medianDuration = durations.get(durations.size() / 2);
+
+		return new Statistics(totalDuration, meanDuration, medianDuration, minDuration, maxDuration);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/util/DotBuilder.java b/src/main/java/kieker/analysis/util/DotBuilder.java
index bc012a52ce74b0e67c0e63c95e8ce08fb855d713..f2a80ddeb5af88607ffd9b4ed18edc97a9325cee 100644
--- a/src/main/java/kieker/analysis/util/DotBuilder.java
+++ b/src/main/java/kieker/analysis/util/DotBuilder.java
@@ -1,129 +1,129 @@
-package kieker.analysis.util;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import com.google.common.base.Joiner;
-
-/**
- * Simple class for building and representing dot graph files.
- *
- * @author Sören Henning
- *
- */
-public class DotBuilder {
-
-	private final String start;
-	private final String end = "}";
-	private final StringBuilder body = new StringBuilder();
-
-	private Map<String, String> defaultNodeProperties;
-	private Map<String, String> defaultEdgeProperties;
-	private Map<String, String> defaultProperties;
-
-	public DotBuilder() {
-		this("G");
-	}
-
-	public DotBuilder(final String name) {
-		start = "digraph " + name + " {\n";
-	}
-
-	public DotBuilder(final String name, final Map<String, String> defaultNodeProperties, final Map<String, String> defaultEdgeProperties) {
-		this(name);
-		this.defaultNodeProperties = defaultNodeProperties;
-		this.defaultEdgeProperties = defaultEdgeProperties;
-	}
-
-	public DotBuilder(final String name, final Map<String, String> defaultNodeProperties, final Map<String, String> defaultEdgeProperties,
-			final Map<String, String> defaultProperties) {
-		this(name, defaultNodeProperties, defaultEdgeProperties);
-		this.defaultProperties = defaultProperties;
-	}
-
-	public void setDefaultNodeProperties(final Map<String, String> defaultNodeProperties) {
-		this.defaultNodeProperties = defaultNodeProperties;
-	}
-
-	public void setDefaultEdgeProperties(final Map<String, String> defaultEdgeProperties) {
-		this.defaultEdgeProperties = defaultEdgeProperties;
-	}
-
-	public void setDefaultProperties(final Map<String, String> defaultProperties) {
-		this.defaultProperties = defaultProperties;
-	}
-
-	public String get() {
-		return start + body.toString() + end;
-	}
-
-	@Override
-	public String toString() {
-		return get();
-	}
-
-	public void addNode(final String id) {
-		addNode(id, new HashMap<>());
-	}
-
-	public void addNode(final String id, final String label) {
-		Map<String, String> properties = new HashMap<String, String>();
-		properties.put("label", label);
-		addNode(id, properties);
-	}
-
-	public void addNode(final String id, final Map<String, String> properties) {
-		addElement('"' + id + '"', extendNodeProperties(properties));
-	}
-
-	public void addEdge(final String source, final String target) {
-		addEdge(source, target, new HashMap<>());
-	}
-
-	public void addEdge(final String source, final String target, final String label) {
-		Map<String, String> properties = new HashMap<String, String>();
-		properties.put("label", label);
-		addEdge(source, target, properties);
-	}
-
-	public void addEdge(final String source, final String target, final Map<String, String> properties) {
-		addElement('"' + source + '"' + " -> " + '"' + target + '"', extendEdgeProperties(properties));
-	}
-
-	private void addElement(final String element, final Map<String, String> properties) {
-		body.append(element);
-		if (properties != null && !properties.isEmpty()) {
-			body.append(" [");
-			Joiner.on("\", ").withKeyValueSeparator("=\"").appendTo(body, properties);
-			body.append("\"]");
-		}
-		body.append('\n');
-	}
-
-	private Map<String, String> extendNodeProperties(final Map<String, String> properties) {
-		return extendElementProperties(properties, defaultNodeProperties);
-	}
-
-	private Map<String, String> extendEdgeProperties(final Map<String, String> properties) {
-		return extendElementProperties(properties, defaultEdgeProperties);
-	}
-
-	private Map<String, String> extendElementProperties(final Map<String, String> properties, final Map<String, String> defaultElementProperties) {
-
-		if (defaultElementProperties != null) {
-			for (Entry<String, String> property : defaultElementProperties.entrySet()) {
-				properties.putIfAbsent(property.getKey(), property.getValue());
-			}
-		}
-
-		if (defaultProperties != null) {
-			for (Entry<String, String> property : defaultProperties.entrySet()) {
-				properties.putIfAbsent(property.getKey(), property.getValue());
-			}
-		}
-
-		return properties;
-	}
-
-}
+package kieker.analysis.util;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import com.google.common.base.Joiner;
+
+/**
+ * Simple class for building and representing dot graph files.
+ *
+ * @author Sören Henning
+ *
+ */
+public class DotBuilder {
+
+	private final String start;
+	private final String end = "}";
+	private final StringBuilder body = new StringBuilder();
+
+	private Map<String, String> defaultNodeProperties;
+	private Map<String, String> defaultEdgeProperties;
+	private Map<String, String> defaultProperties;
+
+	public DotBuilder() {
+		this("G");
+	}
+
+	public DotBuilder(final String name) {
+		start = "digraph " + name + " {\n";
+	}
+
+	public DotBuilder(final String name, final Map<String, String> defaultNodeProperties, final Map<String, String> defaultEdgeProperties) {
+		this(name);
+		this.defaultNodeProperties = defaultNodeProperties;
+		this.defaultEdgeProperties = defaultEdgeProperties;
+	}
+
+	public DotBuilder(final String name, final Map<String, String> defaultNodeProperties, final Map<String, String> defaultEdgeProperties,
+			final Map<String, String> defaultProperties) {
+		this(name, defaultNodeProperties, defaultEdgeProperties);
+		this.defaultProperties = defaultProperties;
+	}
+
+	public void setDefaultNodeProperties(final Map<String, String> defaultNodeProperties) {
+		this.defaultNodeProperties = defaultNodeProperties;
+	}
+
+	public void setDefaultEdgeProperties(final Map<String, String> defaultEdgeProperties) {
+		this.defaultEdgeProperties = defaultEdgeProperties;
+	}
+
+	public void setDefaultProperties(final Map<String, String> defaultProperties) {
+		this.defaultProperties = defaultProperties;
+	}
+
+	public String get() {
+		return start + body.toString() + end;
+	}
+
+	@Override
+	public String toString() {
+		return get();
+	}
+
+	public void addNode(final String id) {
+		addNode(id, new HashMap<>());
+	}
+
+	public void addNode(final String id, final String label) {
+		Map<String, String> properties = new HashMap<String, String>();
+		properties.put("label", label);
+		addNode(id, properties);
+	}
+
+	public void addNode(final String id, final Map<String, String> properties) {
+		addElement('"' + id + '"', extendNodeProperties(properties));
+	}
+
+	public void addEdge(final String source, final String target) {
+		addEdge(source, target, new HashMap<>());
+	}
+
+	public void addEdge(final String source, final String target, final String label) {
+		Map<String, String> properties = new HashMap<String, String>();
+		properties.put("label", label);
+		addEdge(source, target, properties);
+	}
+
+	public void addEdge(final String source, final String target, final Map<String, String> properties) {
+		addElement('"' + source + '"' + " -> " + '"' + target + '"', extendEdgeProperties(properties));
+	}
+
+	private void addElement(final String element, final Map<String, String> properties) {
+		body.append(element);
+		if (properties != null && !properties.isEmpty()) {
+			body.append(" [");
+			Joiner.on("\", ").withKeyValueSeparator("=\"").appendTo(body, properties);
+			body.append("\"]");
+		}
+		body.append('\n');
+	}
+
+	private Map<String, String> extendNodeProperties(final Map<String, String> properties) {
+		return extendElementProperties(properties, defaultNodeProperties);
+	}
+
+	private Map<String, String> extendEdgeProperties(final Map<String, String> properties) {
+		return extendElementProperties(properties, defaultEdgeProperties);
+	}
+
+	private Map<String, String> extendElementProperties(final Map<String, String> properties, final Map<String, String> defaultElementProperties) {
+
+		if (defaultElementProperties != null) {
+			for (Entry<String, String> property : defaultElementProperties.entrySet()) {
+				properties.putIfAbsent(property.getKey(), property.getValue());
+			}
+		}
+
+		if (defaultProperties != null) {
+			for (Entry<String, String> property : defaultProperties.entrySet()) {
+				properties.putIfAbsent(property.getKey(), property.getValue());
+			}
+		}
+
+		return properties;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/util/Mapper.java b/src/main/java/kieker/analysis/util/Mapper.java
index 989c1b89441a87723cd53607799d0019046cec83..f3f3a46c6b1638c16c91cb03be10ab401a97fc85 100644
--- a/src/main/java/kieker/analysis/util/Mapper.java
+++ b/src/main/java/kieker/analysis/util/Mapper.java
@@ -1,83 +1,83 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.util;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Nils Christian Ehmke
- *
- * @param <I>
- *            The type of the keys.
- * @param <O>
- *            The type of the values.
- */
-public final class Mapper<I, O> extends HashMap<I, O> {
-
-	private static final long serialVersionUID = 1L;
-	private O defaultValue;
-
-	public To map(final I key) {
-		return new To(key);
-	}
-
-	public To mapPerDefault() {
-		return new To();
-	}
-
-	public O resolve(final I key) {
-		if (super.containsKey(key)) {
-			return super.get(key);
-		} else {
-			return this.defaultValue;
-		}
-	}
-
-	public I invertedResolve(final O value) {
-		return super.entrySet().parallelStream().filter(entry -> value.equals(entry.getValue())).map(Map.Entry::getKey).findFirst().orElse(null);
-	}
-
-	/**
-	 * @author Nils Christian Ehmke
-	 */
-	public final class To {
-
-		private final I key;
-		private final boolean keyAvailable;
-
-		protected To(final I key) {
-			this.key = key;
-			this.keyAvailable = true;
-		}
-
-		protected To() {
-			this.key = null;
-			this.keyAvailable = false;
-		}
-
-		public void to(final O value) {
-			if (this.keyAvailable) {
-				Mapper.super.put(this.key, value);
-			} else {
-				Mapper.this.defaultValue = value;
-			}
-		}
-
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Nils Christian Ehmke
+ *
+ * @param <I>
+ *            The type of the keys.
+ * @param <O>
+ *            The type of the values.
+ */
+public final class Mapper<I, O> extends HashMap<I, O> {
+
+	private static final long serialVersionUID = 1L;
+	private O defaultValue;
+
+	public To map(final I key) {
+		return new To(key);
+	}
+
+	public To mapPerDefault() {
+		return new To();
+	}
+
+	public O resolve(final I key) {
+		if (super.containsKey(key)) {
+			return super.get(key);
+		} else {
+			return this.defaultValue;
+		}
+	}
+
+	public I invertedResolve(final O value) {
+		return super.entrySet().parallelStream().filter(entry -> value.equals(entry.getValue())).map(Map.Entry::getKey).findFirst().orElse(null);
+	}
+
+	/**
+	 * @author Nils Christian Ehmke
+	 */
+	public final class To {
+
+		private final I key;
+		private final boolean keyAvailable;
+
+		protected To(final I key) {
+			this.key = key;
+			this.keyAvailable = true;
+		}
+
+		protected To() {
+			this.key = null;
+			this.keyAvailable = false;
+		}
+
+		public void to(final O value) {
+			if (this.keyAvailable) {
+				Mapper.super.put(this.key, value);
+			} else {
+				Mapper.this.defaultValue = value;
+			}
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/util/NameConverter.java b/src/main/java/kieker/analysis/util/NameConverter.java
index 7036075e87acfbe5e3253c9ff919235a826ce9ad..df533b807c55899af81f2f8319430ea5f1834633 100644
--- a/src/main/java/kieker/analysis/util/NameConverter.java
+++ b/src/main/java/kieker/analysis/util/NameConverter.java
@@ -1,60 +1,60 @@
-/***************************************************************************
- * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 kieker.analysis.util;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * @author Nils Christian Ehmke
- */
-public final class NameConverter {
-
-	private static Mapper<TimeUnit, String> shortTimeUnitMapper = new Mapper<>();
-
-	private NameConverter() {}
-
-	static {
-		initializeMapper();
-	}
-
-	private static void initializeMapper() {
-		NameConverter.shortTimeUnitMapper.map(TimeUnit.NANOSECONDS).to("ns");
-		NameConverter.shortTimeUnitMapper.map(TimeUnit.MICROSECONDS).to("us");
-		NameConverter.shortTimeUnitMapper.map(TimeUnit.MILLISECONDS).to("ms");
-		NameConverter.shortTimeUnitMapper.map(TimeUnit.SECONDS).to("s");
-		NameConverter.shortTimeUnitMapper.map(TimeUnit.MINUTES).to("m");
-		NameConverter.shortTimeUnitMapper.map(TimeUnit.HOURS).to("h");
-		NameConverter.shortTimeUnitMapper.map(TimeUnit.DAYS).to("d");
-		NameConverter.shortTimeUnitMapper.mapPerDefault().to("");
-	}
-
-	public static String toShortTimeUnit(final TimeUnit timeUnit) {
-		return NameConverter.shortTimeUnitMapper.resolve(timeUnit);
-	}
-
-	public static String toShortComponentName(final String componentName) {
-		final int lastPointPos = componentName.lastIndexOf('.');
-		return componentName.substring(lastPointPos + 1);
-	}
-
-	public static String toShortOperationName(final String operationName) {
-		final String result = operationName.replaceAll("\\(.*\\)", "(...)");
-		final int lastPointPos = result.lastIndexOf('.', result.length() - 5);
-		return result.substring(lastPointPos + 1);
-	}
-
-}
+/***************************************************************************
+ * Copyright 2015 Kieker Project (http://kieker-monitoring.net)
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 kieker.analysis.util;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public final class NameConverter {
+
+	private static Mapper<TimeUnit, String> shortTimeUnitMapper = new Mapper<>();
+
+	private NameConverter() {}
+
+	static {
+		initializeMapper();
+	}
+
+	private static void initializeMapper() {
+		NameConverter.shortTimeUnitMapper.map(TimeUnit.NANOSECONDS).to("ns");
+		NameConverter.shortTimeUnitMapper.map(TimeUnit.MICROSECONDS).to("us");
+		NameConverter.shortTimeUnitMapper.map(TimeUnit.MILLISECONDS).to("ms");
+		NameConverter.shortTimeUnitMapper.map(TimeUnit.SECONDS).to("s");
+		NameConverter.shortTimeUnitMapper.map(TimeUnit.MINUTES).to("m");
+		NameConverter.shortTimeUnitMapper.map(TimeUnit.HOURS).to("h");
+		NameConverter.shortTimeUnitMapper.map(TimeUnit.DAYS).to("d");
+		NameConverter.shortTimeUnitMapper.mapPerDefault().to("");
+	}
+
+	public static String toShortTimeUnit(final TimeUnit timeUnit) {
+		return NameConverter.shortTimeUnitMapper.resolve(timeUnit);
+	}
+
+	public static String toShortComponentName(final String componentName) {
+		final int lastPointPos = componentName.lastIndexOf('.');
+		return componentName.substring(lastPointPos + 1);
+	}
+
+	public static String toShortOperationName(final String operationName) {
+		final String result = operationName.replaceAll("\\(.*\\)", "(...)");
+		final int lastPointPos = result.lastIndexOf('.', result.length() - 5);
+		return result.substring(lastPointPos + 1);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/util/graph/NamedGraph.java b/src/main/java/kieker/analysis/util/graph/NamedGraph.java
index 1169de0da884604f015baeecdf4ddced0a6b640c..1025ec8a71b5f26cd0de2ae1f546c8951f01dc7f 100644
--- a/src/main/java/kieker/analysis/util/graph/NamedGraph.java
+++ b/src/main/java/kieker/analysis/util/graph/NamedGraph.java
@@ -1,34 +1,34 @@
-package kieker.analysis.util.graph;
-
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.util.wrappers.wrapped.WrappedGraph;
-
-public class NamedGraph<T extends Graph> extends WrappedGraph<T> {
-
-	private String name;
-
-	private String fileName;
-
-	public NamedGraph(final String name, final String fileName, final T baseGraph) {
-		super(baseGraph);
-		this.name = name;
-		this.fileName = fileName;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(final String name) {
-		this.name = name;
-	}
-
-	public String getFileName() {
-		return fileName;
-	}
-
-	public void setFileName(final String fileName) {
-		this.fileName = fileName;
-	}
-
-}
+package kieker.analysis.util.graph;
+
+import com.tinkerpop.blueprints.Graph;
+import com.tinkerpop.blueprints.util.wrappers.wrapped.WrappedGraph;
+
+public class NamedGraph<T extends Graph> extends WrappedGraph<T> {
+
+	private String name;
+
+	private String fileName;
+
+	public NamedGraph(final String name, final String fileName, final T baseGraph) {
+		super(baseGraph);
+		this.name = name;
+		this.fileName = fileName;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(final String name) {
+		this.name = name;
+	}
+
+	public String getFileName() {
+		return fileName;
+	}
+
+	public void setFileName(final String fileName) {
+		this.fileName = fileName;
+	}
+
+}
diff --git a/src/main/java/kieker/common/exception/IllegalRecordFormatException.java b/src/main/java/kieker/common/exception/IllegalRecordFormatException.java
index 47462421ee71adb131f8e41132d7db72201db905..0ecc67bd51d26de78c190fddc12fcb3e279c2028 100644
--- a/src/main/java/kieker/common/exception/IllegalRecordFormatException.java
+++ b/src/main/java/kieker/common/exception/IllegalRecordFormatException.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/common/exception/MonitoringRecordException.java b/src/main/java/kieker/common/exception/MonitoringRecordException.java
index c30cbe3bb8762742361d4349d2c75993f9fb6202..5acb6a7fb95e81dc06dce3a6093526129dc981c6 100644
--- a/src/main/java/kieker/common/exception/MonitoringRecordException.java
+++ b/src/main/java/kieker/common/exception/MonitoringRecordException.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/kieker/common/exception/UnknownRecordTypeException.java b/src/main/java/kieker/common/exception/UnknownRecordTypeException.java
index e92f42ae25809245ef33b2d0af8442a2b56ff520..6540a9b24d58df2cf0676b4e738d7109c88aaf2c 100644
--- a/src/main/java/kieker/common/exception/UnknownRecordTypeException.java
+++ b/src/main/java/kieker/common/exception/UnknownRecordTypeException.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/framework/Pipeline.java b/src/main/java/teetime/framework/Pipeline.java
index efe021216f497e95b7f14a66cde655dea4df029c..9453c2a656d254edcdaa40ddc817b03c7b27da47 100644
--- a/src/main/java/teetime/framework/Pipeline.java
+++ b/src/main/java/teetime/framework/Pipeline.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@ import java.util.List;
  *            the type of the last stage in this pipeline
  */
 // TODO Consider to move it in the framework
-public final class Pipeline<L extends AbstractStage> extends AbstractCompositeStage {
+public final class Pipeline<L extends AbstractStage> extends CompositeStage {
 
 	private final AbstractStage firstStage;
 	private final List<L> lastStages = new LinkedList<L>();
diff --git a/src/main/java/teetime/stage/className/ClassNameRegistry.java b/src/main/java/teetime/stage/className/ClassNameRegistry.java
index d0fd1993a1ad2d17393695beb9564859b2e5b1d6..d1045e98934276a4a3ef02af707ef0ad04c018ff 100644
--- a/src/main/java/teetime/stage/className/ClassNameRegistry.java
+++ b/src/main/java/teetime/stage/className/ClassNameRegistry.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/className/ClassNameRegistryCreationFilter.java b/src/main/java/teetime/stage/className/ClassNameRegistryCreationFilter.java
index e93e5df6c485a49759d72b6b715c63922b3e16b7..5092cf34b724cc2c9ea86ded2cd359b32cb70be4 100644
--- a/src/main/java/teetime/stage/className/ClassNameRegistryCreationFilter.java
+++ b/src/main/java/teetime/stage/className/ClassNameRegistryCreationFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/className/ClassNameRegistryRepository.java b/src/main/java/teetime/stage/className/ClassNameRegistryRepository.java
index f3e466ae6eaa71b04c5eb39f88fba49aa45d0e14..a23dac2223a254c35fad22cc20e923202501584a 100644
--- a/src/main/java/teetime/stage/className/ClassNameRegistryRepository.java
+++ b/src/main/java/teetime/stage/className/ClassNameRegistryRepository.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/className/MappingFileParser.java b/src/main/java/teetime/stage/className/MappingFileParser.java
index 4faaeab23c536e9f09e4cfe9651ce02ab8b6c904..31bfd47a6997626cc993df0fd4e1eb9c29805f61 100644
--- a/src/main/java/teetime/stage/className/MappingFileParser.java
+++ b/src/main/java/teetime/stage/className/MappingFileParser.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/explorviz/KiekerRecordTcpReader.java b/src/main/java/teetime/stage/explorviz/KiekerRecordTcpReader.java
index 7aa25cf5a6a4f7dc5b99db9ff5d75a75430130c5..ddff566edc5d942a6d057163dd9840b1f19857e6 100644
--- a/src/main/java/teetime/stage/explorviz/KiekerRecordTcpReader.java
+++ b/src/main/java/teetime/stage/explorviz/KiekerRecordTcpReader.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/io/database/DbReader.java b/src/main/java/teetime/stage/io/database/DbReader.java
index b8b56db2d96d92f0521dc7354c6e2a7b38728a7c..9509a6611ae2634d8ae68fd130e45e6b2430d4cd 100644
--- a/src/main/java/teetime/stage/io/database/DbReader.java
+++ b/src/main/java/teetime/stage/io/database/DbReader.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/io/filesystem/AbstractRecordFileReader.java b/src/main/java/teetime/stage/io/filesystem/AbstractRecordFileReader.java
index 4dee77a9e7387666ef103b80ef2578f2f0a0b1b4..d4f0e9fb7f4f1e08f7c2d1aafbe74beb81f731f9 100644
--- a/src/main/java/teetime/stage/io/filesystem/AbstractRecordFileReader.java
+++ b/src/main/java/teetime/stage/io/filesystem/AbstractRecordFileReader.java
@@ -1,3 +1,18 @@
+/**
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
+ *
+ * Licensed 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
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 teetime.stage.io.filesystem;
 
 import java.io.File;
diff --git a/src/main/java/teetime/stage/io/filesystem/Dir2RecordsFilter.java b/src/main/java/teetime/stage/io/filesystem/Dir2RecordsFilter.java
index 37671f222e0f1a5213deed77227e99f755d9b694..51d8d1c91e2f8a342941820883a6e6c536b08575 100644
--- a/src/main/java/teetime/stage/io/filesystem/Dir2RecordsFilter.java
+++ b/src/main/java/teetime/stage/io/filesystem/Dir2RecordsFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@ package teetime.stage.io.filesystem;
 
 import java.io.File;
 
-import teetime.framework.AbstractCompositeStage;
+import teetime.framework.CompositeStage;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.framework.AbstractStage;
@@ -38,7 +38,7 @@ import kieker.common.util.filesystem.FSUtil;
  *
  * @since 1.0
  */
-public final class Dir2RecordsFilter extends AbstractCompositeStage {
+public final class Dir2RecordsFilter extends CompositeStage {
 
 	private final ClassNameRegistryCreationFilter classNameRegistryCreationFilter;
 	private final Merger<IMonitoringRecord> recordMerger;
diff --git a/src/main/java/teetime/stage/io/filesystem/format/binary/DirWithBin2RecordFilter.java b/src/main/java/teetime/stage/io/filesystem/format/binary/DirWithBin2RecordFilter.java
index 26f72fc33f5c5a4a7a4339fa77a710ad6938d3f9..f8cdb52d87e68f338fff857e0884aa9537d825ea 100644
--- a/src/main/java/teetime/stage/io/filesystem/format/binary/DirWithBin2RecordFilter.java
+++ b/src/main/java/teetime/stage/io/filesystem/format/binary/DirWithBin2RecordFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@ package teetime.stage.io.filesystem.format.binary;
 
 import java.io.File;
 
-import teetime.framework.AbstractCompositeStage;
+import teetime.framework.CompositeStage;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.framework.AbstractStage;
@@ -27,7 +27,7 @@ import teetime.stage.io.filesystem.format.binary.file.BinaryFile2RecordFilter;
 
 import kieker.common.record.IMonitoringRecord;
 
-public class DirWithBin2RecordFilter extends AbstractCompositeStage {
+public class DirWithBin2RecordFilter extends CompositeStage {
 
 	private final ClassNameRegistryCreationFilter classNameRegistryCreationFilter;
 	private final BinaryFile2RecordFilter binaryFile2RecordFilter;
diff --git a/src/main/java/teetime/stage/io/filesystem/format/binary/file/BinaryFile2RecordFilter.java b/src/main/java/teetime/stage/io/filesystem/format/binary/file/BinaryFile2RecordFilter.java
index f90064fbf075c5aa91ef7a0013e87d11ac9c3732..d8a22578df5ee03c02e6da61c01176c24ca94e76 100644
--- a/src/main/java/teetime/stage/io/filesystem/format/binary/file/BinaryFile2RecordFilter.java
+++ b/src/main/java/teetime/stage/io/filesystem/format/binary/file/BinaryFile2RecordFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/io/filesystem/format/binary/file/RecordFromBinaryFileCreator.java b/src/main/java/teetime/stage/io/filesystem/format/binary/file/RecordFromBinaryFileCreator.java
index 6c3293ddac57f4b662031f38eeb7e0c1e881246a..3e2a91d501f9cf8e3cde4b0e1db92a0cd1622833 100644
--- a/src/main/java/teetime/stage/io/filesystem/format/binary/file/RecordFromBinaryFileCreator.java
+++ b/src/main/java/teetime/stage/io/filesystem/format/binary/file/RecordFromBinaryFileCreator.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/io/filesystem/format/text/file/DatFile2RecordFilter.java b/src/main/java/teetime/stage/io/filesystem/format/text/file/DatFile2RecordFilter.java
index 0bdc1c0027f48185e3403fb6d210772c4efe296d..55d6a77f0a2aa7941afa713cefc85e5490a46dda 100644
--- a/src/main/java/teetime/stage/io/filesystem/format/text/file/DatFile2RecordFilter.java
+++ b/src/main/java/teetime/stage/io/filesystem/format/text/file/DatFile2RecordFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@ package teetime.stage.io.filesystem.format.text.file;
 
 import java.io.File;
 
-import teetime.framework.AbstractCompositeStage;
+import teetime.framework.CompositeStage;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.framework.AbstractStage;
@@ -31,7 +31,7 @@ import kieker.common.record.IMonitoringRecord;
  *
  * @since 1.10
  */
-public class DatFile2RecordFilter extends AbstractCompositeStage {
+public class DatFile2RecordFilter extends CompositeStage {
 
 	private final File2TextLinesFilter file2TextLinesFilter;
 	private final TextLine2RecordFilter textLine2RecordFilter;
diff --git a/src/main/java/teetime/stage/io/filesystem/format/text/file/RecordFromTextLineCreator.java b/src/main/java/teetime/stage/io/filesystem/format/text/file/RecordFromTextLineCreator.java
index 341e27da65e847ef8ebcb36c70c80d7845b5d296..c4c043d6e80d33a6916f81c7c4c50da877cf220b 100644
--- a/src/main/java/teetime/stage/io/filesystem/format/text/file/RecordFromTextLineCreator.java
+++ b/src/main/java/teetime/stage/io/filesystem/format/text/file/RecordFromTextLineCreator.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/io/filesystem/format/text/file/TextLine2MappingRegistryFilter.java b/src/main/java/teetime/stage/io/filesystem/format/text/file/TextLine2MappingRegistryFilter.java
index c51fcfbe1d0bafd406812e204b56165a48ed7254..638594e12e376ad5e0b4298c8a69ee6a939eb15a 100644
--- a/src/main/java/teetime/stage/io/filesystem/format/text/file/TextLine2MappingRegistryFilter.java
+++ b/src/main/java/teetime/stage/io/filesystem/format/text/file/TextLine2MappingRegistryFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/io/filesystem/format/text/file/TextLine2RecordFilter.java b/src/main/java/teetime/stage/io/filesystem/format/text/file/TextLine2RecordFilter.java
index 3d1f52d501c905cc880ea5be10a69e6cb54fbdd0..44418b9952abd0fb1bf2813c08091146c2cdc694 100644
--- a/src/main/java/teetime/stage/io/filesystem/format/text/file/TextLine2RecordFilter.java
+++ b/src/main/java/teetime/stage/io/filesystem/format/text/file/TextLine2RecordFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +22,7 @@ import teetime.framework.AbstractConsumerStage;
 import teetime.framework.OutputPort;
 import teetime.stage.className.ClassNameRegistryRepository;
 import teetime.stage.util.MappingException;
-import teetime.stage.util.TextLine;
+import teetime.stage.util.TextLineContainer;
 
 import kieker.common.exception.IllegalRecordFormatException;
 import kieker.common.exception.MonitoringRecordException;
@@ -34,7 +34,7 @@ import kieker.common.record.IMonitoringRecord;
  *
  * @since 1.10
  */
-public class TextLine2RecordFilter extends AbstractConsumerStage<TextLine> {
+public class TextLine2RecordFilter extends AbstractConsumerStage<TextLineContainer> {
 
 	private final OutputPort<IMonitoringRecord> outputPort = this.createOutputPort();
 
@@ -77,7 +77,7 @@ public class TextLine2RecordFilter extends AbstractConsumerStage<TextLine> {
 	}
 
 	@Override
-	protected void execute(final TextLine textLine) {
+	protected void execute(final TextLineContainer textLine) {
 		try {
 			final IMonitoringRecord record = this.recordFromTextLineCreator.createRecordFromLine(textLine.getTextFile(), textLine.getTextLine());
 			outputPort.send(record);
diff --git a/src/main/java/teetime/stage/io/network/TcpReaderStage.java b/src/main/java/teetime/stage/io/network/TcpReaderStage.java
index 85a80e2c14d7d995fda54649998837f37dd9b844..fc200fcae05cfca094bdd6445d20da9b1573f1b8 100644
--- a/src/main/java/teetime/stage/io/network/TcpReaderStage.java
+++ b/src/main/java/teetime/stage/io/network/TcpReaderStage.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/logReplayer/filter/MonitoringRecordLoggerFilter.java b/src/main/java/teetime/stage/logReplayer/filter/MonitoringRecordLoggerFilter.java
index bab2d54284bf6a293f1da04ec6e71bc587c37c5c..5324e66e5fc9bf8034ac88ed2042842a47477e86 100644
--- a/src/main/java/teetime/stage/logReplayer/filter/MonitoringRecordLoggerFilter.java
+++ b/src/main/java/teetime/stage/logReplayer/filter/MonitoringRecordLoggerFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/opad/filter/AnomalyDetectionFilter.java b/src/main/java/teetime/stage/opad/filter/AnomalyDetectionFilter.java
index 8b6184d8b2c95accb4593280d751e2cff4b1206f..9e637f6982dddde640d24a591f1333fceb1a2774 100644
--- a/src/main/java/teetime/stage/opad/filter/AnomalyDetectionFilter.java
+++ b/src/main/java/teetime/stage/opad/filter/AnomalyDetectionFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/opad/filter/RecordConverter.java b/src/main/java/teetime/stage/opad/filter/RecordConverter.java
index 2fd889bbba09819837d72ad7d69692223c71eca1..43f624768111000c8e65e8fdd27ea4867ce7b0fb 100644
--- a/src/main/java/teetime/stage/opad/filter/RecordConverter.java
+++ b/src/main/java/teetime/stage/opad/filter/RecordConverter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/opad/filter/StorableDetectionResultExtender.java b/src/main/java/teetime/stage/opad/filter/StorableDetectionResultExtender.java
index a70cbdc51f7e184ae737e4e5ef61427ecd0845f9..83464a663abcd65a0e56c6710b745fac7aa9f78e 100644
--- a/src/main/java/teetime/stage/opad/filter/StorableDetectionResultExtender.java
+++ b/src/main/java/teetime/stage/opad/filter/StorableDetectionResultExtender.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/string/buffer/StringBufferFilter.java b/src/main/java/teetime/stage/string/buffer/StringBufferFilter.java
index cd187eff2679e60fff5a7312b88c35b585d24064..919e89def0676ec17784969cd27abc391f4fda22 100644
--- a/src/main/java/teetime/stage/string/buffer/StringBufferFilter.java
+++ b/src/main/java/teetime/stage/string/buffer/StringBufferFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/string/buffer/handler/AbstractDataTypeHandler.java b/src/main/java/teetime/stage/string/buffer/handler/AbstractDataTypeHandler.java
index 6f4540cdfd1040c94e2971142543a29d4f4a2a59..07749f4678e46f9b136a582d87be47b50d27dbbf 100644
--- a/src/main/java/teetime/stage/string/buffer/handler/AbstractDataTypeHandler.java
+++ b/src/main/java/teetime/stage/string/buffer/handler/AbstractDataTypeHandler.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/string/buffer/handler/MonitoringRecordHandler.java b/src/main/java/teetime/stage/string/buffer/handler/MonitoringRecordHandler.java
index cc661228d0306f9ef2601d159d27156a0a4557dd..df5c098888bd76c9f91551f7db5eb7a713b28b20 100644
--- a/src/main/java/teetime/stage/string/buffer/handler/MonitoringRecordHandler.java
+++ b/src/main/java/teetime/stage/string/buffer/handler/MonitoringRecordHandler.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/string/buffer/handler/StringHandler.java b/src/main/java/teetime/stage/string/buffer/handler/StringHandler.java
index bef40e5d09b74761661ad93725f3342d902c0edc..9253568591268527da81a55fee55a13cfb36cefb 100644
--- a/src/main/java/teetime/stage/string/buffer/handler/StringHandler.java
+++ b/src/main/java/teetime/stage/string/buffer/handler/StringHandler.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/string/buffer/util/KiekerHashMap.java b/src/main/java/teetime/stage/string/buffer/util/KiekerHashMap.java
index e6930b7c50de9b99309a31e20f9fb13dc18a6b16..b603d3e0868dc796c76ae20937386b4c6c24f59b 100644
--- a/src/main/java/teetime/stage/string/buffer/util/KiekerHashMap.java
+++ b/src/main/java/teetime/stage/string/buffer/util/KiekerHashMap.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/trace/traceReconstruction/EventBasedTrace.java b/src/main/java/teetime/stage/trace/traceReconstruction/EventBasedTrace.java
index 973a99cb71b3bb7a3bd100406625a1f40a649961..7979c1efddab4ed090927f39dbc809c4d49677ba 100644
--- a/src/main/java/teetime/stage/trace/traceReconstruction/EventBasedTrace.java
+++ b/src/main/java/teetime/stage/trace/traceReconstruction/EventBasedTrace.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/trace/traceReconstruction/EventBasedTraceFactory.java b/src/main/java/teetime/stage/trace/traceReconstruction/EventBasedTraceFactory.java
index bbbae5deb99d09c82a8e049ca21df0fc3a2ec3f5..d96c44d70bcda844f72b54029eebe92a7cbc0dee 100644
--- a/src/main/java/teetime/stage/trace/traceReconstruction/EventBasedTraceFactory.java
+++ b/src/main/java/teetime/stage/trace/traceReconstruction/EventBasedTraceFactory.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/trace/traceReconstruction/TraceReconstructionFilter.java b/src/main/java/teetime/stage/trace/traceReconstruction/TraceReconstructionFilter.java
index 2e86a73438625e4c9441ae0f6caaad8381883acd..ae9a4aae3298552c691a7e4410f9f1305b8b478d 100644
--- a/src/main/java/teetime/stage/trace/traceReconstruction/TraceReconstructionFilter.java
+++ b/src/main/java/teetime/stage/trace/traceReconstruction/TraceReconstructionFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/trace/traceReduction/EventBasedTraceComperator.java b/src/main/java/teetime/stage/trace/traceReduction/EventBasedTraceComperator.java
index 117046bbd66f214c11ebbf4ed3e8257fdc1b36b0..0bd52f00f4ccd5d1981221b0dfea25636021aa3c 100644
--- a/src/main/java/teetime/stage/trace/traceReduction/EventBasedTraceComperator.java
+++ b/src/main/java/teetime/stage/trace/traceReduction/EventBasedTraceComperator.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/trace/traceReduction/TraceAggregationBuffer.java b/src/main/java/teetime/stage/trace/traceReduction/TraceAggregationBuffer.java
index bb341593baf9e58fb2e38184594a4313628945e8..f8b3d23b875bcdf260fe97a180a90ca996d4fe8f 100644
--- a/src/main/java/teetime/stage/trace/traceReduction/TraceAggregationBuffer.java
+++ b/src/main/java/teetime/stage/trace/traceReduction/TraceAggregationBuffer.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/stage/trace/traceReduction/TraceReductionFilter.java b/src/main/java/teetime/stage/trace/traceReduction/TraceReductionFilter.java
index beeb2805cf79e8f321c6be3f7040916d0c136f83..0a9a9d9f245996ae6bd86057c19be0fd9b5f3acc 100644
--- a/src/main/java/teetime/stage/trace/traceReduction/TraceReductionFilter.java
+++ b/src/main/java/teetime/stage/trace/traceReduction/TraceReductionFilter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/AbstractProfiledPerformanceAssertion.java b/src/main/java/teetime/util/AbstractProfiledPerformanceAssertion.java
index e648fe87aea4fc9609bc2a90466dda5c92e3a94d..7cd3ea375375161cd9df8dfab30a7c255f5768de 100644
--- a/src/main/java/teetime/util/AbstractProfiledPerformanceAssertion.java
+++ b/src/main/java/teetime/util/AbstractProfiledPerformanceAssertion.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/BucketTimingsReader.java b/src/main/java/teetime/util/BucketTimingsReader.java
index 98390610381f562ce56bff7197fcc19f5361dbc4..4a2db5b534d9edf6ba1b5a1aafdcde4cb6209cb0 100644
--- a/src/main/java/teetime/util/BucketTimingsReader.java
+++ b/src/main/java/teetime/util/BucketTimingsReader.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/ConcurrentHashMapWithDefault.java b/src/main/java/teetime/util/ConcurrentHashMapWithDefault.java
index bcf0dd4ec67de1e8e1e3c1701fbadabe93e80417..f4eb6daa86a9a126d179bcc277b5ee7ee3fb12fd 100644
--- a/src/main/java/teetime/util/ConcurrentHashMapWithDefault.java
+++ b/src/main/java/teetime/util/ConcurrentHashMapWithDefault.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/HashMapWithDefault.java b/src/main/java/teetime/util/HashMapWithDefault.java
index a6aceab72439130f5e36cd1b45065ccaafbd1b61..89ec2aec0cbad21d6b9defbfb9d2a98f4f16db04 100644
--- a/src/main/java/teetime/util/HashMapWithDefault.java
+++ b/src/main/java/teetime/util/HashMapWithDefault.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/ISendTraceAggregationBuffer.java b/src/main/java/teetime/util/ISendTraceAggregationBuffer.java
index 743392964f76d22fa7398cb7a33ed97fb490392b..aef117cd2e1e715e3f1918ec7e44641d4e7cacbe 100644
--- a/src/main/java/teetime/util/ISendTraceAggregationBuffer.java
+++ b/src/main/java/teetime/util/ISendTraceAggregationBuffer.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/ISendTraceBuffer.java b/src/main/java/teetime/util/ISendTraceBuffer.java
index ffd6247a1a55a942d6ce591926c9b092a0db1a5c..323ad4683a73413f451d64989063a7cf3ace9957 100644
--- a/src/main/java/teetime/util/ISendTraceBuffer.java
+++ b/src/main/java/teetime/util/ISendTraceBuffer.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/MathUtil.java b/src/main/java/teetime/util/MathUtil.java
index e7f3761679acb73dac02c29930516636d1ea79ea..3596f7ef96b175c8236f5e4cbdde5ee792899e1f 100644
--- a/src/main/java/teetime/util/MathUtil.java
+++ b/src/main/java/teetime/util/MathUtil.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/MeasurementRepository.java b/src/main/java/teetime/util/MeasurementRepository.java
index 41a32ebf2faac43dc3f919759da6a7ce2a50548e..144ccce7a45e1009ee550425415a6bbda7e6d841 100644
--- a/src/main/java/teetime/util/MeasurementRepository.java
+++ b/src/main/java/teetime/util/MeasurementRepository.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/PerformanceCheckProfileRepository.java b/src/main/java/teetime/util/PerformanceCheckProfileRepository.java
index 74d19c899ce1b79899e167e6fe1317a50d50089b..7ad35d6e5ce2d151351e620270a2cc3d45797726 100644
--- a/src/main/java/teetime/util/PerformanceCheckProfileRepository.java
+++ b/src/main/java/teetime/util/PerformanceCheckProfileRepository.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/PerformanceResult.java b/src/main/java/teetime/util/PerformanceResult.java
index 4066af2d013cd94b89bd6d9c75f89ea2123ddfa2..d9843be03984eb13f540b8aa23c8f692a95456a5 100644
--- a/src/main/java/teetime/util/PerformanceResult.java
+++ b/src/main/java/teetime/util/PerformanceResult.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/StatisticsUtil.java b/src/main/java/teetime/util/StatisticsUtil.java
index 46d13ecf0b9de8e0b6f5eba3db902b87f17e4008..252dd5e718419cdd47a4e2504b143a4749262ea2 100644
--- a/src/main/java/teetime/util/StatisticsUtil.java
+++ b/src/main/java/teetime/util/StatisticsUtil.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/TraceReconstructor.java b/src/main/java/teetime/util/TraceReconstructor.java
index c8ce1510972446636be285adff7f0ec062ae2e80..66882972f77febbb6ea3920385cfa69b5ca43b4d 100644
--- a/src/main/java/teetime/util/TraceReconstructor.java
+++ b/src/main/java/teetime/util/TraceReconstructor.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/TraceReductor.java b/src/main/java/teetime/util/TraceReductor.java
index aa58af1b18bb350f94b5f234e02f49681ca6956c..ca77232cfd04ad228fcee3b4271c94f7c8105487 100644
--- a/src/main/java/teetime/util/TraceReductor.java
+++ b/src/main/java/teetime/util/TraceReductor.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/ValueFactory.java b/src/main/java/teetime/util/ValueFactory.java
index 90b30a9f91a761e7a95efb58f0ea67f7e3074770..9e036f4ea1af34d0d75ea67768ff3ad0da7c57bf 100644
--- a/src/main/java/teetime/util/ValueFactory.java
+++ b/src/main/java/teetime/util/ValueFactory.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/main/java/teetime/util/network/AbstractRecordTcpReader.java b/src/main/java/teetime/util/network/AbstractRecordTcpReader.java
index f1a610478f77f5f880e975e3c4a9657c53ede1a6..4011edd60bd5757c5e3164f77d1c8ebc3dbf9fb1 100644
--- a/src/main/java/teetime/util/network/AbstractRecordTcpReader.java
+++ b/src/main/java/teetime/util/network/AbstractRecordTcpReader.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/kieker/analysis/examples/throughput/ThroughputAnalysisTest.java b/src/performancetest/java/kieker/analysis/examples/throughput/ThroughputAnalysisTest.java
index 73960ed03b490efa0403f166948840bbb2e13c29..0e93232433b23c34d3cdf2632ebc69fbec07b9e1 100644
--- a/src/performancetest/java/kieker/analysis/examples/throughput/ThroughputAnalysisTest.java
+++ b/src/performancetest/java/kieker/analysis/examples/throughput/ThroughputAnalysisTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java b/src/performancetest/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
index 58cfe432af91d986d46ac315d6e853a76468811e..46aa8b5cc39c790737d77b8fd46fb72c2040fc7c 100644
--- a/src/performancetest/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
+++ b/src/performancetest/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/kieker/analysis/stage/EmptyPassOnFilterTest.java b/src/performancetest/java/kieker/analysis/stage/EmptyPassOnFilterTest.java
index c19e32a444f8778fde43c9f3aca3f35ea923a1f3..8dadd24fad8beea487655432eade4b29d301097b 100644
--- a/src/performancetest/java/kieker/analysis/stage/EmptyPassOnFilterTest.java
+++ b/src/performancetest/java/kieker/analysis/stage/EmptyPassOnFilterTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/recordReader/RecordReaderAnalysisTest.java b/src/performancetest/java/teetime/examples/recordReader/RecordReaderAnalysisTest.java
index 8b558ac5e74a8233e12e364650aee1f9e8cce110..ca8359236ae941f93cc611d60a726da7e00062fb 100644
--- a/src/performancetest/java/teetime/examples/recordReader/RecordReaderAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/recordReader/RecordReaderAnalysisTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/recordReader/RecordReaderConfiguration.java b/src/performancetest/java/teetime/examples/recordReader/RecordReaderConfiguration.java
index d68de9b9d180257b4e323d8660cdf3a995f066b2..dfe4a1659567e3f8afeb822029c0322e5b976803 100644
--- a/src/performancetest/java/teetime/examples/recordReader/RecordReaderConfiguration.java
+++ b/src/performancetest/java/teetime/examples/recordReader/RecordReaderConfiguration.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReading/ChwHomeTcpTraceReadingTest.java b/src/performancetest/java/teetime/examples/traceReading/ChwHomeTcpTraceReadingTest.java
index 67f7a4859b1d500d06124d230fc3c2b289263590..8b233bd86b34d130f413024248b02171c84d7734 100644
--- a/src/performancetest/java/teetime/examples/traceReading/ChwHomeTcpTraceReadingTest.java
+++ b/src/performancetest/java/teetime/examples/traceReading/ChwHomeTcpTraceReadingTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReading/TcpTraceLoggingExtAnalysisConfiguration.java b/src/performancetest/java/teetime/examples/traceReading/TcpTraceLoggingExtAnalysisConfiguration.java
index 85e6215cbde9710ab1fbcd249682eb13e18c57b5..4cebbf4f86b1f2ef4c99fd0a0696609f6b2a2ad4 100644
--- a/src/performancetest/java/teetime/examples/traceReading/TcpTraceLoggingExtAnalysisConfiguration.java
+++ b/src/performancetest/java/teetime/examples/traceReading/TcpTraceLoggingExtAnalysisConfiguration.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java
index 20ab0fad19dd2c37358386fe070ddb9ccd64b6f7..7b88830f1a1dd41e821bcb57c048f53afb744a11 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java
index 729e2be0b5abebd24bb371ab94556f5abddd4085..b40a587518e2ac839b3e98cade11172e34129d4a 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java
index a8c6f5005b88bf8174536b4642ecc863a609db5b..b24f7e6b18da9c52a32a6a9be3db64caf92adbfc 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java
index d2d77bb0327d8b0fbaf82b03b07f5a0cfe8e4fd9..d1d198cd0ce8775c3361f23e74133a4e2d161634 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/KiekerTraceReconstructionAnalysis.java b/src/performancetest/java/teetime/examples/traceReconstruction/KiekerTraceReconstructionAnalysis.java
index 547ba0a31c66ffe7435a458c2bb91bfbcdd1b6cf..a47188c33c8131a1bd40f20680e4f16b8d79887d 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/KiekerTraceReconstructionAnalysis.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/KiekerTraceReconstructionAnalysis.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java
index d0c5829f226f9a4a8616379cb71118739e556ff7..2cfa5adcbcc54465dad27e76e33e09e2e71c5cc0 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/TcpTraceReconstructionConf.java b/src/performancetest/java/teetime/examples/traceReconstruction/TcpTraceReconstructionConf.java
index 2b2d2caa340f64de60b6b3b47f275a302537e935..13c0280148251a445a40da055e37f6d0cd18762a 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/TcpTraceReconstructionConf.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/TcpTraceReconstructionConf.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/TraceReconstructionConf.java b/src/performancetest/java/teetime/examples/traceReconstruction/TraceReconstructionConf.java
index 25cc3a92e68cb889c2a51a90a1f3970b6c9f888f..6a44c7d270fe9f84ba89134a4c640d956c24bbff 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/TraceReconstructionConf.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/TraceReconstructionConf.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwHomeTcpTraceReconstructionAnalysisWithThreadsTest.java b/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwHomeTcpTraceReconstructionAnalysisWithThreadsTest.java
index d90e5a01463b62d9a38ea8bafa5de709d7929ac5..ed39a4a89df52b0b990bc019843b38cf06824935 100644
--- a/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwHomeTcpTraceReconstructionAnalysisWithThreadsTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwHomeTcpTraceReconstructionAnalysisWithThreadsTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java b/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java
index ff4e63513b4c417589a2a0ae1a8555545f298e02..981762160e75a901f4cb0ba991666a9892e3b427 100644
--- a/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/TcpTraceReconstructionAnalysisWithThreadsConfiguration.java b/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/TcpTraceReconstructionAnalysisWithThreadsConfiguration.java
index 759131901f53addc332828d71bfc751c8eccbefe..2fa682d6e3ec26644037b827d1c82b971dadeadb 100644
--- a/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/TcpTraceReconstructionAnalysisWithThreadsConfiguration.java
+++ b/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/TcpTraceReconstructionAnalysisWithThreadsConfiguration.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java b/src/performancetest/java/teetime/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java
index c2432cfdd447d09f10911145dac9499c887dbc83..2979ab67711d857acad9975000c5fd2ebfce5515 100644
--- a/src/performancetest/java/teetime/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java
+++ b/src/performancetest/java/teetime/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/teetime/examples/traceReductionWithThreads/TcpTraceReductionAnalysisWithThreadsConfiguration.java b/src/performancetest/java/teetime/examples/traceReductionWithThreads/TcpTraceReductionAnalysisWithThreadsConfiguration.java
index 876d38e92ad8593919791e73ff7010efb2ab702d..a5027ddc457ba1e75aa4e40fb5e5134aa32ccf0c 100644
--- a/src/performancetest/java/teetime/examples/traceReductionWithThreads/TcpTraceReductionAnalysisWithThreadsConfiguration.java
+++ b/src/performancetest/java/teetime/examples/traceReductionWithThreads/TcpTraceReductionAnalysisWithThreadsConfiguration.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/util/test/MooBenchStarter.java b/src/performancetest/java/util/test/MooBenchStarter.java
index 6712ff230002f4d41a0fa237e11a57b59fc82667..2883add9fd6022dbcead2934cb4b38e238aa66e5 100644
--- a/src/performancetest/java/util/test/MooBenchStarter.java
+++ b/src/performancetest/java/util/test/MooBenchStarter.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/performancetest/java/util/test/PerformanceTest.java b/src/performancetest/java/util/test/PerformanceTest.java
index f95d215e5229bd58c1a6f16233584fad4d2dc407..d8cdd1ab51b2071b74a87196b1e0c22a0ddf5ceb 100644
--- a/src/performancetest/java/util/test/PerformanceTest.java
+++ b/src/performancetest/java/util/test/PerformanceTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/test/java/teetime/stage/io/filesystem/Dir2RecordsFilterTest.java b/src/test/java/teetime/stage/io/filesystem/Dir2RecordsFilterTest.java
index 8839df2177cdd3bf3b8be23e8d35dd370960f9ed..61801171eb5a31c836ae4142bcc2d3a166336464 100644
--- a/src/test/java/teetime/stage/io/filesystem/Dir2RecordsFilterTest.java
+++ b/src/test/java/teetime/stage/io/filesystem/Dir2RecordsFilterTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@ import org.junit.Test;
 
 import kieker.common.record.IMonitoringRecord;
 
-import teetime.framework.AbstractCompositeStage;
+import teetime.framework.CompositeStage;
 import teetime.framework.AbstractStage;
 import teetime.framework.Configuration;
 import teetime.framework.Execution;
@@ -42,7 +42,7 @@ public class Dir2RecordsFilterTest {
 		}
 	}
 
-	class ReadingComposite extends AbstractCompositeStage {
+	class ReadingComposite extends CompositeStage {
 
 		private final InitialElementProducer<File> producer;
 		private final Dir2RecordsFilter reader;
diff --git a/src/test/java/teetime/stage/logReplayer/filter/MonitoringRecordLoggerFilterTest.java b/src/test/java/teetime/stage/logReplayer/filter/MonitoringRecordLoggerFilterTest.java
index e6edfa344875fb320c6769ec1a744fe1168fcd54..dcdac3ed8c9a771e026722d677781083e925f054 100644
--- a/src/test/java/teetime/stage/logReplayer/filter/MonitoringRecordLoggerFilterTest.java
+++ b/src/test/java/teetime/stage/logReplayer/filter/MonitoringRecordLoggerFilterTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/test/java/teetime/stage/opad/filter/AnomalyDetectionFilterTest.java b/src/test/java/teetime/stage/opad/filter/AnomalyDetectionFilterTest.java
index aab2877a4b6125fac95b78dd057380a746939745..54f3953099ba7555dec2bd75d8eb93302c4107ca 100644
--- a/src/test/java/teetime/stage/opad/filter/AnomalyDetectionFilterTest.java
+++ b/src/test/java/teetime/stage/opad/filter/AnomalyDetectionFilterTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/test/java/teetime/stage/opad/filter/RecordConverterTest.java b/src/test/java/teetime/stage/opad/filter/RecordConverterTest.java
index b1c25c4ccda0e7671e458fa601d8aecd5d38d4b5..8dae45bbdcf88ec15ec33522fca670c7a5a44bff 100644
--- a/src/test/java/teetime/stage/opad/filter/RecordConverterTest.java
+++ b/src/test/java/teetime/stage/opad/filter/RecordConverterTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/src/test/java/teetime/stage/opad/filter/StorableDetectionResultExtenderTest.java b/src/test/java/teetime/stage/opad/filter/StorableDetectionResultExtenderTest.java
index d0e836341da1d7056e13d59240cc62ec99580579..700cd2eb3abc545e4edd68807e4802b7f61beb88 100644
--- a/src/test/java/teetime/stage/opad/filter/StorableDetectionResultExtenderTest.java
+++ b/src/test/java/teetime/stage/opad/filter/StorableDetectionResultExtenderTest.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
+ * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime-framework.github.io)
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.