Some notes about how to setup the Jenkins job and the Jacoco test report

Path to exec files (e.g.: **/target/**.exec, **/jacoco.exec)	
**/**.exec

Path to class directories (e.g.: **/target/classDir, **/classes)	
plugins/org.eclipse.emf.parsley.*/**/bin

Path to source directories (e.g.: **/mySourceFiles)
plugins/org.eclipse.emf.parsley/src,plugins/org.eclipse.emf.parsley.*/src,plugins/org.eclipse.emf.parsley.*/xtend-gen,plugins/org.eclipse.emf.parsley.*/src-gen

Inclusions (e.g.: **/*.class)	


Exclusions (e.g.: **/*Test*)
**/*Internal*,**/*Sequencer*,**/*GrammarAccess*,**/antlr/*.*,**/internal/*.*,**/org/eclipse/emf/parsley/dsl/model/impl/*.*,**/org/eclipse/emf/parsley/dsl/model/util/*.*,**/org/eclipse/emf/parsley/rap/**/*.*,**/org/eclipse/emf/parsley/runtime/**/*.*


For Tycho

Path to class directories (e.g.: **/target/classDir, **/classes)	
plugins/org.eclipse.emf.parsley.*/**/classes,dsl/org.eclipse.emf.parsley.dsl/**/classes,dsl/org.eclipse.emf.parsley.dsl.ui/**/classes,dsl/org.eclipse.emf.parsley.dsl.additional.builder/**/classes

Path to source directories (e.g.: **/mySourceFiles)
plugins/org.eclipse.emf.parsley.*/src,plugins/org.eclipse.emf.parsley.*/xtend-gen,dsl/org.eclipse.emf.parsley.dsl/src,dsl/org.eclipse.emf.parsley.dsl/xtend-gen,dsl/org.eclipse.emf.parsley.dsl.ui/src,dsl/org.eclipse.emf.parsley.dsl.ui/xtend-gen,dsl/org.eclipse.emf.parsley.dsl.additional.builder/src,dsl/org.eclipse.emf.parsley.dsl.additional.builder/xtend-gen

Inclusions (e.g.: **/*.class)


Exclusions (e.g.: **/*Test*)
**/*StandaloneSetup*.class,**/*ExecutableExtensionFactory*.class,**/*UiModule*.class,**/*RuntimeModule*.class,**/*Activator*.class,**/*Nature*.class,**/EmfParsleyDslProjectCreator.class,**/EmfParsleyDslNewProjectWizard.class,**/Abstract*ProposalProvider*,**/*Internal*,**/*Sequencer*,**/*GrammarAccess*,**/antlr/*.*,**/internal/*.*,**/org/eclipse/emf/parsley/dsl/model/impl/*.*,**/org/eclipse/emf/parsley/dsl/model/util/*.*,**/org/eclipse/emf/parsley/rap/**/*.*,**/org/eclipse/emf/parsley/runtime/**/*.*,**/org/eclipse/emf/parsley/web/**/*.*,**/org/eclipse/swt/**/*.*,**/org/eclipse/emf/parsley/tests/**/*.*
