# Eclipse project files 
**/.classpath
**/.project
**/.cproject
**/.settings/
**/.checkstyle

# IntelliJ project files
**/*.iml
**/*.ipr
**/*.iws

# Additional tools
**/.clover/

# OSX files
**/.DS_Store

# Compiler output, class files
**/*.class
bin/

# Log files
**/*.log

# BlueJ files
**/*.ctxt

# Mobile Tools for Java (J2ME)
**/.mtj.tmp/

# Package Files #
**/*.jar
**/*.war
**/*.ear
**/*.zip
**/*.tar.gz
**/*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
**/hs_err_pid*

#Test config and output
**/target/
**/test-output/
**/local/
**/reports/
**/.pmd
**/tmp/
**/*.txt
**/streamA.txt

# Build artifacts
cpp/Default/
**/out/
**/build/
**/jarsIn/
**/build.xml
**/.idea
**/*.properties
**/*.releaseBackup
**/*.next
**/*.tag

# Jekyll
**/Gemfile
**/Gemfile.lock
**/_site/
**/_*
**/_*/
